PaddleClas/ppcls/loss/softtargetceloss.py

17 lines
400 B
Python

import paddle
import paddle.nn as nn
import paddle.nn.functional as F
class SoftTargetCrossEntropy(nn.Layer):
def __init__(self):
super().__init__()
def forward(self, x, target):
loss = paddle.sum(-target * F.log_softmax(x, axis=-1), axis=-1)
loss = loss.mean()
return {"SoftTargetCELoss": loss}
def __str__(self, ):
return type(self).__name__