Pytorch中查看模型参数信息, net.parameters()、net.named_parameters(), net.layer.parameters()等,末尾有,Variable,hook

        测试代码由此开始:

class Net(nn.Module):
    def __init__(self):
        super(Net,self).__init__()
        self.conv1 = nn.Conv2d(3, 6, kernel_size=3, padding=1)
        self.bn1 = nn.BatchNorm2d(6)
        self.conv2 = nn.Conv2d(6,8,kernel_size=3,padding=1)
        self.relu = nn.ReLU(inplace=True)
    def forward(self,x):
        x = self.conv1(1)
        x = self.bn1(x)
        x = self.conv2(x)
        x = self.relu(x)
        return x

net = Net()
pdb.set_trace()

        pdb中的net  或者  print(net) -> 输出模型具体框架

Pytorch中查看模型参数信息, net.parameters()、net.named_parameters(), net.layer.parameters()等,末尾有,Variable,hook_第1张图片

         net.parameters() -> 生成器generater,用循环拿到参数

         print([name.shape for name in net.parameters()]) -> name是每个层的参数层数值,每个name是类型是torch.nn.parameter.Parameter,name.shape就是每层参数的大小

        net.named_parameters()

        print([(name,para.shape) for name,para in net.named_parameters()]) -> name是每一层的名字,由下图可归纳总结conv层有weight和bias,bn层有weight和bias,para就是具体的数值    

        net.layer -> 输出该层相关信息

        net.conv1.parameters() -> 生成器generater,用循环拿到参数

        net.layer.weight / net.layer.bias -> 该层具体参数值

 Pytorch中查看模型参数信息, net.parameters()、net.named_parameters(), net.layer.parameters()等,末尾有,Variable,hook_第2张图片

Pytorch中查看模型参数信息, net.parameters()、net.named_parameters(), net.layer.parameters()等,末尾有,Variable,hook_第3张图片

        print([type(name) for name in net.conv1.parameters()]) -> parameter中的参数类型都是torch.nn.parameter.Parameter,name就是具体数值,如果是conv层,包括conv.weight , conv.bias

        net.layer.parameters() 中的每一个都有Variable的属性 .data (数据) .volatile (推理模式) .grad_fn (记录的是tensor的运算信息,意义有利于我们使用反向传播算法,具体可参考博客leaf Variable、requires_grad、grad_fn的含义以及它们之间的关系_璇焱如柳的博客-CSDN博客)  .requires_grad  (自动微分) 

Pytorch中查看模型参数信息, net.parameters()、net.named_parameters(), net.layer.parameters()等,末尾有,Variable,hook_第4张图片

Pytorch中查看模型参数信息, net.parameters()、net.named_parameters(), net.layer.parameters()等,末尾有,Variable,hook_第5张图片

        net.layer.named_parameters() ->和net.named_parameters()一致,用循环获取生成器包含的参数名name、数值data以及形状shape

        net.state_dict().items()

   print([(name,parm.shape) for name,parm in net.state_dict().items()]) -> 输出的和named_parameters()一样,只是调用的方法不一样

     以下是其他关于pytorch模型和参数内容

Pytorch中查看模型内部信息,model.modules(), model.parameters()等

Pytorch中查看模型内部信息,model.modules(), model.parameters()等_LaLaLaLaXFF的博客-CSDN博客_pytorch查看模型

 leaf Variable、requires_grad、grad_fn的含义以及它们之间的关系

​​​​​​leaf Variable、requires_grad、grad_fn的含义以及它们之间的关系_璇焱如柳的博客-CSDN博客

PyTorch中的torch.nn.Parameter() 详解

PyTorch中的torch.nn.Parameter() 详解_Adenialzz的博客-CSDN博客_torch.nn.parameter

 Pytorch入坑二:autograd 及Variable

​​​​​​Pytorch入坑二:autograd 及Variable - 知乎

 Pytorch中的register_hook(梯度操作)

Pytorch中的register_hook(梯度操作)_木盏的博客-CSDN博客_pytorch register

Pytorch中的hook的使用详解

Pytorch中的hook的使用详解 - 知乎

你可能感兴趣的:(pytorch,人工智能,python)