Keras 使用ImageDataGenerator和flow对分割集进行训练和测试
我正试图用增强技术建立一个网络 首先,我使用带有验证的ImageDataGenerator\u split=0.2Keras 使用ImageDataGenerator和flow对分割集进行训练和测试,keras,data-augmentation,train-test-split,Keras,Data Augmentation,Train Test Split,我正试图用增强技术建立一个网络 首先,我使用带有验证的ImageDataGenerator\u 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
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\u
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
)
培训数据中的类数不等于验证数据中的类数。如果你没有洗牌,请洗牌。如果仍然出现错误,我假设类中的某些部分包含非常少量的数据。您可以重新调整它,但有时会出现相同的错误。您可以做的是,将更多数据添加到该特定类中,或者手动拆分为培训和验证 对于随机拆分,您可以查看train_test_拆分库