OPenmmlab(三)

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本文将以语义分割为例,介绍如何使用OpenMMLab框架进行实战操作。 一、准备工作 1.安装OpenMMLab框架 可以按照官网提供的安装方式进行安装,也可以使用pip install mmcv-full安装mmcv-full,然后再使用pip install openmmlab安装OpenMMLab。 2.下载数据集 本文使用的是PASCAL VOC2012数据集,可以在官网上下载。 3.配置环境变量 为了方便使用,可以将数据集路径添加到环境变量中,使用时直接调用。 二、数据预处理 1.将数据集转换为COCO格式 由于OpenMMLab使用的是COCO格式的数据集,因此需要将PASCAL VOC格式的数据集转换为COCO格式。可以使用官方提供的脚本进行转换。 python tools/datasets/voc_convert.py --voc-dir /path/to/voc --json-dir /path/to/save/json 其中,--voc-dir表示PASCAL VOC格式的数据集路径,--json-dir表示将要保存COCO格式的数据集路径。 2.数据增强 使用数据增强可以使模型更具有泛化能力,常用的增强方法包括随机旋转、随机裁剪、随机翻转等。可以使用OpenMMLab提供的数据增强模块进行处理。 from mmcv import Config from mmcv.runner import obj_from_dict cfg = Config.fromfile('configs/deeplabv3_r50-d8_512x512_40k_voc12aug.py') train_pipeline = obj_from_dict(cfg.data.train.pipeline) 其中,train_pipeline为数据增强的流程,可以根据需要进行修改。 、模型训练 使用OpenMMLab提供的训练脚本进行训练。 python tools/train.py ${CONFIG_FILE} 其中,${CONFIG_FILE}为配置文件路径,可以在configs文件夹中选择合适的配置文件进行训练。 四、模型测试 使用OpenMMLab提供的测试脚本进行测试。 python tools/test.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [--out ${RESULT_FILE}] [--eval ${EVAL_METRICS}] [--show] 其中,${CONFIG_FILE}为配置文件路径,${CHECKPOINT_FILE}为训练好的模型文件路径,${RESULT_FILE}为结果保存路径,${EVAL_METRICS}为评价指标,--show表示显示结果。 五、模型部署 使用OpenMMLab提供的导出模型脚本将模型导出为ONNX格式或TorchScript格式,以便在C++或Python中使用。 python tools/export_model.py ${CONFIG_FILE} ${CHECKPOINT_FILE} ${EXPORT_TYPE} [--out ${EXPORT_FILE}] [--input-img ${INPUT_IMG}] [--shape ${INPUT_SHAPE}] 其中,${EXPORT_TYPE}为导出模型格式,可以选择onnx或torchscript,${EXPORT_FILE}为导出模型路径,${INPUT_IMG}为输入图片路径,${INPUT_SHAPE}为输入图片大小。 六、总结 通过以上实战操作,我们可以使用OpenMMLab框架进行语义分割模型的训练、测试和部署。OpenMMLab框架提供了丰富的模型和数据增强模块,使得模型训练更加便捷。同时,OpenMMLab框架也支持模型导出为ONNX或TorchScript格式,方便在C++或Python中使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值