AI源码解读:数字图像处理案例(Python版)
上QQ阅读APP看书,第一时间看更新
 AI源码解读.数字图像处理案例:Python版

5.3.3 模型训练及保存

定义一个使用微调的训练函数train_fine_tuning()以便多次调用。创建DataLoader实例,该实例每次读取一个样本数为batch_size的小批量数据。这里的批量大小batch_size是一个超参数。Gluon的DataLoader中一个很方便的功能是允许使用多进程来加速数据读取(暂不支持Windows操作系统)。此外,通过ToTensor实例将图像数据从uint8格式变换成32位浮点数格式,除以255,使得所有像素的数值均在0~1。ToTensor实例还将图像通道从最后一维移到最前一维,方便卷积神经网络计算。通过数据集的transform_first函数,将ToTensor的变换应用在每个数据样本(图像和标签)的第一个元素,即图像之上。

1.模型训练

训练模型中,一个batch_size是在一次前向/后向传播过程用到的训练样例数量,也就是一次用128张图片进行训练,直到所有的图片训练完成,共进行5轮。训练输出结果如图5-6所示。

图5-6 训练输出结果

通过观察训练集和测试集的损失函数、准确率的大小来评估模型的训练程度,进行模型训练的进一步决策。

2.模型保存

mxnet支持将已训练的模型导出成网络和参数分离的json和params文件,方便离线加载进行预测和验证,同时由于mxnet支持Python、C++、Scala等多种编程语言,这一特性使得mxnet可以在生产系统上部署。

相关代码如下:

     finetune_net.export("XYT",4)

模型被保存后,可以被重用,也可以移植到其他环境中使用。