我是学习的初学者, 在这个项目中,我旨在使用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笔记本。
这里的编码有什么问题吗?
答案 0 :(得分:0)
该错误表示您的网络输出具有两个维度(如摘要所示,输出形状为(None, 2)
),但标签的形状为(1, 32, 32, 3)
。
在验证数据生成中,您设置了class_mode="input"
。这意味着标签也将是与输入形状相同的图像(请参阅doc https://keras.io/preprocessing/image/#flow_from_dataframe),而不是二维分类标签。这就是问题。使用class_mode="categorical"
作为训练数据。