如何确定测试批量大小以充分利用NVIDIA Titan X.

时间:2016-10-01 13:30:49

标签: deep-learning nvidia nvidia-titan

当训练深度学习模型时,我发现如果我设置列车并验证(测试)批量大小相同,比如32,64,...,512,则GPU没有得到充分利用。

然后我查看NVIDIA Titan X规格:

  1. NVIDIACUDA®核心:3584
  2. 内存:12 GB GDDR5X
  3. 为了减少CNN模型的测试时间,我想尽可能增加批量中的样本数量。我试过了:

    • 每批次设定样本数为3584,cuda出于记忆错误。
    • 将每批样品数量设置为2048,cuda出于记忆错误。
    • 将每批样本数设置为1024,有效。但我不确定GPU是否得到充分利用。

    问题:

    如何轻松挑选每批样本数量以充分利用GPU进行深度模型前向操作?

1 个答案:

答案 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)$的小的正特征值为特征。我们     已经观察到深度神经网络的损失函数景观     是这样的,大批量的方法几乎总是被吸引     具有尖锐最小值的区域,与小批量方法不同,是     无法逃脱这些最小化者的盆地。

         

[...]

         

enter image description here