在Ilya Sutskever的博客文章A brief overview of Deep Learning中,他描述了选择正确的小批量大小以有效地训练深度神经网络的重要性。他给出了建议“使用在您的计算机上有效运行的较小的微型批处理”。请参阅下面的完整报价。

我已经见过其他知名深度学习研究人员的类似说法,但是我仍然不清楚如何找到正确的最小批量大小。看到更大的小批量可以提高学习速度,似乎需要大量实验才能确定某个小批量的大小是否在训练速度方面产生了更好的性能。

我有一个具有4GB RAM的GPU,并使用库Caffe和Keras。考虑到每个观测值都有一定的内存占用量M,在这种情况下,如何选择一个合适的小批量大小的实用试探法是什么?

最佳答案

在训练网络时,在计算前向通过时,我们必须保留所有中间激活输出以用于后向通过。除了其他内存限制(在GPU上存储权重等)之外,您只需要计算将所有相关激活输出存储在正向传递中将花费多少内存。因此,请注意,如果您的网络很深,则可能要使用较小的批处理大小,因为您可能没有足够的内存。

选择最小批量大小是内存限制和性能/准确性(通常使用交叉验证进行评估)的混合。

我个人手动估计/计算我的前进/后退 channel 将消耗多少GPU内存,并尝试一些值。例如,如果我可以容纳的最大数量大约是128,则可以使用32、64、96等进行交叉验证,以便更深入地了解我是否可以获得更好的性能。这通常是用于插入我的GPU内存更深的网(我也只有4 GB的卡,无法访问怪异的NVIDIA卡)。

我认为倾向于更加强调网络体系结构,行业的优化技术/技巧,数据预处理。

10-06 06:42