预备内容

经过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

Pytorch(三):参数学习率的调整

Pytorch(三):参数学习率的调整

学习率为1e-2,batch_size=4,epoches=30

Pytorch(三):参数学习率的调整

Pytorch(三):参数学习率的调整

学习率为2e-2,batch_size=4,epoches=30

Pytorch(三):参数学习率的调整

Pytorch(三):参数学习率的调整

学习率为3e-3,batch_size=4,epoches=30

Pytorch(三):参数学习率的调整

Pytorch(三):参数学习率的调整

学习率为1e-4,batch_size=4,epoches=30

Pytorch(三):参数学习率的调整

Pytorch(三):参数学习率的调整

学习率为1e-5,batch_size=4,epoches=30

Pytorch(三):参数学习率的调整

Pytorch(三):参数学习率的调整

所以对于这种数据集、这种网络架构和Adam优化方法,1e-4为比较合适数量级的学习率。1e-4学习率进行300个epoches后的结果如下:

Pytorch(三):参数学习率的调整

Pytorch(三):参数学习率的调整

由实验结果可知,当学习率为1e-4的时候,训练集和测试集交叉验证的精度相对比较稳定,而且在逐步增长,处于一个比较良好的阶段。此时,损失函数的loss也在逐步趋于稳定,对于此结果接下来可适当增大epochs,以得到更优秀的模型。

经过调整学习率参数后,300个epoches测试集模型精度可以达到92.67%

 

 

 

 

相关文章: