PyTorch深入理解:named_parameters(),parameters()与state_dict()的区别解析

torch中存在3个功能极其类似的方法,它们分别是model.parameters()、model.named_parameters()、model.state_dict(),下面就具体来说说这三个函数的差异:

一、model.parameters()和model.named_parameters()差别

  • named_parameters()返回的list中,每个元组(与list相似,只是数据不可修改)打包了2个内容,分别是
    layer-name

    layer-param
    (网络层的名字和参数的迭代器);
  • parameters()只有后者layer-param(参数的迭代器)

1、model.named_parameters()里的网络层名字

import torchvision.models as models

model = models.resnet18()
for param_tuple in model.named_parameters():
    name, param = param_tuple
    print("name = ", name)
    print("-" * 100)

打印结果:

name =  conv1.weight
----------------------------------------------------------------------------------------------------
name =  bn1.weight
----------------------------------------------------------------------------------------------------
name =  bn1.bias
----------------------------------------------------------------------------------------------------
name =  layer1.0.conv1.weight
----------------------------------------------------------------------------------------------------
name =  layer1.0.bn1.weight
----------------------------------------------------------------------------------------------------
name =  layer1.0.bn1.bias
----------------------------------------------------------------------------------------------------
name =  layer1.0.conv2.weight
----------------------------------------------------------------------------------------------------
name =  layer1.0.bn2.weight
----------------------------------------------------------------------------------------------------
name =  layer1.0.bn2.bias
----------------------------------------------------------------------------------------------------
name =  layer1.1.conv1.weight
----------------------------------------------------------------------------------------------------
name =  layer1.1.bn1.weight
----------------------------------------------------------------------------------------------------
name =  layer1.1.bn1.bias
----------------------------------------------------------------------------------------------------
name =  layer1.1.conv2.weight
----------------------------------------------------------------------------------------------------
name =  layer1.1.bn2.weight
----------------------------------------------------------------------------------------------------
name =  layer1.1.bn2.bias
----------------------------------------------------------------------------------------------------
name =  layer2.0.conv1.weight
----------------------------------------------------------------------------------------------------
name =  layer2.0.bn1.weight
----------------------------------------------------------------------------------------------------
name =  layer2.0.bn1.bias
----------------------------------------------------------------------------------------------------
name =  layer2.0.conv2.weight
----------------------------------------------------------------------------------------------------
name =  layer2.0.bn2.weight
----------------------------------------------------------------------------------------------------
name =  layer2.0.bn2.bias
----------------------------------------------------------------------------------------------------
name =  layer2.0.downsample.0.weight
----------------------------------------------------------------------------------------------------
name =  layer2.0.downsample.1.weight
----------------------------------------------------------------------------------------------------
name =  layer2.0.downsample.1.bias
----------------------------------------------------------------------------------------------------
name =  layer2.1.conv1.weight
----------------------------------------------------------------------------------------------------
name =  layer2.1.bn1.weight
----------------------------------------------------------------------------------------------------
name =  layer2.1.bn1.bias
-------------------------------------------------------------------------
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值