前言
每一次的epoch都是将其数据集经过神经网络,进行正向传播以及反向传播。由于epoch训练的数据集可能过大,需要将其分块,对应设置batchsize的尺寸个数。
训练数据的时候,batchsize的大小会影响精确度以及训练的时长问题等
batchsize大小的选择,介于1到数据总量之间,选择过大或者过小都会出现极端。过小可能出现欠拟合,过大可能出现过拟合,具体选择多少的batchsize根据网络以及数据集来决定
1. batchsize定义
batchsize的大小决定梯度下降的方向和大小
更新权重的通过每次epoch的训练,batchsize设置为1的时候只用1个样本更新参数,batchsize设置为2的时候只用2个样本更新参数。权重的更新影响梯度下降的方向和大小。
2. batchsize大小
过拟合:
3. batchsize平衡
神经网络训练数据的时候一般选择合适的batchsize,大的batchsize可以提高稳定性,梯度下降的时候可以更加稳定,不过不是极端的大,要适合自身的网络模型还有数据量
选择合适的batchsize下降方向比较准确,训练引起的波动较小,整体的下降方向通过微调即可
选择合适的batchsize的优点:
- 提高内存利用率,gpu运行最大化
- 梯度下降方向以及大小更加准确