softmax的输出不应该有零,对吗?

时间:2016-08-23 19:56:24

标签: machine-learning tensorflow softmax

我正在使用tensorflow中的网络生成一个向量,然后通过softmax传递,这是我的输出。

现在我一直在测试这个,奇怪的是,矢量(通过softmax的那个)在所有坐标中都有零但只有一个。

基于softmax的指数定义,我认为这不应该发生。这是一个错误吗?

编辑:我的矢量是120x160 = 192000。所有值都是float32

1 个答案:

答案 0 :(得分:4)

这可能不是错误。您还需要查看softmax的输入。这个向量很可能具有非常负值和单个非常正值。这将导致softmax输出向量包含全零和单个值。

您正确地指出,由于指数,softmax分子不应该具有零值。但是,由于浮点精度,分子可能是一个非常小的值,比如exp(-50000),它基本上计算为零。