1 问题
Batch_size(批尺寸)首先决定的是下降的方向,是机器学习中一个重要参数,所以本文主要探索不同的batch_size对精度和损失的影响。
2 方法
绘制不同batch_size下的训练和验证精度、损失图,并进行对比来研究其影响。
数据集:我们采用的是MNIST数据集,它由60000个训练图像和10000个测试图像组成。
基础参数配置:
-
训练周期:
100
-
学习率:
0.001
-
优化器:
SGD
这里我选择的batch_size是32、64、128、256,其一是因为有一些理论说GPU对2的幂次的batch_size可以发挥更佳的性能。其二是,一般而言, 8的倍数(比如32,128)能使GPU内部的并行运算效率最高。
将数据存储到文件中。 |
用matplotlib绘制图 |
train_loss | val_loss |
train_acc | val_acc |
从上图中,我们可以得出以下结论,batch_size越大:
训练、验证损失下降的越慢。
收敛到最小验证损失所需的 epoch 越多。
训练、验证精度上升的越慢。
收敛到最大精度所需的 epoch 越多。
3 结语
针对Batch_size对精度和损失的影响研究问题,提出绘制不同batch_size下的精度和损失图,并进行对比的方法,通过曲线对比,就目前来说是较小的批量训练性能更好。本文的方法暂未考虑不同batch_size需要运行的时间等问题,未来可以针对这些方面做进一步研究。