Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Tensorflow “稀疏”的含义;稀疏交叉熵损失;?_Tensorflow_Keras_Cross Entropy - Fatal编程技术网

Tensorflow “稀疏”的含义;稀疏交叉熵损失;?

Tensorflow “稀疏”的含义;稀疏交叉熵损失;?,tensorflow,keras,cross-entropy,Tensorflow,Keras,Cross Entropy,我从文件中看到: 计算标签和预测之间的交叉熵损失 当有两个或多个标签时,使用此交叉熵损失函数 上课。我们希望标签以整数形式提供。如果你想 使用一个热的表示提供标签,请使用 分类交叉熵损失。应该有#类浮点数 y_pred的每个特征值和每个特征的单个浮点值 y\u true的功能 为什么称之为稀疏范畴交叉熵?如果有什么不同的话,我们提供了一种更为紧凑的类标签编码(整数与一个热向量)。Keras开发人员可能最能回答为什么这样称呼它。但是,请注意,此稀疏交叉熵仅适用于“稀疏标签”,其中只有一个值为1,所

我从文件中看到:

计算标签和预测之间的交叉熵损失

当有两个或多个标签时,使用此交叉熵损失函数 上课。我们希望标签以整数形式提供。如果你想 使用一个热的表示提供标签,请使用
分类交叉熵
损失。应该有#类浮点数
y_pred
的每个特征值和每个特征的单个浮点值
y\u true
的功能


为什么称之为稀疏范畴交叉熵?如果有什么不同的话,我们提供了一种更为紧凑的类标签编码(整数与一个热向量)。

Keras开发人员可能最能回答为什么这样称呼它。但是,请注意,此稀疏交叉熵仅适用于“稀疏标签”,其中只有一个值为1,所有其他值均为0(如果标签表示为向量而不仅仅是索引)


另一方面,通用的分类交叉熵也适用于非一个热点的目标,即任何概率分布。这些值只需要介于0和1之间,并求和为1。这一点很容易被忘记,因为一个热目标的用例在当前的ML应用程序中非常常见。

我认为这是因为整数编码比一个热编码更紧凑,因此更适合于编码稀疏的二进制数据。换句话说,整数编码=稀疏二进制数据的更好编码


当您有许多可能的标签(和示例)时,这非常方便,在这种情况下,每个示例中一个热编码可能比一个简单的整数浪费得多。

它从整数(紧凑)切换到一个热(稀疏)@Marccerliani实际上相反,因此我感到困惑。稀疏版本将真标签作为整数,而非稀疏版本将真标签作为热编码向量。是的…这只是名称的问题。。。我想你理解这个概念。你想要一个实际的例子吗?谢谢,但我很困惑,从我收集的信息来看,两个版本都只接受一组分类选择,要么是一个热编码的,要么是整数。这对我来说是有意义的,因为它们毕竟是绝对的交叉熵。然而,你是说,事实上,
CategoricalCrossEntropy
损失函数接受真正标签参数的具有真正正值的向量吗?是的,它测量两个分类概率分布之间的交叉熵。这种分布将概率分配给一组离散的类别,但概率可以在0到1之间——它们不一定是0到1。因此,
标签
可以是任何分类概率分布(就像预测通常是软概率一样,从softmax层获得)。检查Wiki页面上的等式1:不需要p或q成为一个热点!这个答案是错误的。正如Keras所指出的,
sparsecategoricalcrossentity
期望标签以整数形式提供。这不是数据的稀疏表示,因此OP的问题是。此外,正如进一步指出的,
CategoricalCrossentropy
期望目标是一个热编码的目标。无法传递值在0-1范围内的目标。这在数学上可能没有必要,但Keras需要这一点。实际上,提供非0位置的整数正是稀疏表示的含义。2.是的,
CategoricalCrossentropy
适用于任何概率分布,而不仅仅是一个热门目标。你真的试过吗?注意,我们在这里讨论的是
tf.keras
,我不知道“独立”keras。
tf.keras.losses.SparseCategoricalCrossentropy(
    from_logits=False, reduction="auto", name="sparse_categorical_crossentropy"
)