pytorch 区间loss 损失函数

举报
风吹稻花香 发表于 2021/11/10 00:24:46 2021/11/10
1.8k+ 0 0
【摘要】 pytorch 区间loss 损失函数 我们知道sigmoid可以把值转化为0-1之间。 tanh函数可以把值转化到[-1,1]之间, 但是在回归时,希望梯度是均匀的,有么有别的方法呢? 答案是肯定的, 解决方法1: data=torch.sin(data) 周期性函数,把值变到了0-1之间。 解决方法2: 比如要...

pytorch 区间loss 损失函数

我们知道sigmoid可以把值转化为0-1之间。

tanh函数可以把值转化到[-1,1]之间,

但是在回归时,希望梯度是均匀的,有么有别的方法呢?

答案是肯定的,

解决方法1:

data=torch.sin(data)

周期性函数,把值变到了0-1之间。

解决方法2:

比如要回归A,希望A在1到-1之间,可以设计损失函数:


      import torch
      class My_Loss3(torch.nn.Module):
         def __init__(self):
             super(My_Loss3, self).__init__()
         def forward(self, pred_angle0, label):
              l1 = torch.clamp(torch.abs(pred_angle0)-1, min=0)
              c1 = torch.abs(pred_angle0 - label)
              c2 =torch.abs(2 - c1)
              l3 = torch.where(c1 > c2, c2, c1)
             return torch.mean(0.1*l3 + l1)
  
 

希望A在0-1之间,将来预测结果为abs(A),这个损失函数是Ok的。


      import torch
      class My_Loss3(torch.nn.Module):
         def __init__(self):
              su
  
 

文章来源: blog.csdn.net,作者:AI视觉网奇,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/jacke121/article/details/121216624

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

作者其他文章

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。