【发布时间】:2021-11-19 10:20:17
【问题描述】:
我是 Keras 的新手,如果这个问题很愚蠢,我很抱歉。
我在这里https://keras.io/examples/vision/deeplabv3_plus/ 找到了用于执行多类语义分割的 deeplabv3+ 模型。 我需要将此代码调整到另一个目的,因为我需要对医学图像执行二进制语义分割。 换成是对的吗
NUM_CLASSES = 20
到 NUM_CLASSES = 1 个?
如果我设置 NUM_CLASSES = 2,我会收到关于 logits 和标签不匹配的错误。
关于损失函数, 代码行是 loss = keras.losses.SparseCategoricalCrossentropy(from_logits=True)
我想改成
损失 = keras.losses.BinaryCrossentropy(from_logits=True)
但损失变为负数。 我应该添加其他内容吗?
谢谢!
编辑:用于多类语义分割的 deeplabv3+ 在最后一层使用 keras.activations.linear(x)。 出于我的目的,我应该使用 softmax 而不是 keras.activations.linear(x) 和 BinaryCrossEntropy 并输入 from_logits=False?
【问题讨论】:
标签: python tensorflow keras image-segmentation