前言:在对神经网络进行训练时,大家经常会遇到一个超参数:batch_size
那么,batch_size究竟是什么,又该如何最优的设置这个值呢?
batch_size个人理解:将所训练的样本数量分为多少个为一组。这个值的大小与梯度下降的效率和结果直接相关。
假设训练样本共m个,你设置batch_size为1,则每个样本都是一个batch_size。
你设置batch_size为m,则所有样本组成这一个batch_size。
1与m也是两个极端。 当设置为m时,此时梯度下降称为批量梯度下降法。你可以理解为神经网络进行梯度下降时从最远的点,每次迭代需要遍历整个训练集。(所以需要很大的显存空间,如果你的样本数据不大,可以选择将batch_size设置为m)
当设置为1时,此时梯度下降称为随机梯度下降法。你可以理解为神经网络进行梯度下降时随机找一个点,每次迭代只处理一个训练数据(所以需要很长的时间来完成训练)
综合上述,选择一个合适大小的 batch_size是很重要的,因为计算机字符都是以2的指数次幂进行存储的,所以设置 batch_size时尽量选择例如 4, 8, 16, 32, 64, 128, 256 等。
假设你设置了256,训练网络时报错如下图
那么:
- 在如下空白处右键点击任务管理器。
- 点击性能
3.查看内存是不是快满了,如果是,可以重启一下电脑重置内存占用。
以上就是我的个人总结,如有错误,欢迎指正。