生成器在传递验证数据到Keras Sequential的.fit方法时未被识别

具体错误如下:

ValueError: 当传递validation_data时,它必须包含2个项目(x_val, y_val)或3个项目(x_val, y_val, val_sample_weights),然而它包含39个项目

除了源代码之外,我完全找不到这个错误的任何信息。

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

validation_data是一个通过flow_from_directory创建的DirectoryIterator

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

回答:

验证数据和训练数据需要是相同类型,要么都是生成器,要么都是ndarrays。为了解决这个问题,你需要将其中一个转换为另一种类型。参考这个答案,了解如何将生成器转换为ndarray。要将ndarray转换为生成器,请使用ImageDataGenerator.flow()

Related Posts

重用特征来分割回归决策树的节点

在观看关于回归树算法的视频后,我留下了一个小问题:当数…

如何使用GridSearchCV查找最优参数

我在尝试使用GridSearchCV获取最优参数时遇到…

如何设计最优的CNN?

已关闭。 此问题不符合Stack Overflow的指…

AttributeError: ‘SVC’ 对象没有属性 ‘best_estimator_’

已关闭。 此问题因无法重现或由拼写错误引起,目前不接受…

如何处理包含ID列的模型数据集?

我在尝试构建一个NFL选秀前景成功概率的模型时遇到了困…

如何处理重复的文本数据但具有不同的标签或类别?

已关闭。 此问题不符合 Stack Overflow …

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注