pytorch 求网络模型参数实例


Posted in Python onDecember 30, 2019

用pytorch训练一个神经网络时,我们通常会很关心模型的参数总量。下面分别介绍来两种方法求模型参数

一 .求得每一层的模型参数,然后自然的可以计算出总的参数。

1.先初始化一个网络模型model

比如我这里是 model=cliqueNet(里面是些初始化的参数)

2.调用model的Parameters类获取参数列表

pytorch 求网络模型参数实例

一个典型的操作就是将参数列表传入优化器里。如下

optimizer = optim.Adam(model.parameters(), lr=opt.lr)

言归正传,继续回到参数里面,参数在网络里面就是variable,下面分别求每层的尺寸大小和个数。

函数get_number_of_param( ) 里面的参数就是刚才第一步初始化的model

def get_number_of_param(model):
  """get the number of param for every element"""
  count = 0
  for param in model.parameters():
    param_size = param.size()
    count_of_one_param = 1
    for dis in param_size:
      count_of_one_param *= dis
    print(param.size(), count_of_one_param)
    count += count_of_one_param
    print(count)
  print('total number of the model is %d'%count)

再来看看结果:

torch.Size([64, 1, 3, 3]) 576
576
torch.Size([64]) 64
640
torch.Size([6, 36, 64, 3, 3]) 124416
125056
torch.Size([30, 36, 36, 3, 3]) 349920
474976
torch.Size([12, 36]) 432
475408
torch.Size([6, 36, 216, 3, 3]) 419904
895312
torch.Size([30, 36, 36, 3, 3]) 349920
1245232
torch.Size([12, 36]) 432
1245664
torch.Size([6, 36, 216, 3, 3]) 419904
1665568
torch.Size([30, 36, 36, 3, 3]) 349920
2015488
torch.Size([12, 36]) 432
2015920
torch.Size([6, 36, 216, 3, 3]) 419904
2435824
torch.Size([30, 36, 36, 3, 3]) 349920
2785744
torch.Size([12, 36]) 432
2786176
torch.Size([216, 216, 1, 1]) 46656
2832832
torch.Size([216]) 216
2833048
torch.Size([108, 216]) 23328
2856376
torch.Size([108]) 108
2856484
torch.Size([216, 108]) 23328
2879812
torch.Size([216]) 216
2880028
torch.Size([216, 216, 1, 1]) 46656
2926684
torch.Size([216]) 216
2926900
torch.Size([108, 216]) 23328
2950228
torch.Size([108]) 108
2950336
torch.Size([216, 108]) 23328
2973664
torch.Size([216]) 216
2973880
torch.Size([216, 216, 1, 1]) 46656
3020536
torch.Size([216]) 216
3020752
torch.Size([108, 216]) 23328
3044080
torch.Size([108]) 108
3044188
torch.Size([216, 108]) 23328
3067516
torch.Size([216]) 216
3067732
torch.Size([140, 280, 1, 1]) 39200
3106932
torch.Size([140]) 140
3107072
torch.Size([216, 432, 1, 1]) 93312
3200384
torch.Size([216]) 216
3200600
torch.Size([216, 432, 1, 1]) 93312
3293912
torch.Size([216]) 216
3294128
torch.Size([9, 572, 3, 3]) 46332
3340460
torch.Size([9]) 9
3340469
total number of the model is 3340469

可以通过计算验证一下,发现参数与网络是一致的。

二:一行代码就可以搞定参数总个数问题

2.1 先来看看torch.tensor.numel( )这个函数的功能就是求tensor中的元素个数,在网络里面每层参数就是多维数组组成的tensor。

实际上就是求多维数组的元素个数。看代码。

print('cliqueNet parameters:', sum(param.numel() for param in model.parameters()))

当然上面代码中的model还是上面初始化的网络模型。

看看两种的计算结果

torch.Size([64, 1, 3, 3]) 576
576
torch.Size([64]) 64
640
torch.Size([6, 36, 64, 3, 3]) 124416
125056
torch.Size([30, 36, 36, 3, 3]) 349920
474976
torch.Size([12, 36]) 432
475408
torch.Size([6, 36, 216, 3, 3]) 419904
895312
torch.Size([30, 36, 36, 3, 3]) 349920
1245232
torch.Size([12, 36]) 432
1245664
torch.Size([6, 36, 216, 3, 3]) 419904
1665568
torch.Size([30, 36, 36, 3, 3]) 349920
2015488
torch.Size([12, 36]) 432
2015920
torch.Size([6, 36, 216, 3, 3]) 419904
2435824
torch.Size([30, 36, 36, 3, 3]) 349920
2785744
torch.Size([12, 36]) 432
2786176
torch.Size([216, 216, 1, 1]) 46656
2832832
torch.Size([216]) 216
2833048
torch.Size([108, 216]) 23328
2856376
torch.Size([108]) 108
2856484
torch.Size([216, 108]) 23328
2879812
torch.Size([216]) 216
2880028
torch.Size([216, 216, 1, 1]) 46656
2926684
torch.Size([216]) 216
2926900
torch.Size([108, 216]) 23328
2950228
torch.Size([108]) 108
2950336
torch.Size([216, 108]) 23328
2973664
torch.Size([216]) 216
2973880
torch.Size([216, 216, 1, 1]) 46656
3020536
torch.Size([216]) 216
3020752
torch.Size([108, 216]) 23328
3044080
torch.Size([108]) 108
3044188
torch.Size([216, 108]) 23328
3067516
torch.Size([216]) 216
3067732
torch.Size([140, 280, 1, 1]) 39200
3106932
torch.Size([140]) 140
3107072
torch.Size([216, 432, 1, 1]) 93312
3200384
torch.Size([216]) 216
3200600
torch.Size([216, 432, 1, 1]) 93312
3293912
torch.Size([216]) 216
3294128
torch.Size([9, 572, 3, 3]) 46332
3340460
torch.Size([9]) 9
3340469
total number of the model is 3340469
cliqueNet parameters: 3340469

