ZHCACO4 may 2023 AM62A3 , AM62A3-Q1 , AM62A7 , AM62A7-Q1 , AM68A , AM69A
选择模型架构并创建数据集后,下一步是在新数据集上重新训练模型。
TI 提供了一整套易于使用的模型训练和编译工具。任何训练框架都可用于训练深度学习模型,只要它仅包含器件加速器所支持的层即可。专家可能希望使用他们更熟悉的工具,例如使用 PyTorch 进行训练以及导出到 ONNX 进行编译。经验较少的用户可以使用 TI 的工具,如模型编写器和 edgeai-modelmaker。此处介绍的步骤使用 edgeai-modelmaker。使用 TI 工具的一个优势是,可以在训练结束时自动处理编译,这样可以完全跳过节 5。
Edgeai-modelmaker 一旦设置/安装完毕,即会使用单独的训练框架(如 edgeai-mmdetection)进行训练。这从经过预先训练的模型开始,并通过重置网络的最后一层和使用低学习速率,通过迁移学习进行微调。对于 Model Zoo 中支持的模型,这会下载经过预先训练的权重。请注意,使用此过程时,最后一层之前的层不会 冻结,并且在训练期间会发生变化。
训练模型的步骤如下;请参考 modelmaker 自述文件获得最新的说明:
如果训练机器上存在 GPU,强烈建议将其配置用于训练,因为它可以大幅提高速度。在配置中,重要的是确保 CUDA 版本与编译 Pytorch/torchvision 时使用的版本一致。撰写本文时随 modelmaker 一起提供的是 CUDA 11.3。正确设置这些驱动程序可能是一个棘手问题,因为 CUDA 版本与 NVIDIA 显示/图形驱动程序之间存在某种关系。
如果数据集相当小(少于 10000 张图像),可以从一个网络开始,该网络在大型通用数据集(如用于图像分类的 imagenet1k 或用于对象检测的 COCO)上经过预先训练。较大网络的参数数量增加,因此通常需要更多样本用于训练
对于包含大约 2500 张图像的食品识别数据集(在训练集和测试集分割并增强之后),在具有 12 核 CPU、16GB RAM 和 SSD 的 A2000 GPU (6GB VRAM) 上进行训练大约需要 1.5 小时,共进行 30 个 epoch 的训练。该数据集的平均精度均值(mAP;一个常用的对象检测精度指标)得分达到 0.68,非常高。这源于两个事实:
未针对零售扫描仪模型执行最终测试集的完整评估。相反,在进入下一阶段之前进行了目视检查,确定模型的表现相当好。通过改变 epoch 数量、增强程度和增强种类,进行了多次训练迭代。