-
Notifications
You must be signed in to change notification settings - Fork 636
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[Feature] Add mmrazor support (#220)
* Torchscript support (#159) * support torchscript * add nms * add torchscript configs and update deploy process and dump-info * typescript -> torchscript * add torchscript custom extension support * add ts custom ops again * support mmseg unet * [WIP] add optimizer for torchscript (#119) * add passes * add python api * Torchscript optimizer python api (#121) * add passes * add python api * use python api instead of executable * Merge Master, update optimizer (#151) * [Feature] add yolox ncnn (#29) * add yolox ncnn * add ncnn android performance of yolox * add ut * fix lint * fix None bugs for ncnn * test codecov * test codecov * add device * fix yapf * remove if-else for img shape * use channelshuffle optimize * change benchmark after channelshuffle * fix yapf * fix yapf * fuse continuous reshape * fix static shape deploy * fix code * drop pad * only static shape * fix static * fix docstring * Added mask overlay to output image, changed fprintf info messages to … (#55) * Added mask overlay to output image, changed fprintf info messages to stdout * Improved box filtering (filter area/score), make sure roi coordinates stay within bounds * clang-format * Support UNet in mmseg (#77) * Repeatdataset in train has no CLASSES & PALETTE * update result for unet * update docstring for mmdet * remove ppl for unet in docs * fix ort wrap about input type (#81) * Fix memleak (#86) * delete [] * fix build error when enble MMDEPLOY_ACTIVE_LEVEL * fix lint * [Doc] Nano benchmark and tutorial (#71) * add cls benchmark * add nano zh-cn benchmark and en tutorial * add device row * add doc path to index.rst * fix typo * [Fix] fix missing deploy_core (#80) * fix missing deploy_core * mv flag to demo * target link * [Docs] Fix links in Chinese doc (#84) * Fix docs in Chinese link * Fix links * Delete symbolic link and add links to html * delete files * Fix link * [Feature] Add docker files (#67) * add gpu and cpu dockerfile * fix lint * fix cpu docker and remove redundant * use pip instead * add build arg and readme * fix grammar * update readme * add chinese doc for dockerfile and add docker build to build.md * grammar * refine dockerfiles * add FAQs * update Dpplcv_DIR for SDK building * remove mmcls * add sdk demos * fix typo and lint * update FAQs * [Fix]fix check_env (#101) * fix check_env * update * Replace convert_syncbatchnorm in mmseg (#93) * replace convert_syncbatchnorm with revert_sync_batchnorm from mmcv * change logger * [Doc] Update FAQ for TensorRT (#96) * update FAQ * comment * [Docs]: Update doc for openvino installation (#102) * fix docs * fix docs * fix docs * fix mmcv version * fix docs * rm blank line * simplify non batch nms (#99) * [Enhacement] Allow test.py to save evaluation results (#108) * Add log file * Delete debug code * Rename logger * resolve comments * [Enhancement] Support mmocr v0.4+ (#115) * support mmocr v0.4+ * 0.4.0 -> 0.4.1 * fix onnxruntime wrapper for gpu inference (#123) * fix ncnn wrapper for ort-gpu * resolve comment * fix lint * Fix typo (#132) * lock mmcls version (#131) * [Enhancement] upgrade isort in pre-commit config (#141) * [Enhancement] upgrade isort in pre-commit config by refering to mmflow pr #87 * fix lint * remove .isort.cfg and put its known_third_party to setup.cfg * Fix ci for mmocr (#144) * fix mmocr unittests * remove useless * lock mmdet maximum version to 2.20 * pip install -U numpy * Fix capture_output (#125) Co-authored-by: hanrui1sensetime <[email protected]> Co-authored-by: Johannes L <[email protected]> Co-authored-by: RunningLeon <[email protected]> Co-authored-by: VVsssssk <[email protected]> Co-authored-by: lvhan028 <[email protected]> Co-authored-by: AllentDan <[email protected]> Co-authored-by: Yifan Zhou <[email protected]> Co-authored-by: 杨培文 (Yang Peiwen) <[email protected]> Co-authored-by: Semyon Bevzyuk <[email protected]> * configs for all tasks * use torchvision roi align * remote unnecessary code * fix ut * fix ut * export * det dynamic * det dynamic * add ut * fix ut * add ut and docs * fix ut * skip torchscript ut if no ops available * add torchscript option to build.md * update benchmark and resolve comments * resolve conflicts * rename configs * fix mrcnn cuda test * remove useless * add version requirements to docs and comments to codes * enable empty image exporting for torchscript and accelerate ORT inference for MRCNN * rebase * update example for torchscript.md * update FAQs for torchscript.md * resolve comments * only use torchvision roi_align for torchscript * fix ut * use torchvision roi align when pool model is avg * resolve comments Co-authored-by: grimoire <[email protected]> Co-authored-by: grimoire <[email protected]> Co-authored-by: hanrui1sensetime <[email protected]> Co-authored-by: Johannes L <[email protected]> Co-authored-by: RunningLeon <[email protected]> Co-authored-by: VVsssssk <[email protected]> Co-authored-by: lvhan028 <[email protected]> Co-authored-by: Yifan Zhou <[email protected]> Co-authored-by: 杨培文 (Yang Peiwen) <[email protected]> Co-authored-by: Semyon Bevzyuk <[email protected]> * remove roi_align plugin for ORT (#258) * remove roi_align plugin * remove ut * skip single_roi_extractor UT for ORT in CI * move align to symbolic and update docs * recover UT * resolve comments * add mmcls example * add mmcls/mmdet/mmseg and their corresponding tests * add test data * simplify test data * add requirement in optional.txt * fix setup problem when adding mmrazor requirement * use get_codebase_config * change mmrazor requirement Co-authored-by: AllentDan <[email protected]> Co-authored-by: grimoire <[email protected]> Co-authored-by: grimoire <[email protected]> Co-authored-by: hanrui1sensetime <[email protected]> Co-authored-by: Johannes L <[email protected]> Co-authored-by: RunningLeon <[email protected]> Co-authored-by: VVsssssk <[email protected]> Co-authored-by: lvhan028 <[email protected]> Co-authored-by: Yifan Zhou <[email protected]> Co-authored-by: 杨培文 (Yang Peiwen) <[email protected]> Co-authored-by: Semyon Bevzyuk <[email protected]>
- Loading branch information
1 parent
9411fe0
commit aa536ec
Showing
13 changed files
with
332 additions
and
10 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
# Copyright (c) OpenMMLab. All rights reserved. | ||
_base_ = 'model.py' | ||
|
||
norm_cfg = dict(type='BN') | ||
|
||
mutator = dict( | ||
type='OneShotMutator', | ||
placeholder_mapping=dict( | ||
all_blocks=dict( | ||
type='OneShotOP', | ||
choices=dict( | ||
shuffle_3x3=dict( | ||
type='ShuffleBlock', kernel_size=3, norm_cfg=norm_cfg), | ||
shuffle_5x5=dict( | ||
type='ShuffleBlock', kernel_size=5, norm_cfg=norm_cfg), | ||
shuffle_7x7=dict( | ||
type='ShuffleBlock', kernel_size=7, norm_cfg=norm_cfg), | ||
shuffle_xception=dict( | ||
type='ShuffleXception', norm_cfg=norm_cfg), | ||
)))) | ||
|
||
algorithm = dict( | ||
type='SPOS', | ||
architecture=dict( | ||
type='MMClsArchitecture', | ||
model={{_base_.model}}, | ||
), | ||
mutator=mutator, | ||
distiller=None, | ||
mutable_cfg='tests/test_codebase/test_mmcls/data/mmrazor_mutable_cfg.yaml', | ||
retraining=True) |
60 changes: 60 additions & 0 deletions
60
tests/test_codebase/test_mmcls/data/mmrazor_mutable_cfg.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
stage_0_block_0: | ||
chosen: | ||
- shuffle_7x7 | ||
stage_0_block_1: | ||
chosen: | ||
- shuffle_5x5 | ||
stage_0_block_2: | ||
chosen: | ||
- shuffle_3x3 | ||
stage_0_block_3: | ||
chosen: | ||
- shuffle_5x5 | ||
stage_1_block_0: | ||
chosen: | ||
- shuffle_7x7 | ||
stage_1_block_1: | ||
chosen: | ||
- shuffle_3x3 | ||
stage_1_block_2: | ||
chosen: | ||
- shuffle_7x7 | ||
stage_1_block_3: | ||
chosen: | ||
- shuffle_3x3 | ||
stage_2_block_0: | ||
chosen: | ||
- shuffle_7x7 | ||
stage_2_block_1: | ||
chosen: | ||
- shuffle_3x3 | ||
stage_2_block_2: | ||
chosen: | ||
- shuffle_7x7 | ||
stage_2_block_3: | ||
chosen: | ||
- shuffle_xception | ||
stage_2_block_4: | ||
chosen: | ||
- shuffle_3x3 | ||
stage_2_block_5: | ||
chosen: | ||
- shuffle_3x3 | ||
stage_2_block_6: | ||
chosen: | ||
- shuffle_3x3 | ||
stage_2_block_7: | ||
chosen: | ||
- shuffle_3x3 | ||
stage_3_block_0: | ||
chosen: | ||
- shuffle_xception | ||
stage_3_block_1: | ||
chosen: | ||
- shuffle_7x7 | ||
stage_3_block_2: | ||
chosen: | ||
- shuffle_xception | ||
stage_3_block_3: | ||
chosen: | ||
- shuffle_xception |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
# Copyright (c) OpenMMLab. All rights reserved. | ||
_base_ = 'model.py' | ||
|
||
norm_cfg = dict(type='BN', requires_grad=True) | ||
mutator = dict( | ||
type='OneShotMutator', | ||
placeholder_mapping=dict( | ||
all_blocks=dict( | ||
type='OneShotOP', | ||
choices=dict( | ||
shuffle_3x3=dict( | ||
type='ShuffleBlock', norm_cfg=norm_cfg, kernel_size=3), | ||
shuffle_5x5=dict( | ||
type='ShuffleBlock', norm_cfg=norm_cfg, kernel_size=5), | ||
shuffle_7x7=dict( | ||
type='ShuffleBlock', norm_cfg=norm_cfg, kernel_size=7), | ||
shuffle_xception=dict( | ||
type='ShuffleXception', | ||
norm_cfg=norm_cfg, | ||
), | ||
)))) | ||
|
||
algorithm = dict( | ||
type='DetNAS', | ||
architecture=dict( | ||
type='MMDetArchitecture', | ||
model={{_base_.model}}, | ||
), | ||
mutator=mutator, | ||
pruner=None, | ||
distiller=None, | ||
retraining=True, | ||
mutable_cfg='tests/test_codebase/test_mmdet/data/mmrazor_mutable_cfg.yaml', | ||
) |
60 changes: 60 additions & 0 deletions
60
tests/test_codebase/test_mmdet/data/mmrazor_mutable_cfg.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
stage_0_block_0: | ||
chosen: | ||
- shuffle_7x7 | ||
stage_0_block_1: | ||
chosen: | ||
- shuffle_5x5 | ||
stage_0_block_2: | ||
chosen: | ||
- shuffle_7x7 | ||
stage_0_block_3: | ||
chosen: | ||
- shuffle_3x3 | ||
stage_1_block_0: | ||
chosen: | ||
- shuffle_7x7 | ||
stage_1_block_1: | ||
chosen: | ||
- shuffle_5x5 | ||
stage_1_block_2: | ||
chosen: | ||
- shuffle_5x5 | ||
stage_1_block_3: | ||
chosen: | ||
- shuffle_7x7 | ||
stage_2_block_0: | ||
chosen: | ||
- shuffle_xception | ||
stage_2_block_1: | ||
chosen: | ||
- shuffle_xception | ||
stage_2_block_2: | ||
chosen: | ||
- shuffle_5x5 | ||
stage_2_block_3: | ||
chosen: | ||
- shuffle_xception | ||
stage_2_block_4: | ||
chosen: | ||
- shuffle_3x3 | ||
stage_2_block_5: | ||
chosen: | ||
- shuffle_3x3 | ||
stage_2_block_6: | ||
chosen: | ||
- shuffle_xception | ||
stage_2_block_7: | ||
chosen: | ||
- shuffle_5x5 | ||
stage_3_block_0: | ||
chosen: | ||
- shuffle_xception | ||
stage_3_block_1: | ||
chosen: | ||
- shuffle_5x5 | ||
stage_3_block_2: | ||
chosen: | ||
- shuffle_xception | ||
stage_3_block_3: | ||
chosen: | ||
- shuffle_7x7 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
# Copyright (c) OpenMMLab. All rights reserved. | ||
_base_ = 'model.py' | ||
|
||
# algorithm setting | ||
algorithm = dict( | ||
type='GeneralDistill', | ||
architecture=dict( | ||
type='MMSegArchitecture', | ||
model={{_base_.model}}, | ||
), | ||
distiller=dict( | ||
type='SingleTeacherDistiller', | ||
teacher={{_base_.model}}, | ||
teacher_trainable=False, | ||
components=[ | ||
dict( | ||
student_module='decode_head.conv_seg', | ||
teacher_module='decode_head.conv_seg', | ||
losses=[ | ||
dict( | ||
type='ChannelWiseDivergence', | ||
name='loss_cwd_logits', | ||
tau=1, | ||
loss_weight=5, | ||
) | ||
]) | ||
]), | ||
) |
Oops, something went wrong.