使用Open-mmLab库进行ResNet-50 classification应用
配置环境可以参考pytorch环境配置及所遇问题
源代码来自官方实例库:
链接:https://github.com/open-mmlab/mmclassification
官方说明文档:https://mmclassification.readthedocs.io/en/latest/index.html
样例应用及修改方式:
1. 准备数据集
首先保证mmclassification文件夹下有以下文件夹
mmclassification
├── mmcls
├── tools
├── configs
├── docs
├── data
并在data数据集中加入自己所需的新数据集,按以下格式和名称存储在data目录下
训练数据集:
netdata
├── ...
├── train
│ ├── n01440764
│ │ ├── n01440764_10026.JPEG
│ │ ├── n01440764_10027.JPEG
│ │ ├── ...
│ ├── ...
│ ├── n15075141
│ │ ├── n15075141_999.JPEG
│ │ ├── n15075141_9993.JPEG
│ │ ├── ...
测试数据集
├── val
ILSVRC2012_val_00000001.JPEG 65
ILSVRC2012_val_00000002.JPEG 970
ILSVRC2012_val_00000003.JPEG 230
ILSVRC2012_val_00000004.JPEG 809
ILSVRC2012_val_00000005.JPEG 516
准备TXT文件链接:https://blog.youkuaiyun.com/alexzhang9208/article/details/115488509
2. 参数设定
训练模型的配置文件都在**/configs路径下,其中包括用来配置数据集、网络模型、训练策略等的_base_和各种模型,以ResNet50为例,在**/configs/resnet
路径下,新建resnet50_b32x8_mynet.py
,其中
_base_包括:
_base_ = [
'../_base_/models/resnet50.py', # 模型配置
'../_base_/datasets/mynet_bs32.py', # 数据集配置
'../_base_/schedules/imagenet_bs256.py', # 训练策略配置
'../_base_/default_runtime.py' # 日志、存储相关配置
]
通过自定义以上4项,便可以进行自己模型的训练任务。
3. 自定义数据集的加载
相关目录:
../_base_/datasets/ # 数据预处理、路径配置
../data/Mydataset/ # 数据放在这个位置
../mmcls/dataset/ # 数据读取
…/base/datasets/目录下代码
# dataset settings
dataset_type = 'MyNetData'
img_norm_cfg = dict(
mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True)
train_pipeline = [
dict(type='LoadImageFromFile'),
dict(type='Resize', size=(128, 128), backend='pillow'),
dict(type='RandomFlip', flip_prob=0.5, direction='horizontal'),
dict(type='Normalize', **img_norm_cfg),
dict(type='ImageToTensor', keys=['img']),
dict(type='ToTensor', keys=['gt_label']),
dict(type='Collect', keys=['img', 'gt_label'</