【超详细】MMLab分类任务mmclassification:环境配置说明、训练、预测及模型结果可视化展示(2)

简介: 【超详细】MMLab分类任务mmclassification:环境配置说明、训练、预测及模型结果可视化展示

【超详细】MMLab分类任务mmclassification:环境配置说明、训练、预测及模型结果可视化展示(1)https://developer.aliyun.com/article/1536293

数据集配置方式

数据集配置方式有以下两种:

方式一:直接用文件夹名称作为标签,只需配置data_prefix这一个路径参数,格式如下:

自己创建一个data目录,目录下有train,valid,test三个文件夹,这3个文件夹下放置每个分类类别的目录文件(以类别命名文件夹),每个目录1-7中存放的就是当前目录文件名标签1-7对应的图片:(目录数字1-7直接替换为需要预测的类别名称即可:代表目录下图片所属的标签名称)

目录结构如下:

这种方式data配置文件的设置方式如下:只需配置数据路径data_prefix,不需要标签路径:ann_file,因为此时会默认用图片所在的目录名称作为标签。

data = dict(
    samples_per_gpu=32,    # 单个 GPU 的 Batch size
    workers_per_gpu=2,     # 单个 GPU 的 线程数
    train=dict(            # 训练数据信息
        type=dataset_type,                  # 数据集名称
        data_prefix='data/train',  # 数据集目录,当不存在 ann_file 时,类别信息从文件夹自动获取
        pipeline=train_pipeline),           # 数据集需要经过的 数据流水线
val=dict(              # 验证数据集信息
        type=dataset_type,
        data_prefix='data/val',
        pipeline=test_pipeline),
test=dict(             # 测试数据集信息
        type=dataset_type,
        data_prefix='data/test',
        pipeline=test_pipeline))
evaluation = dict(       # evaluation hook 的配置
    interval=1,          # 验证期间的间隔,单位为 epoch 或者 iter, 取决于 runner 类型。
    metric='accuracy')   # 验证期间使用的指标。

方式二:所有图片均在一个目录下,没有区分标签目录,此时需要构建图片与标签一一对应的.txt文件。,这种方式配置起来稍微复杂一点。

自己创建一个data目录,目录下有train,valid,test三个文件夹,这3个目录下分别放需要训练、验证与测试的图片。不用像方法一一样建立分类子目录,不过此时需要通过分别构建train.txt, val.txt, test.txt这3个文件获取图片所对应的标签。

.txt文件格式如下:【图片名 类别】

注:类别是从0开始依次向后编号的。编号对应的实际名称是在mmcls/datasets/imagenet.py这个文件中设置的。(下文会讲)

这种方式data配置文件需要同时配置数据路径data_prefix,标签路径:ann_file。如下:

data = dict(
    samples_per_gpu=32,    # 单个 GPU 的 Batch size
    workers_per_gpu=2,     # 单个 GPU 的 线程数
    train=dict(            # 训练数据信息
        type=dataset_type,                  # 数据集名称
        data_prefix='data/train',  # 数据集目录,当不存在 ann_file 时,类别信息从文件夹自动获取
        ann_file='data/train.txt',
        pipeline=train_pipeline),           # 数据集需要经过的 数据流水线
val=dict(              # 验证数据集信息
        type=dataset_type,
        data_prefix='data/val',
        ann_file='data/val.txt',
        pipeline=test_pipeline),
test=dict(             # 测试数据集信息
        type=dataset_type,
        data_prefix='data/test',
        ann_file='data/test.txt',
        pipeline=test_pipeline))
evaluation = dict(       # evaluation hook 的配置
    interval=1,          # 验证期间的间隔,单位为 epoch 或者 iter, 取决于 runner 类型。
    metric='accuracy')   # 验证期间使用的指标。

注:实际数据路径根据你防止数据集的位置进行修改。

这种方式还需要建立自己读文件的类,进行文件读取:

在mmcls/datasets目录下,创建file_list.py文件,内容如下:

import numpy as np
from .builder import DATASETS
from .base_dataset import BaseDataset
@DATASETS.register_module()
class MyFilelist(BaseDataset):
    CLASSES = ['flower_'+ str(i) for i in range(102)]
    def load_annotations(self):
        assert isinstance(self.ann_file, str)
        data_infos = []
        with open(self.ann_file) as f:
            samples = [x.strip().split(' ') for x in f.readlines()]
            for filename, gt_label in samples:
                info = {'img_prefix': self.data_prefix}
                info['img_info'] = {'filename': filename}
                info['gt_label'] = np.array(gt_label, dtype=np.int64)
                data_infos.append(info)
            return data_infos