可以看出两种计算出来的是一模一样的。

以上这篇pytorch 求网络模型参数实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python获取本地计算机名字的方法
Apr 29 Python
让Python代码更快运行的5种方法
Jun 21 Python
浅析Python中的for 循环
Jun 09 Python
Python实现自动添加脚本头信息的示例代码
Sep 02 Python
Python快速排序算法实例分析
Nov 29 Python
python距离测量的方法
Mar 06 Python
Python基于dom操作xml数据的方法示例
May 12 Python
对Tensorflow中权值和feature map的可视化详解
Jun 14 Python
Django使用paginator插件实现翻页功能的实例
Oct 24 Python
python游戏开发之视频转彩色字符动画
Apr 26 Python
python如何判断IP地址合法性
Apr 05 Python
Django正则URL匹配实现流程解析
Nov 13 Python
利用python3 的pygame模块实现塔防游戏
Dec 30 #Python
pytorch 批次遍历数据集打印数据的例子
Dec 30 #Python
python多线程使用方法实例详解
Dec 30 #Python
Python动态声明变量赋值代码实例
Dec 30 #Python
使用pytorch实现可视化中间层的结果
Dec 30 #Python
在Pytorch中计算自己模型的FLOPs方式
Dec 30 #Python
Pytorch之保存读取模型实例
Dec 30 #Python
You might like
Yii使用find findAll查找出指定字段的实现方法
2014/09/05 PHP
PHP设计模式(七)组合模式Composite实例详解【结构型】
2020/05/02 PHP
推荐40个非常优秀的jQuery插件和教程【系列三】
2011/11/09 Javascript
javascript自启动函数的问题探讨
2013/10/05 Javascript
让jQuery与其他JavaScript库并存避免冲突的方法
2013/12/23 Javascript
使用js判断控件是否获得焦点
2014/01/03 Javascript
设置jsf的选择框h:selectOneMenu为不可编辑状态的方法
2014/01/07 Javascript
js跨域访问示例(客户端/服务端)
2014/05/19 Javascript
如何正确使用javascript 来进行我们的程序开发
2014/06/23 Javascript
Javascript基于对象三大特性(封装性、继承性、多态性)
2016/01/04 Javascript
喜大普奔!jQuery发布 3.0 最终版
2016/06/12 Javascript
微信小程序 rpx 尺寸单位详细介绍
2016/10/13 Javascript
探究JavaScript中的五种事件处理程序方式
2016/12/07 Javascript
Angular 5.x 学习笔记之Router(路由)应用
2018/04/08 Javascript
vue2.0获取鼠标位置的方法
2018/09/13 Javascript
微信小程序的开发范式BeautyWe.js入门详解
2019/07/10 Javascript
Node.js安装详细步骤教程(Windows版)详解
2019/09/01 Javascript
原生JavaScript实现滑动拖动验证的示例代码
2019/12/06 Javascript
vue中使用腾讯云Im的示例
2020/10/23 Javascript
一篇不错的Python入门教程
2007/02/08 Python
python爬虫URL重试机制的实现方法(python2.7以及python3.5)
2018/12/18 Python
浅谈Python3中strip()、lstrip()、rstrip()用法详解
2019/04/29 Python
python 判断文件还是文件夹的简单实例
2019/06/10 Python
pytorch 图像中的数据预处理和批标准化实例
2020/01/15 Python
Python 求向量的余弦值操作
2021/03/04 Python
飞利浦法国官网:Philips法国
2019/07/10 全球购物
美国沃尔玛网上超市:Walmart
2020/08/14 全球购物
大学军训感言1500字
2014/03/09 职场文书
保险公司年会主持词
2014/03/22 职场文书
运动会口号8字
2014/06/07 职场文书
帮一个朋友写的求职信
2014/08/09 职场文书
招标承诺书
2014/08/30 职场文书
财政局个人总结
2015/03/04 职场文书
党支部工作总结2015
2015/04/01 职场文书
幼儿园迎新生欢迎词
2015/09/30 职场文书
CSS font-variation 可变字体的魅力(实例详解)
2022/03/03 HTML / CSS