预备内容
经过pytorch(一):torch构建数据集并训练一个神经网络,构建了一个神经网络。其中网络的架构如下:
Layer | Layer (type) | Output Shape |
---|---|---|
0 | (input) | [2, 1, 8, 8] |
1 | Conv2d | [2, 4, 9, 9] |
2 | ReLU | [2, 4, 9, 9] |
3 | MaxPool2d | [4, 4, 4, 4] |
4 | Conv2d | [4, 8, 5, 5] |
5 | ReLU | [4, 8, 5, 5] |
6 | MaxPool2d | [4, 8, 2, 2] |
7 | Linear | [4, 10] |
接下来通过采用不同的学习率进行训练,探索学习率与网络推断精确度的关系。
学习率为1,batch_size=4,epoches=30
学习率为1e-2,batch_size=4,epoches=30
学习率为2e-2,batch_size=4,epoches=30
学习率为3e-3,batch_size=4,epoches=30
学习率为1e-4,batch_size=4,epoches=30
学习率为1e-5,batch_size=4,epoches=30
所以对于这种数据集、这种网络架构和Adam优化方法,1e-4为比较合适数量级的学习率。1e-4学习率进行300个epoches后的结果如下:
由实验结果可知,当学习率为1e-4的时候,训练集和测试集交叉验证的精度相对比较稳定,而且在逐步增长,处于一个比较良好的阶段。此时,损失函数的loss也在逐步趋于稳定,对于此结果接下来可适当增大epochs,以得到更优秀的模型。
经过调整学习率参数后,300个epoches测试集模型精度可以达到92.67%