torch.nn.Module.parameters:计算模型的参数,返回一个关于模型参数的迭代器。
代码示例:
1.建立一个线性模型
2.打印参数
import torch
import torch.nn as nn
class mymodule(nn.Module):
def __init__(self):
super(mymodule,self).__init__()
self.linear=nn.Linear(2,3)
self.relu=nn.ReLU()
def forward(self,x):
x=self.linear(x)
x=self.relu(x)
return x
model=mymodule()
print("模型参数:",(model.parameters()))
for param in model.parameters():
print("参数类型:",type(param),"参数大小:",param.size())
输出:
模型参数: <generator object Module.parameters at 0x0000024BFA9BCAF0>
参数类型: <class 'torch.nn.parameter.Parameter'> 参数大小: torch.Size([3, 2])
参数类型: <class 'torch.nn.parameter.Parameter'> 参数大小: torch.Size([3])
可以看到输出的第一行打印模型参数输出的是地址<generator object Module.parameters at 0x0000024BFA9BCAF0>,关于迭代器和生成器看这部分:如何更好地理解Python迭代器和生成器?,将第13行代码改为:
print("模型参数:",list((model.parameters())))
输出:
模型参数: [Parameter containing:
tensor([[ 0.2830, -0.3576],
[-0.3195, -0.5374],
[ 0.6036, -0.1863]], requires_grad=True),
Parameter containing:
tensor([-0.3500, -0.5234, -0.4305], requires_grad=True)]