参考链接:https://www.cnblogs.com/yqpy/p/12585331.html

model.named_parameters()

迭代打印model.named_parameters()将会打印每一次迭代元素的名字和param。

model = DarkNet([1, 2, 8, 8, 4])
for name, param in model.named_parameters():print(name,param.requires_grad)param.requires_grad = False

输出结果为

conv1.weight True
bn1.weight True
bn1.bias True
layer1.ds_conv.weight True
layer1.ds_bn.weight True
layer1.ds_bn.bias True
layer1.residual_0.conv1.weight True
layer1.residual_0.bn1.weight True
layer1.residual_0.bn1.bias True
layer1.residual_0.conv2.weight True
layer1.residual_0.bn2.weight True
layer1.residual_0.bn2.bias True
layer2.ds_conv.weight True
layer2.ds_bn.weight True
layer2.ds_bn.bias True
layer2.residual_0.conv1.weight True
layer2.residual_0.bn1.weight True
layer2.residual_0.bn1.bias True
....

并且可以更改参数的可训练属性,第一次打印是True,这是第二次,就是False了

model.parameters()

迭代打印model.parameters()将会打印每一次迭代元素的param而不会打印名字,这是它和named_parameters的区别,两者都可以用来改变requires_grad的属性。

for index, param in enumerate(model.parameters()):print(param.shape)

输出结果为

torch.Size([32, 3, 3, 3])
torch.Size([32])
torch.Size([32])
torch.Size([64, 32, 3, 3])
torch.Size([64])
torch.Size([64])
torch.Size([32, 64, 1, 1])
torch.Size([32])
torch.Size([32])
torch.Size([64, 32, 3, 3])
torch.Size([64])
torch.Size([64])
torch.Size([128, 64, 3, 3])
torch.Size([128])
torch.Size([128])
torch.Size([64, 128, 1, 1])
torch.Size([64])
torch.Size([64])
torch.Size([128, 64, 3, 3])
torch.Size([128])
torch.Size([128])
torch.Size([64, 128, 1, 1])
torch.Size([64])
torch.Size([64])
torch.Size([128, 64, 3, 3])
torch.Size([128])
torch.Size([128])
torch.Size([256, 128, 3, 3])
torch.Size([256])
torch.Size([256])
torch.Size([128, 256, 1, 1])
....

将两者结合进行迭代,同时具有索引,网络层名字及param

 for index, (name, param) in zip(enumerate(model.parameters()), model.named_parameters()):print(index[0])print(name, param.shape)

输出结果为

0
conv1.weight torch.Size([32, 3, 3, 3])
1
bn1.weight torch.Size([32])
2
bn1.bias torch.Size([32])
3
layer1.ds_conv.weight torch.Size([64, 32, 3, 3])
4
layer1.ds_bn.weight torch.Size([64])
5
layer1.ds_bn.bias torch.Size([64])
6
layer1.residual_0.conv1.weight torch.Size([32, 64, 1, 1])
7
layer1.residual_0.bn1.weight torch.Size([32])
8
layer1.residual_0.bn1.bias torch.Size([32])
9
layer1.residual_0.conv2.weight torch.Size([64, 32, 3, 3])

