Neural network 为什么预测需要Keras中的批量大小?
在Keras中,为了预测数据测试的类,使用Neural network 为什么预测需要Keras中的批量大小?,neural-network,classification,keras,Neural Network,Classification,Keras,在Keras中,为了预测数据测试的类,使用predict\u classes() 例如: classes = model.predict_classes(X_test, batch_size=32) 我的问题是,我知道batch\u size在培训中的用法,但为什么需要batch\u size进行预测?它是如何工作的?Keras可以同时预测多个值,就像输入100个元素的向量一样,Keras可以为每个元素计算一个预测,给出100个输出。该计算也可以分批进行,由批次大小定义 这只是为了防止您无法同
predict\u classes()
例如:
classes = model.predict_classes(X_test, batch_size=32)
我的问题是,我知道
batch\u size
在培训中的用法,但为什么需要batch\u size
进行预测?它是如何工作的?Keras可以同时预测多个值,就像输入100个元素的向量一样,Keras可以为每个元素计算一个预测,给出100个输出。该计算也可以分批进行,由批次大小定义
这只是为了防止您无法同时将所有数据放入CPU/GPU RAM,并且需要批处理。原因是相同的,为什么您需要批大小进行培训,因为您无法将所有数据放入一个批中 类似地,如果您有数百万个数据点要预测,很明显,您将无法一次性通过(单个批次) 毕竟,训练和预测都可以向前传递批处理数据
因此,您需要批大小来控制/限制单个批中的数据点,并将其分布到多个预测批中。ooh,我明白了,所以
batch\u size
是确定适合CPU/GPU RAM的数据大小,因此,模型的准确性不应取决于预测类
的批量大小
值,对吗?@malioboro,这取决于。例如,如果在预测过程中使用不使用估计值的批次标准化(mode=1
是否使用IIRC),那么批次大小确实会对结果产生影响。对于那些想知道@nemo的评论指的是什么的人,请参阅的文档。在Keras 2发行说明中:“BatchNormalization的mode参数已被删除;BatchNorm现在只支持mode 0”如果我想对10000张图像进行分类,那么传递所有图像以预测并使用batch_size=10000是否最快?优化大量图像推断速度的最佳方法是什么?然而,predict的tensorflow文档说:“批量大小:整数或无。每次梯度更新的样本数。”所以他们确实谈论他们更新的梯度,这在predict中很奇怪。。。