0

我是迁移学习的初学者,在这个项目中,我的目标是使用 VGG16 并添加更多层来在 2 个类之间进行分类:class0 和 class1

我有名为“train”的数据框,其中“id”列包含文件名,而标签包含该图像的类

图像并通过 ImageDataGenerator() 和 flow.from_dataframe 准备

总结一下,我的最后一层是 Dense(2,activation='softmax')

VGG16 的输入图像的形状为 (32,32,3)

但是,它一直是错误的:

ValueError:检查目标时出错:预期dense_55有2维,但得到的数组形状为(1、32、32、3)

我的模型总结:

是我用于训练的 jupyter 笔记本。

我在这里的编码有什么问题?

4

1 回答 1

0

该错误意味着您的网络输出具有两个维度(如摘要所示,输出形状为(None, 2)),但您的标签具有 shape (1, 32, 32, 3)

在您的验证数据生成中,您设置class_mode="input". 这意味着您的标签也将是与您的输入形状相同的图像(请参阅文档https://keras.io/preprocessing/image/#flow_from_dataframe),而不是二维分类标签。这就是问题。与您用于class_mode="categorical"训练数据的方式相同。

于 2019-03-23T19:32:47.947 回答