在模型功能dataset.batch(batch_size)
上用batch_size
批处理数据集和用.fit
参数批处理数据集有什么区别?它们具有相同的功能还是不同?
答案 0 :(得分:1)
在文档中查看fit
中的参数batch_size
:
batch_size
整数或None
。每个梯度更新的样本数。如果未指定,batch_size
将默认为32。如果您的数据是以数据集,生成器或keras.utils.Sequence
实例的形式(因为它们生成批次),则不要指定batch_size
。>
因此,如果要传递数据集对象进行训练,请不要使用batch_size
参数,因为这仅适用于X / Y值为NumPy数组或TensorFlow张量的情况。
答案 1 :(得分:0)
使用dataset.batch()
将数据集对象的连续元素组合成批。例如:
>> dataset = tf.data.Dataset.range(8)
>> dataset = dataset.batch(3)
>> list(dataset.as_numpy_iterator())
[array([0, 1, 2]), array([3, 4, 5]), array([6, 7])]
这将修改您的数据集对象本身。在许多情况下,这可能是不希望的。我建议仅将此功能用于数据集的处理,作为预处理的一个步骤。
此外,将数据集对象与在batch_size
中指定fit
参数相结合将引发错误。
当将numpy数组或张量流张量作为输入传递到batch_size
时,应使用fit
参数。
示例来自官方tensorflow文档,可在下面的链接中找到
。 dataset.batch()
-https://www.tensorflow.org/api_docs/python/tf/data/Dataset#batch