前一段时间设计了一个损失函数,想当然的用np计算出数值结果后加到已有的损失函数中,并随之一起反向传播,但这样会导致梯度计算的错误(或称不合适),难以起到抑制的效果。
1.首先继承nn.Module类
建议参考
Pytorch自定义Loss_jacke121的专栏-优快云博客
定义与调用分开写
2.损失函数计算过程中尽量使用tensor的计算方法。
pytorch系列12 --pytorch自定义损失函数custom loss function_墨流觞的博客-优快云博客_pytorch自定义损失函数
Pytorch如何自定义损失函数(Loss Function)? - 知乎
3.一定要检查requires_grad=True
除此之外,自定义的损失函数可导性证明。虽然不在代码中体现,但却会对结果有所影响。