【发布时间】:2021-09-26 12:41:00
【问题描述】:
我正在尝试在 Pytorch 中创建一个自定义损失函数,它使用 if 语句评估张量的每个元素并采取相应的行动。
def my_loss(outputs,targets,fin_val):
if (outputs.detach()-fin_val.detach())*(targets.detach()-fin_val.detach())<0:
loss=3*(outputs-targets)**2
else:
loss=0.3*(outputs-targets)**2
return loss
我也试过了:
def my_loss(outputs,targets,fin_val):
if torch.gt((outputs.detach()-fin_val.detach())*(targets.detach()-fin_val.detach()),0):
loss=0.3*(outputs-targets)**2
else:
loss=3*(outputs-targets)**2
return loss
在这两种情况下,我都会收到以下错误:
RuntimeError: Boolean value of Tensor with more than one value is ambiguous
TIA
【问题讨论】:
标签: python if-statement pytorch loss-function