torch框架:输出和损失函数的搭配

问题:

我们在训练网络时,在全连接层之后得到的向量feat 维度一般为(batchsize,numclass),这时候的feat是没有被归一化的。我们需要搞清楚之后输出和损失函数的搭配。

总结:

我们直接进行总结。

多分类:

  • Crossentropy= LogSoftmax + NLLLoss = Softmax + Log +NLLLoss

代码等价版为:

inputs = torch.randn((64,14),requires_grad=True)
target = torch.tensor([random.randint(0,13) for _ in range(64)])

nn.CrossEntropyLoss()(inputs,target) 
=  nn.NLLLoss()(F.log_softmax(inputs,dim=1),target)
=  nn.NLLLoss()(torch.log(F.softmax(inputs,dim=1)),target)

我们还有等价函数:只不过他们的用法不同而已

F.log_softmax =nn.LogSoftmax()
F.softmax = nn.Softmax()

二分类:

  • sigmoid +BCEloss = BCEWithLogitsLoss

代码等价版为:

inputs = torch.randn(64,requires_grad=True)
target = torch.empty(64).random_(2)

nn.BCELoss()(F.sigmoid(inputs),target)
=  nn.BCEWithLogitsLoss()(inputs,target)

我们还有等价函数:只不过他们的用法不同而已

F.sigmoid= nn.Sigmoid()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值