【问题标题】:Softmax Output Layer. Which dimension?Softmax 输出层。哪个维度?
【发布时间】:2021-09-06 01:11:47
【问题描述】:

我有一个关于用于图像分割的神经网络的问题。我正在使用 Deeplab 的 3D 实现,可以在 here

找到

我用的是softmax,所以输出层如下:

elif self.last_activation.lower() == 'softmax':
        output = nn.Softmax()(output)

没有定义维度,所以我想手动定义它。但我不确定我需要设置哪个维度。输出张量的维度如下:

[batch_size, num_classes, width, height, depth]

所以我认为dim=1 是正确的。对吗?

谢谢!

【问题讨论】:

    标签: python neural-network pytorch image-segmentation deeplab


    【解决方案1】:

    确实应该为 1,因为您希望此轴总和为 1。
    如果您需要使用交叉熵损失来训练您的网络,请小心,因为后者已经包含了一个 softmax。

    【讨论】:

    • 嘿!非常感谢您的回答!我确实在用交叉熵损失进行训练,我面临一些困难。您能否向我解释一下我需要注意哪些方面以及如何避免出现问题?谢谢!!
    • 从官方pytorchdocumentation来看,他们的交叉熵损失函数已经包含了logsofmax。所以如果你需要训练你的网络,你应该移除 nn.Softmax 层,否则你将应用 softmax 两次,这会影响输出。
    猜你喜欢
    • 1970-01-01
    • 2019-04-27
    • 1970-01-01
    • 2020-09-29
    • 2017-05-15
    • 1970-01-01
    • 2023-03-15
    • 2018-06-25
    • 1970-01-01
    相关资源
    最近更新 更多