pytorch nn的理解

1. nn.MSELoss(reduce=True, size_average=True)

    均方损失函数(mean squared error),用于计算预测值和实际值的差别。公式为

pytorch nn的理解_第1张图片

其中,前面的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:

https://blog.csdn.net/hao5335156/article/details/81029791

https://blog.csdn.net/m0_37586991/article/details/87861418

你可能感兴趣的:(神经网络,机器学习,pytorch)