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