语义分割python教学_如何实现多类语义分割?

我能训练一个U-net有标签的图像有一个二进制分类。

但我很难弄清楚如何在Keras/Theano中为多类分类(4类)配置最后一层。

我有634个图像和相应的634个掩码,它们是unit8和64 x 64像素。

我的遮罩不是黑色(0)和白色(1),而是有3个类别的彩色标记对象和背景,如下所示:黑色(0),背景

红色(1),对象类1

绿色(2),对象类2

黄色(3),对象类3

在训练运行之前,包含掩码的数组是一个热编码数组,如下所示:mask_train = to_categorical(mask_train, 4)

这使得mask_train.shape从(634, 1, 64, 64)变为(2596864, 4)。

我的模型严格遵循Unet架构,但是最后的层似乎有问题,因为我无法将结构展平以匹配一个热编码数组。[...]

up3 = concatenate([UpSampling2D(size=(2, 2))(conv7), conv2], axis=1)

conv8 = Conv2D(128, (3, 3), activation='relu', padding='same')(up3)

conv8 = Conv2D(128, (3, 3), activation='relu', padding='same')(conv8)

up4 = concatenate([UpSampling2D(size=(2, 2))(conv8), conv1], axis=1)

conv9 = Conv2D(64, (3, 3), activation='relu', padding='same')(up4)

conv10 = Conv2D(64, (3, 3), activation='relu', padding='same')(conv9)

# here I used number classes = number of filters and softmax although

# not sure if a dense layer should be here instead

conv11 = Conv2D(4, (1, 1), activation='softmax')(conv10)

model = Model(inputs=[inputs], outputs=[conv11])

# here categorical cross entropy is being used but may not be correct

model.compile(optimizer='sgd', loss='categorical_crossentropy',

metrics=['accuracy'])

return model

你对如何修改模型的最后部分使这列火车成功有什么建议吗?我得到了各种形状不匹配的错误,我成功地运行了几次,损失没有改变整个时代。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值