【发布时间】:2017-09-02 13:49:21
【问题描述】:
在我的项目中,负例远远多于正例,所以我想给正例更大的权重。 我的目标是:
loss = 0.0
if y_label==1:loss += 100 * cross_entropy
else:loss += cross_entropy
如何在 tensorflow 中实现这一点[?]
【问题讨论】:
标签: tensorflow loss
在我的项目中,负例远远多于正例,所以我想给正例更大的权重。 我的目标是:
loss = 0.0
if y_label==1:loss += 100 * cross_entropy
else:loss += cross_entropy
如何在 tensorflow 中实现这一点[?]
【问题讨论】:
标签: tensorflow loss
让losses 成为您批次中示例的损失值向量(rank-1 张量)。并设y 为对应标签的向量。然后,您可以通过
weights = w_pos*y + w_neg*(1.0-y)
loss = tf.reduce_mean(weights*losses)
这里,w_pos 和 w_neg 是常量标量值(在您的示例中为 w_pos=100.0 和 w_neg=1.0)。然后向量weights 的值是w_pos,例如标签等于1 和w_neg 等于0。然后将weights 元素与losses 相乘以加权@987654333 中的值@根据对应的标签再取均值。
【讨论】: