gpt4 book ai didi

python - 将验证数据传递到 Keras Sequential 中的 .fit 时,生成器未被识别

转载 作者:行者123 更新时间:2023-11-30 09:03:46 24 4
gpt4 key购买 nike

具体错误:

ValueError: When passing validation_data, it must contain 2 (x_val, y_val) or 3 (x_val, y_val, val_sample_weights) items, however it contains 39 items

除了源代码之外,我确实无法在任何地方找到该错误。

model.fit(  train_x
, train_y
, epochs=1
, validation_data=validation_data_flow
, callbacks=[checkpointer]
)

validation_data 是一个 DirectoryIterator,由 flow_from_directory 实现

validation_data_flow = ImageDataGenerator().flow_from_directory(
validation_data_dir,
target_size = (img_width, img_height),
batch_size = batch_size,
class_mode = 'categorical')

最佳答案

您必须对相同类型的数据(例如数组或生成器)进行训练和验证并不完全正确,但您不能使用相同的函数来做到这一点。

您可以在数组上进行训练,并在生成器上进行验证,但这将需要 2 个不同的函数调用,并且意味着如果您使用多个时期,您将无法在每个时期后获得验证指标。您可以通过以下方法解决此问题:

for i in range(epochs):
model.fit(train_x, train_y, epochs=1, callbacks=[checkpointer])
loss = model.evaluate_generator(validation_data_flow)

print("Validation loss for epoch %s was %s" % (i, loss))

关于python - 将验证数据传递到 Keras Sequential 中的 .fit 时,生成器未被识别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58093506/

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