文章目录
- 摘要
- MMPreTrain实战
- 安装
- 推理
 
- OR 使用API
- 数据集
- 训练与测试
- 微调
摘要
MMPretrain 是一个全新升级的预训练开源算法框架,旨在提供各种强大的预训练主干网络, 并支持了不同的预训练策略。MMPretrain 源自著名的开源项目 MMClassification 和 MMSelfSup,并开发了许多令人兴奋的新功能。 目前,预训练阶段对于视觉识别至关重要,凭借丰富而强大的预训练模型,我们能够改进各种下游视觉任务。
 
【课程链接】https://www.bilibili.com/video/BV1Ju4y1Z7ZE
 【讲师介绍】马泽润 OpenMMLab算法工程师
 
MMPreTrain实战
安装
git clone https://github.com/open-mmlab/mmpretrain.git
cd mmpretrain
pip install -U openmim
mim install -e ".[multimodal]"

 multimodal:代表安装额外安装多模态的模型
 
推理
调用脚本实现推理,代码如下:
python demo/image_demo.py ${IMAGE_FILE} ${CONFIG_FILE} ${CHECKPOINT_FILE}
OR 使用API
get_model 通过模型名称或模型配置文件获取模型
 list_models 列举 MMPretrain 中所有可用模型名称
 inference_model 使用与模型相对应任务的推理器进行推理
 调用ResNet实例代码:
import mmpretrain
print(mmpretrain.__version__)
from mmpretrain import get_model, list_models, inference_model
print(list_models(task='Image Classification', pattern  = 'resnet18'))
print(list_models(task='Image Caption', pattern='blip'))
model = get_model('resnet18_8xb16_cifar10')
print(type(model))
model  =  get_model( 'resnet18_8xb32_in1k')
print(type(model.backbone))

 加载预训练模型推理
inference_model('blip-base_3rdparty_caption','demo/cat-dog.png',show=True)

数据集
CustomDataset OR ImageNet
子文件夹方式
 标注文件方式
 #配置文件
 举例:resnet18_8xb32_in1k.py
_base_ = [
    '../_base_/models/resnet18.py',           # 模型配置
    '../_base_/datasets/imagenet_bs32.py',    # 数据配置
    '../_base_/schedules/imagenet_bs256.py',  # 训练策略配置
    '../_base_/default_runtime.py'            # 默认运行设置
]
训练与测试
训练
python tools/train.py ${CONFIG_FILE} [ARGS]
测试
python tools/test.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [ARGS]
微调
数据集地址:https://download.openmmlab.com/mmclassification/dataset/cats_dogs_dataset.tar
 在MMpretrain下面新建data文件夹,然后将数据集解压后,放进去。
 查看模型,输入命令:
ls configs

 查看具体模型的配置文件,ResNet为例:
ls configs/resnet

 打开文件resnet18_8xb32_in1k.py,查看具体的内容:
_base_ = [
    '../_base_/models/resnet18.py', '../_base_/datasets/imagenet_bs32.py',
    '../_base_/schedules/imagenet_bs256.py', '../_base_/default_runtime.py'
]
../_base_/models/resnet18.py:模型文件,通过配置的方式,实现模型。
 ../_base_/datasets/imagenet_bs32.py:数据集配置。
 ../_base_/schedules/imagenet_bs256.py:规划配置
 ../_base_/default_runtime.py:运行配置
 default_runtime的配置修改:
   # save checkpoint per epoch.
    checkpoint=dict(type='CheckpointHook', interval=1,max_keep_ckpts=5,sava_best="auto"),
保存最好的5个模型,自动保存最好的模型。
设置类别,和预训练权重路径。
 
 设置成自定义数据集格式
 
 配置数据集路径
 
 
 分析结果:
 














