Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Neural network 为什么预测需要Keras中的批量大小?_Neural Network_Classification_Keras - Fatal编程技术网

Neural network 为什么预测需要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个输出。该计算也可以分批进行,由批次大小定义 这只是为了防止您无法同

在Keras中,为了预测数据测试的类,使用
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中很奇怪。。。