ymir-mmyolo#
阅读此文档前,建议先阅读mmdet,了解mmyolo代码仓库数据加载,超参数加载与模型训练流程。
配置镜像环境#
提供超参数模板文件#
提供镜像说明文件#
提供默认启动脚本#
-
Dockerfile
RUN echo "python /app/ymir/start.py" > /usr/bin/start.sh # 生成启动脚本 /usr/bin/start.sh
CMD bash /usr/bin/start.sh # 将镜像的默认启动脚本设置为 /usr/bin/start.sh
实现基本功能#
完整代码变动参考ymir-mmyolo/pull/1
训练#
-
启动镜像时调用
bash /usr/bin/start.sh -
start.sh调用python3 ymir/start.py -
start.py调用python3 ymir/ymir_training.py -
ymir_training.py调用bash tools/dist_train.sh ...-
ymir_training.py调用convert_ymir_to_coco()实现数据集格式转换 -
ymir_training.py获取配置文件(config_file)、GPU数量(num_gpus)、工作目录(work_dir), 并拼接到调用命令中
cmd = f"bash ./tools/dist_train.sh {config_file} {num_gpus} --work-dir {work_dir}"- 在训练结束后, 保存max_keep_checkpoints份权重文件 -
-
dist_train.sh调用python3 tools/train.py ...train.py中调用modify_mmengine_config()加载ymir平台超参数、自动配置预训练模型、添加tensorboard功能、添加ymir进度监控hook等。
推理#
-
启动镜像时调用
bash /usr/bin/start.sh -
start.sh调用python3 ymir/start.py -
start.py调用python3 ymir/ymir_infer.py-
调用
init_detector()与inference_detector()获取推理结果 -
调用
mmdet_result_to_ymir()将mmdet推理结果转换为ymir格式 -
调用
rw.write_infer_result()保存推理结果
-
挖掘#
-
启动镜像时调用
bash /usr/bin/start.sh -
start.sh调用python3 ymir/start.py -
start.py调用python3 ymir/ymir_mining.py-
调用
init_detector()与inference_detector()获取推理结果 -
调用
compute_score()计算挖掘分数 -
调用
rw.write_mining_result()保存挖掘结果
-
制作镜像 det/mmyolo:tmi#
docker build -t det/mmyolo:tmi -f ymir/Dockerfile .