Tensorflow:batch_size 取决于什么?

Pet*_*rov 3 python tensorflow

我是 tensorflow 的新手,我试图了解应该是什么大小batch

我的数据的形状(119396, 12955)。我怎样才能最好batch_size地选择我的数据?什么依赖batch_size于数据形状或使用算法?

iba*_*ond 6

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

  • 越大batch size,您将在模型中一次提供的数据越多。因此,RAM内存消耗几乎与 成线性关系 batch size,并且始终存在基于您的系统规格和模型大小的限制,超过该限制您的模型将溢出。
  • 越大batch size,您将在数据集上循环N 次以执行训练的速度越快
  • 更大的batch size减慢您的模型训练速度,这意味着您的模型需要更长时间才能获得一次更新,因为该更新取决于更多数据。
  • 更大的batch size将有更多的数据平均到模型的下一次更新,因此训练应该更平滑:更平滑的训练/测试准确度曲线

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

在实践中,您应该遵循“2 的幂,越大越好,前提是该批次适合您的 (GPU) 内存”。有关更深入的详细信息,请查看/sf/answers/3265912681/