深度学习——参数量计算
一、卷积层参数计算
卷积层需要关注的参数有conv(kernel_size,in_channel,out_channel),即卷积核大小,输入输出通道数,和偏差bias。
计算公式:conv_param=(k_size*k_size*in_channel+bias)*out_channel
for example:
图像大小:640*640*3(用不到)
卷积核大小:3*3
输入通道大小:3
输出通道大小:64
则参数个数为:param=(3*3*3+1)*64=1792
二、全连接网络参数计算
全连接层需要关注的参数有输入神经元数M和输出神经元数N。
参数计算公式:param=(M+1)*N
for example:
输入神经元:M=3
输出神经元:N=5
则参数个数为:param=(3+1)*5=20
三、衡量模型复杂度
模型参数数量,直接决定了模型的大小,也影响推断时对内存的占用量。模型大小单位通常为M,参数通常用float32来表示,所以模型大小是参数数量的4倍左右。
10M float32 bit =10M * 4 Byte =40MB
理论计算量(FLOPs):
指模型推断时需要多少计算次数是 floating point operations 的缩写(注意 s 小写),可以用来衡量算法/模型的复杂度,这关系到算法速度,大模型的单位通常为 G(GFLOPs:10亿次浮点运算),小模型单位通常为 M通常只考虑乘加操作(Multi-Adds)的数量,而且只考虑 CONV 和 FC 等参数层的计算量,忽略 BN 和 PReLU 等等。一般情况,CONV 和 FC 层也会 忽略仅纯加操作 的计算量,如 bias 偏置加和 shotcut 残差加等,目前有 BN 的卷积层可以不加 bias ,PS:也有用 MAC(Memory Access Cost) 表示的
FLOPs=param*图像宽高={(3*3*3+1)*64=1792}*640*640=734003200FLOPs=7.34GFLOPs
(引用上方例子)
四、硬件性能衡量
算力:
计算平台倾尽全力每秒钟所能完成的浮点运算数(计算速度,fp32),单位一般为 TFLOPS(floating point of per second)
计算公式一般为 处理器核心时钟频率 × 处理器核心数量 × 特定数据类型的指令吞吐量 × 2 ,后面乘以 2 是因为乘加视作两次浮点运算
eg:NVIDIA A100 GPU 频率为 1.41GHZ,处理器( Streaming Multiprocessors, SMs)数为 108,每个处理器 FP32 的 CUDA Cores 数量为 64,那么 PeakFLOPS = 1.4110864*2 = 19.49TFLOPS
此时,处理上方例子所需时间为7.34GFLOPs/19.49TFLOPS=0.376*10^-3s(引用上方例子)
带宽:
计算平台倾尽全力每秒所能完成的内存(CPU 内存 or GPU 显存)交换量,单位一般为 GB/s(GByte/second)
计算公式一般为 (内存核心时钟频率 × 2) × (内存位宽 / 8) × 通道数,内存频率乘以 2 是因为一个时钟周期传输 2 bit 数据(上升沿和下降沿各传送一次);内存位宽的单位为 bit,除以 8 转换为 Byte;现在的内存条一般通道数为 2
eg:某相机芯片带宽:(2000MHZ × 2) × (32 / 8) × 2 = 32GB/s ,NVIDIA A100 带宽:(1215MHZ × 2) × (5120 / 8) × 1 = 1555.2GB/s
深度学习——参数量计算相关推荐
- 深度学习-参数量模型大小理论计算量
1. 参数量 指参数的数量,即一个模型包含多少个参数 \color{blue}{指参数的数量,即一个模型包含多少个参数} 指参数的数量,即一个模型包含多少个参数.单位M(10的6次方). 1.1. 卷 ...
- Lesson 16.1016.1116.1216.13 卷积层的参数量计算,1x1卷积核分组卷积与深度可分离卷积全连接层 nn.Sequential全局平均池化,NiN网络复现
二 架构对参数量/计算量的影响 在自建架构的时候,除了模型效果之外,我们还需要关注模型整体的计算效率.深度学习模型天生就需要大量数据进行训练,因此每次训练中的参数量和计算量就格外关键,因此在设计卷积网 ...
- 【深度学习】深度学习中模型计算量(FLOPs)和参数量(Params)等的理解以及四种在python应用的计算方法总结
接下来要分别概述以下内容: 1 首先什么是参数量,什么是计算量 2 如何计算 参数量,如何统计 计算量 3 换算参数量,把他换算成我们常用的单位,比如:mb 4 对于各个经典网络,论述他们是计算量大还 ...
- 常规-分组-深度分离-分组深度分离卷积-参数量-计算量-dilation-python实现
不同的卷积操作 本文所用样本 一般的卷积(常规的) 分组卷积 深度分离卷积 逐通道卷积(depthwise conv) 逐点卷积 (pointwise conv) 分组深度分离卷积 上面卷积总结 卷积 ...
- 旷视首席科学家孙剑:深度学习变革视觉计算
https://www.toutiao.com/i6714941914564526596/ 孙剑从视觉智能.计算机摄影学以及AI计算3个方面介绍了计算机视觉研究领域的变革. 作者 | 张栋 AI科技评 ...
- MIT警告深度学习正在逼近计算极限,网友:放缓不失为一件好事
机器之心报道 参与:魔王.杜伟 MIT的一项研究认为,深度学习正在逼近算力极限. 深度学习需要大量数据和算力,这二者的发展是促进这一次人工智能浪潮的重要因素.但是,近期 MIT 的一项研究认为,深度学 ...
- DSSM、CNN-DSSM、LSTM-DSSM等深度学习模型在计算语义相似度上的应用+距离运算
在NLP领域,语义相似度的计算一直是个难题:搜索场景下query和Doc的语义相似度.feeds场景下Doc和Doc的语义相似度.机器翻译场景下A句子和B句子的语义相似度等等.本文通过介绍DSSM.C ...
- 深度学习中FLOPs计算
深度学习中FLOPs计算 定义:FLOPs(floating point operations),即浮点数运算次数,是一个计算量,所以可以用来衡量一个算法/模型等的复杂度 FLOPs是用来计算整个网络 ...
- 证券投资深度学习_安信证券:“深度学习”开启新一轮计算模式变革
转自公众号 安信计算机 (axzqjsj) 事件:近日GPU巨头企业NVIDIA宣布推出一款致力于加速人工智能和深度学习的芯片TeslaP100,同时推出的还有全球首款面向深度学习的超级计算机NVID ...
最新文章
- java的byte php_java_浅谈java的byte数组的不同写法,(由于篇幅原因阐述的不够详 - phpStudy...
- 青蛙 mysql_青蛙学Linux—MySQL常用命令(二)
- python为什么用号做注释符_Python为什么用#号作注释符?
- windows下的正向shell
- WPF 如何将IconFont图标转成Geometry
- C# 页面关联类似模式窗口
- django orm_Django ORM简介
- Nginx SSI指令配置详解
- HDU 4296 Buildings
- 谷歌微软 IBM 激战云端,亚马逊地位恐将不保?
- APK反编译JAVA源码
- 中国大学MOOC伦理学试题题库及答案
- jquery读取表单中提交的数据
- 更新:电脑微信多开v3.5
- 《东周列国志》第五十五回 华元登床劫子反 老人结草亢杜回
- 【Python实例学习】用Python的xlsxwriter模块操作Excel表格,包括写入数据、样式设置、插入图片等
- PB实现国密SM2/SM3/SM4算法(DLL方式)
- 生存智慧——新的生活方式
- Interproscan性能测试
- 农业借助拼多多的东风实现数字化-纽黑文教育
热门文章
- 第一篇:SOUI是什么?
- 最新超详细Typora七牛云PicGO配置图床(一篇足以带你上高速)
- 第五人格服务器要维修到几点,第五人格维护登不上怎么办 服务器维护中详情...
- Unexpected token ‘ in JSON
- egg.js跨域设置多个域名白名单
- python 比较两字符串是否相同_Python如何确定两个字符串是否相同
- 软考是什么?软考的考试安排是什么时候?
- Coursera机器学习基石笔记Week1
- centos 6.5 编译php mysql5.6_CentOS 6.5编译安装Nginx+MySQL+PHP
- mysql 设置主键