【发布时间】:2023-01-20 03:14:54
【问题描述】:
您好,我正在尝试构建多标签图像分类器,但输入形状有问题。
我的 features.shape 是 (40000, 28, 28, 1)。该图像是照片中要分类的两个字母,范围从 (a-g)。第三个维度 (1) 我手动添加到它,因为根据我的理解,Conv2D 需要一个三维形状。
labels.shape 是 (40000, 2) 并且它是一个数组,其中包含与每张照片关联的两个字母。
这是我的模型:
model = keras.Sequential([
Conv2D(32, 3, padding='same', activation='relu', input_shape=(28, 28, 1)),
MaxPooling2D(),
Conv2D(64, 3, padding='same', activation='relu'),
MaxPooling2D(),
Conv2D(64, 3, padding='same', activation='relu'),
MaxPooling2D(),
Flatten(),
Dense(256, activation='relu'),
Dense(7, activation='sigmoid')
])
model.compile(optimizer='adam',
loss='binary_crossentropy',
metrics=['accuracy'])
当我训练模型时收到错误
ValueError: `logits` and `labels` must have the same shape, received ((None, 7) vs (None, 2)).
我假设我需要以某种方式重塑标签或特征,但我不确定。
我一直在尝试多种不同的输入和更改,但无济于事。感谢您对此问题的任何帮助。
【问题讨论】:
-
你为什么使用
Dense(7, activation='sigmoid')?
标签: python tensorflow neural-network conv-neural-network