我正在尝试使用增强来建立网络。
首先我将ImageDataGenerator与validate_split = 0.2。一起使用
train_generator = ImageDataGenerator(
rotation_range=90,
zoom_range=0.15,
width_shift_range=0.2,
height_shift_range=0.2,
fill_mode="nearest",
validation_split=0.2
)
然后我尝试创建一个增强的训练数据,而不是创建一个非增强的验证数据。
我必须使用flow
而不是flow_from_directory
。
train_augm = train_generator.flow([data_train, ebv_train], z_train, batch_size=128,subset='training')
valid_augm = train_generator.flow([data_train, ebv_train], z_train, batch_size=1,subset='validation')
我得到这个错误提示。
ValueError: Training and validation subsets have different number of classes after the split. If your numpy arrays are sorted by the label, you might want to shuffle them.
我做错了什么?
model.fit代码是这样的
training_history = model.fit(
train_augm,
steps_per_epoch= len(data_train)//128,
epochs=10,
validation_data=valid_augm
)
答案 0 :(得分:0)
训练数据中的课程数量不等于验证数据中的课程数量。如果您没有洗牌,请洗牌。如果仍然出现错误,我假设某些类的数据量很小。您可以对其进行改组,但有时会遇到相同的错误。您可以做的是,向该特定班级添加更多数据,或手动将其分为训练和验证。
对于随机拆分,您可以查看train_test_split库。