Tensorflow计算一个模型的浮点运算数
1、统计模型的浮点运算数和参数量
- FLOPS:注意全大写,是floating point operations per second的缩写,意指每秒浮点运算次数,理解为计算速度。是一个衡量硬件性能的指标。
- FLOPs:注意s小写,是floating point operations的缩写(s表复数),意指浮点运算数,理解为计算量。可以用来衡量算法/模型的复杂度。
- MACCs:是multiply-accumulate operations),也叫MAdds,意指乘-加操作,理解为计算量,MAdds 大约是 FLOPs 的一半。
当我们使用tensorflow设计好一个神经网络模型之后,我们如何统计这个模型有多少浮点运算数(FLOPs)和多少参数量呢?我们可以使用tensorflow中的一个模块来进行统计,实例如下(以统计VGG为例):
#coding = utf-8import tensorflow as tf
import tensorflow.contrib.slim as slim
from tensorflow.contrib.slim.nets import vggdef stats_graph(graph):flops = tf.profiler.profile(graph, options=tf.profiler.ProfileOptionBuilder.float_operation())params = tf.profiler.profile(graph, options=tf.profiler.ProfileOptionBuilder.trainable_variables_parameter())print('FLOPs: {}; Trainable params: {}'.format(flops.total_float_ops, params.total_parameters))def main():with tf.Graph().as_default() as graph:inputs = tf.placeholder(dtype = tf.float32, shape = [1, 224, 224, 3])with slim.arg_scope(vgg.vgg_arg_scope()):_, end_points = vgg.vgg_16(inputs,num_classes=1000,is_training=True,dropout_keep_prob=0.5,spatial_squeeze=False,scope='vgg_16') stats_graph(graph)if __name__ == '__main__':main()
统计的输出为:
FLOPs: 31651968442; Trainable params: 138357544
计算方式参考论文:《Pruning Convolutional Neural Networks for Resource Efficient Inference》中的内容:
2、常用模型的FLOPs统计 (参考)
参考:https://blog.csdn.net/leayc/article/details/81001801
https://robertlexis.github.io/2018/08/28/Tensorflow-%E6%A8%A1%E5%9E%8B%E6%B5%AE%E7%82%B9%E6%95%B0%E8%AE%A1%E7%AE%97%E9%87%8F%E5%92%8C%E5%8F%82%E6%95%B0%E9%87%8F%E7%BB%9F%E8%AE%A1/
Tensorflow计算一个模型的浮点运算数相关推荐
- 人工智能学习07--pytorch11--分类网络:使用pytorch和tensorflow计算分类模型的混淆矩阵
师兄说学目标检测之前先学分类 坏了,内容好多!学学学 感谢up主,好人一生平安 混淆矩阵 什么是混淆矩阵: 横坐标:每一列属于该类的所有验证样本.每一列所有元素对应真实类别. 纵坐标:网络的预测类别. ...
- R语言计算回归模型每个样本(观察、observation、sample)的杠杆值(leverage)实战:如果一个样本的预测变量比其他样本的预测变量值更极端,那么被认为具有很高的杠杆作用
R语言计算回归模型每个样本(观察.observation.sample)的杠杆值(leverage)实战:如果一个样本的预测变量比其他样本的预测变量值更极端,那么被认为具有很高的杠杆作用 目录
- R语言计算回归模型每个样本(观察、observation、sample)的DFBETAS值实战:每一个样本对给定系数的估计有多大的影响
R语言计算回归模型每个样本(观察.observation.sample)的DFBETAS值实战:每一个样本对给定系数的估计有多大的影响 目录
- 【社区分享】从零开始学习 TinyML,建立 TensorFlow 深度学习模型(技术优化篇)
TinyML是什么?如何从零开始入门学习?本系列上一篇教程中,我们复习了 TinyML 的概念,完成了一个最简单的 ML 模型与微控制器运行.今天,本教程将与你探讨如何在实际的工程应用中对已建立的模型 ...
- 【社区分享】从零开始学习 TinyML,建立 TensorFlow 深度学习模型(模型应用篇)
TinyML是什么?如何从零开始入门学习?本系列上一篇教程为大家介绍了 TensorFlow 的基础原理,在这一篇中,我们将结合代码实例,教你如何去编写微控制器能够运行的 ML 应用,并进一步掌握项目 ...
- TensorFlow与PyTorch模型部署性能比较
TensorFlow与PyTorch模型部署性能比较 前言 2022了,选 PyTorch 还是 TensorFlow?之前有一种说法:TensorFlow 适合业界,PyTorch 适合学界.这种说 ...
- python线性加权回归_python深度学习-tensorflow实现一个线性回归的案例
线性回归:w1x1+w2x2+w3x3+......+wnxn+bias(这是一个偏移量),我们采用的算法是:线性回归,策略是:均方误差,优化是:梯度下降API, 1.转准备好实验的数据:100个数据 ...
- 深度学习利器:TensorFlow与NLP模型
深度学习利器:TensorFlow与NLP模型 享到:微博微信FacebookTwitter有道云笔记邮件分享 稍后阅读 我的阅读清单 前言 自然语言处理(简称NLP),是研究计算机处理人类语言的一门 ...
- 8.1 mnist_soft,TensorFlow构建回归模型
背景 之前已经写了很多TensorFlow的基本知识,现在利用TensorFlow实现一些简单的功能,对原来的知识进行串联,并初步入门,该部分共包括三篇,分别实现的是回归模型,浅层神经网络,KNN. ...
最新文章
- javascript断点调试方法
- AI 版 Nature Index 排名,两种结果折射中国 AI 实力软肋
- fcntl函数之文件锁 F_SETLK
- 【美文保存】nosql数据库对比以及如何巧妙利用redis来提高效率?
- 大一萌新看过来,C语言学到什么程度,才能“毕业不失业”!
- linux 解压文件zip格式
- Android初学第55天
- failed to connect to raw.githubusercontent.com port 443: Connection refused
- 理解 webpack 热更新
- Maven 项目中配置私服
- 防抖与节流方案_手写系列之防抖和节流
- 游戏启动是html,陈书艺:推动游戏前行 开启HTML5游戏之门
- Windows任务管理器中的内存
- PDF识别文字、关键字,获取对应坐标,用于插入电子签名
- 高数——关于微分方程共轭复根引发的复数思考
- mysql explain 性能分析_MySQL性能分析(Explain)
- wordpress 数据库_如何一键优化您的WordPress数据库
- Python_基础笔记
- eclipse的主题背景设置(关爱你的眼睛,从这里做起)
- this is a prerequisite condition to test whether the packagecompat-libstdc++-33-3.2.3-61.x86_64
热门文章
- HDU 6034 Balala Power!
- python 化学计量学_强烈推荐!八个鲜为人知的大数据学习网站!
- 深度学习平台使用文档
- CentOS (Community Enterprise Operating System)是什么?
- bootstrap表格 行编辑状态_JS组件系列——BootstrapTable 行内编辑解决方案:x-editable...
- 使用WGET参数介绍大全
- 【附源码】Python计算机毕业设计码码科技公司招投标管理系统
- QQ群排名优化:“小百度”大蓝海有搞头
- python 实现 短信登录 b站 并打印cookie内容
- php备份王,帝国备份王常见问题及解决方法