我创建一个细分模型,然后添加了conv输出,如下所示。

 conv38_1 = Conv2D(filters=NUM_CLASSES, kernel_size=3, dilation_rate=(6,6), padding='same', name='fc1_voc12_c0')(relu38_1)
    conv38_2 = Conv2D(filters=NUM_CLASSES, kernel_size=3, dilation_rate=(12,12), padding='same', name='fc1_voc12_c1')(relu38_1)
    conv38_3 = Conv2D(filters=NUM_CLASSES, kernel_size=3, dilation_rate=(18,18), padding='same', name='fc1_voc12_c2')(relu38_1)
    conv38_4 = Conv2D(filters=NUM_CLASSES, kernel_size=3, dilation_rate=(24,24), padding='same', name='fc1_voc12_c3')(relu38_1)

    output   = Add(name='fc1_voc12')([conv38_1, conv38_2, conv38_3, conv38_4])
    output   = Lambda(lambda image: tf.image.resize_images(image, (H,W)))(output)


但是我收到一个奇怪的错误,如下所示:


  ValueError:检查目标时出错:预期lambda_1具有
  形状(321、321、1),但数组的形状为(321、321、2)


为什么第三个形状元素是2?有什么办法可以解决吗?

最佳答案

这(321,321,2)是y_train的形状。

这意味着您正在尝试预测每个图像两个类别/通道。
然后,您的模型还必须输出2个类。

NUM_CLASSES必须为2。

10-06 10:00