From 927e0a46afa318def9e38e6a4caa8476b147b8b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Haian=20Huang=28=E6=B7=B1=E5=BA=A6=E7=9C=B8=29?= <1286304229@qq.com> Date: Tue, 18 Apr 2023 10:59:52 +0800 Subject: [PATCH] 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 --- .circleci/test.yml | 23 +++++++++++++----- configs/_base_/default_runtime.py | 23 ++++++++++++------ configs/_base_/det_p5_tta.py | 9 +++---- configs/deploy/model/yolov5_s-static.py | 2 +- configs/deploy/model/yolov6_s-static.py | 2 +- .../ppyoloe_plus_s_fast_8xb8-80e_coco.py | 4 ++-- ..._tiny_ofa_lat31_syncbn_16xb16-300e_coco.py | 6 ++--- .../rtmdet-r_l_syncbn_fast_2xb4-36e_dota.py | 6 ++--- ...mdet-r_l_syncbn_fast_2xb4-aug-100e_dota.py | 4 ++-- .../rtmdet_l_syncbn_fast_8xb32-300e_coco.py | 6 ++--- .../rtmdet_s_syncbn_fast_8xb32-300e_coco.py | 4 ++-- ...rtmdet_tiny_syncbn_fast_8xb32-300e_coco.py | 2 +- ...lov5_s-v61_8xb16-300e_ignore_crowdhuman.py | 2 +- ...-refine-v61_syncbn_fast_8xb16-300e_coco.py | 2 +- .../voc/yolov5_s-v61_fast_1xb64-50e_voc.py | 4 ++-- ...v5_s-p6-v62_syncbn_fast_8xb16-300e_coco.py | 4 ++-- ...yolov5_s-v61_fast_1xb12-40e_608x352_cat.py | 2 +- ...ov5_s-v61_syncbn-detect_8xb16-300e_coco.py | 2 +- .../yolov5_s-v61_syncbn_8xb16-300e_coco.py | 4 ++-- ...mask-refine_syncbn_fast_8xb16-300e_coco.py | 2 +- .../yolov5u_s_syncbn_fast_8xb16-300e_coco.py | 4 ++-- .../yolov6_s_syncbn_fast_8xb32-400e_coco.py | 4 ++-- .../yolov7_l_syncbn_fast_8x16b-300e_coco.py | 4 ++-- ...yolov7_w-p6_syncbn_fast_8x16b-300e_coco.py | 4 ++-- ...mask-refine_syncbn_fast_8xb16-500e_coco.py | 2 +- .../yolov8_s_syncbn_fast_8xb16-500e_coco.py | 4 ++-- configs/yolox/yolox_p5_tta.py | 9 +++---- configs/yolox/yolox_s_fast_8xb8-300e_coco.py | 4 ++-- ...ox_tiny_fast_8xb32-300e-rtmdet-hyp_coco.py | 2 +- .../yolox/yolox_tiny_fast_8xb8-300e_coco.py | 4 ++-- .../15_minutes_object_detection.md | 4 ++-- docs/en/get_started/dependencies.md | 3 ++- .../yolov8_description.md | 2 +- .../deploy/mmdeploy_guide.md | 2 +- .../deploy/mmdeploy_yolov5.md | 4 ++-- docs/en/recommended_topics/visualization.md | 8 +++---- docs/en/tutorials/config.md | 11 +++------ .../15_minutes_object_detection.md | 6 ++--- docs/zh_cn/get_started/dependencies.md | 3 ++- docs/zh_cn/notes/code_style.md | 3 --- .../yolov8_description.md | 2 +- .../deploy/mmdeploy_guide.md | 2 +- .../deploy/mmdeploy_yolov5.md | 4 ++-- .../zh_cn/recommended_topics/visualization.md | 9 ++++--- docs/zh_cn/tutorials/config.md | 11 +++------ docs/zh_cn/tutorials/rotated_detection.md | 9 +++---- mmyolo/__init__.py | 4 ++-- mmyolo/datasets/transforms/transforms.py | 2 +- mmyolo/version.py | 2 +- .../rtmdet_s_fast_1xb32-100e_ionogram.py | 4 ++-- .../rtmdet_tiny_fast_1xb32-100e_ionogram.py | 2 +- ...5_s-v61_fast_1xb32-100e_ionogram_mosaic.py | 6 ++--- ...ov5_s-v61_fast_1xb96-100e_ionogram_aug0.py | 2 +- ..._fast_1xb96-100e_ionogram_mosaic_affine.py | 6 ++--- ...96-100e_ionogram_mosaic_affine_albu_hsv.py | 6 ++--- requirements/docs.txt | 4 ++-- requirements/mminstall.txt | 4 ++-- requirements/tests.txt | 1 - .../test_mix_img_transforms.py | 24 +++++-------------- tests/test_deploy/data/model.py | 6 ++--- tools/test.py | 10 +++++++- tools/train.py | 10 +++++++- 62 files changed, 166 insertions(+), 164 deletions(-) diff --git a/.circleci/test.yml b/.circleci/test.yml index 9e24535f..149d6cac 100644 --- a/.circleci/test.yml +++ b/.circleci/test.yml @@ -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 >> diff --git a/configs/_base_/default_runtime.py b/configs/_base_/default_runtime.py index 2f0db2e3..098f2205 100644 --- a/configs/_base_/default_runtime.py +++ b/configs/_base_/default_runtime.py @@ -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 diff --git a/configs/_base_/det_p5_tta.py b/configs/_base_/det_p5_tta.py index cbbaf2e6..8df0d5ea 100644 --- a/configs/_base_/det_p5_tta.py +++ b/configs/_base_/det_p5_tta.py @@ -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=[ diff --git a/configs/deploy/model/yolov5_s-static.py b/configs/deploy/model/yolov5_s-static.py index 470807e8..11b7f6a0 100644 --- a/configs/deploy/model/yolov5_s-static.py +++ b/configs/deploy/model/yolov5_s-static.py @@ -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, diff --git a/configs/deploy/model/yolov6_s-static.py b/configs/deploy/model/yolov6_s-static.py index d9044aba..4f64438c 100644 --- a/configs/deploy/model/yolov6_s-static.py +++ b/configs/deploy/model/yolov6_s-static.py @@ -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, diff --git a/configs/ppyoloe/ppyoloe_plus_s_fast_8xb8-80e_coco.py b/configs/ppyoloe/ppyoloe_plus_s_fast_8xb8-80e_coco.py index e44dc34a..3d98252c 100644 --- a/configs/ppyoloe/ppyoloe_plus_s_fast_8xb8-80e_coco.py +++ b/configs/ppyoloe/ppyoloe_plus_s_fast_8xb8-80e_coco.py @@ -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], diff --git a/configs/razor/subnets/rtmdet_tiny_ofa_lat31_syncbn_16xb16-300e_coco.py b/configs/razor/subnets/rtmdet_tiny_ofa_lat31_syncbn_16xb16-300e_coco.py index 04d8c2d8..2f9da668 100644 --- a/configs/razor/subnets/rtmdet_tiny_ofa_lat31_syncbn_16xb16-300e_coco.py +++ b/configs/razor/subnets/rtmdet_tiny_ofa_lat31_syncbn_16xb16-300e_coco.py @@ -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'), diff --git a/configs/rtmdet/rotated/rtmdet-r_l_syncbn_fast_2xb4-36e_dota.py b/configs/rtmdet/rotated/rtmdet-r_l_syncbn_fast_2xb4-36e_dota.py index 50f58e50..cbb2ae77 100644 --- a/configs/rtmdet/rotated/rtmdet-r_l_syncbn_fast_2xb4-36e_dota.py +++ b/configs/rtmdet/rotated/rtmdet-r_l_syncbn_fast_2xb4-36e_dota.py @@ -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( diff --git a/configs/rtmdet/rotated/rtmdet-r_l_syncbn_fast_2xb4-aug-100e_dota.py b/configs/rtmdet/rotated/rtmdet-r_l_syncbn_fast_2xb4-aug-100e_dota.py index 45bbaa41..dcafa55d 100644 --- a/configs/rtmdet/rotated/rtmdet-r_l_syncbn_fast_2xb4-aug-100e_dota.py +++ b/configs/rtmdet/rotated/rtmdet-r_l_syncbn_fast_2xb4-aug-100e_dota.py @@ -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', diff --git a/configs/rtmdet/rtmdet_l_syncbn_fast_8xb32-300e_coco.py b/configs/rtmdet/rtmdet_l_syncbn_fast_8xb32-300e_coco.py index fecd0d31..c36ac38c 100644 --- a/configs/rtmdet/rtmdet_l_syncbn_fast_8xb32-300e_coco.py +++ b/configs/rtmdet/rtmdet_l_syncbn_fast_8xb32-300e_coco.py @@ -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', diff --git a/configs/rtmdet/rtmdet_s_syncbn_fast_8xb32-300e_coco.py b/configs/rtmdet/rtmdet_s_syncbn_fast_8xb32-300e_coco.py index 47733ae6..8cead780 100644 --- a/configs/rtmdet/rtmdet_s_syncbn_fast_8xb32-300e_coco.py +++ b/configs/rtmdet/rtmdet_s_syncbn_fast_8xb32-300e_coco.py @@ -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', diff --git a/configs/rtmdet/rtmdet_tiny_syncbn_fast_8xb32-300e_coco.py b/configs/rtmdet/rtmdet_tiny_syncbn_fast_8xb32-300e_coco.py index 27d6762a..257110d2 100644 --- a/configs/rtmdet/rtmdet_tiny_syncbn_fast_8xb32-300e_coco.py +++ b/configs/rtmdet/rtmdet_tiny_syncbn_fast_8xb32-300e_coco.py @@ -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', diff --git a/configs/yolov5/crowdhuman/yolov5_s-v61_8xb16-300e_ignore_crowdhuman.py b/configs/yolov5/crowdhuman/yolov5_s-v61_8xb16-300e_ignore_crowdhuman.py index 90ba758a..85b37192 100644 --- a/configs/yolov5/crowdhuman/yolov5_s-v61_8xb16-300e_ignore_crowdhuman.py +++ b/configs/yolov5/crowdhuman/yolov5_s-v61_8xb16-300e_ignore_crowdhuman.py @@ -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) ] diff --git a/configs/yolov5/mask_refine/yolov5_s_mask-refine-v61_syncbn_fast_8xb16-300e_coco.py b/configs/yolov5/mask_refine/yolov5_s_mask-refine-v61_syncbn_fast_8xb16-300e_coco.py index 3f4fa588..74febbb7 100644 --- a/configs/yolov5/mask_refine/yolov5_s_mask-refine-v61_syncbn_fast_8xb16-300e_coco.py +++ b/configs/yolov5/mask_refine/yolov5_s_mask-refine-v61_syncbn_fast_8xb16-300e_coco.py @@ -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, diff --git a/configs/yolov5/voc/yolov5_s-v61_fast_1xb64-50e_voc.py b/configs/yolov5/voc/yolov5_s-v61_fast_1xb64-50e_voc.py index 9585b51f..f777fff9 100644 --- a/configs/yolov5/voc/yolov5_s-v61_fast_1xb64-50e_voc.py +++ b/configs/yolov5/voc/yolov5_s-v61_fast_1xb64-50e_voc.py @@ -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=[ diff --git a/configs/yolov5/yolov5_s-p6-v62_syncbn_fast_8xb16-300e_coco.py b/configs/yolov5/yolov5_s-p6-v62_syncbn_fast_8xb16-300e_coco.py index 0af1fcb8..f64df69f 100644 --- a/configs/yolov5/yolov5_s-p6-v62_syncbn_fast_8xb16-300e_coco.py +++ b/configs/yolov5/yolov5_s-p6-v62_syncbn_fast_8xb16-300e_coco.py @@ -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=[ diff --git a/configs/yolov5/yolov5_s-v61_fast_1xb12-40e_608x352_cat.py b/configs/yolov5/yolov5_s-v61_fast_1xb12-40e_608x352_cat.py index a7ea4f44..5bbd13e0 100644 --- a/configs/yolov5/yolov5_s-v61_fast_1xb12-40e_608x352_cat.py +++ b/configs/yolov5/yolov5_s-v61_fast_1xb12-40e_608x352_cat.py @@ -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', diff --git a/configs/yolov5/yolov5_s-v61_syncbn-detect_8xb16-300e_coco.py b/configs/yolov5/yolov5_s-v61_syncbn-detect_8xb16-300e_coco.py index 627f9859..d8238c13 100644 --- a/configs/yolov5/yolov5_s-v61_syncbn-detect_8xb16-300e_coco.py +++ b/configs/yolov5/yolov5_s-v61_syncbn-detect_8xb16-300e_coco.py @@ -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, diff --git a/configs/yolov5/yolov5_s-v61_syncbn_8xb16-300e_coco.py b/configs/yolov5/yolov5_s-v61_syncbn_8xb16-300e_coco.py index 30503413..7e81a038 100644 --- a/configs/yolov5/yolov5_s-v61_syncbn_8xb16-300e_coco.py +++ b/configs/yolov5/yolov5_s-v61_syncbn_8xb16-300e_coco.py @@ -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', diff --git a/configs/yolov5/yolov5u/yolov5u_s_mask-refine_syncbn_fast_8xb16-300e_coco.py b/configs/yolov5/yolov5u/yolov5u_s_mask-refine_syncbn_fast_8xb16-300e_coco.py index 5159c428..d6840bc2 100644 --- a/configs/yolov5/yolov5u/yolov5u_s_mask-refine_syncbn_fast_8xb16-300e_coco.py +++ b/configs/yolov5/yolov5u/yolov5u_s_mask-refine_syncbn_fast_8xb16-300e_coco.py @@ -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, diff --git a/configs/yolov5/yolov5u/yolov5u_s_syncbn_fast_8xb16-300e_coco.py b/configs/yolov5/yolov5u/yolov5u_s_syncbn_fast_8xb16-300e_coco.py index 17635aca..81d3a981 100644 --- a/configs/yolov5/yolov5u/yolov5u_s_syncbn_fast_8xb16-300e_coco.py +++ b/configs/yolov5/yolov5u/yolov5u_s_syncbn_fast_8xb16-300e_coco.py @@ -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', diff --git a/configs/yolov6/yolov6_s_syncbn_fast_8xb32-400e_coco.py b/configs/yolov6/yolov6_s_syncbn_fast_8xb32-400e_coco.py index 0b5fa560..eb564c07 100644 --- a/configs/yolov6/yolov6_s_syncbn_fast_8xb32-400e_coco.py +++ b/configs/yolov6/yolov6_s_syncbn_fast_8xb32-400e_coco.py @@ -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', diff --git a/configs/yolov7/yolov7_l_syncbn_fast_8x16b-300e_coco.py b/configs/yolov7/yolov7_l_syncbn_fast_8x16b-300e_coco.py index 6712002c..e8a756c2 100644 --- a/configs/yolov7/yolov7_l_syncbn_fast_8x16b-300e_coco.py +++ b/configs/yolov7/yolov7_l_syncbn_fast_8x16b-300e_coco.py @@ -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', diff --git a/configs/yolov7/yolov7_w-p6_syncbn_fast_8x16b-300e_coco.py b/configs/yolov7/yolov7_w-p6_syncbn_fast_8x16b-300e_coco.py index 11164d21..9758b871 100644 --- a/configs/yolov7/yolov7_w-p6_syncbn_fast_8x16b-300e_coco.py +++ b/configs/yolov7/yolov7_w-p6_syncbn_fast_8x16b-300e_coco.py @@ -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=[ diff --git a/configs/yolov8/yolov8_s_mask-refine_syncbn_fast_8xb16-500e_coco.py b/configs/yolov8/yolov8_s_mask-refine_syncbn_fast_8xb16-500e_coco.py index 3ab3a2bc..769a698e 100644 --- a/configs/yolov8/yolov8_s_mask-refine_syncbn_fast_8xb16-500e_coco.py +++ b/configs/yolov8/yolov8_s_mask-refine_syncbn_fast_8xb16-500e_coco.py @@ -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, diff --git a/configs/yolov8/yolov8_s_syncbn_fast_8xb16-500e_coco.py b/configs/yolov8/yolov8_s_syncbn_fast_8xb16-500e_coco.py index adb9c7fe..7e4127ef 100644 --- a/configs/yolov8/yolov8_s_syncbn_fast_8xb16-500e_coco.py +++ b/configs/yolov8/yolov8_s_syncbn_fast_8xb16-500e_coco.py @@ -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', diff --git a/configs/yolox/yolox_p5_tta.py b/configs/yolox/yolox_p5_tta.py index 3a5b4652..7ffe3490 100644 --- a/configs/yolox/yolox_p5_tta.py +++ b/configs/yolox/yolox_p5_tta.py @@ -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=[ diff --git a/configs/yolox/yolox_s_fast_8xb8-300e_coco.py b/configs/yolox/yolox_s_fast_8xb8-300e_coco.py index e751b0d6..b371ea11 100644 --- a/configs/yolox/yolox_s_fast_8xb8-300e_coco.py +++ b/configs/yolox/yolox_s_fast_8xb8-300e_coco.py @@ -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', diff --git a/configs/yolox/yolox_tiny_fast_8xb32-300e-rtmdet-hyp_coco.py b/configs/yolox/yolox_tiny_fast_8xb32-300e-rtmdet-hyp_coco.py index d133c95f..28e539c9 100644 --- a/configs/yolox/yolox_tiny_fast_8xb32-300e-rtmdet-hyp_coco.py +++ b/configs/yolox/yolox_tiny_fast_8xb32-300e-rtmdet-hyp_coco.py @@ -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', diff --git a/configs/yolox/yolox_tiny_fast_8xb8-300e_coco.py b/configs/yolox/yolox_tiny_fast_8xb8-300e_coco.py index 14187342..fd175a6c 100644 --- a/configs/yolox/yolox_tiny_fast_8xb8-300e_coco.py +++ b/configs/yolox/yolox_tiny_fast_8xb8-300e_coco.py @@ -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=[ diff --git a/docs/en/get_started/15_minutes_object_detection.md b/docs/en/get_started/15_minutes_object_detection.md index e34a48ee..63e4b3d3 100644 --- a/docs/en/get_started/15_minutes_object_detection.md +++ b/docs/en/get_started/15_minutes_object_detection.md @@ -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( diff --git a/docs/en/get_started/dependencies.md b/docs/en/get_started/dependencies.md index 06802025..0d7fc6ad 100644 --- a/docs/en/get_started/dependencies.md +++ b/docs/en/get_started/dependencies.md @@ -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 | diff --git a/docs/en/recommended_topics/algorithm_descriptions/yolov8_description.md b/docs/en/recommended_topics/algorithm_descriptions/yolov8_description.md index d056aff9..70f1686b 100644 --- a/docs/en/recommended_topics/algorithm_descriptions/yolov8_description.md +++ b/docs/en/recommended_topics/algorithm_descriptions/yolov8_description.md @@ -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( diff --git a/docs/en/recommended_topics/deploy/mmdeploy_guide.md b/docs/en/recommended_topics/deploy/mmdeploy_guide.md index 69258f54..e5656559 100644 --- a/docs/en/recommended_topics/deploy/mmdeploy_guide.md +++ b/docs/en/recommended_topics/deploy/mmdeploy_guide.md @@ -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, diff --git a/docs/en/recommended_topics/deploy/mmdeploy_yolov5.md b/docs/en/recommended_topics/deploy/mmdeploy_yolov5.md index 7eb85b24..b2e4e888 100644 --- a/docs/en/recommended_topics/deploy/mmdeploy_yolov5.md +++ b/docs/en/recommended_topics/deploy/mmdeploy_yolov5.md @@ -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', diff --git a/docs/en/recommended_topics/visualization.md b/docs/en/recommended_topics/visualization.md index 30caa9e1..f986648f 100644 --- a/docs/en/recommended_topics/visualization.md +++ b/docs/en/recommended_topics/visualization.md @@ -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( diff --git a/docs/en/tutorials/config.md b/docs/en/tutorials/config.md index 01937f30..44845224 100644 --- a/docs/en/tutorials/config.md +++ b/docs/en/tutorials/config.md @@ -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 ``` diff --git a/docs/zh_cn/get_started/15_minutes_object_detection.md b/docs/zh_cn/get_started/15_minutes_object_detection.md index 410f6ad2..a1fed6ac 100644 --- a/docs/zh_cn/get_started/15_minutes_object_detection.md +++ b/docs/zh_cn/get_started/15_minutes_object_detection.md @@ -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 diff --git a/docs/zh_cn/get_started/dependencies.md b/docs/zh_cn/get_started/dependencies.md index b950519c..8713c139 100644 --- a/docs/zh_cn/get_started/dependencies.md +++ b/docs/zh_cn/get_started/dependencies.md @@ -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 | diff --git a/docs/zh_cn/notes/code_style.md b/docs/zh_cn/notes/code_style.md index fc6120cc..6e169b37 100644 --- a/docs/zh_cn/notes/code_style.md +++ b/docs/zh_cn/notes/code_style.md @@ -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 diff --git a/docs/zh_cn/recommended_topics/algorithm_descriptions/yolov8_description.md b/docs/zh_cn/recommended_topics/algorithm_descriptions/yolov8_description.md index d836f936..fb5e218d 100644 --- a/docs/zh_cn/recommended_topics/algorithm_descriptions/yolov8_description.md +++ b/docs/zh_cn/recommended_topics/algorithm_descriptions/yolov8_description.md @@ -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( diff --git a/docs/zh_cn/recommended_topics/deploy/mmdeploy_guide.md b/docs/zh_cn/recommended_topics/deploy/mmdeploy_guide.md index a6a98d3d..fde5dc4a 100644 --- a/docs/zh_cn/recommended_topics/deploy/mmdeploy_guide.md +++ b/docs/zh_cn/recommended_topics/deploy/mmdeploy_guide.md @@ -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, diff --git a/docs/zh_cn/recommended_topics/deploy/mmdeploy_yolov5.md b/docs/zh_cn/recommended_topics/deploy/mmdeploy_yolov5.md index c48a6406..766388c1 100644 --- a/docs/zh_cn/recommended_topics/deploy/mmdeploy_yolov5.md +++ b/docs/zh_cn/recommended_topics/deploy/mmdeploy_yolov5.md @@ -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', diff --git a/docs/zh_cn/recommended_topics/visualization.md b/docs/zh_cn/recommended_topics/visualization.md index 8a1b8c6f..ed4bbf94 100644 --- a/docs/zh_cn/recommended_topics/visualization.md +++ b/docs/zh_cn/recommended_topics/visualization.md @@ -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( diff --git a/docs/zh_cn/tutorials/config.md b/docs/zh_cn/tutorials/config.md index 12c7aafe..d43a4fce 100644 --- a/docs/zh_cn/tutorials/config.md +++ b/docs/zh_cn/tutorials/config.md @@ -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 ``` diff --git a/docs/zh_cn/tutorials/rotated_detection.md b/docs/zh_cn/tutorials/rotated_detection.md index b06df9b9..1ee974b1 100644 --- a/docs/zh_cn/tutorials/rotated_detection.md +++ b/docs/zh_cn/tutorials/rotated_detection.md @@ -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 标注中的多边形标注 diff --git a/mmyolo/__init__.py b/mmyolo/__init__.py index a7a2f333..4d7bed6b 100644 --- a/mmyolo/__init__.py +++ b/mmyolo/__init__.py @@ -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__) diff --git a/mmyolo/datasets/transforms/transforms.py b/mmyolo/datasets/transforms/transforms.py index d5179fba..2cdc6a5f 100644 --- a/mmyolo/datasets/transforms/transforms.py +++ b/mmyolo/datasets/transforms/transforms.py @@ -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 diff --git a/mmyolo/version.py b/mmyolo/version.py index 75c44c7b..6e4f0e8e 100644 --- a/mmyolo/version.py +++ b/mmyolo/version.py @@ -1,6 +1,6 @@ # Copyright (c) OpenMMLab. All rights reserved. -__version__ = '0.5.0' +__version__ = '0.6.0' from typing import Tuple diff --git a/projects/misc/ionogram_detection/rtmdet/rtmdet_s_fast_1xb32-100e_ionogram.py b/projects/misc/ionogram_detection/rtmdet/rtmdet_s_fast_1xb32-100e_ionogram.py index e3388e6b..49b284b0 100644 --- a/projects/misc/ionogram_detection/rtmdet/rtmdet_s_fast_1xb32-100e_ionogram.py +++ b/projects/misc/ionogram_detection/rtmdet/rtmdet_s_fast_1xb32-100e_ionogram.py @@ -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', diff --git a/projects/misc/ionogram_detection/rtmdet/rtmdet_tiny_fast_1xb32-100e_ionogram.py b/projects/misc/ionogram_detection/rtmdet/rtmdet_tiny_fast_1xb32-100e_ionogram.py index c744383b..acdaa075 100644 --- a/projects/misc/ionogram_detection/rtmdet/rtmdet_tiny_fast_1xb32-100e_ionogram.py +++ b/projects/misc/ionogram_detection/rtmdet/rtmdet_tiny_fast_1xb32-100e_ionogram.py @@ -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', diff --git a/projects/misc/ionogram_detection/yolov5/yolov5_s-v61_fast_1xb32-100e_ionogram_mosaic.py b/projects/misc/ionogram_detection/yolov5/yolov5_s-v61_fast_1xb32-100e_ionogram_mosaic.py index f34495dd..1252ebfc 100644 --- a/projects/misc/ionogram_detection/yolov5/yolov5_s-v61_fast_1xb32-100e_ionogram_mosaic.py +++ b/projects/misc/ionogram_detection/yolov5/yolov5_s-v61_fast_1xb32-100e_ionogram_mosaic.py @@ -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( diff --git a/projects/misc/ionogram_detection/yolov5/yolov5_s-v61_fast_1xb96-100e_ionogram_aug0.py b/projects/misc/ionogram_detection/yolov5/yolov5_s-v61_fast_1xb96-100e_ionogram_aug0.py index 1e10d9d6..39ffb6ba 100644 --- a/projects/misc/ionogram_detection/yolov5/yolov5_s-v61_fast_1xb96-100e_ionogram_aug0.py +++ b/projects/misc/ionogram_detection/yolov5/yolov5_s-v61_fast_1xb96-100e_ionogram_aug0.py @@ -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( diff --git a/projects/misc/ionogram_detection/yolov5/yolov5_s-v61_fast_1xb96-100e_ionogram_mosaic_affine.py b/projects/misc/ionogram_detection/yolov5/yolov5_s-v61_fast_1xb96-100e_ionogram_mosaic_affine.py index 5af6d37a..10c114cb 100644 --- a/projects/misc/ionogram_detection/yolov5/yolov5_s-v61_fast_1xb96-100e_ionogram_mosaic_affine.py +++ b/projects/misc/ionogram_detection/yolov5/yolov5_s-v61_fast_1xb96-100e_ionogram_mosaic_affine.py @@ -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( diff --git a/projects/misc/ionogram_detection/yolov5/yolov5_s-v61_fast_1xb96-100e_ionogram_mosaic_affine_albu_hsv.py b/projects/misc/ionogram_detection/yolov5/yolov5_s-v61_fast_1xb96-100e_ionogram_mosaic_affine_albu_hsv.py index 1b2cbf31..df8f6a2c 100644 --- a/projects/misc/ionogram_detection/yolov5/yolov5_s-v61_fast_1xb96-100e_ionogram_mosaic_affine_albu_hsv.py +++ b/projects/misc/ionogram_detection/yolov5/yolov5_s-v61_fast_1xb96-100e_ionogram_mosaic_affine_albu_hsv.py @@ -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( diff --git a/requirements/docs.txt b/requirements/docs.txt index 2eacbcde..002b17ee 100644 --- a/requirements/docs.txt +++ b/requirements/docs.txt @@ -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 diff --git a/requirements/mminstall.txt b/requirements/mminstall.txt index 91727baf..f078af14 100644 --- a/requirements/mminstall.txt +++ b/requirements/mminstall.txt @@ -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 diff --git a/requirements/tests.txt b/requirements/tests.txt index be276ebe..55ea3663 100644 --- a/requirements/tests.txt +++ b/requirements/tests.txt @@ -1,4 +1,3 @@ -codecov flake8 interrogate isort==4.3.21 diff --git a/tests/test_datasets/test_transforms/test_mix_img_transforms.py b/tests/test_datasets/test_transforms/test_mix_img_transforms.py index 1d4eff0b..2e9bf20e 100644 --- a/tests/test_datasets/test_transforms/test_mix_img_transforms.py +++ b/tests/test_datasets/test_transforms/test_mix_img_transforms.py @@ -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( diff --git a/tests/test_deploy/data/model.py b/tests/test_deploy/data/model.py index cf13167e..817f8e22 100644 --- a/tests/test_deploy/data/model.py +++ b/tests/test_deploy/data/model.py @@ -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', diff --git a/tools/test.py b/tools/test.py index c05defe3..f0ac8bde 100644 --- a/tools/test.py +++ b/tools/test.py @@ -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 diff --git a/tools/train.py b/tools/train.py index 1060b631..61f94980 100644 --- a/tools/train.py +++ b/tools/train.py @@ -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