我有一个不平衡的数据集,我的任务是多标签分类
这是我最小化损失的代码:
logits = inference(input)
xent = tf.nn.sigmoid_cross_entropy_with_logits(
logits=logits, labels=labels, name='xent')
loss = tf.reduce_mean(xent, name='loss_op')
现在。我想使用weighted-loss 进行分类,我该怎么做呢? 我可以使用 this link 吗? , 并将 softmax 替换为 sigmoid ?
点
我已阅读 this link ,但我的情况不是二元分类 在tensorflow_org我认为它也适用于二进制分类。
请您参考如下方法:
你可以使用 tf.losses.compute_weighted_loss .我建议阅读 the code看看这个函数是如何工作的,但你应该能够大致做到:
logits = inference(input)
xent = tf.nn.sigmoid_cross_entropy_with_logits(
logits=logits, labels=labels, name='xent')
weighted_loss = tf.losses.compute_weighted_loss(xent, YOUR_WEIGHTS, name='weighted_loss_op')
