模型训练
模型训练一般分为四个步骤:
- 构建数据集。
- 定义神经网络模型。
- 定义超参、损失函数及优化器。
- 输入数据集进行训练与评估。
前面几天依次学习了前面几个步骤的操作,今天继续学习模型训练。
数据集和神经网络模型这个前面已经有详细的介绍。准确的解释请参考官方解释,这里只做个人学习理解记录
训练轮次(epoch):这个根据训练的情况动态调整,次数少了准确率不够,次数过多了可能也浪费算力。
批次大小(batch size):每个batch越大需要的算力越大,前面介绍的MNIST数据集用64,这里先沿用
学习率(learning rate):这个有点类似PID调参,小了收敛慢,大了震荡。
训练时候,每跑一次epoch,都要评估一下准确率看看,以便决定是否还要继续训练。
训练结束后,在用数据去测试模型的效果怎么样。如果有提升继续训练,如果已经开始震荡或者基本没有提升,就可以停下来了,说明基本 已经达到了模型的极限水平,想要继续有提升只能考虑其他的手段诸如更换其他更好的模型或者采用其他得优化器之类。
从下图可以看到,继续增加轮次,准确率基本不在增加。说明这个模型的准确率基本就是97.7%