BCEloss、MSEloss

一、BCEloss

import torch

# 自定义数据
gt = torch.randint(1,10,(4,)).float()/10
pred = torch.randint(1,10,(4,)).float()/10


# 自定义BCEloss
def BCELoss( pred, target):
    output = - target * torch.log(pred) - (1.0 - target) * torch.log(1.0 - pred)
    return output

# 调用API
BCE = torch.nn.BCELoss(reduction="mean")

loss0 = BCELoss(pred,gt).mean()
loss1 = BCE(pred,gt)

# 打印损失
print(loss0,loss1)
tensor(0.7794) tensor(0.7794)

注意,自定义的BCE在计算之后要加 .mean() , 或者要与调用API时的reduction的参数一致

二、MSEloss

import torch

# 自定义数据
x = torch.randn((2,3))
y = torch.randn((2,3))

# 自定义MSE
def MSELoss(pred,target):
    return torch.pow(pred-target,2)

# 实例化类
MSE = torch.nn.MSELoss(reduction="mean")

loss0 = MSELoss(x,y).mean()
loss1 = MSE(x,y)

print(loss0, loss1)

注意,loss0后面有 .mean(),与调用类的reduction参数一致

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值