torch.nn 包中常用的损失函数
1、torch.nn.MSELoss:均方误差
import torch
from torch.autograd import Variable
loss_f = torch.nn.MSELoss() #不用传入任何参数
'''随机生成两个维度都是(100,100)的参数'''
x = Variable(torch.randn(100, 100))
y = Variable(torch.randn(100, 100))
loss = loss_f(x, y) #在使用实例时需要输入两个维度一样的参数方可进行计算
print(loss.data)
>>> tensor(1.9685)
2、torch.nn.L1Loss:平均绝对误差
import torch
from torch.autograd import Variable
loss_f = torch.nn.L1Loss() #不用传入任何参数
'''随机生成两个维度都是(100,100)的参数'''
x = Variable(torch.randn(100, 100))
y = Variable(torch.randn(100, 100))
loss = loss_f(x, y) #在使用实例时需要输入两个维度一样的参数方可进行计算
print(loss.data)
>>> tensor(1.1232)
3、torch.nn.CrossEntropyLoss :计算交叉熵
import torch
from torch.autograd import Variable
loss_f = torch.nn.CrossEntropyLoss() #不用传入任何参数
'''随机生成两个满足交叉熵的计算条件的参数'''
x = Variable(torch.randn(3, 5)) #随机参数,维度为(3,5)
y = Variable(torch.LongTensor(3).random_(5)) #是 3 个范围为 0~4 的随机数字
loss = loss_f(x, y) #在使用实例时需要输入两个维度一样的参数方可进行计算
print(x, '\n', y, '\n', loss.data)
tensor([[-1.2902, -0.8470, 0.7237, 1.6615, 0.1341],
[ 1.2521, -1.5131, 0.4501, 0.4782, -0.7082],
[ 0.5782, 2.2565, 1.3255, 0.8077, -0.8508]])
tensor([1, 0, 4])
tensor(2.5134)
评论(0)
您还未登录,请登录后发表或查看评论