针对特定场景任务从模型选择、模型训练、超参优化、效果展示这四个方面进行模型开发
一、模型选择
1.回归任务
人脸关键点检测
人脸关键点检测任务中,输出为 人脸关键点的数量x2,即每个人脸关键点的横坐标与纵坐标。在模型组网时,主要使用2个模块,分别是Inception模块和空间注意力模块。增加空间注意力模块是为了提高模型效果。
2.分类任务
CIFAR-10数据集也是分类任务中一个非常经典的数据集,在科研中,常常使用CIFAR数据集评估算法的性能。
3.场景任务
这里说的场景任务包括但不限于目标检测、图像分割、文本生成、语音合成、强化学习等。
根据场景任务,精度和速度需求选择合适的模型。
二、模型训练
1.基于高层API训练模型
2.使用PaddleX训练模型
3.模型训练通用配置基本原则
每个输入数据的维度要保持一致,且一定要和模型输入保持一致。
配置学习率衰减策略时,训练的上限轮数一定要计算正确。
BatchSize不宜过大,太大容易内存溢出,且一般为2次幂。
三、超参优化
1.超参优化的基本概念
参数
输入一个值(x),乘以权重,结果就是网络的输出值。权重可以随着网络的训练进行更新,从而找到最佳的值,这样网络就能尝试匹配输出值与目标值。
这里的权重其实就是一种参数。
超参数
模型的超参数指的是模型外部的配置变量,是不能通过训练的进行来估计其取值不同的,且不同的训练任务往往需要不同的超参数。
超参数不同,最终得到的模型也是不同的。
一般来说,超参数有:学习率,迭代次数,网络的层数,每层神经元的个数等等。
常见的超参数有以下三类:
网络结构,包括神经元之间的连接关系、层数、每层的神经元数量、激活函数的类型等 .
优化参数,包括优化方法、学习率、小批量的样本数量等 .
正则化系数
1)使用提前停止来确定训练的迭代次数
2)让学习率从高逐渐降低
我们⼀直都将学习速率设置为常量。但是,通常采用可变的学习速率更加有效。
如果学习率设置的过低,在训练的前期,训练速度会非常慢;而学习率设置地过高,在训练的后期,又会产生震荡,降低模型的精度:
3)宽泛策略
4)小批量数据(mini-batch)大小不必最优
模型结构、学习率、batch_size
四、效果展示
1.可视化输入与输出
2.巧用VisualDL
VisualDL可视化流程
创建日志文件:
2.训练前记录每组实验的超参数名称和数值,且记录想要展示的模型指标名称
3.训练过程中插入作图语句,记录accuracy和loss的变化趋势,同时将展示于Scalar和HyperParameters两个界面中:
4.记录每一批次中的第一张图片:
5.记录训练过程中每一层网络权重(weight)、偏差(bias)的变化趋势:
6.记录分类效果--precision & recall曲线:
7.保存模型结构:
3.权重可视化
五、总结与升华
本文最重要的地方在于神经网络工作的基本原理,只有搞懂了原理,才能更好地进行超参优化,得到的模型效果才会更好。
对于模型组网,最重要的是学会使用SubClass形式组网,使用套件虽然简单,但是可定制化程度较低,如果是科研需要,建议一定要学会用SubClass形式组网。
模型训练是本文中最简单的部分,只需要按照文档在操作即可,但是超参数的选择有很多讲究,超参的好坏往往会影响模型的最终结果
效果展示是一个项目的加分项,如果是科研需要,那么你也需要可视化地展示你的工作成果,这也是十分重要的。
你好,电网比赛数据集可以发我一下吗?谢谢