tf.nn.sparse_softmax_cross_entropy_with_logits - 张量流中没有一个热编码的标签

问题描述 投票:0回答:1

我想了解tf.nn.sparse_softmax_cross_entropy_with_logits是如何工作的。

说明说:

    A common use case is to have logits of shape [batch_size, num_classes]
 and labels of shape [batch_size]. But higher dimensions are supported.

所以它表明我们可以以原始形式喂养标签,例如[1,2,3]

现在,由于所有计算都是按批次完成的,我相信以下内容是可行的:

在所有情况下,我们假设批次的大小等于2。

案例1(一批):logit:

0.4 0.2 0.4
0.3 0.3 0.4

相应标签:

2
3

我猜测标签可能被编码为

[1 0 0]
[0 1 0] 

案例2(另一批):logit:

0.4 0.2 0.4
0.3 0.3 0.4

相应标签:

1
2

我猜测标签可能被编码为(我没有看到什么阻止我们编码,除非张量流跟踪它之前编码的方式)

[1 0 0]
[0 1 0] 

所以我们有两种不同的编码。假设tensorflow在批处理之间保持编码一致是否安全?

tensorflow softmax one-hot-encoding
1个回答
3
投票

没有真正的编码发生。标签只是1在相应的单热矢量中的位置:

0 -> [1, 0, 0]
1 -> [0, 1, 0]
2 -> [0, 0, 1]

这种“编码”将在每批中使用。

© www.soinside.com 2019 - 2024. All rights reserved.