在batch_size在fit()和image_dataset_from_directory()有什么不同?



我试图在训练时改变批大小,所以我在循环中运行fit方法并改变批大小,但我们已经在image_dataset_from_directory()中定义了批大小,如果我在这两个函数中放置不同的批大小,是否有一种方法可以控制fit方法中的批大小而不受image_dataset_from_directory()的影响这是我的代码

train_ds = tf.keras.preprocessing.image_dataset_from_directory(
data_dir,
validation_split=0.2,
subset="training",
seed=123,
image_size=(img_height, img_width),
batch_size=batch_size)
model.fit(

train_ds,
validation_data=val_ds,
epochs=epoch,
batch_size=batch_size,
steps_per_epoch=10,
callbacks=call
)

代码取自tensorflow教程

image_dataset_from_directory是一个生成器,因此在model.fit()中指定batch_size将不起任何作用。参见model.fit()的文档:

batch_size整数或无。每次梯度更新的样本数。如果未指定,batch_size将默认为32。如果您的数据是数据集、生成器或keras.utils.Sequence实例(因为它们生成批处理)的形式,则不要指定batch_size。

正如你在刚才提到的例子中看到的,Tensorflow教程没有在model.fit()中指定batch_size:

epochs=10
history = model.fit(
train_ds,
validation_data=val_ds,
epochs=epochs
)

批处理大小将是您在生成器中指定的,model.fit()

中的参数将被忽略。

相关内容

  • 没有找到相关文章

最新更新