eIQ笔记(UI介绍+Loss曲线+OpenART例程)
This is a very beginner-friendly article ^o^
目录
🍂一、训练器设置
input size:
learning rate:
learning rate decay:
Epochs:
Decay Rate:
Linear Decay:
Batch Size:
Epochs to Train:
QAT(Quantization Aware Training)量化感知训练:
Pruning剪枝:
Clustering聚类:
🍂二、关于图像增强的设置
🍂三、模型参数
Alpha权重更新比率:
Optimizer优化器:
🍂四、推荐的设置(简单的模型)
eIQ的小bug
🍂五、分析Loss曲线
①概念
训练集Loss曲线
测试集Loss曲线
②分析
③放弃模型
🍂六、eIQ的其他常用UI介绍
🍂七、OpenART的部署例程
1、常用的方法
像素设置
模型加载
畸变校正
模型应用
加载标签
2、多目标检测中存在的问题
🍂八、尝试使用云端进行在线训练
🔚九、结语
值得一看的文件(有详细的参数讲解,包括nvida的cuda配置方法):
EIQ 工具包用户指南 - NXP (readkong.com)第21页起
第十七届智能车竞赛智能视觉组eIQ教程--逐飞科技 (qq.com)
成功安装后文件夹自带文件:eIQ_Toolkit——>docs——>eIQ_Toolkit_UG.pdf
🍂一、训练器设置
input size:
指输入到模型的尺寸,以(高度,宽度,通道数)的形式表示,模型在训练时所有图像要调整到一致的大小
选择的Input Size要与数据集的图片大小相近
learning rate:
指在每次迭代更新模型参数时,调整权重的步长大小。高学习率:参数更新步长较大,收敛速度快,可能导致错过最优解或训练过程不稳定;低学习率:参数更新步长较小,更可能找到全局最优解,但训练过程慢,可能会陷入局部最优解
learning rate decay:
学习率衰减目的是在训练初期保持较高的学习率,以加快收敛速度,在后期降低学习率,从而使模型能逼近全局最优解
Epochs:
设置调整学习率的轮数
Decay Rate:
决定学习率衰减速度的快慢,Decay Rate越大学习率下降越快,在指数衰减时:新学习率=初学习率 * e^( - decay rate * epoch )
Linear Decay:
学习率按线性规律减少
Batch Size:
设置处理样本的数量。对于有许多非常相似的图像的数据集来说,较大的批次更有可能更快地达到较高的准确率。对于较小的数据集和图像不相似的数据集,较小的批次规模可能会更快达到较高的准确率。
Epochs to Train:
整个数据集被处理的次数(可理解为模型对整个数据集进行一次全面学习),如果数据集大小为10000个样本,批次大小batch size为100,那么一次epoch包含100次Iteration(每处理一批数据的次数)。多个Epochs:单次遍历数据集不足以让模型充分学习到数据的特征,通过多个Epochs模型能不断调整参数,逼近最佳权重值;过多Epochs可能导致过拟合:过拟合指模型在训练数据上表现很好,但在新数据(测试集)上表现较差
通过增加该值(整个训练数据集中的训练次数),模型权重有更多机会学习到需要提取的重要特征。如果使用过多的epochs,训练可能会导致模型过度拟合训练数据集
QAT(Quantization Aware Training)量化感知训练:
指将模型参数和计算从浮点(32-bit)降低精度到整型(8-bit),使模型简化,计算速度快,但精度下降
Pruning剪枝:
移除模型中不重要的权重、神经元或整个过滤器,以减少模型大小和计算量
Clustering聚类:
将相似的权重值聚集在一起共享权重,从而减少模型参数
🍂二、关于图像增强的设置
见开头链接,官方说明更加详细
垂直翻转谨慎选择(若不会出现就不选择)
🍂三、模型参数
Alpha权重更新比率:
Alpha 是一个乘数,会影响模型各层滤波器的数量
Optimizer优化器:
优化器是一种数学公式,应用于权重时,可以在尽可能少的调整中找到最佳权重。可使用以下优化器(Adam、Nadam 和 Adamax常用):
-
随机梯度下降(Stochastic Gradient Descent, SGD):
- SGD是一种优化算法,通过在每次迭代中只使用一个样本或一小批样本来更新模型的权重,从而快速训练模型。当模型远离理想状态时,SGD能够迅速调整权重。
-
Adagrad:
- Adagrad在计算权重调整方向时与SGD类似,但它在调整权重时考虑了之前所有更新的累积大小,这意味着它会自动调整学习率,对于频繁更新的权重,其学习率会减小。
-
Adadelta:
- Adadelta是Adagrad的扩展,它只保留过去一定数量的更新历史,而不是全部。这使得算法更加高效,并且能够适应不断变化的优化景观。
-
均方根传播(Root Mean Square Propagation, RMSprop):
- RMSprop在计算权重调整方向时与SGD类似,但它对每个权重参数分别进行调整,有助于减少在单一轴上的振荡。在几乎所有情况下,RMSprop的表现都优于Adagrad和SGD。
-
自适应移动估计(Adaptive Movement Estimation, Adam):
- Adam结合了Adagrad和RMSprop的优点,通过累积过去调整的平均值来评估下一次调整。在几乎所有情况下,Adam的表现都优于SGD和Adagrad,而在大多数情况下优于RMSprop。它结合了Adagrad的快速梯度下降和RMSprop的振荡抑制学习率。
-
Adamax:
- Adamax是Adam优化器的泛化版本,使用无穷范数。模型越简单(参数越少),这个优化器越精确。在小模型中,Adamax的表现可能优于Adam,而在大型模型中,Adamax和Adam的表现相似,因此可以作为可选的替代方案。
-
Nesterov-加速自适应移动估计(Nesterov-accelerated Adaptive Movement Estimation, Nadam):
- Nadam结合了Adam优化器和Nesterov加速梯度技术,这使得下一次调整的计算似乎是在当前调整趋势再继续一步的情况下进行的。
经验之谈:如果发现使用Adam收敛速度过快,担心陷入局部最优解,不妨试试SGD吧 !!!