在Python中使用3通道输入图像的Unet进行图像分割

2024-05-13 12:44:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用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_生成器运行时,出现以下错误:

ValueError: Error when checking target: expected conv2d_144 to have shape (256, 256, 1) but got array with shape (256, 256, 3)

我能做些什么来解决这个问题?请让我知道什么额外的信息,我可以给

谢谢大家!

PS:我在输出中有三个类,这可能是原因吗


Tags: 代码图像网络noneunetinputsizedef
2条回答

实际上,我已经通过对我的分段掩码进行热编码,并将最后一层的激活函数更改为softmax,使用filtersize来匹配类的数量来修复它

https://github.com/MKeel1ng/MULTI-CHANNEL-UNET

您必须决定是否需要图像的RGB或灰度输入: 将图像转换为灰度或更改conv图层。另一种选择是将256x256x3输入展平为一维,并将其用作输入

相关问题 更多 >