1. 连续值损失函数
总结:主要使用胡贝儿损失函数,应用于连续数值的预测之间的误差损失,参考地址
import torch
import torch.nn as nn
a = torch.tensor([[1, 2], [3, 4]], dtype=torch.float)
b = torch.tensor([[3, 5], [8, 6]], dtype=torch.float)
loss_fn1 = torch.nn.MSELoss(reduction='none')
loss1 = loss_fn1(a, b) # loss1 是按照原始维度输出,即对应位置的元素相减然后求平方
print(loss1) # 输出结果:tensor([[4., 9.], [25., 4.]])
loss_fn2 = torch.nn.MSELoss(reduction='sum')
loss2 = loss_fn2(a, b) # loss2 是所有位置的损失求和
print(loss2) # 输出结果:tensor(42.)
loss_fn3 = torch.nn.MSELoss(reduction='mean')
loss3 = loss_fn3(a, b) # loss3 是所有位置的损失求和后取平均
print(loss3) # 输出结果:tensor(10.5000)
2. 二分类损失函数
损失函数 |
特点 |
MarginRankingLoss |
两个输入变量之间排名,主要用于信息检索中的相关排序; |
BCELoss |
衡量预测结果与输入标签之间差异,常用于图像检测和文本分类等; |
SoftMarginLoss |
预测结果与输入结果之间log损失,适用于非线性可分数据的分类问题; |
CosineEmbeddingLoss | <