本博客是实战营的第三堂课,主要内容有两部分:①图像分类代码课和②超算平台的介绍和使用,干货满满,那我们马上开始吧!
训练一个网络通常需要定义数据、定义模型、训练、测试,不同类型的代码库具体呈现不同,但大体思路是一致的。
一、MMClassification介绍
首先做个简单介绍,MMClassification是用来做图像分类的工具包,由丰富的模型(上述提到的模型都有)、常用数据集、训练技巧与策略、易用的工具、模块化设计等等。
命令:
推理工具:单张图像推理、测试(单卡&多机多卡)
Getting Started — MMClassification 0.25.0 documentation
训练工具:单卡训练、多卡训练(单机&多机)、任务调度器、从 checkpoint 恢复训练
Getting Started — MMClassification 0.25.0 documentation
使用MIN工具实现训练和测试
MIM 为所有 OpenMMLab 工具提供了统一的命令行接口
流程:下载配置文件和预训练权重→训练→测试
https://github.com/open-mmlab/mim
OpenMMLab环境构建:
在pytorch中的一些运行代码,在OpenMMLab中是以配置文件的形式出现的,如下所示:
通过配置文件定义,所以可以不用写一些繁杂的python代码,虽然底层实现逻辑也是一样的。
在OpenMMLab官方Github网站上可以查看MMClassification库包
支持非常多的现有模型
我以MobileNet V3为例查看,下图展示了网络结构和在给定配置文件下的正确率情况。可以直接从这里下载模型和配置文件。也可以在命令行直接通过命令下载。
对于MMClassification实际使用当中,既可以调用模型库预训练的图像分类模型进行预测、也可以在自己的数据集上进行迁移学习和微调,得到自己的图像分类模型。
图像分类模型构成:
图像分类模型构建(代码详见官网,这里简述流程)
主干网络→颈部→分类头
数据集构建(代码详见官网,这里简述流程)
加载数据DataLoader→数据集Dataset
定义数据加载流水线
对图像读取并处理(裁剪、缩放、格式转换)
配置学习策略
优化器、学习率、运行器
预训练模型库
Model Zoo Summary — MMClassification 0.25.0 documentation
二、超算平台介绍
登录超算网站,页面如下:
下载客户端,使用云平台客户端。
一些小碎碎念:
本节课前半部分的代码对于细节讲解的很到位,值得反复回看。我给大家的建议就是多看回放,对于已经理解的部分选择性加速听,对于不理解的地方反复听,也可以选择留言,每节课都有答疑阶段;而对于今天的代码部分,可以提前下载好官方文档和代码,对照着课程一起看,事半功倍哦!