Keras,空类别训练

时间:2019-04-04 08:32:00

标签: tensorflow keras categorical-data

也许这是一个幼稚的问题。 我想尝试一个小型实验进行研究:从我在训练和验证中获得的模型中的一个额外的空类别训练模型,并查看该额外类别的预测如何随着样本和时期的数量而下降。 特别是我在熊猫数据框中添加了第五个幻像类别。 我也在使用ImageDataGenerator。

train_datagen = ImageDataGenerator(
    rotation_range=0,
    rescale=1./255,
    shear_range=0.0,
    zoom_range=0.2,
    horizontal_flip=False,
    width_shift_range=0.0,
    height_shift_range=0.0
)


train_generator = train_datagen.flow_from_dataframe(
    train_df, 
    "/mypath/", 
    x_col='filename',
    y_col='category',
    target_size=IMAGE_SIZE,
    class_mode='categorical',
    batch_size=batch_size
)

validation_datagen = ImageDataGenerator(rescale=1./255)
validation_generator = validation_datagen.flow_from_dataframe(
    validate_df, 
    "/mypath/", 
    x_col='filename',
    y_col='category',
    target_size=IMAGE_SIZE,
    class_mode='categorical',
    batch_size=batch_size
)

history = model.fit_generator(
    train_generator, 
    epochs=epochs,
    validation_data=validation_generator,
    validation_steps=total_validate//batch_size,
    steps_per_epoch=total_train//batch_size,
    callbacks=callbacks
)

但是,当我尝试训练CNN时,出现以下错误:

Error when checking target: expected dense_2 to have shape (5,) but got array with shape (4,)

有人可以建议解决方法吗?

0 个答案:

没有答案