【问题标题】:Softmax over time calculation function?Softmax随时间计算功能?
【发布时间】:2018-12-09 08:24:19
【问题描述】:

我有一些代码可以随着时间的推移计算 Softmax,但我无法理解一行。有谁能给我解释一下吗?

    def softmax_over_time(x):
        assert(K.ndim(x) > 2)
        e = K.exp(x - K.max(x, axis=1, keepdims=True))
        s = K.sum(e, axis=1, keepdims=True)
        return e / s

谁能向我解释为什么我们使用“x - K.max(x, axis=1, keepdims=True)”? 我认为true一定是“K.max(x,axis=1,keepdims=True)”?

【问题讨论】:

  • 什么,为什么softmax总是使用最大值?
  • 对不起,我错了!感谢评论

标签: python keras nlp


【解决方案1】:

这是为了防止数据溢出,例如:

如果你的输出是 1000.0,那么计算出来的 exp 就是 inf。

import numpy as np
print(np.exp(1000.0))
inf

如果你的输出是-1000.0,那么计算出来的exp就是0。

import numpy as np
print(np.exp(-1000.0))
0.0

但是如果我们减去一个最大值,就没有问题了。

【讨论】:

    猜你喜欢
    • 2013-07-24
    • 2015-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多