为什么预测需要Keras的批量大小?

mal*_*oro 33 classification neural-network keras

在Keras中,为了预测数据的类,predict_classes()使用了.

例如:

classes = model.predict_classes(X_test, batch_size=32)
Run Code Online (Sandbox Code Playgroud)

我的问题是,我知道batch_size在训练中的用法,但为什么需要batch_size预测呢?它是如何工作的?

Mat*_*gro 31

Keras可以同时预测多个值,就像输入100个元素的向量一样,Keras可以为每个元素计算一个预测,给出100个输出.此计算也可以批量完成,由batch_size定义.

这是为了防止您无法同时将所有数据放入CPU/GPU RAM中,并且需要进行批处理.

  • 然而,预测的张量流文档说:“batch_size:整数或无。每次梯度更新的样本数。” 所以他们确实谈论了他们更新的梯度,这在预测中很奇怪...... (4认同)
  • @malioboro这取决于.例如,如果您使用在预测期间不使用估计值的批量标准化(`mode = 1`执行IIRC),那么批量大小确实会对结果产生影响. (3认同)
  • 对于那些想知道@nemo的注释是指什么的人,请参阅[最新Keras 1]的文档(https://faroit.github.io/keras-docs/1.2.2/layers/normalization/)。从Keras 2发行说明中:“ BatchNormalization的mode参数已删除; BatchNorm现在仅支持模式0” (2认同)
  • 如果要分类为10,000张图像,通过所有图像进行预测并使用batch_size = 10,000最快吗?优化大量图像推断速度的最佳方法是什么? (2认同)