Tensorflow:batch_size取决于什么?

时间:2018-08-09 13:39:07

标签: python tensorflow

我是tensorflow的新手,我尝试了解batch的大小。

我的数据(119396, 12955)的形状。如何为数据选择最佳的batch_size? 而batch_size与数据形状或使用算法有什么依存关系?

1 个答案:

答案 0 :(得分:3)

批处理大小是您一次在模型中引入的输入数据值的数量。培训时非常重要,测试时则非常重要。对于标准的机器学习/深度学习算法,选择批量大小会影响多个方面:

  • batch size越大,模型中一次输入的数据就越多。因此,RAM 内存消耗几乎与 batch size呈线性关系,并且根据系统规格和型号的大小,总会有一个限制。您的模型将溢出。
  • batch size越大,更快,您将遍历数据集 N次以进行训练。
  • 更大的batch size放慢速度您的模型训练速度,这意味着您的模型需要一次更新才能获得一次更新,因为该更新取决于在更多数据上。
  • 更大的batch size将有更多的数据可以平均到下一次更新模型,因此训练应该更平滑:更平滑的训练/测试准确性曲线

请注意,数据大小仅与批处理大小相关,因为数据越大,最大值batch size越小(由RAM设置的限制)。 模型的大小也具有相似的关系。

在实践中,您应该遵循“以2的幂为单位,并且该批次适合您的(GPU)内存,则越大越好”。有关更多详细信息,请检查https://stackoverflow.com/a/46655895/9670056