Support setting the cache_size_limit parameter and support mmdet 3.0.0 (#707)

* Support setting the cache_size_limit parameter of dynamo in PyTorch 2.0

* update

* update

* fix

* fix

* update

* update

* update version
pull/649/merge
Haian Huang(深度眸) 2023-04-18 10:59:52 +08:00 committed by GitHub
parent 1e266daf9a
commit 927e0a46af
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
62 changed files with 166 additions and 164 deletions

View File

@ -67,7 +67,7 @@ jobs:
command: |
pip install -U openmim
mim install git+https://github.com/open-mmlab/mmengine.git@main
mim install 'mmcv >= 2.0.0rc4'
mim install 'mmcv >= 2.0.0'
mim install git+https://github.com/open-mmlab/mmdetection.git@dev-3.x
pip install -r requirements/albu.txt
pip install -r requirements/tests.txt
@ -90,16 +90,17 @@ jobs:
name: Run unittests
command: |
export LD_LIBRARY_PATH=/home/circleci/project/onnxruntime-linux-x64-1.8.1/lib:${LD_LIBRARY_PATH}
coverage run --branch --source mmyolo -m pytest tests/
coverage xml
coverage report -m
pytest tests/
# coverage run --branch --source mmyolo -m pytest tests/
# coverage xml
# coverage report -m
build_cuda:
parameters:
torch:
type: string
cuda:
type: enum
enum: ["10.1", "10.2", "11.1", "11.0"]
enum: ["10.1", "10.2", "11.0", "11.7"]
cudnn:
type: integer
default: 7
@ -125,7 +126,7 @@ jobs:
command: |
docker exec mmyolo pip install -U openmim
docker exec mmyolo mim install -e /mmengine
docker exec mmyolo mim install 'mmcv >= 2.0.0rc4'
docker exec mmyolo mim install 'mmcv >= 2.0.0'
docker exec mmyolo pip install -e /mmdetection
docker exec mmyolo pip install -r requirements/albu.txt
docker exec mmyolo pip install -r requirements/tests.txt
@ -168,6 +169,9 @@ workflows:
- lint
- build_cpu:
name: maximum_version_cpu
# mmdeploy not supported
# torch: 2.0.0
# torchvision: 0.15.1
torch: 1.12.1
torchvision: 0.13.1
python: 3.9.0
@ -185,6 +189,13 @@ workflows:
cuda: "10.2"
requires:
- hold
- build_cuda:
name: maximum_version_gpu
torch: 2.0.0
cuda: "11.7"
cudnn: 8
requires:
- hold
merge_stage_test:
when:
not: << pipeline.parameters.lint_only >>

View File

@ -25,10 +25,19 @@ log_level = 'INFO'
load_from = None
resume = False
# file_client_args = dict(
# backend='petrel',
# path_mapping=dict({
# './data/': 's3://openmmlab/datasets/detection/',
# 'data/': 's3://openmmlab/datasets/detection/'
# }))
file_client_args = dict(backend='disk')
# Example to use different file client
# Method 1: simply set the data root and let the file I/O module
# automatically infer from prefix (not support LMDB and Memcache yet)
# data_root = 's3://openmmlab/datasets/detection/coco/'
# Method 2: Use `backend_args`, `file_client_args` in versions
# before MMDet 3.0.0rc6
# backend_args = dict(
# backend='petrel',
# path_mapping=dict({
# './data/': 's3://openmmlab/datasets/detection/',
# 'data/': 's3://openmmlab/datasets/detection/'
# }))
backend_args = None

View File

@ -1,11 +1,12 @@
# TODO: Need to solve the problem of multiple file_client_args parameters
# _file_client_args = dict(
# TODO: Need to solve the problem of multiple backend_args parameters
# _backend_args = dict(
# backend='petrel',
# path_mapping=dict({
# './data/': 's3://openmmlab/datasets/detection/',
# 'data/': 's3://openmmlab/datasets/detection/'
# }))
_file_client_args = dict(backend='disk')
_backend_args = None
tta_model = dict(
type='mmdet.DetTTAModel',
@ -37,7 +38,7 @@ _multiscale_resize_transforms = [
]
tta_pipeline = [
dict(type='LoadImageFromFile', file_client_args=_file_client_args),
dict(type='LoadImageFromFile', backend_args=_backend_args),
dict(
type='TestTimeAug',
transforms=[

View File

@ -1,7 +1,7 @@
_base_ = '../../yolov5/yolov5_s-v61_syncbn_8xb16-300e_coco.py'
test_pipeline = [
dict(type='LoadImageFromFile', file_client_args=_base_.file_client_args),
dict(type='LoadImageFromFile', backend_args=_base_.backend_args),
dict(
type='LetterResize',
scale=_base_.img_scale,

View File

@ -1,7 +1,7 @@
_base_ = '../../yolov6/yolov6_s_syncbn_fast_8xb32-400e_coco.py'
test_pipeline = [
dict(type='LoadImageFromFile', file_client_args=_base_.file_client_args),
dict(type='LoadImageFromFile', backend_args=_base_.backend_args),
dict(
type='LetterResize',
scale=_base_.img_scale,

View File

@ -129,7 +129,7 @@ model = dict(
max_per_img=300))
train_pipeline = [
dict(type='LoadImageFromFile', file_client_args=_base_.file_client_args),
dict(type='LoadImageFromFile', backend_args=_base_.backend_args),
dict(type='LoadAnnotations', with_bbox=True),
dict(type='PPYOLOERandomDistort'),
dict(type='mmdet.Expand', mean=(103.53, 116.28, 123.675)),
@ -157,7 +157,7 @@ train_dataloader = dict(
pipeline=train_pipeline))
test_pipeline = [
dict(type='LoadImageFromFile', file_client_args=_base_.file_client_args),
dict(type='LoadImageFromFile', backend_args=_base_.backend_args),
dict(
type='mmdet.FixShapeResize',
width=img_scale[0],

View File

@ -41,7 +41,7 @@ _base_.model.test_cfg = dict(
max_per_img=100)
train_pipeline = [
dict(type='LoadImageFromFile', file_client_args=_base_.file_client_args),
dict(type='LoadImageFromFile', backend_args=_base_.backend_args),
dict(type='LoadAnnotations', with_bbox=True),
dict(
type='Mosaic',
@ -73,7 +73,7 @@ train_pipeline = [
]
train_pipeline_stage2 = [
dict(type='LoadImageFromFile', file_client_args=_base_.file_client_args),
dict(type='LoadImageFromFile', backend_args=_base_.backend_args),
dict(type='LoadAnnotations', with_bbox=True),
dict(
type='mmdet.RandomResize',
@ -92,7 +92,7 @@ train_dataloader = dict(
batch_size=train_batch_size_per_gpu, dataset=dict(pipeline=train_pipeline))
test_pipeline = [
dict(type='LoadImageFromFile', file_client_args=_base_.file_client_args),
dict(type='LoadImageFromFile', backend_args=_base_.backend_args),
dict(type='mmdet.Resize', scale=(960, 960), keep_ratio=True),
dict(type='mmdet.Pad', size=(960, 960), pad_val=dict(img=(114, 114, 114))),
dict(type='LoadAnnotations', with_bbox=True, _scope_='mmdet'),

View File

@ -169,7 +169,7 @@ model = dict(
)
train_pipeline = [
dict(type='LoadImageFromFile', file_client_args=_base_.file_client_args),
dict(type='LoadImageFromFile', backend_args=_base_.backend_args),
dict(type='LoadAnnotations', with_bbox=True, box_type='qbox'),
dict(
type='mmrotate.ConvertBoxType',
@ -191,7 +191,7 @@ train_pipeline = [
]
val_pipeline = [
dict(type='LoadImageFromFile', file_client_args=_base_.file_client_args),
dict(type='LoadImageFromFile', backend_args=_base_.backend_args),
dict(type='mmdet.Resize', scale=img_scale, keep_ratio=True),
dict(type='mmdet.Pad', size=img_scale, pad_val=dict(img=(114, 114, 114))),
dict(
@ -209,7 +209,7 @@ val_pipeline = [
]
test_pipeline = [
dict(type='LoadImageFromFile', file_client_args=_base_.file_client_args),
dict(type='LoadImageFromFile', backend_args=_base_.backend_args),
dict(type='mmdet.Resize', scale=img_scale, keep_ratio=True),
dict(type='mmdet.Pad', size=img_scale, pad_val=dict(img=(114, 114, 114))),
dict(

View File

@ -38,7 +38,7 @@ submission_dir = './work_dirs/{{fileBasenameNoExtension}}/submission'
# =======================Unmodified in most cases==================
train_pipeline = [
dict(type='LoadImageFromFile', file_client_args=_base_.file_client_args),
dict(type='LoadImageFromFile', backend_args=_base_.backend_args),
dict(type='LoadAnnotations', with_bbox=True, box_type='qbox'),
dict(
type='mmrotate.ConvertBoxType',
@ -77,7 +77,7 @@ train_pipeline = [
]
train_pipeline_stage2 = [
dict(type='LoadImageFromFile', file_client_args=_base_.file_client_args),
dict(type='LoadImageFromFile', backend_args=_base_.backend_args),
dict(type='LoadAnnotations', with_bbox=True, box_type='qbox'),
dict(
type='mmrotate.ConvertBoxType',

View File

@ -148,7 +148,7 @@ model = dict(
)
train_pipeline = [
dict(type='LoadImageFromFile', file_client_args=_base_.file_client_args),
dict(type='LoadImageFromFile', backend_args=_base_.backend_args),
dict(type='LoadAnnotations', with_bbox=True),
dict(
type='Mosaic',
@ -175,7 +175,7 @@ train_pipeline = [
]
train_pipeline_stage2 = [
dict(type='LoadImageFromFile', file_client_args=_base_.file_client_args),
dict(type='LoadImageFromFile', backend_args=_base_.backend_args),
dict(type='LoadAnnotations', with_bbox=True),
dict(
type='mmdet.RandomResize',
@ -191,7 +191,7 @@ train_pipeline_stage2 = [
]
test_pipeline = [
dict(type='LoadImageFromFile', file_client_args=_base_.file_client_args),
dict(type='LoadImageFromFile', backend_args=_base_.backend_args),
dict(type='YOLOv5KeepRatioResize', scale=img_scale),
dict(
type='LetterResize',

View File

@ -33,7 +33,7 @@ model = dict(
bbox_head=dict(head_module=dict(widen_factor=widen_factor)))
train_pipeline = [
dict(type='LoadImageFromFile', file_client_args=_base_.file_client_args),
dict(type='LoadImageFromFile', backend_args=_base_.backend_args),
dict(type='LoadAnnotations', with_bbox=True),
dict(
type='Mosaic',
@ -60,7 +60,7 @@ train_pipeline = [
]
train_pipeline_stage2 = [
dict(type='LoadImageFromFile', file_client_args=_base_.file_client_args),
dict(type='LoadImageFromFile', backend_args=_base_.backend_args),
dict(type='LoadAnnotations', with_bbox=True),
dict(
type='mmdet.RandomResize',

View File

@ -26,7 +26,7 @@ model = dict(
bbox_head=dict(head_module=dict(widen_factor=widen_factor)))
train_pipeline = [
dict(type='LoadImageFromFile', file_client_args=_base_.file_client_args),
dict(type='LoadImageFromFile', backend_args=_base_.backend_args),
dict(type='LoadAnnotations', with_bbox=True),
dict(
type='Mosaic',

View File

@ -19,7 +19,7 @@ albu_train_transforms = [
]
pre_transform = [
dict(type='LoadImageFromFile', file_client_args=_base_.file_client_args),
dict(type='LoadImageFromFile', backend_args=_base_.backend_args),
# only change this
dict(type='mmdet.LoadAnnotations', with_bbox=True)
]

View File

@ -9,7 +9,7 @@ min_area_ratio = 0.01 # YOLOv5RandomAffine
# ===============================Unmodified in most cases====================
pre_transform = [
dict(type='LoadImageFromFile', file_client_args=_base_.file_client_args),
dict(type='LoadImageFromFile', backend_args=_base_.backend_args),
dict(
type='LoadAnnotations',
with_bbox=True,

View File

@ -168,7 +168,7 @@ train_dataloader = dict(
collate_fn=dict(type='yolov5_collate'))
test_pipeline = [
dict(type='LoadImageFromFile', file_client_args=_base_.file_client_args),
dict(type='LoadImageFromFile', backend_args=_base_.backend_args),
dict(type='YOLOv5KeepRatioResize', scale=img_scale),
dict(
type='LetterResize',
@ -250,7 +250,7 @@ _multiscale_resize_transforms = [
]
tta_pipeline = [
dict(type='LoadImageFromFile', file_client_args=_base_.file_client_args),
dict(type='LoadImageFromFile', backend_args=_base_.backend_args),
dict(
type='TestTimeAug',
transforms=[

View File

@ -84,7 +84,7 @@ train_pipeline = [
train_dataloader = dict(dataset=dict(pipeline=train_pipeline))
test_pipeline = [
dict(type='LoadImageFromFile', file_client_args=_base_.file_client_args),
dict(type='LoadImageFromFile', backend_args=_base_.backend_args),
dict(type='YOLOv5KeepRatioResize', scale=img_scale),
dict(
type='LetterResize',
@ -118,7 +118,7 @@ _multiscale_resize_transforms = [
]
tta_pipeline = [
dict(type='LoadImageFromFile', file_client_args=_base_.file_client_args),
dict(type='LoadImageFromFile', backend_args=_base_.backend_args),
dict(
type='TestTimeAug',
transforms=[

View File

@ -51,7 +51,7 @@ train_pipeline = [
_base_.train_dataloader.dataset.pipeline = train_pipeline
test_pipeline = [
dict(type='LoadImageFromFile', file_client_args=_base_.file_client_args),
dict(type='LoadImageFromFile', backend_args=_base_.backend_args),
dict(type='YOLOv5KeepRatioResize', scale=img_scale),
dict(
type='LetterResize',

View File

@ -1,7 +1,7 @@
_base_ = 'yolov5_s-v61_syncbn_8xb16-300e_coco.py'
test_pipeline = [
dict(type='LoadImageFromFile', file_client_args=_base_.file_client_args),
dict(type='LoadImageFromFile', backend_args=_base_.backend_args),
dict(
type='LetterResize',
scale=_base_.img_scale,

View File

@ -158,7 +158,7 @@ albu_train_transforms = [
]
pre_transform = [
dict(type='LoadImageFromFile', file_client_args=_base_.file_client_args),
dict(type='LoadImageFromFile', backend_args=_base_.backend_args),
dict(type='LoadAnnotations', with_bbox=True)
]
@ -211,7 +211,7 @@ train_dataloader = dict(
pipeline=train_pipeline))
test_pipeline = [
dict(type='LoadImageFromFile', file_client_args=_base_.file_client_args),
dict(type='LoadImageFromFile', backend_args=_base_.backend_args),
dict(type='YOLOv5KeepRatioResize', scale=img_scale),
dict(
type='LetterResize',

View File

@ -9,7 +9,7 @@ min_area_ratio = 0.01 # YOLOv5RandomAffine
# ===============================Unmodified in most cases====================
pre_transform = [
dict(type='LoadImageFromFile', file_client_args=_base_.file_client_args),
dict(type='LoadImageFromFile', backend_args=_base_.backend_args),
dict(
type='LoadAnnotations',
with_bbox=True,

View File

@ -162,7 +162,7 @@ albu_train_transforms = [
]
pre_transform = [
dict(type='LoadImageFromFile', file_client_args=_base_.file_client_args),
dict(type='LoadImageFromFile', backend_args=_base_.backend_args),
dict(type='LoadAnnotations', with_bbox=True)
]
@ -238,7 +238,7 @@ train_dataloader = dict(
pipeline=train_pipeline))
test_pipeline = [
dict(type='LoadImageFromFile', file_client_args=_base_.file_client_args),
dict(type='LoadImageFromFile', backend_args=_base_.backend_args),
dict(type='YOLOv5KeepRatioResize', scale=img_scale),
dict(
type='LetterResize',

View File

@ -126,7 +126,7 @@ model = dict(
# The training pipeline of YOLOv6 is basically the same as YOLOv5.
# The difference is that Mosaic and RandomAffine will be closed in the last 15 epochs. # noqa
pre_transform = [
dict(type='LoadImageFromFile', file_client_args=_base_.file_client_args),
dict(type='LoadImageFromFile', backend_args=_base_.backend_args),
dict(type='LoadAnnotations', with_bbox=True)
]
@ -193,7 +193,7 @@ train_dataloader = dict(
pipeline=train_pipeline))
test_pipeline = [
dict(type='LoadImageFromFile', file_client_args=_base_.file_client_args),
dict(type='LoadImageFromFile', backend_args=_base_.backend_args),
dict(type='YOLOv5KeepRatioResize', scale=img_scale),
dict(
type='LetterResize',

View File

@ -165,7 +165,7 @@ model = dict(
test_cfg=model_test_cfg)
pre_transform = [
dict(type='LoadImageFromFile', file_client_args=_base_.file_client_args),
dict(type='LoadImageFromFile', backend_args=_base_.backend_args),
dict(type='LoadAnnotations', with_bbox=True)
]
@ -241,7 +241,7 @@ train_dataloader = dict(
pipeline=train_pipeline))
test_pipeline = [
dict(type='LoadImageFromFile', file_client_args=_base_.file_client_args),
dict(type='LoadImageFromFile', backend_args=_base_.backend_args),
dict(type='YOLOv5KeepRatioResize', scale=img_scale),
dict(
type='LetterResize',

View File

@ -128,7 +128,7 @@ train_pipeline = [
train_dataloader = dict(dataset=dict(pipeline=train_pipeline))
test_pipeline = [
dict(type='LoadImageFromFile', file_client_args=_base_.file_client_args),
dict(type='LoadImageFromFile', backend_args=_base_.backend_args),
dict(type='YOLOv5KeepRatioResize', scale=img_scale),
dict(
type='LetterResize',
@ -162,7 +162,7 @@ _multiscale_resize_transforms = [
]
tta_pipeline = [
dict(type='LoadImageFromFile', file_client_args=_base_.file_client_args),
dict(type='LoadImageFromFile', backend_args=_base_.backend_args),
dict(
type='TestTimeAug',
transforms=[

View File

@ -9,7 +9,7 @@ min_area_ratio = 0.01 # YOLOv5RandomAffine
# ===============================Unmodified in most cases====================
pre_transform = [
dict(type='LoadImageFromFile', file_client_args=_base_.file_client_args),
dict(type='LoadImageFromFile', backend_args=_base_.backend_args),
dict(
type='LoadAnnotations',
with_bbox=True,

View File

@ -169,7 +169,7 @@ albu_train_transforms = [
]
pre_transform = [
dict(type='LoadImageFromFile', file_client_args=_base_.file_client_args),
dict(type='LoadImageFromFile', backend_args=_base_.backend_args),
dict(type='LoadAnnotations', with_bbox=True)
]
@ -245,7 +245,7 @@ train_dataloader = dict(
pipeline=train_pipeline))
test_pipeline = [
dict(type='LoadImageFromFile', file_client_args=_base_.file_client_args),
dict(type='LoadImageFromFile', backend_args=_base_.backend_args),
dict(type='YOLOv5KeepRatioResize', scale=img_scale),
dict(
type='LetterResize',

View File

@ -1,11 +1,12 @@
# TODO: Need to solve the problem of multiple file_client_args parameters
# _file_client_args = dict(
# TODO: Need to solve the problem of multiple backend_args parameters
# _backend_args = dict(
# backend='petrel',
# path_mapping=dict({
# './data/': 's3://openmmlab/datasets/detection/',
# 'data/': 's3://openmmlab/datasets/detection/'
# }))
_file_client_args = dict(backend='disk')
_backend_args = None
tta_model = dict(
type='mmdet.DetTTAModel',
@ -24,7 +25,7 @@ img_scales = [(640, 640), (320, 320), (960, 960)]
# PackDetIn PackDetIn PackDetIn PackDetIn PackDetIn PackDetIn # noqa
tta_pipeline = [
dict(type='LoadImageFromFile', file_client_args=_file_client_args),
dict(type='LoadImageFromFile', backend_args=_backend_args),
dict(
type='TestTimeAug',
transforms=[

View File

@ -149,7 +149,7 @@ model = dict(
test_cfg=model_test_cfg)
pre_transform = [
dict(type='LoadImageFromFile', file_client_args=_base_.file_client_args),
dict(type='LoadImageFromFile', backend_args=_base_.backend_args),
dict(type='LoadAnnotations', with_bbox=True)
]
@ -217,7 +217,7 @@ train_dataloader = dict(
pipeline=train_pipeline_stage1))
test_pipeline = [
dict(type='LoadImageFromFile', file_client_args=_base_.file_client_args),
dict(type='LoadImageFromFile', backend_args=_base_.backend_args),
dict(type='mmdet.Resize', scale=img_scale, keep_ratio=True),
dict(
type='mmdet.Pad',

View File

@ -52,7 +52,7 @@ train_pipeline_stage1 = [
]
test_pipeline = [
dict(type='LoadImageFromFile', file_client_args=_base_.file_client_args),
dict(type='LoadImageFromFile', backend_args=_base_.backend_args),
dict(type='mmdet.Resize', scale=(416, 416), keep_ratio=True), # note
dict(
type='mmdet.Pad',

View File

@ -50,7 +50,7 @@ train_pipeline_stage1 = [
]
test_pipeline = [
dict(type='LoadImageFromFile', file_client_args=_base_.file_client_args),
dict(type='LoadImageFromFile', backend_args=_base_.backend_args),
dict(type='mmdet.Resize', scale=test_img_scale, keep_ratio=True), # note
dict(
type='mmdet.Pad',
@ -69,7 +69,7 @@ test_dataloader = val_dataloader
# Config for Test Time Augmentation. (TTA)
tta_pipeline = [
dict(type='LoadImageFromFile', file_client_args=_base_.file_client_args),
dict(type='LoadImageFromFile', backend_args=_base_.backend_args),
dict(
type='TestTimeAug',
transforms=[

View File

@ -303,7 +303,7 @@ Due to the bias of direct visualization of `test_pipeline`, we need to `configs/
test_pipeline = [
dict(
type='LoadImageFromFile',
file_client_args=_base_.file_client_args),
backend_args=_base_.backend_args),
dict(type='YOLOv5KeepRatioResize', scale=img_scale),
dict(
type='LetterResize',
@ -324,7 +324,7 @@ modify to the following config:
test_pipeline = [
dict(
type='LoadImageFromFile',
file_client_args=_base_.file_client_args),
backend_args=_base_.backend_args),
dict(type='mmdet.Resize', scale=img_scale, keep_ratio=False), # modify the LetterResize to mmdet.Resize
dict(type='LoadAnnotations', with_bbox=True, _scope_='mmdet'),
dict(

View File

@ -4,7 +4,8 @@ Compatible MMEngine, MMCV and MMDetection versions are shown as below. Please in
| MMYOLO version | MMDetection version | MMEngine version | MMCV version |
| :------------: | :----------------------: | :----------------------: | :---------------------: |
| main | mmdet>=3.0.0rc6, \<3.1.0 | mmengine>=0.6.0, \<1.0.0 | mmcv>=2.0.0rc4, \<2.1.0 |
| main | mmdet>=3.0.0, \<3.1.0 | mmengine>=0.7.1, \<1.0.0 | mmcv>=2.0.0rc4, \<2.1.0 |
| 0.6.0 | mmdet>=3.0.0, \<3.1.0 | mmengine>=0.7.1, \<1.0.0 | mmcv>=2.0.0rc4, \<2.1.0 |
| 0.5.0 | mmdet>=3.0.0rc6, \<3.1.0 | mmengine>=0.6.0, \<1.0.0 | mmcv>=2.0.0rc4, \<2.1.0 |
| 0.4.0 | mmdet>=3.0.0rc5, \<3.1.0 | mmengine>=0.3.1, \<1.0.0 | mmcv>=2.0.0rc0, \<2.1.0 |
| 0.3.0 | mmdet>=3.0.0rc5, \<3.1.0 | mmengine>=0.3.1, \<1.0.0 | mmcv>=2.0.0rc0, \<2.1.0 |

View File

@ -201,7 +201,7 @@ In particular, to ensure that the feature map and image are shown aligned, the o
test_pipeline = [
dict(
type='LoadImageFromFile',
file_client_args=_base_.file_client_args),
backend_args=_base_.backend_args),
dict(type='mmdet.Resize', scale=img_scale, keep_ratio=False), # change
dict(type='LoadAnnotations', with_bbox=True, _scope_='mmdet'),
dict(

View File

@ -61,7 +61,7 @@ Taking `YOLOv5` of MMYOLO as an example, here are the details:
_base_ = '../../yolov5/yolov5_s-v61_syncbn_8xb16-300e_coco.py'
test_pipeline = [
dict(type='LoadImageFromFile', file_client_args=_base_.file_client_args),
dict(type='LoadImageFromFile', backend_args=_base_.backend_args),
dict(
type='LetterResize',
scale=_base_.img_scale,

View File

@ -28,7 +28,7 @@ Here is a example in [`yolov5_s-static.py`](https://github.com/open-mmlab/mmyolo
_base_ = '../../yolov5/yolov5_s-v61_syncbn_8xb16-300e_coco.py'
test_pipeline = [
dict(type='LoadImageFromFile', file_client_args=_base_.file_client_args),
dict(type='LoadImageFromFile', backend_args=_base_.backend_args),
dict(
type='LetterResize',
scale=_base_.img_scale,
@ -113,7 +113,7 @@ batch_shapes_cfg = dict(
extra_pad_ratio=0.5)
test_pipeline = [
dict(type='LoadImageFromFile', file_client_args=_base_.file_client_args),
dict(type='LoadImageFromFile', backend_args=_base_.backend_args),
dict(type='YOLOv5KeepRatioResize', scale=img_scale),
dict(
type='LetterResize',

View File

@ -90,7 +90,7 @@ The original `test_pipeline` is:
test_pipeline = [
dict(
type='LoadImageFromFile',
file_client_args=_base_.file_client_args),
backend_args=_base_.backend_args),
dict(type='YOLOv5KeepRatioResize', scale=img_scale),
dict(
type='LetterResize',
@ -111,7 +111,7 @@ Change to the following version:
test_pipeline = [
dict(
type='LoadImageFromFile',
file_client_args=_base_.file_client_args),
backend_args=_base_.backend_args),
dict(type='mmdet.Resize', scale=img_scale, keep_ratio=False), # change the LetterResize to mmdet.Resize
dict(type='LoadAnnotations', with_bbox=True, _scope_='mmdet'),
dict(
@ -197,7 +197,7 @@ The original `test_pipeline` is:
test_pipeline = [
dict(
type='LoadImageFromFile',
file_client_args=_base_.file_client_args),
backend_args=_base_.backend_args),
dict(type='YOLOv5KeepRatioResize', scale=img_scale),
dict(
type='LetterResize',
@ -218,7 +218,7 @@ Change to the following version:
test_pipeline = [
dict(
type='LoadImageFromFile',
file_client_args=_base_.file_client_args),
backend_args=_base_.backend_args),
dict(type='mmdet.Resize', scale=img_scale, keep_ratio=False), # change the LetterResize to mmdet.Resize
dict(type='LoadAnnotations', with_bbox=True, _scope_='mmdet'),
dict(

View File

@ -86,12 +86,10 @@ The training and testing data flow of YOLOv5 have a certain difference. We will
```python
dataset_type = 'CocoDataset' # Dataset type, this will be used to define the dataset
data_root = 'data/coco/' # Root path of data
file_client_args = dict(backend='disk') # file client arguments, default backend loads from local disk
pre_transform = [ # Training data loading pipeline
dict(
type='LoadImageFromFile', # First pipeline to load images from file path
file_client_args=file_client_args), # file client arguments, default backend loads from local disk
type='LoadImageFromFile'), # First pipeline to load images from file path
dict(type='LoadAnnotations', # Second pipeline to load annotations for current image
with_bbox=True) # Whether to use bounding box, True for detection
]
@ -156,8 +154,7 @@ In the testing phase of YOLOv5, the [Letter Resize](https://github.com/open-mmla
```python
test_pipeline = [ # Validation/ Testing dataloader config
dict(
type='LoadImageFromFile', # First pipeline to load images from file path
file_client_args=file_client_args), # file client arguments, default backend loads from local disk
type='LoadImageFromFile'), # First pipeline to load images from file path
dict(type='YOLOv5KeepRatioResize', # Second pipeline to resize images with the same aspect ratio
scale=img_scale), # Pipeline that resizes the images
dict(
@ -475,8 +472,7 @@ train_pipeline = [
test_pipeline = [
dict(
type='LoadImageFromFile',
file_client_args={{_base_.file_client_args}}),
type='LoadImageFromFile'),
dict(type='YOLOv5KeepRatioResize', scale=img_scale),
dict(
type='LetterResize',
@ -517,7 +513,6 @@ E.g:
```python
_base_ = '../_base_/default_runtime.py'
file_client_args = {{_base_.file_client_args}} # `file_client_args` equals to `file_client_args` that defined in the _base_ config
pre_transform = _base_.pre_transform # `pre_transform` equals to `pre_transform` in the _base_ config
```

View File

@ -301,7 +301,7 @@ MMYOLO 中提供了特征图相关可视化脚本,用于分析当前模型训
test_pipeline = [
dict(
type='LoadImageFromFile',
file_client_args=_base_.file_client_args),
backend_args=_base_.backend_args),
dict(type='YOLOv5KeepRatioResize', scale=img_scale),
dict(
type='LetterResize',
@ -322,7 +322,7 @@ test_pipeline = [
test_pipeline = [
dict(
type='LoadImageFromFile',
file_client_args=_base_.file_client_args),
backend_args=_base_.backend_args),
dict(type='mmdet.Resize', scale=img_scale, keep_ratio=False), # 删除 YOLOv5KeepRatioResize, 将 LetterResize 修改成 mmdet.Resize
dict(type='LoadAnnotations', with_bbox=True, _scope_='mmdet'),
dict(
@ -488,7 +488,7 @@ python projects/easydeploy/tools/build_engine.py \
成功执行后会在 `work-dir` 下生成 `end2end.engine` 文件:
```shell
```text
work_dirs/yolov5_s-v61_fast_1xb12-40e_cat
├── 202302XX_XXXXXX
│ ├── 202302XX_XXXXXX.log

View File

@ -4,7 +4,8 @@
| MMYOLO version | MMDetection version | MMEngine version | MMCV version |
| :------------: | :----------------------: | :----------------------: | :---------------------: |
| main | mmdet>=3.0.0rc5, \<3.1.0 | mmengine>=0.3.1, \<1.0.0 | mmcv>=2.0.0rc4, \<2.1.0 |
| main | mmdet>=3.0.0, \<3.1.0 | mmengine>=0.7.1, \<1.0.0 | mmcv>=2.0.0rc4, \<2.1.0 |
| 0.6.0 | mmdet>=3.0.0, \<3.1.0 | mmengine>=0.7.1, \<1.0.0 | mmcv>=2.0.0rc4, \<2.1.0 |
| 0.5.0 | mmdet>=3.0.0rc6, \<3.1.0 | mmengine>=0.6.0, \<1.0.0 | mmcv>=2.0.0rc4, \<2.1.0 |
| 0.4.0 | mmdet>=3.0.0rc5, \<3.1.0 | mmengine>=0.3.1, \<1.0.0 | mmcv>=2.0.0rc0, \<2.1.0 |
| 0.3.0 | mmdet>=3.0.0rc5, \<3.1.0 | mmengine>=0.3.1, \<1.0.0 | mmcv>=2.0.0rc0, \<2.1.0 |

View File

@ -324,9 +324,6 @@ docstring 是对一个类、一个函数功能与 API 接口的详细描述,
specified, the ``out_dir`` will be the concatenation of
``out_dir`` and the last level directory of ``runner.work_dir``.
Defaults to None. `Changed in version 1.3.15.`
file_client_args (dict, optional): Arguments to instantiate a
FileClient. See :class:`mmcv.fileio.FileClient` for details.
Defaults to None. `New in version 1.3.15.`
Warning:
Before v1.3.15, the ``out_dir`` argument indicates the path where the

View File

@ -203,7 +203,7 @@ python demo/featmap_vis_demo.py demo/demo.jpg configs/yolov8/yolov8_s_syncbn_fas
test_pipeline = [
dict(
type='LoadImageFromFile',
file_client_args=_base_.file_client_args),
backend_args=_base_.backend_args),
dict(type='mmdet.Resize', scale=img_scale, keep_ratio=False), # 这里将 LetterResize 修改成 mmdet.Resize
dict(type='LoadAnnotations', with_bbox=True, _scope_='mmdet'),
dict(

View File

@ -61,7 +61,7 @@ codebase_config = dict(
_base_ = '../../yolov5/yolov5_s-v61_syncbn_8xb16-300e_coco.py'
test_pipeline = [
dict(type='LoadImageFromFile', file_client_args=_base_.file_client_args),
dict(type='LoadImageFromFile', backend_args=_base_.backend_args),
dict(
type='LetterResize',
scale=_base_.img_scale,

View File

@ -28,7 +28,7 @@
_base_ = '../../yolov5/yolov5_s-v61_syncbn_8xb16-300e_coco.py'
test_pipeline = [
dict(type='LoadImageFromFile', file_client_args=_base_.file_client_args),
dict(type='LoadImageFromFile', backend_args=_base_.backend_args),
dict(
type='LetterResize',
scale=_base_.img_scale,
@ -113,7 +113,7 @@ batch_shapes_cfg = dict(
extra_pad_ratio=0.5)
test_pipeline = [
dict(type='LoadImageFromFile', file_client_args=_base_.file_client_args),
dict(type='LoadImageFromFile', backend_args=_base_.backend_args),
dict(type='YOLOv5KeepRatioResize', scale=img_scale),
dict(
type='LetterResize',

View File

@ -90,8 +90,7 @@ python demo/featmap_vis_demo.py demo/dog.jpg \
```python
test_pipeline = [
dict(
type='LoadImageFromFile',
file_client_args={{_base_.file_client_args}}),
type='LoadImageFromFile'),
dict(type='YOLOv5KeepRatioResize', scale=img_scale),
dict(
type='LetterResize',
@ -112,7 +111,7 @@ test_pipeline = [
test_pipeline = [
dict(
type='LoadImageFromFile',
file_client_args=_base_.file_client_args),
backend_args=_base_.backend_args),
dict(type='mmdet.Resize', scale=img_scale, keep_ratio=False), # 这里将 LetterResize 修改成 mmdet.Resize
dict(type='LoadAnnotations', with_bbox=True, _scope_='mmdet'),
dict(
@ -197,7 +196,7 @@ python demo/featmap_vis_demo.py demo/dog.jpg \
test_pipeline = [
dict(
type='LoadImageFromFile',
file_client_args=_base_.file_client_args),
backend_args=_base_.backend_args),
dict(type='YOLOv5KeepRatioResize', scale=img_scale),
dict(
type='LetterResize',
@ -218,7 +217,7 @@ test_pipeline = [
test_pipeline = [
dict(
type='LoadImageFromFile',
file_client_args=_base_.file_client_args),
backend_args=_base_.backend_args),
dict(type='mmdet.Resize', scale=img_scale, keep_ratio=False), # 这里将 LetterResize 修改成 mmdet.Resize
dict(type='LoadAnnotations', with_bbox=True, _scope_='mmdet'),
dict(

View File

@ -86,12 +86,10 @@ YOLOv5 的训练与测试的数据流存在一定差异,这里我们分别进
```python
dataset_type = 'CocoDataset' # 数据集类型,这将被用来定义数据集
data_root = 'data/coco/' # 数据的根路径
file_client_args = dict(backend='disk') # 文件读取后端的配置,默认从硬盘读取
pre_transform = [ # 训练数据读取流程
dict(
type='LoadImageFromFile', # 第 1 个流程,从文件路径里加载图像
file_client_args=file_client_args), # 文件读取后端的配置,默认从硬盘读取
type='LoadImageFromFile'), # 第 1 个流程,从文件路径里加载图像
dict(type='LoadAnnotations', # 第 2 个流程,对于当前图像,加载它的注释信息
with_bbox=True) # 是否使用标注框(bounding box),目标检测需要设置为 True
]
@ -156,8 +154,7 @@ YOLOv5 测试阶段采用 [Letter Resize](https://github.com/open-mmlab/mmyolo/b
```python
test_pipeline = [ # 测试数据处理流程
dict(
type='LoadImageFromFile', # 第 1 个流程,从文件路径里加载图像
file_client_args=file_client_args), # 文件读取后端的配置,默认从硬盘读取
type='LoadImageFromFile'), # 第 1 个流程,从文件路径里加载图像
dict(type='YOLOv5KeepRatioResize', # 第 2 个流程,保持长宽比的图像大小缩放
scale=img_scale), # 图像缩放的目标尺寸
dict(
@ -475,8 +472,7 @@ train_pipeline = [
test_pipeline = [
dict(
type='LoadImageFromFile',
file_client_args={{_base_.file_client_args}}),
type='LoadImageFromFile'),
dict(type='YOLOv5KeepRatioResize', scale=img_scale),
dict(
type='LetterResize',
@ -515,7 +511,6 @@ model = dict(
```python
_base_ = '../_base_/default_runtime.py'
file_client_args = {{_base_.file_client_args}} # 变量 file_client_args 等于 _base_ 中定义的 file_client_args
pre_transform = _base_.pre_transform # 变量 pre_transform 等于 _base_ 中定义的 pre_transform
```

View File

@ -64,15 +64,13 @@ mmyolo
```python
dataset_type = 'YOLOv5DOTADataset' # 数据集类型,这将被用来定义数据集
data_root = 'data/split_ss_dota/' # 数据的根路径
file_client_args = dict(backend='disk') # 文件读取后端的配置,默认从硬盘读取
angle_version = 'le90' # 角度范围的定义,目前支持 oc, le90 和 le135
train_pipeline = [
# 训练数据读取流程
dict(
type='LoadImageFromFile', # 第 1 个流程,从文件路径里加载图像
file_client_args=file_client_args), # 文件读取后端的配置,默认从硬盘读取
type='LoadImageFromFile'), # 第 1 个流程,从文件路径里加载图像
dict(type='LoadAnnotations', # 第 2 个流程,对于当前图像,加载它的注释信息
with_bbox=True, # 是否使用标注框 (bounding box),目标检测需要设置为 True
box_type='qbox'), # 指定读取的标注格式,旋转框数据集默认的数据格式为四边形
@ -122,7 +120,7 @@ RTMDet-R 测试阶段仅采用 Resize 和 Pad在验证和评测时都采
```python
val_pipeline = [
dict(type='LoadImageFromFile', file_client_args=_base_.file_client_args),
dict(type='LoadImageFromFile', backend_args=_base_.backend_args),
dict(type='mmdet.Resize', scale=(1024, 1024), keep_ratio=True),
dict(
type='mmdet.Pad', size=(1024, 1024),
@ -205,8 +203,7 @@ dataset_type='YOLOv5CocoDataset'
train_pipeline = [
# 训练数据读取流程
dict(
type='LoadImageFromFile', # 第 1 个流程,从文件路径里加载图像
file_client_args=file_client_args), # 文件读取后端的配置,默认从硬盘读取
type='LoadImageFromFile'), # 第 1 个流程,从文件路径里加载图像
dict(type='LoadAnnotations', # 第 2 个流程,对于当前图像,加载它的注释信息
with_bbox=True, # 是否使用标注框 (bounding box),目标检测需要设置为 True
with_mask=True, # 读取储存在 segmentation 标注中的多边形标注

View File

@ -10,11 +10,11 @@ mmcv_minimum_version = '2.0.0rc4'
mmcv_maximum_version = '2.1.0'
mmcv_version = digit_version(mmcv.__version__)
mmengine_minimum_version = '0.6.0'
mmengine_minimum_version = '0.7.1'
mmengine_maximum_version = '1.0.0'
mmengine_version = digit_version(mmengine.__version__)
mmdet_minimum_version = '3.0.0rc6'
mmdet_minimum_version = '3.0.0'
mmdet_maximum_version = '3.1.0'
mmdet_version = digit_version(mmdet.__version__)

View File

@ -512,7 +512,7 @@ class LoadAnnotations(MMDET_LoadAnnotations):
repr_str += f'mask2bbox={self.mask2bbox}, '
repr_str += f'poly2mask={self.poly2mask}, '
repr_str += f"imdecode_backend='{self.imdecode_backend}', "
repr_str += f'file_client_args={self.file_client_args})'
repr_str += f'backend_args={self.backend_args})'
return repr_str

View File

@ -1,6 +1,6 @@
# Copyright (c) OpenMMLab. All rights reserved.
__version__ = '0.5.0'
__version__ = '0.6.0'
from typing import Tuple

View File

@ -24,7 +24,7 @@ model = dict(
bbox_head=dict(head_module=dict(widen_factor=widen_factor)))
train_pipeline = [
dict(type='LoadImageFromFile', file_client_args=_base_.file_client_args),
dict(type='LoadImageFromFile', backend_args=_base_.backend_args),
dict(type='LoadAnnotations', with_bbox=True),
dict(
type='Mosaic',
@ -51,7 +51,7 @@ train_pipeline = [
]
train_pipeline_stage2 = [
dict(type='LoadImageFromFile', file_client_args=_base_.file_client_args),
dict(type='LoadImageFromFile', backend_args=_base_.backend_args),
dict(type='LoadAnnotations', with_bbox=True),
dict(
type='mmdet.RandomResize',

View File

@ -30,7 +30,7 @@ model = dict(
bbox_head=dict(head_module=dict(widen_factor=widen_factor)))
train_pipeline = [
dict(type='LoadImageFromFile', file_client_args=_base_.file_client_args),
dict(type='LoadImageFromFile', backend_args=_base_.backend_args),
dict(type='LoadAnnotations', with_bbox=True),
dict(
type='Mosaic',

View File

@ -8,16 +8,14 @@ train_batch_size_per_gpu = 32
base_lr = _base_.base_lr * train_batch_size_per_gpu \
/ _base_.train_batch_size_per_gpu / 2
train_pipeline = [
dict(type='LoadImageFromFile', file_client_args=dict(backend='disk')),
dict(type='LoadImageFromFile'),
dict(type='LoadAnnotations', with_bbox=True),
dict(
type='Mosaic',
img_scale=(640, 640),
pad_val=114.0,
pre_transform=[
dict(
type='LoadImageFromFile',
file_client_args=dict(backend='disk')),
dict(type='LoadImageFromFile'),
dict(type='LoadAnnotations', with_bbox=True)
]),
dict(

View File

@ -3,7 +3,7 @@ _base_ = './yolov5_s-v61_fast_1xb96-100e_ionogram.py'
# ======================= Modified parameters =====================
# -----train val related-----
train_pipeline = [
dict(type='LoadImageFromFile', file_client_args=dict(backend='disk')),
dict(type='LoadImageFromFile'),
dict(type='LoadAnnotations', with_bbox=True),
dict(type='YOLOv5KeepRatioResize', scale=(640, 640)),
dict(

View File

@ -3,16 +3,14 @@ _base_ = './yolov5_s-v61_fast_1xb96-100e_ionogram.py'
# ======================= Modified parameters =====================
# -----train val related-----
train_pipeline = [
dict(type='LoadImageFromFile', file_client_args=dict(backend='disk')),
dict(type='LoadImageFromFile'),
dict(type='LoadAnnotations', with_bbox=True),
dict(
type='Mosaic',
img_scale=(640, 640),
pad_val=114.0,
pre_transform=[
dict(
type='LoadImageFromFile',
file_client_args=dict(backend='disk')),
dict(type='LoadImageFromFile'),
dict(type='LoadAnnotations', with_bbox=True)
]),
dict(

View File

@ -3,16 +3,14 @@ _base_ = './yolov5_s-v61_fast_1xb96-100e_ionogram.py'
# ======================= Modified parameters =====================
# -----train val related-----
train_pipeline = [
dict(type='LoadImageFromFile', file_client_args=dict(backend='disk')),
dict(type='LoadImageFromFile'),
dict(type='LoadAnnotations', with_bbox=True),
dict(
type='Mosaic',
img_scale=(640, 640),
pad_val=114.0,
pre_transform=[
dict(
type='LoadImageFromFile',
file_client_args=dict(backend='disk')),
dict(type='LoadImageFromFile'),
dict(type='LoadAnnotations', with_bbox=True)
]),
dict(

View File

@ -1,7 +1,7 @@
docutils==0.16.0
mmcv>=2.0.0rc4,<2.1.0
mmdet>=3.0.0rc6
mmengine>=0.6.0
mmdet>=3.0.0
mmengine>=0.7.1
myst-parser
-e git+https://github.com/open-mmlab/pytorch_sphinx_theme.git#egg=pytorch_sphinx_theme
sphinx==4.0.2

View File

@ -1,3 +1,3 @@
mmcv>=2.0.0rc4,<2.1.0
mmdet>=3.0.0rc6
mmengine>=0.6.0
mmdet>=3.0.0
mmengine>=0.7.1

View File

@ -1,4 +1,3 @@
codecov
flake8
interrogate
isort==4.3.21

View File

@ -24,9 +24,7 @@ class TestMosaic(unittest.TestCase):
tearDown() -> cleanUp()
"""
self.pre_transform = [
dict(
type='LoadImageFromFile',
file_client_args=dict(backend='disk')),
dict(type='LoadImageFromFile'),
dict(type='LoadAnnotations', with_bbox=True)
]
@ -107,9 +105,7 @@ class TestMosaic(unittest.TestCase):
def test_transform_with_mask(self):
rng = np.random.RandomState(0)
pre_transform = [
dict(
type='LoadImageFromFile',
file_client_args=dict(backend='disk')),
dict(type='LoadImageFromFile'),
dict(type='LoadAnnotations', with_bbox=True, with_mask=True)
]
@ -157,9 +153,7 @@ class TestMosaic9(unittest.TestCase):
"""
rng = np.random.RandomState(0)
self.pre_transform = [
dict(
type='LoadImageFromFile',
file_client_args=dict(backend='disk')),
dict(type='LoadImageFromFile'),
dict(type='LoadAnnotations', with_bbox=True)
]
@ -249,9 +243,7 @@ class TestYOLOv5MixUp(unittest.TestCase):
tearDown() -> cleanUp()
"""
self.pre_transform = [
dict(
type='LoadImageFromFile',
file_client_args=dict(backend='disk')),
dict(type='LoadImageFromFile'),
dict(type='LoadAnnotations', with_bbox=True)
]
self.dataset = YOLOv5CocoDataset(
@ -307,9 +299,7 @@ class TestYOLOv5MixUp(unittest.TestCase):
def test_transform_with_mask(self):
rng = np.random.RandomState(0)
pre_transform = [
dict(
type='LoadImageFromFile',
file_client_args=dict(backend='disk')),
dict(type='LoadImageFromFile'),
dict(type='LoadAnnotations', with_bbox=True, with_mask=True)
]
dataset = YOLOv5CocoDataset(
@ -357,9 +347,7 @@ class TestYOLOXMixUp(unittest.TestCase):
"""
rng = np.random.RandomState(0)
self.pre_transform = [
dict(
type='LoadImageFromFile',
file_client_args=dict(backend='disk')),
dict(type='LoadImageFromFile'),
dict(type='LoadAnnotations', with_bbox=True)
]
self.dataset = YOLOv5CocoDataset(

View File

@ -27,8 +27,6 @@ log_level = 'INFO'
load_from = None
resume = False
file_client_args = dict(backend='disk')
# dataset settings
data_root = 'data/coco/'
dataset_type = 'YOLOv5CocoDataset'
@ -133,7 +131,7 @@ albu_train_transforms = [
]
pre_transform = [
dict(type='LoadImageFromFile', file_client_args=file_client_args),
dict(type='LoadImageFromFile'),
dict(type='LoadAnnotations', with_bbox=True)
]
@ -185,7 +183,7 @@ train_dataloader = dict(
pipeline=train_pipeline))
test_pipeline = [
dict(type='LoadImageFromFile', file_client_args=file_client_args),
dict(type='LoadImageFromFile'),
dict(type='YOLOv5KeepRatioResize', scale=img_scale),
dict(
type='LetterResize',

View File

@ -4,6 +4,7 @@ import os
import os.path as osp
from mmdet.engine.hooks.utils import trigger_visualization_hook
from mmdet.utils import setup_cache_size_limit_of_dynamo
from mmengine.config import Config, ConfigDict, DictAction
from mmengine.evaluator import DumpResults
from mmengine.runner import Runner
@ -63,7 +64,10 @@ def parse_args():
choices=['none', 'pytorch', 'slurm', 'mpi'],
default='none',
help='job launcher')
parser.add_argument('--local_rank', type=int, default=0)
# When using PyTorch version >= 2.0.0, the `torch.distributed.launch`
# will pass the `--local-rank` parameter to `tools/train.py` instead
# of `--local_rank`.
parser.add_argument('--local_rank', '--local-rank', type=int, default=0)
args = parser.parse_args()
if 'LOCAL_RANK' not in os.environ:
os.environ['LOCAL_RANK'] = str(args.local_rank)
@ -73,6 +77,10 @@ def parse_args():
def main():
args = parse_args()
# Reduce the number of repeated compilations and improve
# training speed.
setup_cache_size_limit_of_dynamo()
# load config
cfg = Config.fromfile(args.config)
# replace the ${key} with the value of cfg.key

View File

@ -4,6 +4,7 @@ import logging
import os
import os.path as osp
from mmdet.utils import setup_cache_size_limit_of_dynamo
from mmengine.config import Config, DictAction
from mmengine.logging import print_log
from mmengine.runner import Runner
@ -44,7 +45,10 @@ def parse_args():
choices=['none', 'pytorch', 'slurm', 'mpi'],
default='none',
help='job launcher')
parser.add_argument('--local_rank', type=int, default=0)
# When using PyTorch version >= 2.0.0, the `torch.distributed.launch`
# will pass the `--local-rank` parameter to `tools/train.py` instead
# of `--local_rank`.
parser.add_argument('--local_rank', '--local-rank', type=int, default=0)
args = parser.parse_args()
if 'LOCAL_RANK' not in os.environ:
os.environ['LOCAL_RANK'] = str(args.local_rank)
@ -55,6 +59,10 @@ def parse_args():
def main():
args = parse_args()
# Reduce the number of repeated compilations and improve
# training speed.
setup_cache_size_limit_of_dynamo()
# load config
cfg = Config.fromfile(args.config)
# replace the ${key} with the value of cfg.key