mmdetection 常用命令

1. 多卡训练

CUDA_VISIBLE_DEVICES=0,1,2,3 PORT=15200 ./tool/dist_train.py configs/***.py 4

多机多卡:

机器1: python -m torch.distributed.launch --nproc_per_node=8 --nnodes=2 --node_rank=0 --master_addr=172.16.30.2 --master_port=29502 tools/train.py ***.py --launcher=pytorch
机器2:python -m torch.distributed.launch --nproc_per_node=8 --nnodes=2 --node_rank=1 --master_addr=172.16.30.2 --master_port=29502 tools/train.py ***.py --launcher=pytorch

2. 普通测试

python tools/test.py configs/yolox/mobilenetv2/yolox_nano_mobilenetv2_050_yoloxpafpn_face_person_0207.py work_dir/yolox_nano_mobilenetv2_050_yoloxpafpn_face_person_0207/best_bbox_mAP_epoch_99.pth --eval bbox

3. 生成PR指标测试(内部实现)

python tools/test.py configs/yolox/face_person_0207.py work_dir/face_person_0207/best_bbox_mAP_epoch_99.pth --eval bbox --eval_for_engineering

4. 保存预测的JSON文件

python tools/test.py configs/yolox/face_person_0207.py work_dir/face_person_0207/best_bbox_mAP_epoch_99.pth  --format-only --eval-options jsonfile_prefix=facedata_v1

5. 在线测试 JSON文件(work_dir不起作用可以随便设置)

python tools/test.py configs/yolox/face_person_0207.py work_dir/face_person_0207/best_bbox_mAP_epoch_99.pth --offline_pr **.json  --eval bbox --eval_for_engineering

6. 离线工具测试命令(detection_evalution)

python main.py --mmdet_result ***.json --config ***config.py --label_file **gt.json

7.生成onnx

python tools/deployment/pytorch2onnx.py configs/yolox/mobilenetv2/yolox_nano_mobilenetv2_025_yoloxpafpn_face_person_0209_person_relu.py work_dir/yolox_nano_mobilenetv2_025_yoloxpafpn_face_person_0209_person_relu/epoch_1.pth --output-file work_dir/yolox_nano_mobilenetv2_025_yoloxpafpn_face_person_0209_person_relu/mobilenet_025_320_192 --shape 192 320 --skip-postprocess 

8.绘制loss曲线,查看模型收敛情况

python tools/analysis_tools/analyze_logs.py plot_curve work_dir/a/20230214_053242.log.json --keys loss --start-epoch 1 --eval-interval 10 --legend loss --out=work_dir/a/loss.png

9.查看网络细节信息

models = torch.load("***.pth")
models.keys() #查看模型关键字
state_dict = models['state_dict']
for name, v in state_dict.items():
    print(name, v.shape)

10.查看 param 和 flops

python tools/analysis_tools/get_flops.py /home/liushuan/work_space/mmdetection_superacme/configs/yolox/yolox_nano_cspdarknetv10_person_face_keypoint_ov.py --shape 384 640

11.可视化loss结果

python tools/analysis_tools/analyze_logs.py plot_curve  *.log.json --keys loss --out **/loss.jpg

        (也可使用tensorbord 可视化,需要提前在config里面做相关配置)

MMYolo

        1.保存onnx模型

python projects/easydeploy/tools/export.py \
    configs/yolov5/yolov5_s-v61_fast_1xb12-40e_cat.py \
    work_dirs/yolov5_s-v61_fast_1xb12-40e_cat/epoch_40.pth \
    --work-dir work_dirs/yolov5_s-v61_fast_1xb12-40e_cat \
    --img-size 640 640 \
    --batch 1 \
    --device cpu \
    --simplify \
    --opset 11 \
    --backend 1 \
    --pre-topk 1000 \
    --keep-topk 100 \
    --iou-threshold 0.65 \
    --score-threshold 0.25

你可能感兴趣的:(深度学习框架,python,深度学习,开发语言)