5

我正在使用 tensorflow 中的网络来生成一个向量,然后将其传递给作为我的输出的 softmax。

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

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

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

4

1 回答 1

6

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

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

于 2016-08-23T20:01:56.487 回答