To test nas method, you can use following command
python tools/${task}/test_${task}.py ${CONFIG_FILE} ${CHECKPOINT_PATH} --cfg-options algorithm.mutable_cfg=${MUTABLE_CFG_PATH} [optional arguments]task: one ofmmcls、mmdetandmmsegMUTABLE_CFG_PATH: Path ofmutable_cfg.mutable_cfgrepresents config for mutable of the subnet searched out, used to specify different subnets for testing. An example formutable_cfgcan be found here.
The usage of optional arguments are the same as corresponding tasks like mmclassification, mmdetection and mmsegmentation.
For example,
python tools/mmcls/test_mmcls.py \ configs/nas/spos/spos_subnet_shufflenetv2_8xb128_in1k.py \ your_subnet_checkpoint_path \ --cfg-options algorithm.mutable_cfg=configs/nas/spos/SPOS_SHUFFLENETV2_330M_IN1k_PAPER.yaml
If you train a slimmable model during retraining, checkpoints of different subnets are actually fused in only one checkpoint. You can split this checkpoint to multiple independent checkpoints by using the following command
python tools/model_converters/split_checkpoint.py ${CONFIG_FILE} ${CHECKPOINT_PATH} --channel-cfgs ${CHANNEL_CFG_PATH} [optional arguments]CHANNEL_CFG_PATH: A list of paths ofchannel_cfg. For example, when you retrain a slimmable model, your command will be like--cfg-options algorithm.channel_cfg=cfg1,cfg2,cfg3. And your command here should be--channel-cfgs cfg1 cfg2 cfg3. The order of them should be the same.
For example,
python tools/model_converters/split_checkpoint.py \ configs/pruning/autoslim/autoslim_mbv2_subnet_8xb256_in1k.py \ your_retraining_checkpoint_path \ --channel-cfgs configs/pruning/autoslim/AUTOSLIM_MBV2_530M_OFFICIAL.yaml configs/pruning/autoslim/AUTOSLIM_MBV2_320M_OFFICIAL.yaml configs/pruning/autoslim/AUTOSLIM_MBV2_220M_OFFICIAL.yaml
To test pruning method, you can use following command
python tools/${task}/test_${task}.py ${CONFIG_FILE} ${CHECKPOINT_PATH} --cfg-options algorithm.channel_cfg=${CHANNEL_CFG_PATH} [optional arguments]task: one ofmmcls、mmdetandmmsegCHANNEL_CFG_PATH: Path ofchannel_cfg.channel_cfgrepresents config for channel of the subnet searched out, used to specify different subnets for testing. An example forchannel_cfgcan be found here, and the usage can be found here.
For example,
python ./tools/mmcls/test_mmcls.py \ configs/pruning/autoslim/autoslim_mbv2_subnet_8xb256_in1k.py \ your_splitted_checkpoint_path --metrics accuracy \ --cfg-options algorithm.channel_cfg=configs/pruning/autoslim/AUTOSLIM_MBV2_530M_OFFICIAL.yaml
To test distillation method, you can use the following command
python tools/${task}/test_${task}.py ${CONFIG_FILE} ${CHECKPOINT_PATH} [optional arguments]task: one ofmmcls、mmdetandmmseg
For example,
python ./tools/mmseg/test_mmseg.py \ configs/distill/cwd/cwd_cls_head_pspnet_r101_d8_pspnet_r18_d8_512x1024_cityscapes_80k.py \ your_splitted_checkpoint_path --show