MMClassification 介绍
代码仓库:https://github.com/open-mmlab/mmclassification
文档英文教程:https://mmclassification.readthedocs.io/en/latest/
文档中文教程:https://github.com/openmmlab/mmclassification/blob/master/README_zh-CN.md
Python 推理API
# 下载配置文件和与训练权重
$ mim download mmcls --config mobilenet-v2_8xb32_in1k --dest .
# 使用Python API 推理
from mmcls.apis import init_model, inference_model, show_result_pyplot
model = init_model('mobilenet-v2_8xb32_in1k.py',
'mobilenet_v2_batch256_imagenet_20200708-3b2dc3af.pth',
device='cuda:0')
result = inference_model(model, 'banana.png')
show_result_pyplot(model, 'banana.png', result)
# 推理结果result
{'pred_class': 'banana’,
'pred_label': 954,
'pred_score': 0.9999284744262695}
推理工具(需源码安装)
➢ 单张图像推理
python demo/image_demo.py ${IMAGE_FILE} ${CONFIG_FILE} ${CHECKPOINT_FILE}
➢ 在测试集上测试
• 单卡
python tools/test.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [--metrics ${METRICS}] [--out
${RESULT_FILE}]
• 多机多卡
/tools/dist_test.sh ${CONFIG_FILE} ${CHECKPOINT_FILE} ${GPU_NUM} [--metrics ${METRICS}] [--out
${RESULT_FILE}]
使用说明:https://mmclassification.readthedocs.io/en/latest/getting_started.html#inference-asingle-image
训练工具(需源码安装)
➢ 单卡训练
python tools/train.py ${CONFIG_FILE} [optional arguments]
➢ 单机、多机多卡训练
./tools/dist_train.sh ${CONFIG_FILE} ${GPU_NUM} [optional arguments]
➢ 使用任务调度器Slurm 启动任务
[GPUS=${GPUS}] ./tools/slurm_train.sh ${PARTITION} ${JOB_NAME} ${CONFIG_FILE} ${WORK_DIR}
➢ 从checkpoint 恢复训练
增加--resume-from ${CHECKPOINT_FILE} 参数
使用说明:https://mmclassification.readthedocs.io/en/latest/getting_started.html#train-a-model
使用MIM 工具实现训练和测试
MIM 为所有OpenMMLab 工具提供了统一的命令行接口
➢ 下载配置文件和预训练权重
mim download mmcls --config mobilenet-v2_8xb32_in1k --dest .
➢ 训练(支持单卡、多卡、Slurm 任务管理器)
mim train mmcls {参数同mmcls 自己的train.py}
mim train mmcls {参数同mmcls 自己的train.py} -G 4 –g 4 –p ${PARTITION} --launcher slurm
➢ 测试
mim test mmcls {参数同mmcls 自己的test.py} --gpus 4 --launcher pytorch
使用说明:https://github.com/open-mmlab/mim
OpenMMLab 项目中的重要概念——配置文件
➢ 深度学习模型的训练涉及几个方面:
− 模型结构模型有几层、每层多少通道数等等
− 数据集用什么数据训练模型:数据集划分、数据文件路径、数据增强策略等等
− 训练策略梯度下降算法、学习率参数、batch_size、训练总轮次、学习率变化策略等等
− 运行时GPU、分布式环境配置等等
− 一些辅助功能如打印日志、定时保存checkpoint等等
➢ 在OpenMMLab 项目中,所有这些项目都涵盖在一个配置文件中,一个配置文件定义了一个完整的训练过程
− model 字段定义模型
− data 字段定义数据
− optimizer、lr_config 等字段定义训练策略
− load_from 字段定义与训练模型的参数文件
配置文件的运作方式
图像分类模型的构成
图像分类模型构建
数据集构建
定义数据加载流水线
配置学习策略
预训练模型库
https://mmclassification.readthedocs.io/en/latest/modelzoo_statistics.html