在学习李沫的动手学习深度学习中遇见了这个函数并且没有解释,所以自己进行了一些探索并记录下来。
代码块:
num_inputs, num_outputs, num_hiddens = 784, 10, 256
W1 = nn.Parameter(torch.randn(
num_inputs, num_hiddens, requires_grad=True) * 0.01)
b1 = nn.Parameter(torch.zeros(num_hiddens, requires_grad=True))
W2 = nn.Parameter(torch.randn(
num_hiddens, num_outputs, requires_grad=True) * 0.01)
b2 = nn.Parameter(torch.zeros(num_outputs, requires_grad=True))
params = [W1, b1, W2, b2]
这里是初始化模型参数,使用torch.randn()创建一个784X256的权重w张量,然后用nn.Parameter()处理。
Parameter()通俗的解释就是把一个Tensor转换成可学习训练的参数。只有参数才可以进行训练学习,所以这里可以看做是一个类型转换函数,把Tensor类型转换成Parameter类型。
类型转换之后,这些参数就是模型的一部分,不再是普通的数据,被自动添加到Paeameter参数列表中。可以通过prameters()进行查看。