The loss is always Nan when I use the loss function as follow:
def Myloss1(source, target): loss = torch.nn.functional.mse_loss(source, target, reduction="none") return torch.sum(loss).sqrt() ... loss = Myloss1(s, t) loss.backward()
But when I use the following loss function, the training becomes normal:
def Myloss2(source, target): diff = target - source loss = torch.norm(diff) return loss ... loss = Myloss2(s, t) loss.backward()
Why can’t use the ‘Myloss1’ to train？ Aren’t Myloss1 and Myloss2 equivalent?
Please help me，thank you very much！