为了账号安全,请及时绑定邮箱和手机立即绑定

Making custom non-trivial loss function in pytorch

Making custom non-trivial loss function in pytorch

慕标5832272 2021-08-11 21:22:02
我刚开始使用 pytorch 并试图了解如何处理自定义损失函数,尤其是一些非平凡的。问题 1。我想刺激我的 nn 最大化真实阳性率,同时最小化错误发现率。例如,真阳性的总分增加 +2,假阳性的总分减少 -5。def tp_fp_loss(yhat, y):    total_score = 0    for i in range(y.size()):        if is_tp(yhat[i],y[i]):            total_score += 2        if is_fp(yhat[i],y[i]):            total_score -= 5    return -total_score问题2。如果 y 是正负奖励列表(y = [10,-5, -40, 23, 11, -7]),则刺激 nn 以最大化奖励总和。def max_reward_loss(yhat,y):    r = torch.autograd.Variable(torch.Tensor(y[yhat >= .5]), requires_grad=True).sum()                        return -r也许我不完全理解一些 autograd 机制,我正确实现的函数计算损失但与它们一起学习不起作用:(我做错了什么?有人能帮我解决任何这些问题吗?
查看完整描述

2 回答

?
慕尼黑8549860

TA贡献1818条经验 获得超11个赞

您的损失函数不可微 - 您无法计算其梯度(继续尝试)。
你应该看起来像infogain loss


查看完整回答
反对 回复 2021-08-11
  • 2 回答
  • 0 关注
  • 189 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信