(inp, target, mask)
| 874 | # |
| 875 | |
| 876 | def maskNLLLoss(inp, target, mask): |
| 877 | nTotal = mask.sum() |
| 878 | crossEntropy = -torch.log(torch.gather(inp, 1, target.view(-1, 1)).squeeze(1)) |
| 879 | loss = crossEntropy.masked_select(mask).mean() |
| 880 | loss = loss.to(device) |
| 881 | return loss, nTotal.item() |
| 882 | |
| 883 | |
| 884 | ###################################################################### |