代码之家  ›  专栏  ›  技术社区  ›  Petr Petrov

Tensorflow:批量大小取决于什么?

  •  0
  • Petr Petrov  · 技术社区  · 6 年前

    我对tensorflow有新的认识,我试着了解应该是什么尺寸 batch .

    我的数据形状 (119396, 12955) . 我怎样才能选择最好的 batch_size 我的数据? 什么依赖 批量大小 从数据形状还是使用算法?

    1 回复  |  直到 6 年前
        1
  •  3
  •   ibarrond    6 年前

    批处理大小是您在模型中同时引入的输入数据值的数目。它在训练时非常重要,而在测试时则是次要的。对于标准机器学习/深度学习算法,选择批大小将对以下几个方面产生影响:

    • 越大的 batch size ,则在模型中一次提供的数据越多。因此,拉姆 内存消耗 就快到了 与线性 批量大小 ,并且总会有一个基于系统规格和模型大小的限制,超过该限制,模型将溢出。
    • 越大的 批量大小 ,和 更快 你会 在数据集上循环 N次进行训练。
    • 更大的 批量大小 减速 你的模特 训练速度 ,这意味着您的模型需要更长的时间才能获得单个更新,因为该更新依赖于更多数据。
    • 更大的 批量大小 在下一次模型更新时将有更多的平均数据,因此培训应更为顺利: 更平滑的训练/测试精度曲线 .

    请注意 数据大小 只与批大小有关,即数据越大,最大值越小。 批量大小 变成(由RAM设置的限制)。这个 模型的大小 也有类似的关系。

    在实践中,您应该遵循“2次方,越大越好,前提是批处理适合您的(GPU)内存”。有关详细信息,请查看 https://stackoverflow.com/a/46655895/9670056 .