pytorch 计算Parameter和FLOP的操作


Posted in Python onMarch 04, 2021

深度学习中,模型训练完后,查看模型的参数量和浮点计算量,在此记录下:

1 THOP

在pytorch中有现成的包thop用于计算参数数量和FLOP,首先安装thop:

pip install thop

注意安装thop时可能出现如下错误:

pytorch 计算Parameter和FLOP的操作

解决方法:

pip install --upgrade git+https://github.com/Lyken17/pytorch-OpCounter.git # 下载源码安装

使用方法如下:

from torchvision.models import resnet50 # 引入ResNet50模型
from thop import profile
model = resnet50()
flops, params = profile(model, input_size=(1, 3, 224,224)) # profile(模型,输入数据)

对于自己构建的函数也一样,例如shuffleNetV2

from thop import profile
  from utils.ShuffleNetV2 import shufflenetv2 # 导入shufflenet2 模块
  import torch 
  
  model_shuffle = shufflenetv2(width_mult=0.5)
  model = torch.nn.DataParallel(model_shuffle)  # 调用shufflenet2 模型,该模型为自己定义的
  flop, para = profile(model, input_size=(1, 3, 224, 224),) 
  print("%.2fM" % (flop/1e6), "%.2fM" % (para/1e6))

更多细节,可参考thop GitHub链接: https://github.com/Lyken17/pytorch-OpCounter

2 计算参数

pytorch本身带有计算参数的方法

from thop import profile
  from utils.ShuffleNetV2 import shufflenetv2 # 导入shufflenet2 模块
  import torch 
  
  model_shuffle = shufflenetv2(width_mult=0.5)
  model = torch.nn.DataParallel(model_shuffle)
  total = sum([param.nelement() for param in model.parameters()])
  print("Number of parameter: %.2fM" % (total / 1e6))

补充:pytorch: 计算网络模型的计算量(FLOPs)和参数量(Params)

计算量:

FLOPs,FLOP时指浮点运算次数,s是指秒,即每秒浮点运算次数的意思,考量一个网络模型的计算量的标准。

参数量:

Params,是指网络模型中需要训练的参数总数。

第一步:安装模块(thop)

pip install thop

第二步:计算

import torch
from thop import profile
net = Model() # 定义好的网络模型
input = torch.randn(1, 3, 112, 112)
flops, params = profile(net, (inputs,))
print('flops: ', flops, 'params: ', params)

注意:

输入input的第一维度是批量(batch size),批量的大小不回影响参数量, 计算量是batch_size=1的倍数

profile(net, (inputs,))的 (inputs,)中必须加上逗号,否者会报错

以上为个人经验,希望能给大家一个参考,也希望大家多多支持三水点靠木。如有错误或未考虑完全的地方,望不吝赐教。

Python 相关文章推荐
浅谈Python中用datetime包进行对时间的一些操作
Jun 23 Python
Python正则表达式匹配中文用法示例
Jan 17 Python
Python实现模拟分割大文件及多线程处理的方法
Oct 10 Python
python使用SMTP发送qq或sina邮件
Oct 21 Python
python与caffe改变通道顺序的方法
Aug 04 Python
django解决跨域请求的问题详解
Jan 20 Python
Python3基础教程之递归函数简单示例
Jun 07 Python
python处理大日志文件
Jul 23 Python
Python 格式化输出_String Formatting_控制小数点位数的实例详解
Feb 04 Python
python操作redis数据库的三种方法
Sep 10 Python
Python基于staticmethod装饰器标示静态方法
Oct 17 Python
Python干货实战之八音符酱小游戏全过程详解
Oct 24 Python
从Pytorch模型pth文件中读取参数成numpy矩阵的操作
Mar 04 #Python
python 如何用urllib与服务端交互(发送和接收数据)
Mar 04 #Python
python 求两个向量的顺时针夹角操作
Mar 04 #Python
python 制作磁力搜索工具
Mar 04 #Python
python抢购软件/插件/脚本附完整源码
Mar 04 #Python
Python 求向量的余弦值操作
Mar 04 #Python
django使用多个数据库的方法实例
Mar 04 #Python
You might like
shopex主机报错误请求解决方案(No such file or directory)
2011/12/27 PHP
php使用MySQL保存session会话的方法
2015/06/18 PHP
PHP定时执行任务实现方法详解(Timer)
2015/07/30 PHP
Laravel配合jwt使用的方法实例
2020/10/25 PHP
用js实现控制内容的向上向下滚动效果
2007/06/26 Javascript
javascript转换字符串为dom对象(字符串动态创建dom)
2010/05/10 Javascript
深入探讨JavaScript、JQuery屏蔽网页鼠标右键菜单及禁止选择复制
2014/06/10 Javascript
分享一则JavaScript滚动条插件源码
2015/03/03 Javascript
jQuery点击输入框显示验证码图片
2016/05/19 Javascript
js剪切板应用clipboardData实例解析
2016/05/29 Javascript
Angular ng-class详解及实例代码
2016/09/19 Javascript
原生JS查找元素的方法(推荐)
2016/11/22 Javascript
微信小程序中的onLoad详解及简单实例
2017/04/05 Javascript
JavaScript实现的冒泡排序法及统计相邻数交换次数示例
2017/04/26 Javascript
Express下采用bcryptjs进行密码加密的方法
2018/02/07 Javascript
JS实现的合并两个有序链表算法示例
2019/02/25 Javascript
JavaScript函数式编程(Functional Programming)组合函数(Composition)用法分析
2019/05/22 Javascript
[00:36]DOTA2勇士令状莱恩声望物品——冥晶之厄展示
2018/05/25 DOTA
[01:08:30]DOTA2-DPC中国联赛 正赛 Ehome vs Elephant BO3 第一场 2月28日
2021/03/11 DOTA
Django中实现一个高性能计数器(Counter)实例
2014/07/09 Python
python实现百万答题自动百度搜索答案
2018/01/16 Python
对Python中创建进程的两种方式以及进程池详解
2019/01/14 Python
Python小程序之在图片上加入数字的代码
2019/11/26 Python
Python如何使用内置库matplotlib绘制折线图
2020/02/24 Python
使用 Python 遍历目录树的方法
2020/02/29 Python
解决keras模型保存h5文件提示无此目录问题
2020/07/01 Python
Python3 ffmpeg视频转换工具使用方法解析
2020/08/10 Python
使用Python webdriver图书馆抢座自动预约的正确方法
2021/03/04 Python
css3实现波纹特效、H5实现动态波浪效果
2018/01/31 HTML / CSS
Joie官方网上商店:购买服装和女装配饰
2018/06/05 全球购物
美国婴儿用品及配件购买网站:Munchkin
2019/04/03 全球购物
当当网软件测试笔试题
2015/11/24 面试题
护士找工作求职信
2014/07/02 职场文书
银行转正自我鉴定
2014/09/29 职场文书
行政执法作风整顿剖析材料
2014/10/11 职场文书
出差报告格式模板
2014/11/06 职场文书