具体错误如下:
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()
。