本文主要是介绍【神经网络】超参数 批大小batchsize 的理解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
batchsize:一次训练的样本数目
对于图片数据,一般输入的数据格式为 (样本数,图片长,图片宽,通道数),样本数也就是批大小。
我对批大小的疑问在于:一个批次的数据前向传播后只得到一个cost/loss值, 它是由所有样本计算loss再求平均得到。那么一批中的图片都是不一样的,求的loss也不一样梯度也不一样,但是在神经网络中每一层都是只用一个梯度去更新,这样合理吗。
合理。因为求和求平均,对于单个图像可能不是最好的收敛,但是对于整体是最好的,而我们的神经网络的目的就是对整体、对所有数据表现良好。
当然,批大小也不是越大越好,需要正道内存效率和内存容量之间的最佳平衡。
增大批大小,处理速度会加快,训练的振动幅度减小,更容易收敛,同时所需的内存容量增加。
批大小太小会难以收敛(容易理解,不同数据之间差异可能比较大,批次太小的话,适合了这个批次却不适合下一个批次,所以一直震荡难以收敛)
这篇关于【神经网络】超参数 批大小batchsize 的理解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!