【问题标题】:What batch size for neural network?神经网络的批量大小是多少?
【发布时间】:2017-12-29 02:19:04
【问题描述】:

我有一个包含 36 个数据点的训练集。我想在上面训练一个神经网络。我可以选择批量大小,例如 1 或 12 或 36(36 可以除以的每个数字)。

当然,当我增加批量大小时,训练运行时间会大幅减少。

如果我选择例如12 作为批量大小而不是 1?

【问题讨论】:

    标签: machine-learning neural-network deep-learning


    【解决方案1】:

    批量大小没有黄金法则。期间。

    但是。您的数据集非常小,可能批量大小根本无关紧要,您的所有问题都来自缺乏数据,而不是任何超参数。

    【讨论】:

      【解决方案2】:

      我同意 lejlot。鉴于数据量非常小,批量大小不是您当前模型构建的问题。一旦转移到无法放入内存的较大数据,然后尝试不同的批量大小(例如,2 的某些幂,即 32、128、512,...)。

      批量大小的选择取决于:

      1. 您的硬件容量和模型架构。给定足够的内存和将数据从内存传输到 CPU/GPU 的总线容量,更大的批量会导致更快的学习。然而,争论的焦点在于质量是否仍然存在。
      2. 算法及其实现。例如 Keras python 包(基于神经网络算法的 Theano 和 TensorFlow 实现)states

      批次通常近似于输入数据的分布 优于单一输入。批次越大越好 近似;但是,批次也确实需要 处理时间更长,仍然只会导致一次更新。为了 inference (evaluate/predict),建议选择一个batch size 在不耗尽内存的情况下尽可能大(因为 较大的批次通常会导致更快的评估/预测)。

      尝试不同的批量大小后,您会有更好的直觉。如果您的硬件和时间允许,请让机器为您选择正确的批次(循环通过不同的批次大小作为网格搜索的一部分。

      这里有一些不错的答案:onetwo

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-02-01
        • 2012-03-15
        • 2021-02-06
        • 1970-01-01
        • 1970-01-01
        • 2021-02-11
        • 2014-10-10
        • 2016-05-01
        相关资源
        最近更新 更多