在Caffe中,SoftmaxWithLoss函数有一个选项可以忽略计算概率中的所有负标签(-1),因此只有0或正标签概率加起来为1.
Tensorflow softmax丢失是否有类似功能?
答案 0 :(得分:4)
刚刚想出了一个解决方法---我使用tf.one_hot在标签索引处创建了一个单热张量(深度设置在#of标签处)。 tf.one_hot在生成的one_hot张量中自动将所有索引清零(形状为[批处理,标签数])
这使softmax损失(即tf.nn.softmax_cross_entropy_with_logits)能够“忽略”所有-1个标签。
答案 1 :(得分:2)
我不太确定您的解决方法是否真正有效。
Caffe的ignore_label
在语义上必须被视为"样本的标签,必须被忽略",因此它具有该sampl_e的渐变效果没有反向传播,使用一个热矢量绝不保证。
一方面,我希望任何有意义的模型能够快速学会为该特定条目预测零值或足够小的值,因为所有样本在该特定条目中将具有零,因此,由于预测中的错误而反向传播的信息将相对快速地消失。
另一方面,你需要意识到,从数学的角度来看,caffe的ignore_label
和你正在做的事情完全不同。
说这个,我是TF的新手,需要与caffe的ignore_label
完全相同的功能。