Pytorch 统计模型参数量的操作 param.numel()


Posted in Python onMay 13, 2021

param.numel()

返回param中元素的数量

Pytorch 统计模型参数量的操作 param.numel()

统计模型参数量

num_params = sum(param.numel() for param in net.parameters())
print(num_params)

补充:Pytorch 查看模型参数

Pytorch 查看模型参数

查看利用Pytorch搭建模型的参数,直接看程序

import torch
# 引入torch.nn并指定别名
import torch.nn as nn
import torch.nn.functional as F

class Net(nn.Module):
    def __init__(self):
        # nn.Module子类的函数必须在构造函数中执行父类的构造函数
        super(Net, self).__init__()
        
        # 卷积层 '1'表示输入图片为单通道, '6'表示输出通道数,'3'表示卷积核为3*3
        self.conv1 = nn.Conv2d(1, 6, 3) 
        #线性层,输入1350个特征,输出10个特征
        self.fc1   = nn.Linear(1350, 10)  #这里的1350是如何计算的呢?这就要看后面的forward函数
    #正向传播 
    def forward(self, x): 
        print(x.size()) # 结果:[1, 1, 32, 32]
        # 卷积 -> 激活 -> 池化 
        x = self.conv1(x) #根据卷积的尺寸计算公式,计算结果是30,具体计算公式后面第二张第四节 卷积神经网络 有详细介绍。
        x = F.relu(x)
        print(x.size()) # 结果:[1, 6, 30, 30]
        x = F.max_pool2d(x, (2, 2)) #我们使用池化层,计算结果是15
        x = F.relu(x)
        print(x.size()) # 结果:[1, 6, 15, 15]
        # reshape,‘-1'表示自适应
        #这里做的就是压扁的操作 就是把后面的[1, 6, 15, 15]压扁,变为 [1, 1350]
        x = x.view(x.size()[0], -1) 
        print(x.size()) # 这里就是fc1层的的输入1350 
        x = self.fc1(x)        
        return x

net = Net()
for parameters in net.parameters():
    print(parameters)

输出为:

Parameter containing:
tensor([[[[-0.0104, -0.0555, 0.1417],
[-0.3281, -0.0367, 0.0208],
[-0.0894, -0.0511, -0.1253]]],


[[[-0.1724, 0.2141, -0.0895],
[ 0.0116, 0.1661, -0.1853],
[-0.1190, 0.1292, -0.2451]]],


[[[ 0.1827, 0.0117, 0.2880],
[ 0.2412, -0.1699, 0.0620],
[ 0.2853, -0.2794, -0.3050]]],


[[[ 0.1930, 0.2687, -0.0728],
[-0.2812, 0.0301, -0.1130],
[-0.2251, -0.3170, 0.0148]]],


[[[-0.2770, 0.2928, -0.0875],
[ 0.0489, -0.2463, -0.1605],
[ 0.1659, -0.1523, 0.1819]]],


[[[ 0.1068, 0.2441, 0.3160],
[ 0.2945, 0.0897, 0.2978],
[ 0.0419, -0.0739, -0.2609]]]])
Parameter containing:
tensor([ 0.0782, 0.2679, -0.2516, -0.2716, -0.0084, 0.1401])
Parameter containing:
tensor([[ 1.8612e-02, 6.5482e-03, 1.6488e-02, ..., -1.3283e-02,
1.8715e-02, 5.4037e-03],
[ 1.8569e-03, 1.8022e-02, -2.3465e-02, ..., 1.6527e-03,
2.0443e-02, -2.2009e-02],
[ 9.9104e-03, 6.6134e-03, -2.7171e-02, ..., -5.7119e-03,
2.4532e-02, 2.2284e-02],
...,
[ 6.9182e-03, 1.7279e-02, -1.7783e-03, ..., 1.9354e-02,
2.1105e-03, 8.6245e-03],
[ 1.6877e-02, -1.2414e-02, 2.2409e-02, ..., -2.0604e-02,
1.3253e-02, -3.6008e-03],
[-2.1598e-02, 2.5892e-02, 1.9372e-02, ..., 1.4159e-02,
7.0983e-03, -2.3713e-02]])
Parameter containing:
tensor(1.00000e-02 *
[ 1.4703, 1.0289, 2.5069, -2.2603, -1.5218, -1.7019, 1.2569,
0.4617, -2.3082, -0.6282])

for name,parameters in net.named_parameters():
    print(name,':',parameters.size())

输出:

conv1.weight : torch.Size([6, 1, 3, 3])
conv1.bias : torch.Size([6])
fc1.weight : torch.Size([10, 1350])
fc1.bias : torch.Size([10])

以上为个人经验,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python 实现堆排序算法代码
Jun 05 Python
python正则表达式match和search用法实例
Mar 26 Python
Python基于PycURL自动处理cookie的方法
Jul 25 Python
在Python程序员面试中被问的最多的10道题
Dec 05 Python
Mac下Anaconda的安装和使用教程
Nov 29 Python
Python3 导入上级目录中的模块实例
Feb 16 Python
python实现批量注册网站用户的示例
Feb 22 Python
python3 实现爬取TOP500的音乐信息并存储到mongoDB数据库中
Aug 24 Python
Python 类属性与实例属性,类对象与实例对象用法分析
Sep 20 Python
在python中使用nohup命令说明
Apr 16 Python
基于python 取余问题(%)详解
Jun 03 Python
python wsgiref源码解析
Feb 06 Python
Python机器学习算法之决策树算法的实现与优缺点
Python爬虫基础之爬虫的分类知识总结
pytorch中的numel函数用法说明
May 13 #Python
pytorch损失反向传播后梯度为none的问题
如何使用Python实现一个简易的ORM模型
May 12 #Python
用python删除文件夹中的重复图片(图片去重)
May 12 #Python
Pyhton模块和包相关知识总结
You might like
解决PHP在DOS命令行下却无法链接MySQL的技术笔记
2010/12/29 PHP
PHP获取数组中指定的一列实例
2017/12/27 PHP
php实现对短信验证码发送次数的限制实例讲解
2021/03/04 PHP
onclick和onblur冲突问题的快速解决方法
2016/04/28 Javascript
jQuery绑定事件的几种实现方式
2016/05/09 Javascript
jQuery将表单序列化成一个Object对象的实例
2016/11/29 Javascript
jQuery选择器实例应用
2017/01/05 Javascript
JS原型与原型链的深入理解
2017/02/15 Javascript
JavaScript面向对象精要(下部)
2017/09/12 Javascript
Vue验证码60秒倒计时功能简单实例代码
2018/06/22 Javascript
浅析Vue 中的 render 函数
2020/02/28 Javascript
vue通过过滤器实现数据格式化
2020/07/20 Javascript
python自动化工具日志查询分析脚本代码实现
2013/11/26 Python
Python转换HTML到Text纯文本的方法
2015/01/15 Python
在Django的视图中使用form对象的方法
2015/07/18 Python
Python2.7简单连接与操作MySQL的方法
2016/04/27 Python
浅析AST抽象语法树及Python代码实现
2016/06/06 Python
最大K个数问题的Python版解法总结
2016/06/16 Python
Python采用Django开发自己的博客系统
2020/09/29 Python
Python算法之求n个节点不同二叉树个数
2017/10/27 Python
jupyter note 实现将数据保存为word
2020/04/14 Python
Python selenium自动化测试模型图解
2020/04/15 Python
python 线程的五个状态
2020/09/22 Python
你正在寻找的CSS3 动画技术
2011/07/27 HTML / CSS
日本最大的眼镜购物网站:Oh My Glasses
2016/11/13 全球购物
高山背包:High Sierra
2017/11/23 全球购物
个人应聘自我评价分享
2013/11/18 职场文书
体育专业学生自我评价范文
2014/01/17 职场文书
小学校园活动策划
2014/01/30 职场文书
化学教育专业求职信
2014/07/08 职场文书
课外科技活动总结
2014/08/27 职场文书
2014年大堂经理工作总结
2014/11/21 职场文书
2014年仓库保管员工作总结
2014/12/03 职场文书
HTML页面滚动时部分内容位置固定不滚动的实现
2021/04/14 HTML / CSS
html+css实现文字折叠特效实例
2021/06/02 HTML / CSS
Python中基础数据类型 set集合知识点总结
2021/08/02 Python