【问题标题】:Caffe: What can I do if only a small batch fits into memory?Caffe:如果只有一小部分适合内存,我该怎么办?
【发布时间】:2016-07-31 07:58:19
【问题描述】:

我正在尝试训练一个非常大的模型。因此,我只能将非常小的批量大小放入 GPU 内存中。处理小批量的结果非常noisy gradient estimations
我该怎么做才能避免这个问题?

【问题讨论】:

标签: machine-learning neural-network deep-learning caffe gradient-descent


【解决方案1】:

您可以更改求解器参数中的iter_size。 Caffe 在每个随机梯度下降步骤中累积 iter_size x batch_size 实例上的梯度。 所以在内存有限无法使用大batch_size的情况下,增加iter_size也可以获得更稳定的梯度。

【讨论】:

    【解决方案2】:

    正如this post 中所述,批量大小在理论上不是问题(随机梯度下降的效率已在批量大小为 1 的情况下得到证明)。确保您正确实施批次(样本应在您的数据中随机选取)。

    【讨论】:

    • 确实这是一个很好的理论结果,但在实践中,尤其是当网络很大并且涉及许多参数时,人们可能仍然更喜欢使用更大的批量大小。
    • 你能提供更多关于你的实施的细节吗?参数数量?您可以使用的最大批量大小?
    • 我正在尝试学习一个循环模型:因此,批量大小是我可以展开的时间步数和我可以处理的独立序列数之间的权衡。我包含的时间步长越多,我可以处理的序列就越少,因此梯度估计中的噪声就会增加。
    • 您可能想阅读以下内容:research.microsoft.com/pubs/192769/tricks-2012.pdf.
    猜你喜欢
    • 2019-10-10
    • 2013-06-05
    • 1970-01-01
    • 2011-06-26
    • 2013-09-22
    • 2022-07-25
    • 2013-01-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多