当训练深度学习模型时,我发现如果我设置列车并验证(测试)批量大小相同,比如32,64,...,512,则GPU没有得到充分利用。
然后我查看NVIDIA Titan X规格:
为了减少CNN模型的测试时间,我想尽可能增加批量中的样本数量。我试过了:
问题:
如何轻松挑选每批样本数量以充分利用GPU进行深度模型前向操作?
答案 0 :(得分:3)
使用watch nvidia-smi
检查您的进程正在使用多少GPU内存。
仅供参考:
来自Nitish Shirish Keskar,Dheevatsa Mudigere,Jorge Nocedal,Mikhail Smelyanskiy,Ping Tak Peter Tang。论深度训练的大批量训练 学习:泛化差距和夏普极小。 https://arxiv.org/abs/1609.04836:
随机梯度下降法及其变体是许多深度学习任务的首选算法。这些方法 以小批量方式运作,其中一部分是训练 数据,通常是32--512个数据点,被采样以计算a 近似于梯度。 在实践中已经观察到 当使用较大的批次时,其中存在显着的降解 模型的质量,通过其推广能力来衡量。 已经有一些尝试来调查其原因 大批量制度的泛化下降,但精确 这种现象的答案是,前所未有。在本文中,我们 提供充分的数字证据支持这一观点 大批量方法倾向于收敛于锐利的最小化 训练和测试功能 - 而尖锐的最小值导致更差 概括。相比之下,小批量方法始终如一地融合 平坦的最小化器,我们的实验支持一个普遍的观点 这是由于梯度估计中的固有噪声。我们 还讨论了几个帮助大批量的经验策略 方法消除了泛化差距,并以一组结束 未来的研究思路和开放式问题。
[...]
缺乏泛化能力的原因是大批量方法倾向于收敛于尖锐的最小化 培训功能。这些最小化器的特点是大 $ \ nabla ^ 2 f(x)$中的正特征值并且倾向于推广得更少 好。相反,小批量方法会聚到扁平最小化器 以$ \ nabla ^ 2 f(x)$的小的正特征值为特征。我们 已经观察到深度神经网络的损失函数景观 是这样的,大批量的方法几乎总是被吸引 具有尖锐最小值的区域,与小批量方法不同,是 无法逃脱这些最小化者的盆地。
[...]