【问题标题】:Multi Label Image Classifier Input Issues多标签图像分类器输入问题
【发布时间】: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


【解决方案1】:

你做得对;问题出在最后一个 Dense 层,因为您正在进行两个标签输出,将最后一层更改为 Dense(2, activation='sigmoid') 而不是 Dense(7, activation='sigmoid')

【讨论】:

    猜你喜欢
    • 2020-03-07
    • 2021-02-07
    • 2019-03-25
    • 2018-12-01
    • 1970-01-01
    • 2021-11-18
    • 1970-01-01
    • 1970-01-01
    • 2020-02-21
    相关资源
    最近更新 更多