我是tensorflow的新手,我尝试了解batch
的大小。
我的数据(119396, 12955)
的形状。如何为数据选择最佳的batch_size
?
而batch_size
与数据形状或使用算法有什么依存关系?
答案 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。