gpt4 book ai didi

python-3.x - 值错误: Output of generator should be a tuple `(x, y, sample_weight)` or `(x, y)` while using Fit_generator

转载 作者:行者123 更新时间:2023-11-30 09:14:18 25 4
gpt4 key购买 nike

我一直在尝试使用一组训练和验证图像来教授模型,但我一直遇到标题错误(我将在下面发布完整的错误)。Alittle 不知道如何继续下去,之前提出的有关该主题的问题没有产生结果。我的代码片段是:

train_datagen = ImageDataGenerator(
preprocessing_function=preprocess_input,
rotation_range=90,
horizontal_flip=True,
vertical_flip=True,
)

val_datagen = ImageDataGenerator(
preprocessing_function=preprocess_input,
rotation_range=90,
horizontal_flip=True,
vertical_flip=True,
)

train_generator = train_datagen.flow_from_directory(VAL_DIR,
target_size=(HEIGHT, WIDTH),
batch_size=TRAIN_BATCH_SIZE,
class_mode=None,
shuffle=True)
val_generator = val_datagen.flow_from_directory(TRAIN_DIR,
target_size=(HEIGHT, WIDTH),
batch_size=VAL_BATCH_SIZE,
class_mode=None,
shuffle=True)

然后我尝试使用以下方法来教授模型:

history = finetune_model.fit_generator(train_generator,epochs=NUM_EPOCHS, workers=8,
steps_per_epoch=num_train_images // TRAIN_BATCH_SIZE,
validation_data=val_generator,
validation_steps=num_val_images // VAL_BATCH_SIZE,
shuffle=True, callbacks=callbacks_list)

我得到的错误是:

ValueError: Output of generator should be a tuple `(x, y, sample_weight)` or `(x, y)`. Found: [[[[-5.30867195e+01 -6.81702271e+01  2.66113968e+01]
[-5.04675522e+01 -6.62993927e+01 2.90434952e+01]
[-4.78483849e+01 -6.44285583e+01 3.14755783e+01]
...

我想要一些方向,因为我是一名机器学习入门学生。很乐意提供更多信息。使用的图像为 jpeg 格式。我能做些什么 ?似乎找不到问题。

最佳答案

修复错误:

Per the documentation ,指定 class_mode=None 给出一个生成器,仅生成批量图像数据,没有目标(旨在与 model.predict_generator() 一起使用)。

fit_generator needs a generator产生(输入,目标)对。因此,您无法将模型适合您现在使用的生成器,因为这些生成器没有说明模型应该适合的目标。您需要弄清楚您的标签是什么,然后选择适当的class_mode,以便数据生成器包含这些标签。

确保错误已修复:

选择正确的class_mode后,您可以通过打印/可视化批处理1来对数据生成器进行健全性检查:

Demonstration of visualizing a batch

在此示例中,我正在进行多类(兔子、猫、狗)分类,因此默认的 class_mode=categorical 可以正常工作。

获取批处理的图像和标签后,该批处理中的第一个图像是一只狗,该批处理的第一个标签是 [0, 0, 1] (>第二位置,从零开始计数),而class_indices字典表示狗图像具有标签2(从零开始计数)。

1。一般来说,最好始终仔细检查此处的数据,即使数据生成器似乎正在工作;请参阅this post ,在“在网前可视化”下。

关于python-3.x - 值错误: Output of generator should be a tuple `(x, y, sample_weight)` or `(x, y)` while using Fit_generator,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59228675/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com