Pytorch – torch.nn.Module的parameters()和named_parameters()
1 torch.nn.Module的named_parameters()和parameters()
Pytorch的torch.nn.Module
有两个比较相似的属性函数named_parameters()
和parameters()
,parameters()
返回整个模型参数的迭代器,而named_parameters()
可以返回参数层名称以及参数的迭代器,我们同时使用这两个函数查看模型参数以及修改模型属性,下面通过Pytorch预置的Resnet18来比较一下两者的区别。
1.1 parameters()
# -*- coding: utf-8 -*-
import torchvision.models
if __name__ == '__main__':
resnet18 = torchvision.models.resnet18(pretrained=True)
for params in resnet18.parameters():
#print('params:', params)
print('grad_requirs:', params.requires_grad)
print('grad_value:', params.grad)
print("==========")
输出
grad_requirs: True
grad_value: None
==========
grad_requirs: True
grad_value: None
==========
grad_requirs: True
grad_value: None
==========
grad_requirs: True
grad_value: None
==========
grad_requirs: True
grad_value: None
==========
grad_requirs: True
grad_value: None
==========
grad_requirs: True
grad_value: None
==========
grad_requirs: True
grad_value: None
==========
grad_requirs: True
grad_value: None
==========
grad_requirs: True
grad_value: None
==========
grad_requirs: True
grad_value: None
==========
grad_requirs: True
grad_value: None
==========
grad_requirs: True
grad_value: None
==========
grad_requirs: True
grad_value: None
==========
grad_requirs: True
grad_value: None
==========
grad_requirs: True
grad_value: None
==========
grad_requirs: True
grad_value: None
==========
grad_requirs: True
grad_value: None
==========
grad_requirs: True
grad_value: None
==========
grad_requirs: True
grad_value: None
==========
grad_requirs: True
grad_value: None
==========
grad_requirs: True
grad_value: None
==========
grad_requirs: True
grad_value: None
==========
grad_requirs: True
grad_value: None
==========
grad_requirs: True
grad_value: None
==========
grad_requirs: True
grad_value: None
==========
grad_requirs: True
grad_value: None
==========
grad_requirs: True
grad_value: None
==========
grad_requirs: True
grad_value: None
==========
grad_requirs: True
grad_value: None
==========
grad_requirs: True
grad_value: None
==========
grad_requirs: True
grad_value: None
==========
grad_requirs: True
grad_value: None
==========
grad_requirs: True
grad_value: None
==========
grad_requirs: True
grad_value: None
==========
grad_requirs: True
grad_value: None
==========
grad_requirs: True
grad_value: None
==========
grad_requirs: True
grad_value: None
==========
grad_requirs: True
grad_value: None
==========
grad_requirs: True
grad_value: None
==========
grad_requirs: True
grad_value: None
==========
grad_requirs: True
grad_value: None
==========
grad_requirs: True
grad_value: None
==========
grad_requirs: True
grad_value: None
==========
grad_requirs: True
grad_value: None
==========
grad_requirs: True
grad_value: None
==========
grad_requirs: True
grad_value: None
==========
grad_requirs: True
grad_value: None
==========
grad_requirs: True
grad_value: None
==========
grad_requirs: True
grad_value: None
==========
grad_requirs: True
grad_value: None
==========
grad_requirs: True
grad_value: None
==========
grad_requirs: True
grad_value: None
==========
grad_requirs: True
grad_value: None
==========
grad_requirs: True
grad_value: None
==========
grad_requirs: True
grad_value: None
==========
grad_requirs: True
grad_value: None
==========
grad_requirs: True
grad_value: None
==========
grad_requirs: True
grad_value: None
==========
grad_requirs: True
grad_value: None
==========
grad_requirs: True
grad_value: None
==========
grad_requirs: True
grad_value: None
==========
1.2 named_parameters()
# -*- coding: utf-8 -*-
import torchvision.models
if __name__ == '__main__':
resnet18 = torchvision.models.resnet18(pretrained=True)
for name, params in resnet18.named_parameters():
print('name:', name)
#print('params:', params)
print('grad_requirs:', params.requires_grad)
print('grad_value:', params.grad)
print("==========")
输出
name: conv1.weight
grad_requirs: True
grad_value: None
==========
name: bn1.weight
grad_requirs: True
grad_value: None
==========
name: bn1.bias
grad_requirs: True
grad_value: None
==========
name: layer1.0.conv1.weight
grad_requirs: True
grad_value: None
==========
name: layer1.0.bn1.weight
grad_requirs: True
grad_value: None
==========
name: layer1.0.bn1.bias
grad_requirs: True
grad_value: None
==========
name: layer1.0.conv2.weight
grad_requirs: True
grad_value: None
==========
name: layer1.0.bn2.weight
grad_requirs: True
grad_value: None
==========
name: layer1.0.bn2.bias
grad_requirs: True
grad_value: None
==========
name: layer1.1.conv1.weight
grad_requirs: True
grad_value: None
==========
name: layer1.1.bn1.weight
grad_requirs: True
grad_value: None
==========
name: layer1.1.bn1.bias
grad_requirs: True
grad_value: None
==========
name: layer1.1.conv2.weight
grad_requirs: True
grad_value: None
==========
name: layer1.1.bn2.weight
grad_requirs: True
grad_value: None
==========
name: layer1.1.bn2.bias
grad_requirs: True
grad_value: None
==========
name: layer2.0.conv1.weight
grad_requirs: True
grad_value: None
==========
name: layer2.0.bn1.weight
grad_requirs: True
grad_value: None
==========
name: layer2.0.bn1.bias
grad_requirs: True
grad_value: None
==========
name: layer2.0.conv2.weight
grad_requirs: True
grad_value: None
==========
name: layer2.0.bn2.weight
grad_requirs: True
grad_value: None
==========
name: layer2.0.bn2.bias
grad_requirs: True
grad_value: None
==========
name: layer2.0.downsample.0.weight
grad_requirs: True
grad_value: None
==========
name: layer2.0.downsample.1.weight
grad_requirs: True
grad_value: None
==========
name: layer2.0.downsample.1.bias
grad_requirs: True
grad_value: None
==========
name: layer2.1.conv1.weight
grad_requirs: True
grad_value: None
==========
name: layer2.1.bn1.weight
grad_requirs: True
grad_value: None
==========
name: layer2.1.bn1.bias
grad_requirs: True
grad_value: None
==========
name: layer2.1.conv2.weight
grad_requirs: True
grad_value: None
==========
name: layer2.1.bn2.weight
grad_requirs: True
grad_value: None
==========
name: layer2.1.bn2.bias
grad_requirs: True
grad_value: None
==========
name: layer3.0.conv1.weight
grad_requirs: True
grad_value: None
==========
name: layer3.0.bn1.weight
grad_requirs: True
grad_value: None
==========
name: layer3.0.bn1.bias
grad_requirs: True
grad_value: None
==========
name: layer3.0.conv2.weight
grad_requirs: True
grad_value: None
==========
name: layer3.0.bn2.weight
grad_requirs: True
grad_value: None
==========
name: layer3.0.bn2.bias
grad_requirs: True
grad_value: None
==========
name: layer3.0.downsample.0.weight
grad_requirs: True
grad_value: None
==========
name: layer3.0.downsample.1.weight
grad_requirs: True
grad_value: None
==========
name: layer3.0.downsample.1.bias
grad_requirs: True
grad_value: None
==========
name: layer3.1.conv1.weight
grad_requirs: True
grad_value: None
==========
name: layer3.1.bn1.weight
grad_requirs: True
grad_value: None
==========
name: layer3.1.bn1.bias
grad_requirs: True
grad_value: None
==========
name: layer3.1.conv2.weight
grad_requirs: True
grad_value: None
==========
name: layer3.1.bn2.weight
grad_requirs: True
grad_value: None
==========
name: layer3.1.bn2.bias
grad_requirs: True
grad_value: None
==========
name: layer4.0.conv1.weight
grad_requirs: True
grad_value: None
==========
name: layer4.0.bn1.weight
grad_requirs: True
grad_value: None
==========
name: layer4.0.bn1.bias
grad_requirs: True
grad_value: None
==========
name: layer4.0.conv2.weight
grad_requirs: True
grad_value: None
==========
name: layer4.0.bn2.weight
grad_requirs: True
grad_value: None
==========
name: layer4.0.bn2.bias
grad_requirs: True
grad_value: None
==========
name: layer4.0.downsample.0.weight
grad_requirs: True
grad_value: None
==========
name: layer4.0.downsample.1.weight
grad_requirs: True
grad_value: None
==========
name: layer4.0.downsample.1.bias
grad_requirs: True
grad_value: None
==========
name: layer4.1.conv1.weight
grad_requirs: True
grad_value: None
==========
name: layer4.1.bn1.weight
grad_requirs: True
grad_value: None
==========
name: layer4.1.bn1.bias
grad_requirs: True
grad_value: None
==========
name: layer4.1.conv2.weight
grad_requirs: True
grad_value: None
==========
name: layer4.1.bn2.weight
grad_requirs: True
grad_value: None
==========
name: layer4.1.bn2.bias
grad_requirs: True
grad_value: None
==========
name: fc.weight
grad_requirs: True
grad_value: None
==========
name: fc.bias
grad_requirs: True
grad_value: None
==========
本文作者:StubbornHuang
版权声明:本文为站长原创文章,如果转载请注明原文链接!
原文标题:Pytorch – torch.nn.Module的parameters()和named_parameters()
原文链接:https://www.stubbornhuang.com/2343/
发布于:2022年09月06日 17:28:19
修改于:2023年06月21日 18:07:42
当前分类随机文章推荐
- 深度学习 - 我的深度学习项目代码文件组织结构 阅读1843次,点赞3次
- Pytorch - 在Pytroch中实现图片HWC与CHW相互转换、RGB与BGR相互转换 阅读535次,点赞0次
- Pytorch - 为什么要设置随机数种子? 阅读1023次,点赞0次
- Pytorch - 模型断点续训,optimizer.step()报错:RuntimeError Expected all tensors to be on the same device, but found cuda:0 阅读316次,点赞0次
- Pytorch - torch.chunk参数详解与使用 阅读1576次,点赞0次
- Pytorch – 使用torch.matmul()替换torch.einsum('bhxyd,md->bhxym',(a,b))算子模式 阅读1665次,点赞0次
- Pytorch - Pytoch结合Tensorboard实现数据可视化 阅读442次,点赞0次
- Pytorch - 一文搞懂如何使用Pytorch构建与训练自定义深度学习网络(数据集自定义与加载,模型训练,模型测试,模型保存与加载) 阅读1379次,点赞2次
- Pytorch - torch.stack参数详解与使用 阅读1180次,点赞0次
- Pytorch - torch.optim优化器 阅读1156次,点赞0次
全站随机文章推荐
- C++ - 在两个互有依赖关系的类中使用std::shared_ptr和std::weak_ptr进行内存管理 阅读990次,点赞0次
- Alphapose - Windows下Alphapose(Pytorch 1.1+)版本2021最新环境配置步骤以及踩坑说明 阅读5780次,点赞1次
- 深度学习 - 通俗理解Beam Search Algorithm算法 阅读1328次,点赞0次
- Modern OpenGL从零开始 - 在Visual Studio中配置OpenGL开发环境 阅读2800次,点赞0次
- Python3爬虫 - 下载反盗链图片的方式 阅读3056次,点赞1次
- Python - 读取csv文件和在csv文件写入内容 阅读856次,点赞0次
- 怎么样正确的读科研论文? 阅读435次,点赞0次
- C++11 - 使用std::thread::join()/std::thread::detach()方法需要注意的点 阅读3542次,点赞0次
- C++ - 一文搞懂std::future、std::promise、std::packaged_task、std::async的使用和相互区别 阅读648次,点赞0次
- ThreeJS - three.moudle.js报Uncaught SyntaxError:Unexpected token ‘export‘错误 阅读2170次,点赞0次
评论
169