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！