1. nn.MSELoss(reduce=True, size_average=True)
均方损失函数(mean squared error),用于计算预测值和实际值的差别。公式为
其中,前面的y表示的是真实值,后面的y表示的是预测值。
函数里面有两个参数,当不设置参数值的时候默认 reduce=True, size_average=True,表示返回一个标量均值。
#创建两个tensor型数据
a=torch.tensor([[1,2],[3,4]])
b=torch.tensor([[2,3],[4,4]])
#定义函数并将它赋值给变量loss_fn,效果上等同于loss_fn = torch.nn.MSELoss(reduce=True, size_average=True)
loss_fn = torch.nn.MSELoss(reduce=True, size_average=True)
#将a作为输入值
input = torch.autograd.Variable(a)
#b作为真实值
target = torch.autograd.Variable(b)
#计算损失
loss = loss_fn(input.float(), target.float())
print(loss)
输出 tensor(0.7500)
2. nn.Linear()
x = torch.randn(128, 20) # 输入一个120*20的二维矩阵
m = torch.nn.Linear(20, 30) # 权重,一个30*20的矩阵,需要转置之后被x乘
output = m(x) #输出
print('m.weight.shape:\n ', m.weight.shape)
print('m.bias.shape:\n', m.bias.shape)
print('output.shape:\n', output.shape)
m.weight.shape:
torch.Size([30, 20])
m.bias.shape:
torch.Size([30])
output.shape:
torch.Size([128, 30])
References: