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

The output of a softmax isn't supposed to have zeros, right?

我在 tensorflow 中的一个网络上工作,它产生一个向量,然后通过一个 softmax,这是我的输出。

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

根据 softmax 的指数定义,我假设这不应该发生。这是一个错误吗?

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

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

您正确地指出,由于指数的缘故,softmax 分子永远不应为零值。但是,由于浮点精度,分子可能是一个非常小的值,例如 exp(-50000),其计算结果基本上为零。