尝试使用VGG16模型进行训练时出现``检查目标时出错''消息

时间:2019-03-23 10:12:02

标签: python keras transfer-learning

我是学习的初学者, 在这个项目中,我旨在使用VGG16并添加更多层以在class0和class1

两类之间进行分类。

我的数据框名为“ train”,“ id”列包含文件名,而label包含该图像的类

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

总而言之,我的最后一层是Dense(2,activation ='softmax')

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

但是,它一直是错误的:

ValueError:检查目标时出错:densed_55的尺寸为2,但数组的形状为(1、32、32、3)

我的模型摘要:

Here是我的用于培训的Jupyter笔记本。

这里的编码有什么问题吗?

1 个答案:

答案 0 :(得分:0)

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

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