然后在mmcls/datasets/init.py 中完成注册,如下图:

然后下修改tools\work_dirs\esnet18_8xb32_in1k\esnet18_8xb32_in1k.py这个配置文件中data读取的类名,如下图:

更改配置文件中的类别名称

各个编号对应类别实际名称在mmcls/datasets/imagenet.py这个文件中设置:

更改ImageNet类中的CLASSES为自己需要分类的类别名称列表:

到此配置文件修改完毕,然后就可以用tools\work_dirs\resnet18_8xb32_in1k.py这个完整的配置文件运行我们的train.py训练模型。

训练模型

pycharm中点击下面配置按钮

在参数这里输入tools\work_dirs\resnet18_8xb32_in1k.py这个的绝对路径,就可以对模型进行训练了。

训练的结果会默认存放在tools\work-dirs目录下:(.pth为训练后的模型文件)

【超详细】MMLab分类任务mmclassification:环境配置说明、训练、预测及模型结果可视化展示(3)https://developer.aliyun.com/article/1536295

相关实践学习
部署Stable Diffusion玩转AI绘画(GPU云服务器)
本实验通过在ECS上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。
相关文章
|
6月前
|
机器学习/深度学习 JSON 数据格式
CatBoost模型部署与在线预测教程
CatBoost模型部署与在线预测教程【2月更文挑战第16天】
132 2
|
6月前
|
IDE 开发工具
垃圾分类模型训练部署教程,基于MaixHub和MaixPy-k210(3)
在开发板上运行模型 1、烧录模型文件到板子 使用kflash_gui工具,可以完成这个任务。
381 0
|
6月前
|
机器学习/深度学习 Python
垃圾分类模型训练部署教程,基于MaixHub和MaixPy-k210(2)
至此,我们就已经成功上传了其中一个类别的图片啦!按照上面的方式,我们可以继续上传其余每个类别的图片。 上传完所有类别的图片后,来到总览,可以大致浏览我们刚刚上传的图片。 接下来,就要用这些图片来训练用于垃圾分类的模型了!
306 0
|
6月前
|
IDE 数据处理 开发工具
垃圾分类模型训练部署教程,基于MaixHub和MaixPy-k210(1)
我的准备 Maix duino开发板一块(含摄像头配件) Type-c数据集一根
289 0
|
18天前
|
数据采集 移动开发 数据可视化
模型预测笔记(一):数据清洗分析及可视化、模型搭建、模型训练和预测代码一体化和对应结果展示(可作为baseline)
这篇文章介绍了数据清洗、分析、可视化、模型搭建、训练和预测的全过程,包括缺失值处理、异常值处理、特征选择、数据归一化等关键步骤,并展示了模型融合技术。
33 1
模型预测笔记(一):数据清洗分析及可视化、模型搭建、模型训练和预测代码一体化和对应结果展示(可作为baseline)
|
5月前
|
机器学习/深度学习 监控 数据可视化
【超详细】MMLab分类任务mmclassification:环境配置说明、训练、预测及模型结果可视化展示(3)
【超详细】MMLab分类任务mmclassification:环境配置说明、训练、预测及模型结果可视化展示
点分类模型实战
点分类模型实战
|
4月前
|
数据采集 机器学习/深度学习 数据可视化
关于Python数据分析项目的简要概述:从CSV加载数据,执行数据预处理,进行数据探索,选择线性回归模型进行训练,评估模型性能并优化,最后结果解释与可视化。
【7月更文挑战第5天】这是一个关于Python数据分析项目的简要概述:从CSV加载数据,执行数据预处理(填充缺失值,处理异常值),进行数据探索(可视化和统计分析),选择线性回归模型进行训练,评估模型性能并优化,最后结果解释与可视化。此案例展示了数据科学的典型流程。
71 2
|
5月前
|
机器学习/深度学习 数据可视化 算法
【超详细】MMLab分类任务mmclassification:环境配置说明、训练、预测及模型结果可视化展示(1)
【超详细】MMLab分类任务mmclassification:环境配置说明、训练、预测及模型结果可视化展示
|
6月前
|
数据可视化
R语言KNN模型分类信贷用户信用等级数据参数调优和预测可视化|数据分享
R语言KNN模型分类信贷用户信用等级数据参数调优和预测可视化|数据分享