多个正分类的 TensorFlow 损失计算
Posted
技术标签:
【中文标题】多个正分类的 TensorFlow 损失计算【英文标题】:Tensorflow loss calculation for multiple positive classifications 【发布时间】:2018-07-06 10:02:07 【问题描述】:我的标签是这样的
label = [0, 1, 0, 0, 1, 0]
表示类 1, 4
存在于匹配的样本输入中。
-
如何为这样的标签创建 one-hot 编码标签?
哪种损失函数更适合这种情况(sigmoid 交叉熵、softmax 交叉熵或稀疏 softmax 交叉熵)?
【问题讨论】:
对于 one-hot 编码标签,您可以使用 sigmoid 交叉熵或 softmax 交叉熵。稀疏 softmax 交叉熵只允许索引标签。 【参考方案1】:没有充分的理由为此创建 one-hot
编码版本,如果您想保持输出标签大小完全相同,在您的情况下为 6
,您可以t 做一个one-hot
编码的版本。
在multi-label classification
将被执行的地方,你不能(更恰当地不应该)使用softmax
作为激活。 Softmax
适用于只有一个输出可以是真值的情况。因此,在您的情况下,最好使用sigmoid cross-entropy
。
【讨论】:
以上是关于多个正分类的 TensorFlow 损失计算的主要内容,如果未能解决你的问题,请参考以下文章
具有对数损失的 TensorFlow 单 sigmoid 输出与具有稀疏 softmax 交叉熵损失的两个线性输出,用于二进制分类