Keras 将model.fit_生成器转换为model.fit
我有以下代码Keras 将model.fit_生成器转换为model.fit,keras,tensorflow2.0,tensorflow2.x,Keras,Tensorflow2.0,Tensorflow2.x,我有以下代码 train_datagen = ImageDataGenerator( rescale=1./255, shear_range=0.2, zoom_range=0.2, horizontal_flip=True) test_datagen = ImageDataGenerator(rescale=1./255) train_generator = train_datagen.flow_from_directory(
train_datagen = ImageDataGenerator(
rescale=1./255,
shear_range=0.2,
zoom_range=0.2,
horizontal_flip=True)
test_datagen = ImageDataGenerator(rescale=1./255)
train_generator = train_datagen.flow_from_directory(
'data/train',
target_size=(150, 150),
batch_size=32,
class_mode='binary')
validation_generator = test_datagen.flow_from_directory(
'data/validation',
target_size=(150, 150),
batch_size=32,
class_mode='binary')
现在,model.fit\u生成器
定义如下:
model.fit_generator(
train_generator,
steps_per_epoch=2000,
epochs=50,
validation_data=validation_generator,
validation_steps=800)
现在不推荐使用
model.fit\u generator
,将model.fit\u generator
更改为model.fit
的正确方法是什么?在这种情况下,您只需将model.fit\u generator()
更改为model.fit()
从TensorFlow 2.1开始,model.fit()
也接受生成器作为输入。就这么简单
根据TensorFlow的官方文件:
警告:此函数已弃用。它将在将来被移除
版本更新说明:请使用Model.fit,其中
支持发电机
旧的
培训=模型。拟合发生器(发生器=序列发生器,每个历元的步骤=2048//36,历元=10,验证数据=验证发生器,验证步骤=832//16)
除掉“发电机”
新的
training=model.fit(train\u generator,steps\u per\u epoch=2048//128,epoch=10,validation\u data=validation\u generator,validation\u steps=832//16)顺便说一句,steps\u per\u epoch=int(steps\u per\u epoch/批量大小)。您的代码对最新版本的TensorFlow(TensorFlow中的Keras)无效。@TimbusCalin这里有什么问题?问题是每个历元的步长应等于划分为批次大小的训练样本数,不是训练样本的总数。这个答案提供了什么,而被接受的答案没有?因为它是陈述式的,而被接受的答案是命令式的