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)]
Logo

脑启社区是一个专注类脑智能领域的开发者社区。欢迎加入社区,共建类脑智能生态。社区为开发者提供了丰富的开源类脑工具软件、类脑算法模型及数据集、类脑知识库、类脑技术培训课程以及类脑应用案例等资源。

更多推荐