# 案例1
class NASA_loss(nn.Module):
def __init__(self):
super().__init__()
def forward(self, y_pred, y_true):
alpha = torch.where(y_true > y_pred, 1/13, 1/10)
sc = torch.mean(torch.exp(alpha*abs(y_true-y_pred))) - 1
RMSE = torch.sqrt(torch.mean((y_true-y_pred)**2))
NASA_score = 0.5*RMSE + 0.5*sc
return NASA_score
# 案例2
class My_loss(nn.Module):
def __init__(self):
super().__init__()
def forward(self, y_pred, y_true):
# 计算损失
q = torch.tensor(quantiles)
zero = torch.zeros([len(quantiles)],dtype=torch.float)
arr = torch.where(y_true > y_pred, y_true-y_pred, zero)
brr = torch.where(y_pred > y_true, y_pred-y_true, zero)
loss = q*arr +(1-q)*brr # loss.shape = [batch_size, 输出层神经元个数]
# 按batch损失求和
loss = sum(sum(loss))
return loss
pytorch自定义损失函数
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 1. 什么是损失函数(Loss Function) 损失函数在训练AI模型的过程中,用于计算模型预测值与真实值之间...
- 参考:https://pytorch.org/tutorials/beginner/examples_autogr...
- xgboost自定义损失函数[https://zengwenqi.blog.csdn.net/article/de...