fit_generator() 缺少 1 个必需的位置参数:“生成器”

Posted

技术标签:

【中文标题】fit_generator() 缺少 1 个必需的位置参数:“生成器”【英文标题】:fit_generator() missing 1 required positional argument: 'generator' 【发布时间】:2021-09-19 00:32:03 【问题描述】:

需要帮助来解决这个问题。我不确定出了什么问题,但错误仍然存​​在。环顾四周,但找不到类似的问题。


import matplotlib.pyplot as plt
from PIL import Image
import os
import numpy as np
from skimage import io
from keras.preprocessing.image import ImageDataGenerator
from matplotlib import cm
from mpl_toolkits.axes_grid1 import ImageGrid
import math
%matplotlib inline
import keras
import tensorflow as tf
from keras.models import Model

batch_size=32
datagen_args = dict(rotation_range=20,
    width_shift_range=0.2,
    height_shift_range=0.2,
                   rescale=1./255)
datagen = ImageDataGenerator(**datagen_args)
train_datagenerator = datagen.flow_from_directory('/content/drive/MyDrive/cats_dogs_small/train',target_size=(128,128),
                                            batch_size=batch_size,interpolation="lanczos",shuffle=True)
valid_datagenerator = datagen.flow_from_directory('/content/drive/MyDrive/cats_dogs_small/validation',target_size=(128,128),
                                            batch_size=batch_size,interpolation="lanczos",shuffle=True)

epochs = 25
hist = Model.fit_generator(train_datagenerator, 
                           steps_per_epoch= math.ceil(train_datagenerator.samples//batch_size),
                           epochs=epochs, validation_data=valid_datagenerator, validation_steps=math.ceil(valid_datagenerator.samples//batch_size),verbose = 1, workers=8)

错误信息如下:

TypeError                                 Traceback (most recent call last)
<ipython-input-69-178574fd407f> in <module>()
      2 hist = Model.fit_generator(train_datagenerator, 
      3                            steps_per_epoch= math.ceil(train_datagenerator.samples//batch_size),
----> 4                            epochs=epochs, validation_data=valid_datagenerator, validation_steps=math.ceil(valid_datagenerator.samples//batch_size),verbose = 1, workers=8)

TypeError: fit_generator() missing 1 required positional argument: 'generator'

【问题讨论】:

Model 是一个类,你的模型保存在哪个变量中? 您说您需要帮助,但随后忽略了人们对您问题的澄清?在您定义模型在此代码中的位置之前,这是无法真正回答的。 抱歉,回复晚了!我昨天才设法再次尝试。我现在已经想通了。谢谢! 【参考方案1】:

fit 生成器已折旧,只需使用 model.fit。请注意,您使用了 Model.fit_generator。您应该使用 model.fit。

【讨论】:

作者使用的是 keras,而不是 tf.keras,弃用在这里无关紧要,因为这不是实际问题。 fit_generator 仅在 tf.keras 中被弃用【参考方案2】:

我意识到我没有定义什么是模型。添加图层,编译并再次尝试,这次它可以工作。我是新手,还有很多东西要学!

【讨论】:

以上是关于fit_generator() 缺少 1 个必需的位置参数:“生成器”的主要内容,如果未能解决你的问题,请参考以下文章

缺少 1 个必需的位置参数:'queryset'

TypeError:缺少 1 个必需的位置参数:'self'

类型错误:parse() 缺少 1 个必需的位置参数:'stream'

TypeError:AuthMiddlewareStack() 缺少 1 个必需的位置参数:'inner'

类型错误:预测()缺少 1 个必需的位置参数:'params'

addChild() 缺少 1 个必需的位置参数:'pk