如何在pytorch中实现可微分汉明损失?

如何实现可微损失函数来计算错误预测的数量?


output = [1,0,4,10]

target = [1,2,4,15]

loss = np.count_nonzero(output != target) / len(output) # [0,1,0,1] -> 2 / 4 -> 0.5

http://img1.mukewang.com/6307282c0001ed1f03210054.jpg

我已经尝试了一些实现,但它们是不可区分的。RuntimeError: element 0 of tensors does not require grad and does not have a grad_fn


def hamming_loss(output, target):

  #loss = torch.tensor(torch.nonzero(output != target).size(0)).double() / target.size(0)

  #loss = torch.sum((output != target), dim=0).double() / target.size(0)

  loss = torch.mean((output != target).double())

  return loss

也许有一些类似但差分的损失函数?


慕森卡
浏览 146回答 1
1回答

ABOUTYOU

你为什么不将离散预测(例如,)与“软”预测(即每个标签的概率(例如,成为4x(num标签)概率向量)转换为“软”预测。一旦你有了“软”预测,你就可以计算预测输出概率和所需目标之间的交叉熵损失。[1, 0, 4, 10]output
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python