今天做程序的时候,发现了一个参数batch_size。好奇去查了一下。
什么是batch_size?
batch_size:表示单次传递给程序用以训练的参数个数。比如我们的训练集有10000个数据。这是如果我们设置batch_size=100,那么程序首先会用数据集中的前100个参数,即第1-100个数据来训练模型。当训练完成后更新权重,再使用第101-200的个数据训练,直至第100次使用完训练集中的10000个数据后停止。
为什么设置batch_size?
- 优点:
- 可以减少内存的使用,因为每次只取100个数据,因此训练时所使用的内存量比较少。这对于我们的电脑内存不能满足一次性训练所有数据时十分有效。
- 提高训练的速度,因为每次训练完成后我们都会更新权重值让其更趋近于精确值。所以完成速度更快。
- 劣势
- 使用少量数据训练时可能因为数据量较少而造成训练中的梯度值较大的波动。