【问题标题】:image augmentation went wrong图像增强出错了
【发布时间】:2023-02-08 04:13:13
【问题描述】:

我试图进行图像增强并查看它将如何影响模型,但由于某种原因我收到了这个错误

TypeError: '>' not supported between instances of 'int' and 'ImageDataGenerator'

我正在使用 efficientNetb4 添加我自己的分类器层。

augment = ImageDataGenerator(horizontal_flip=True, vertical_flip=True, rotation_range=30, validation_split=0.15) 
train = augment.flow_from_directory(path, target_size=(380,380), batch_size=35, subset='training')
valid = augment.flow_from_directory(path, target_size=(380,380), batch_size=35, subset='validation')

base_model = keras.applications.EfficientNetB4(weights="imagenet",include_top=False, input_shape=(380, 380,3))

for layer in base_model.layers:
 layer.trainable = False

avg = keras.layers.GlobalAveragePooling2D()(base_model.output)
output = keras.layers.Dense(3, activation="softmax")(avg)

model = keras.Model(inputs=base_model.input, outputs=output)

earlystopping = keras.callbacks.EarlyStopping(monitor='loss', patience=3)
optimizer = keras.optimizers.SGD(learning_rate=0.001, momentum=0.9, decay=0.0001)

model.compile(loss="sparse_categorical_crossentropy",optimizer=optimizer,metrics=["accuracy"])
history = model.fit_generator(train, augment, validation_data=valid, epochs=25, verbose=2, callbacks=[earlystopping])

我认为问题是我指定的 batch_size 但无法理解害羞它导致了这个错误

【问题讨论】:

  • 你的意思是你不会用不同的batch_size得到这个错误?
  • 我尝试了不同的 '[batch_size]' 但同样的错误,我最初的想法是错误来自于 'batch_size' 的值
  • 所以显然情况并非如此。
  • 你在某处比较>吗?
  • model.fit_generator 方法的文档是什么?您将 augment 作为第二个参数传递给它,这是一个 ImageDataGenerator。也许那里需要一个整数?

标签: python-3.x keras deep-learning


【解决方案1】:

请查看 fit_generator (https://faroit.com/keras-docs/1.2.0/models/model/) 的文档:

fit_generator(self, generator, samples_per_epoch, nb_epoch, verbose=1, callbacks=[], validation_data=None, nb_val_samples=None, class_weight={}, max_q_size=10, nb_worker=1, pickle_safe=False, initial_epoch=0)

第二个参数是“samples_per_epoch”,它是 int,但您传递的是 ImageDataGenerator。因此出现错误消息。我不明白你为什么需要在这里传递“增强”。以下应该工作:

history = model.fit_generator(train, validation_data=valid, epochs=25, verbose=2, callbacks=[earlystopping])

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-03
    • 2013-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-05
    相关资源
    最近更新 更多