【问题标题】:Train and test split set using ImageDataGenerator and flow使用 ImageDataGenerator 和流训练和测试拆分集
【发布时间】:2020-06-22 01:25:18
【问题描述】:

我正在尝试使用增强创建网络。

首先我使用 ImageDataGenerator 和 validation_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    
)

【问题讨论】:

    标签: keras data-augmentation train-test-split


    【解决方案1】:

    训练数据中的类数不等于验证数据中的类数。如果你没有洗牌,请洗牌。如果您仍然收到错误,我假设某些类的数据非常少。你可以重新洗牌,但有时你会得到同样的错误。您可以做的是,向该特定类添加更多数据或手动拆分为训练和验证。

    对于随机拆分,您可以查看 train_test_split 库。

    【讨论】:

      猜你喜欢
      • 2017-07-15
      • 2017-11-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-11
      • 2018-06-04
      • 2018-04-22
      • 2020-09-12
      • 1970-01-01
      相关资源
      最近更新 更多