【发布时间】:2020-09-30 22:38:52
【问题描述】:
我使用unet 进行图像分割,使用herein 概述的代码。
我的输入图像是 256x256x3。而对应的分割掩码为256x256。
我已将输入的大小更改为 Unet:
def unet(pretrained_weights = None,input_size = (256,256,3)):
得到一个输出层为 256x256x1 的网络
conv2d_144 (Conv2D) (None, 256, 256, 1) 2 conv2d_143[0][0]
查看完整架构here。
当我尝试使用 .fit_generator 运行时,出现以下错误:
ValueError: Error when checking target: expected conv2d_144 to have shape (256, 256, 1) but got array with shape (256, 256, 3)
我能做些什么来解决这个问题?请让我知道我可以提供哪些额外信息!
谢谢!
PS:我的输出中有三个类,这可能是原因吗?
【问题讨论】:
-
您能否将您传递的内容作为输入和预期输出加入模型?
-
我认为问题出在您的真实图像上,因为您的模型似乎输出的是 1 波段图像;您应该检查预期的标签图像是否是 3 波段图像,一些包读取具有 3 波段的灰度图像,即使它们可能是 1 波段。
-
@R0bots 将最后一层的尺寸从
conv10 = Conv2D(1, 1, activation = 'sigmoid')(conv9)更改为conv10 = Conv2D(3, 1, activation = 'sigmoid')(conv9),这样你就有了 256x256x3 的输出
标签: python keras image-segmentation unity3d-unet