我创建一个细分模型,然后添加了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。