1 问题
在深度学习的学习过程中,模型性能对batchsize虽然没有学习率那么敏感,但是在进一步提升模型性能时,batch_size就会成为一个非常关键的参数。
batch_size对精度和损失的影响研究。
batch_size = [,32,64,128,256]
- 不同batch_size下的训练精度曲线;
- 不同batch_size下的训练Loss曲线;
- 不同batch_size下的验证精度曲线;
- 不同batch_size下的验证Loss曲线;
基础参数配置:
- 训练周期=40
- 学习率=0.001
- 优化器= SGD
2 方法
在此之前,我们已经实现了全网络连接MNIST手写数字模型建立,一些参数对模型的精确度和损失产生影响,例如,学习率(learn_rate)、batch_size等。
针对batch_size对模型的影响,将定义一个方法,把batch_size = [32,64,128,256]
数据可视化,使用matplotlib绘制
Batchsize=32
Batchsize=64
Batchsize=128
Batchsize=256
数据可视化,使用matplotlib绘制四个子图,关键代码如下:
结果如下:
3 结语
batch_size取值32训练和取64和128训练,trainvall的loss下降趋势32>64>128>256,最终结果也是32>64>128>256差不多,train vall的acc,的最终结果32=64>128>256,其中64的trainacc最先大于vallacc,可能是实验偶然的结果,对于只有十个的分类,可以将batch调到32附近,这样可以提高精度,降低训练时长。