C ++中的Softmax实现

时间:2018-10-19 17:09:22

标签: c++ math encoding sum softmax

伙计,

有没有针对N个值实现简单softmax函数的示例?我看起来像“基于softmax的检测器”之类的东西,但是我只想看到一个纯净,直接的C ++ softmax实现。

您知道任何示例吗?

谢谢

1 个答案:

答案 0 :(得分:1)

我还没有看到softmax的库实现,尽管不能证明它不存在。很简单,人们可以在需要时编写自己的东西。

为了记录,u1u2u3上的softmax函数只是元组(exp(u1)/Z, exp(u2)/Z, exp(u3)/Z, ...),其中归一化常数Z为只是指数的和Z = exp(u1) + exp(u2) + exp(u3) + ...

请注意,从每个u中添加或减去一个常数会使结果保持不变,因为它等效于上下乘以相同的系数。因此,您可以减去u中的最大值,从而使计算在数值上更加合理。那么最大的项exp(u)将是1,其他所有项都小于该值。