'Error when checking target' 尝试使用 VGG16 模型训练时的消息
'Error when checking target' message when trying to train with VGG16 model
我是迁移学习的初学者,
在这个项目中,我旨在使用 VGG16 并添加更多层以在 2 classes 之间进行 classification:class0 和 class1
我有一个名为 'train' 的数据框,其中 'id' 列包含文件名,而标签包含该图像的 class
图像并通过 ImageDataGenerator() 和 flow.from_dataframe
准备
总结一下,我的最后一层是Dense(2,activation='softmax')
VGG16 的输入图像的形状为 (32,32,3)
但是一直报错:
ValueError:检查目标时出错:预期 dense_55 有 2 个维度,但得到的数组形状为 (1, 32, 32, 3)
我的模型总结:
Here 是我用于训练的 jupyter notebook。
我这里的编码有什么问题?
该错误意味着您的网络输出具有两个维度(如摘要所示,输出形状为 (None, 2)
),但您的标签具有形状 (1, 32, 32, 3)
。
在您的验证数据生成中,您设置了 class_mode="input"
。这意味着您的标签也将是与您的输入形状相同的图像(请参阅文档 https://keras.io/preprocessing/image/#flow_from_dataframe),而不是二维分类标签。这就是问题。使用 class_mode="categorical"
作为训练数据。
我是迁移学习的初学者, 在这个项目中,我旨在使用 VGG16 并添加更多层以在 2 classes 之间进行 classification:class0 和 class1
我有一个名为 'train' 的数据框,其中 'id' 列包含文件名,而标签包含该图像的 class
图像并通过 ImageDataGenerator() 和 flow.from_dataframe
准备总结一下,我的最后一层是Dense(2,activation='softmax')
VGG16 的输入图像的形状为 (32,32,3)
但是一直报错:
ValueError:检查目标时出错:预期 dense_55 有 2 个维度,但得到的数组形状为 (1, 32, 32, 3)
我的模型总结:
Here 是我用于训练的 jupyter notebook。
我这里的编码有什么问题?
该错误意味着您的网络输出具有两个维度(如摘要所示,输出形状为 (None, 2)
),但您的标签具有形状 (1, 32, 32, 3)
。
在您的验证数据生成中,您设置了 class_mode="input"
。这意味着您的标签也将是与您的输入形状相同的图像(请参阅文档 https://keras.io/preprocessing/image/#flow_from_dataframe),而不是二维分类标签。这就是问题。使用 class_mode="categorical"
作为训练数据。