TensorflowLite模型部署实战教程--⼿把⼿教你⽤eIQ门户⼯具
箱(1)
⽬录
Tensorflow Lite模型部署实战教程是⼀系列嵌⼊式Linux平台上的模型部署教程。
基于的硬件平台:i.MX8MPlus EVK
BSP版本:L5.10.52_2.1.0
Tensorflow Lite版本:2.5.0
1.什么是eIQ⼯具箱
eIQ⼯具箱是NXP推出的傻⽠式模型训练GUI⼯具,可以在GUI界⾯实现⾃定义模型、样本标注、模型训练、模型在线评估、在线量化和部署等⼀系列操作。总⽽⾔之,除了剪枝和蒸馏⽆法实现,常有的模型⼯具它都有⚠ ⚠
2.eIQ⼯具箱界⾯介绍
在eIQ门户主屏幕上,你可以创建⼀个新项⽬,打开现有项⽬,启动eIQ模型⼯具,以及分别单击CREATE PROJECT、OPEN PROJECT、MODEL TOOL和COMMAND LINE按钮来打开命令⾏窗⼝。需要注意的是必须安装CUDA和CUDNN才能使⽤此教程。
3.创建eIQ⼯程
3.1引⼊Keras数据集
我们可以直接从Keras创建项⽬并上传⽬标数据集。我们提供了创建项⽬并⾃动导⼊本教程数据的脚本。我们可以在Keras数据集导⼊脚本中到有关其内容的详细信息。我们可以使⽤此脚本作为创建您⾃⼰的脚本的起点。要导⼊教程的数据,您可以按以下⽅式运⾏脚本:
打开eIQ门户),然后单击“命令⾏”。
转到<eIQ_Toolkit_install_dir>/workspace⽂件夹。
安装tqdm库,并通过键⼊以下内容运⾏CIFAR_uploader脚本:
python -m pip install tqdm
python -m CIFAR_uploader
脚本运⾏完成后,CIFAR-10数据集就准备了。eIQ门户的CIFAR-10数据集保存为cifar10.deepview,并存储在⼯作区⽬录中。
然后我们就可以在eIQ门户中打开cifar10.deepview⼯程。
4.模型选择
eIQ软件界⾯为处理计算机视觉任务提供了两种不同的选项:
·分类:图像分类是指为整个图像分配标签。
·检测:图像检测是指对图像中对象的区域检测和相应标签的分配。
对于这两项任务(检测和分类),您有三个不同的选项,每个选项都专门优化不同的指标:
·性能:⼀个⾮常快的模型,在⼩问题上表现出出⾊的性能。
·平衡:性能和准确性之间的权衡。
·精度:最准确的型号。
此外,eIQ门户有四个⽬标架构需要优化。选择最适合您需求的⽬标:
·NPU(神经处理单元)是针对机器学习算法(主要是神经⽹络)优化的专⽤电路。
·GPU(图形处理单元)在许多嵌⼊式平台上很常见,它们倾向于快速运⾏模型。GPU不如NPU强⼤。它们不⽐专⽤NPU快,但⽐CPU快。
·CPU(中央处理器)
·MCU(微控制器单元)不如其他硬件单元强⼤,但它们体积⼩,通⽤性⼤,可以弥补这⼀点。
5.模型训练
在上⾯选择完我们使⽤的模型后,下⼀步就是训练。当然我们可以⾃定义⾃⼰模型代码,这个后⾯的教程再细讲。
选择模型后,界⾯会显⽰我们可以修改的可能参数,以实现模型在训练数据上的最佳匹配:
·权重初始化:在训练前设置权重的初始值。训练的主要功能是调整模型权重,以实现更⾼的准确性。初始化权重越接近训练后权重,模型变得最佳的速度就越快。默认情况下,初始模型在ImageNet数据集上进⾏训练,以加快训练(基于流⾏的MobileNet模型)。我们还可以从⽂件中选择随机初始化或初始化权重值。
·输⼊⼤⼩:模型的输⼊分辨率。图像会⾃动调整到所选输⼊⼤⼩(如果需要)。增加此值也会增加培训/推理时间。每个选项的前两个数字指的是输⼊图像的⽔平和垂直尺⼨。第三个数字是指输⼊通道的数量。
·学习率:控制每批处理后模型的权重变化程度。当它太低时,模型学习速度⾮常慢,可能会卡在错误的答案上。当它太⾼时,模型可能会改变其权重太多,这可能会阻⽌它学习正确的答案。学习率越低,应该设置的时代就越多。通常,低学习率应该会导致设定更多的时代。
·批处理⼤⼩:设置模型在更新权重之前试图估计/预测的样本数量。对于具有许多⾮常相似图像的数据
集,较⼤的批处理⼤⼩更有可能更快地达到更⾼的准确性。对于较⼩的数据集和图像不同的数据集,较⼩的批处理⼤⼩可能会更快地达到更⾼的准确性。
·训练批数:设置模型在整个训练数据集中经历的次数。通过增加此值,模型权重有更多机会学习要提取的重要特征。当使⽤太多的时代时,训练可能会导致我们的模型过度适合训练数据集。⼀个时代由⼀系列批次组成。此参数通常⽤作训练的停⽌条件。要设置不同的停⽌条件,请向右拖动“⼤纪元到训练”滑块(在这种情况下显⽰⽆限),然后选择所需的停⽌条件。
·启⽤QAT:此选项启⽤了量化时代数量的额外模型量化。此选项仅适⽤于模型分类。
· Alpha:Alpha是⼀个乘数,会影响模型每层中的过滤器数量。
·优化器:优化器是数学公式,当应⽤于权重时,在尽可能少的调整中到最佳权重。以下优化器可⽤:
——随机梯度下降(SGD)isamethodtofindbestweightvectorsinamodel调整⼀个⽅向并查看输出是否有改进。当模型远⾮理想时,SGD擅长快速训练模型。
— Adagrad在计算调整权重的⽅向⽅⾯与SGD相似。它的不同之处在于,在调整权重时,它使⽤之前更改的⼤⼩来确定在下⼀列⽕车步骤中更改该权重的⼤⼩。
— Adadelta是Adagrad的扩展,它只收集固定数量的过去调整,⽽不是全部收集。
在线代码运行器——根意味着正⽅形传播(RMSporp)在计算调整权重的⽅向⽅⾯与SGD相似。它的不同之处在于,它分别处理权重的每个参数。
这有助于防⽌单轴上的振荡。⼏乎所有情况下,RMSprop的表现都优于Adagrad或SGD。
——⾃适应运动估计(Adam)结合了阿达格勒和RMSprop的好处。它积累了过去调整的指数衰减平均值,以评估下⼀次调整。
Adam⽐SGD好,在⼤多数情况下都⽐RMSprop更好。它结合了Adagrad更快的梯度下降和RMSprop的振荡增湿学习率。
——Adamax是使⽤“⽆限规范”的Adam optimizer的⼴义版本。可训练参数越低(模型越简单),这个优化器就越准确。Adam x 在特别⼩的型号上的表现可以超过Adam。在图像分类(模型通常很⼤)⽅⾯,即使模型很⼩,Adam偶尔也会优于Adamax。对于较⼤的型号,Adamax的性能与Adam相似,因此这是⼀个可选的替代⽅案。
——内斯特罗夫加速⾃适应运动估计(Nadam)结合了Adam优化器和内斯特罗夫加速梯度技术。这导致下⼀个调整的计算就好像当前的调整趋势要继续再⾛⼀步。
6.查看训练结果
在训练过程中,eIQ会实时显⽰两个训练指标:
·准确性:当前模型的预测有多准确。
·损失:预测与有真实结果的差距。
我们可以通过分别单击“准确性”和“丢失”按钮在这两个指标之间切换。
将⿏标光标悬停在度量图上时,我们可以在特定时间步查看测试和训练数据集的度量。要缩放指标图表,请输⼊“开始步骤”和“结束步骤”,然后单击“设置范围”按钮。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论