gpt4 book ai didi

tensorflow - 使用编码器-解码器 CNN 进行语义分割

转载 作者:行者123 更新时间:2023-12-01 01:53:47 25 4
gpt4 key购买 nike

对滥用技术术语表示歉意。
我正在通过 CNN 进行语义分割项目;尝试实现编码器-解码器类型的架构,因此输出与输入的大小相同。

你是如何设计标签的?
应该应用什么损失函数?特别是在类严重不平衡的情况下(但类之间的比例因图像而异)。

该问题涉及两个类(感兴趣的对象和背景)。我正在使用带有 tensorflow 后端的 Keras。

到目前为止,我正在设计与输入图像具有相同尺寸的预期输出,并应用像素标记。模型的最后一层具有 softmax 激活(对于 2 个类)或 sigmoid 激活(以表示像素属于对象类的概率)。我无法为这样的任务设计合适的目标函数,类型如下:

函数(y_pred,y_true),

与 Keras 一致。

请尝试具体说明所涉及的张量的维度(模型的输入/输出)。任何想法和建议都非常感谢。谢谢 !

最佳答案

实际上,当您使用 TensorFlow 时后端你可以简单地应用一个预定义的 Keras以下列方式实现目标:

output = Convolution2D(number_of_classes, # 1 for binary case
filter_height,
filter_width,
activation = "softmax")(input_to_output) # or "sigmoid" for binary
...
model.compile(loss = "categorical_crossentropy", ...) # or "binary_crossentropy" for binary

然后输入一个单热编码的特征图或形状矩阵 (image_height, image_width)使用整数编码类(请记住,在这种情况下,您应该使用 sparse_categorical_crossentropy 作为损失)。

为了处理类(class)不平衡(我猜这是因为背景类(class)),我强烈建议您仔细阅读此 Stack Overflow question 的答案。 .

关于tensorflow - 使用编码器-解码器 CNN 进行语义分割,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42093632/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com