pytorch中的model.named_parameters()与model.parameters()相关推荐

  1. model.named_parameters()与model.parameters()

    model.named_parameters() 迭代打印model.named_parameters()将会打印每一次迭代元素的名字和param. 并且可以更改参数的可训练属性 from torch ...

  2. model.state_dict和model.parameters和model.named_parameters区别

    model.state_dict和model.parameters和model.named_parameters区别 在pytorch中,针对model,有上述方法,他们都包含模型参数,但是他们有些区 ...

  3. 详解Pytorch中的requires_grad、叶子节点与非叶子节点、with torch.no_grad()、model.eval()、model.train()、BatchNorm层

    requires_grad requires_grad意为是否需要计算梯度 使用backward()函数反向传播计算梯度时,并不是计算所有tensor的梯度,只有满足下面条件的tensor的梯度才会被 ...

  4. Pytorch中的model.modules()和model.children()的区别

    Pytorch中的model.modules()和model.children()的区别 背景:最近在做网络模型中可视化的过程中,需要将网络结构中的某一层的特征进行输出.所以就遇到了这个问题,小小记录 ...

  5. pytorch中model.eval的作用

    pytorch中model.eval()的作用 问题描述: torch.onnx.export()导出onnx模型后,利用onnxruntime加载onnx模型后,其输出结果与原始.pth模型的输出结 ...

  6. pytorch中的parameters

    pytorch中的parameters 在模型中,会出现model.parameters()与model.state_dict() 前者用于优化器的初始化,后者多用于模型的保存 #initialize ...

  7. model.parameters(),model.state_dict(),model .load_state_dict()以及torch.load()

    一.model.parameters()与model.state_dict() model.parameters()与model.state_dict()都是Pytorch中用于查看网络参数的方法 一 ...

  8. Pytorch:optim.zero_grad()、pred=model(input)、loss=criterion(pred,tgt)、loss.backward()、optim.step()的作用

    在用pytorch训练模型时,通常会在遍历epochs的每一轮batach的过程中依次用到以下三个函数 optimizer.zero_grad(): loss.backward(): optimize ...

  9. pytorch的训练测试流程总结,以及model.evel(), model.train(),torch.no_grad()作用

    pytorch的 model.eval()和model.train()作用 pytorch中model.train()和model.eval()的区别主要在于Batch Normalization和D ...

最新文章

  1. c 和php 加密,加载由blenc加密的页面时出错(C和PHP代码)
  2. findbugs, checkstyle, pmd的myeclipse7.5+插件安装(转:http://blog.csdn.net/priestmoon/article/details/63941)
  3. MySQL(一)MySQL基础介绍
  4. Abp + Grpc 如何实现用户会话状态传递
  5. 移植mysql到嵌入式ARM平台
  6. 12020.硬件电路
  7. 心法利器[57] | 文本多分类问题经验
  8. Atitti 跨语言异常的转换抛出 java js
  9. .jpg .png .jpeg图片转.eps矢量图的python脚本
  10. ps怎么撤销参考线_Photoshop120条新手必备技巧
  11. 02组团队项目-Alpha冲刺-4/6
  12. SQL中的日期和字符串互相转换
  13. 【luoguP1922】女仆咖啡厅桌游吧
  14. unsw计算机科学的挂科率,恐怖挂科率创新高!UNSW期中惊现大面积挂科,商科一课程Fail率接近60%,朋友圈一篇哀嚎!...
  15. iOS6的控制屏幕旋转技巧
  16. VS2015编译时“ The POSIX name for this item is deprecated.”的分析
  17. 实战Nagios NSCA方式监控Linux系统资源使用情况 -- Nagios配置篇 -- Nagios Server端
  18. 杠杆炒股平台是不是实盘?
  19. CodeForces - 1255B Fridge Lockers 思维+建图)
  20. 腾讯WiFi管家手机无线上网免费下载安装

热门文章

  1. MFC实现256色工具栏图标及工具栏提示信息
  2. 一起来看看:rooheal如何解决新房甲醛含量超标?
  3. 企业为什么要数字化转型?数字化转型成功的案例有哪些?
  4. 从“玩具”到“工具”, “锡纸烫”到“地中海”!我的8年软件测试感悟...
  5. python+django健身房教练预约管理系统
  6. linux磁盘分区、格式化并挂载
  7. DWMAC网卡的相关兼容
  8. 内鬼!美国电信员工受贿100多万美元装恶意软件,200多万台设备被解锁
  9. C#DataGridView选中行赋值刷新了,但是列表没刷新
  10. 用Word制作真实试卷模板(转)