Python 如何使用支持生成器的Model.fit(在fit\u生成器弃用之后)

Python 如何使用支持生成器的Model.fit(在fit\u生成器弃用之后),python,tensorflow,keras,Python,Tensorflow,Keras,在使用tensorflow中的模型时,我收到了此弃用警告。在tensorflow中安装生成器: WARNING:tensorflow: Model.fit_generator (from tensorflow.python.keras.engine.training) is deprecated and will be removed in a future version. Instructions for updating: Please use Model.fit, which suppo

在使用tensorflow中的
模型时,我收到了此弃用警告。在tensorflow中安装生成器

WARNING:tensorflow: Model.fit_generator (from tensorflow.python.keras.engine.training) is deprecated and will be removed in a future version.
Instructions for updating:
Please use Model.fit, which supports generators.

如何使用
Model.fit
而不是
Model.fit\u generator

Model.fit\u generator
从tensorflow 2.1.0开始被弃用,该版本目前位于rc1中。 您可以在此处找到tf-2.1.0-rc1的文档:

如您所见,
模型的第一个参数。fit
可以接受一个生成器,因此只需将其传递给您的生成器。

如(我的重点部分)中所述:

x:输入数据。可能是

  • Numpy数组(或类似数组)或数组列表(如果模型有多个输入)
  • 张量流张量或张量列表(如果模型有多个输入)
  • 如果 模型已命名输入
  • 一个tf.data数据集。应返回(输入、目标)或(输入、目标、样本权重)的元组
  • 生成器或keras.utils.Sequence返回(输入、目标)或(输入、目标、样本权重)。更详细的描述 迭代器类型(数据集、生成器、序列)的解包行为 下面给出了一个例子
您只需将生成器传递到
Model.fit
,与
Model.fit\u生成器类似

data_gen_train = ImageDataGenerator(rescale=1/255.)

data_gen_valid = ImageDataGenerator(rescale=1/255.)

train_generator = data_gen_train.flow_from_directory(train_dir, target_size=(128,128), batch_size=128, class_mode="binary")

valid_generator = data_gen_valid.flow_from_directory(validation_dir, target_size=(128,128), batch_size=128, class_mode="binary")

model.fit(train_generator, epochs=2, validation_data=valid_generator) 

你的回答不正确,或者,我应该说,只是部分正确。模型中不支持有效的\u生成器。fit@sidk是的。@sidk是的,似乎
fit
param
validation\u data
不支持dataset、generator或keras.utils.Sequence,并且当param
x
是dataset、generator时,不支持
validation\u split
,或keras.utils.Sequence per
fit
info at