当前位置: 代码迷 >> 综合 >> mxnet softmaxOutput softmaxActivation softmax_cross_entropy
  详细解决方案

mxnet softmaxOutput softmaxActivation softmax_cross_entropy

热度:14   发布时间:2023-12-15 16:27:03.0

真是晕,搞一堆名字相近的API。真不知道咋想的,你搞出来了新的,麻烦就把旧的废弃掉好不好。。。。

softmax 只是把数值分布变成概率分布
softmax_cross_entropy 才是求loss,得到一个值!

  1. mx.symbol.SoftmaxOutput
    计算交叉熵损失相对于softmax输出的梯度。
    1). 根据网络输出计算softmax输出 (网络输出通过指数计算为核心的softmax函数转成0~1之间的概率分布)
    2). 根据softmax输出和gt label计算交叉熵损失 (基于两种概率分布计算交叉熵损失)
    https://datascience.stackexchange.com/questions/20296/cross-entropy-loss-explanation
    3). 根据交叉熵损失和label计算梯度(梯度等于softmax输出减去gt label)
    推导:http://machinelearningmechanic.com/deep_learning/2019/09/04/cross-entropy-loss-derivative.html

由此可见,计算梯度的话,实际上不用计算交叉熵损失。
所以,上述三步计算其实两步(1、3)就可以了。这就是官网所说的(一开始让人云里雾里):https://mxnet.apache.org/versions/1.6/api/r/docs/api/mx.symbol.SoftmaxOutput.html

  1. mx.symbol.SoftmaxActivation
    将softmax激活应用于输入。适用于隐层。已被弃用,请使用softmax。

  2. mx.symbol.softmax_cross_entropy
    计算softmax输出和一个独热标签的交叉熵。

  相关解决方案