1. 概述
MNN 工作台图像分类训练模版用来产出图像分类模型,可以用来识别不同图片归属类目问题。目前 MNN 工作台内置 MNN 团队自行基于迁移学习优化的 FastTrainingCIs 模型。
2. 模型训练
2.1. 准备数据
MNN 工作台图像分类支持基于小样本的迭代式训练,一般来说,初次训练准备100 - 200张图片即可。
数据准备工作中有几点注意事项,不符合训练数据格式会导致训练代码报错。
- 分类数据按照类别放在以类别名称命名的文件夹中,该路径下的所有文件即为训练数据。
- 不能有嵌套式文件夹,MNN 工作台图像分类默认只识别一级目录下的图片作为训练数据。
训练数据支持 JPEG 和 PNG 格式的图片。
以 图1和图2 所示,该路径下有四个文件夹,分别代表animal
,flower
,guitar
以及houses
四个类别。
每个文件夹中包含对应类别的数据。请选择这四个子文件夹的父文件夹。
图例 1. 模型训练数据准备示例
2.2. 创建项目
- 打开 MNN 工作台,进入工作台主界面。
图例 3. MNN 工作台主界面
- 点击
Train a deep learning model
,进入模型训练页面。
图例 4. MNN 工作台模型训练模版选择界面
- 图片分类工程在
Image
分类下,点击Image
栏,找到并点击Image Classifier
。首次/更新使用需联网,MNN 工作台会不定期更新最好用的训练模版
图例 5. MNN 工作台图像相关训练能力模型展示
- (首次使用)需要下载 MNN 工作台图像分类训练模版,点击
Download
进行下载
图例 6. MNN 工作台图像分类模型下载
- 下载完成,点击
Next
进入项目配置页面,在Project Name
上出入项目名称,比如MyImageClassifier
,点击Next
图例 7. MNN 工作台图像分类工程配置
- 选择目标文件夹,对工程进行保存。
图例 8. MNN 工作台选择工程保存路径
- 点击
Next
,进入训练工程界面。工作台会自动配置训练环境,首次使用需联网加载相关配置,请耐心等候。
2.3 训练流程
MNN 工作台图像训练工程页面中存在两个配置模块:
Data Inputs
,数据选择模块,主要进行数据相关操作。Training Data
,选择训练数据集。Validation Data
,选择验证数据集。可选。Testing Data
,选择测试数据集。可选。
Parameters
,参数设置模块,用于调节模型训练的相关参数。
点击Training Data
中的Select Files
,选择训练数据所在的文件夹。工作台会自动读取该文件夹下的数据,并显示类别数目。
图例 10. MNN 工作台训练工程数据集选择界面
参数项:
Max Iteration
,所选数据需要迭代的次数,系统给了一个默认值20。用户可以根据自己的需求去调节大小,一般该值越大,训练所消耗的时间越久,模型对训练数据的拟合程度越高。Quantization
,是否进行模型量化。工作台默认进行模型量化,模型在训练结束后会进行量化,能够减少模型大小近4倍。
点击Train
按键,模型开始训练。
图例 11. MNN 工作台训练中
页面会显示训练进度条,等待一段时间。当训练完成时,会显示训练结果页面。
图例 12. MNN 工作台训练 Training Loss 图形化界面
该页面主要有数值栏和下方的图表栏:
- 数值栏,展示的最终模型的状态,分别训练结束时模型在训练集损失数值,在验证集上的准确率以及模型大小。
- 图表栏,展示训练过程中一些与训练相关的数据变化趋势。
对于上方Tab页中的Training
项,数值0.00
表示训练完成时,模型在训练数据集上面的损失数值。
损失数值越低表示模型对训练数据集拟合的越好.
下方图表栏显示的是在模型训练过程中损失值的变化曲线。图中该曲线后段比较平稳,表示模型对训练数据集拟合的比较充分。
点击Validation
项,展示模型在验证集上的准确率:
图例 13. MNN 工作台训练 Validation 图形化界面
图中tab页Validation
项数值表示该模型在验证集上面的准确率为100.0%。
准确率高表示模型的泛化能力不错。 下方图表显示在训练阶段,验证集上准确率的变化虚线。
3. 模型输出和测试
3.1. 模型输出和单项测试
- 点击上方
tab
页的Output
项,进入以下界面:
Output
项中显示当前模型大小(如下图中为1.6MB)。- 右侧信息栏显示当前模型的详细信息
图例 14. MNN 工作台训练结果界面
- 将测试图片拖入左边栏,点击图片,即可显示预测结果。该示例表示当前图片的类型为 animal,置信概率为99.99%。
图例 15. MNN 工作台训练结果所见即所得验证界面
3.2. 批量测试
MNN 工作台也提供了批量测试的功能,点击tab页的Testing
项,进入以下界面:
图例 16. MNN 工作台批量结果验证界面
- 点击
Select
,选中需要测试的图片所在文件夹,文件夹中支持jpg
,jpeg
和png
格式的图片。点击Test Model
开始测试,页面显示测试进度条。
图例 17. MNN 工作台批量结果验证中
- 测试完成后,测试结果以表格形式展示。
- Class列,该图片的预测分类。
- Probability列,该分类对应的预测概率。
- File列,图片的地址。点击地址打开图片所在的文件夹。
图例 18. MNN 工作台批量验证结果
- 点击行左侧的灰色箭头,展开显示图片内容。
图例 19. MNN 工作台批量验证结果详细信息
3.3 Try in Playground
MNN 工作台图像训练模版在训练完成得到 MNN 模型后,可以通过点击训练结果界面的 Try in Playground 进入三端一体的 Playground 体验环节。具体请阅读《4.1 Playground 整体介绍》
图例 20. MNN 工作台结果页 Try in Playground
4. 迭代式训练
可以通过 MNN 工作台打开一个已有的工程,继续优化迭代之前的训练结果。
在首页主页面中点击open an existing project
,选择之前保存的工程文件。
图例 21. MNN 工作台主界面
点击打开,就可以直接进入工程界面,如下图所示,根据需求再进行操作。
可以在已经得到训练结果的基础上,继续迭代,增加更多的训练数据和迭代次数,增加模型的学习和泛化能力,让模型对于图像的分类结果判断更准确。
可以点击左上角 + 号按钮,创建一个全新的训练流程,与之前的流程完全独立。
5. 模型优化小窍门
如果在训练完成后,发现模型存在一些误分类的情况,那么可以在这个基础上对模型进行严谨。一种有效的做法是将错误分类的测试图片加入到训练集中,打开原有工程,选择加入误分类数据的文件夹作为训练数据集,点击Train,进行再训练。那么,新训练出来的模型就可以很好的分类该类型误分类图片。