2

在 Caffe 中,它的 SoftmaxWithLoss 函数有一个选项可以在计算概率时忽略所有负标签 (-1),因此只有 0 或正标签概率加起来为 1。

Tensorflow softmax loss 有类似的功能吗?

4

2 回答 2

4

刚刚想出了一个解决方法 --- 我使用 tf.one_hot 在标签索引上创建了一个单热张量(深度设置为标签#)。tf.one_hot 在结果 one_hot 张量(形状 [batch, # of labels])中自动将所有带有 -1 的索引归零

这使得 softmax 损失(即 tf.nn.softmax_cross_entropy_with_logits)能够“忽略”所有 -1 标签。

于 2016-08-24T02:46:40.347 回答
2

我不太确定您的解决方法是否真的有效。

Caffeignore_label在 caffe 语义上必须被视为“必须忽略的样本的标签”,因此它的效果是该 sampl_e 的梯度不会反向传播,这绝不是通过使用 one hot 来保证的向量。

一方面,我希望任何有意义的模型都能快速学会为该特定条目预测零值或足够小的值,因为所有样本在该特定条目中都将为零,也就是说,反向传播信息到期该预测中的错误将相对快速地消失。

另一方面,您需要意识到,从数学的角度来看,咖啡ignore_label和您正在做的事情是完全不同的。

这么说,我是 TF 的新手,需要与 caffe 完全相同的功能ignore_label

于 2016-11-16T08:35:27.050 回答