pytorch 绘制多个算法loss_Multi label 多标签分类问题(Pytorch,TensorFlow,Caffe)

本文介绍了在多标签分类问题中如何使用Pytorch的nn.BCELoss、TensorFlow的tf.losses.sigmoid_cross_entropy以及Caffe的SigmoidCrossEntropyLoss。以Pytorch为例,详细展示了损失函数的计算过程,并强调目标变量需要以01编码形式表示。论文[CVPR2015]提出,多标签问题可以视为多个二分类问题,损失函数和分类分数有特殊设计。
摘要由CSDN通过智能技术生成

适用场景:一个输入对应多个label,或输入类别间不互斥

调用函数:

1. Pytorch使用torch.nn.BCEloss

2. Tensorflow使用tf.losses.sigmoid_cross_entropy

3. Caffe使用SigmoidCrossEntropyLoss

在output和target之间构建binary cross entropy,其中i为每一个类。

FZFjYb.png

以pytorch为例:Caffe,TensorFlow版本类比,输入均为相同形式的向量

m =nn.Sigmoid()

loss=nn.BCELoss()

input= autograd.Variable(torch.randn(3), requires_grad=True)

target= autograd.Variable(torch.FloatTensor(3).random_(2))

output=loss(m(input), target)

output.backward()

注意target的形式,要写成01编码形式,eg:如果同时为第一类和第三类则,[1, 0, 1]

主要是结合sigmoid来使用,经过classifier分类过后的输出为(batch_size,num_class)为每个数据的标签, 标签不是one-hot的主要体现在sigmoid输出之后,仍然为(batch_size

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
>