概述
1.Batch_size的使用意义及大小的选择
Batch_size不宜选的太小,太小了容易不收敛,或者需要经过很大的epoch才能收敛;也没必要选的太大,太大的话首先显存受不了,其次可能会因为迭代次数的减少而造成参数修正变的缓慢。
http://blog.csdn.net/ycheng_sjtu/article/details/49804041这篇文章很详细的介绍了Batch_size的使用意义和选择原则,并且进行了试验来比较Batch_size对训练结果的影响情况,非常值得一看。
2.Batch_size有时候明明已经很小了,可显存还是很紧张,还有就是同样的图片大小,同样的Batch_size,为啥有时候显存够用有时候就不够用呢,目前我所知道的可能是如下四个问题:
(1)模型的复杂度,复杂的模型占的内存比简单的模型要大很多,这一点容易被忽略;
(2)电脑可能还在运行其他占显存的任务,使用nvida-smi命令来查看,并关闭它们;
(3)不光train阶段的Batch_size要改,test阶段的Batch_size也要调小,我以前一直以为只改动train的就可以了,too naive;
(4)图片大小,这个好理解
部分参考自Stack Overflow :https://stackoverflow.com/questions/33790366/caffe-check-failed-error-cudasuccess-2-vs-0-out-of-memory
3.如果我们的显卡比较渣,就2G,无法提高Batch_size,有什么办法挽救一下精度:
当batch_size无法提高的时候,可以把solver里面的iter_size调大一些,因为caffe在每个随机梯度下降步骤中通过iter_size*batch_size实现累加梯度。所以增加iter_size也可以得到更稳定的梯度。
摘自Stack Overflow : https://stackoverflow.com/questions/36526959/caffe-what-can-i-do-if-only-a-small-batch-fits-into-memory
最后
以上就是灵巧滑板为你收集整理的深度学习中Batch_size相关问题汇总的全部内容,希望文章能够帮你解决深度学习中Batch_size相关问题汇总所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复