一、卷积层参数计算

卷积层需要关注的参数有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. 深度学习-参数量模型大小理论计算量

    1. 参数量 指参数的数量,即一个模型包含多少个参数 \color{blue}{指参数的数量,即一个模型包含多少个参数} 指参数的数量,即一个模型包含多少个参数.单位M(10的6次方). 1.1. 卷 ...

  2. Lesson 16.1016.1116.1216.13 卷积层的参数量计算,1x1卷积核分组卷积与深度可分离卷积全连接层 nn.Sequential全局平均池化,NiN网络复现

    二 架构对参数量/计算量的影响 在自建架构的时候,除了模型效果之外,我们还需要关注模型整体的计算效率.深度学习模型天生就需要大量数据进行训练,因此每次训练中的参数量和计算量就格外关键,因此在设计卷积网 ...

  3. 【深度学习】深度学习中模型计算量(FLOPs)和参数量(Params)等的理解以及四种在python应用的计算方法总结

    接下来要分别概述以下内容: 1 首先什么是参数量,什么是计算量 2 如何计算 参数量,如何统计 计算量 3 换算参数量,把他换算成我们常用的单位,比如:mb 4 对于各个经典网络,论述他们是计算量大还 ...

  4. 常规-分组-深度分离-分组深度分离卷积-参数量-计算量-dilation-python实现

    不同的卷积操作 本文所用样本 一般的卷积(常规的) 分组卷积 深度分离卷积 逐通道卷积(depthwise conv) 逐点卷积 (pointwise conv) 分组深度分离卷积 上面卷积总结 卷积 ...

  5. 旷视首席科学家孙剑:深度学习变革视觉计算

    https://www.toutiao.com/i6714941914564526596/ 孙剑从视觉智能.计算机摄影学以及AI计算3个方面介绍了计算机视觉研究领域的变革. 作者 | 张栋 AI科技评 ...

  6. MIT警告深度学习正在逼近计算极限,网友:放缓不失为一件好事

    机器之心报道 参与:魔王.杜伟 MIT的一项研究认为,深度学习正在逼近算力极限. 深度学习需要大量数据和算力,这二者的发展是促进这一次人工智能浪潮的重要因素.但是,近期 MIT 的一项研究认为,深度学 ...

  7. DSSM、CNN-DSSM、LSTM-DSSM等深度学习模型在计算语义相似度上的应用+距离运算

    在NLP领域,语义相似度的计算一直是个难题:搜索场景下query和Doc的语义相似度.feeds场景下Doc和Doc的语义相似度.机器翻译场景下A句子和B句子的语义相似度等等.本文通过介绍DSSM.C ...

  8. 深度学习中FLOPs计算

    深度学习中FLOPs计算 定义:FLOPs(floating point operations),即浮点数运算次数,是一个计算量,所以可以用来衡量一个算法/模型等的复杂度 FLOPs是用来计算整个网络 ...

  9. 证券投资深度学习_安信证券:“深度学习”开启新一轮计算模式变革

    转自公众号 安信计算机 (axzqjsj) 事件:近日GPU巨头企业NVIDIA宣布推出一款致力于加速人工智能和深度学习的芯片TeslaP100,同时推出的还有全球首款面向深度学习的超级计算机NVID ...

最新文章

  1. java的byte php_java_浅谈java的byte数组的不同写法,(由于篇幅原因阐述的不够详 - phpStudy...
  2. 青蛙 mysql_青蛙学Linux—MySQL常用命令(二)
  3. python为什么用号做注释符_Python为什么用#号作注释符?
  4. windows下的正向shell
  5. WPF 如何将IconFont图标转成Geometry
  6. C# 页面关联类似模式窗口
  7. django orm_Django ORM简介
  8. Nginx SSI指令配置详解
  9. HDU 4296 Buildings
  10. 谷歌微软 IBM 激战云端,亚马逊地位恐将不保?
  11. APK反编译JAVA源码
  12. 中国大学MOOC伦理学试题题库及答案
  13. jquery读取表单中提交的数据
  14. 更新:电脑微信多开v3.5
  15. 《东周列国志》第五十五回 华元登床劫子反 老人结草亢杜回
  16. 【Python实例学习】用Python的xlsxwriter模块操作Excel表格,包括写入数据、样式设置、插入图片等
  17. PB实现国密SM2/SM3/SM4算法(DLL方式)
  18. 生存智慧——新的生活方式
  19. Interproscan性能测试
  20. 农业借助拼多多的东风实现数字化-纽黑文教育

热门文章

  1. 第一篇:SOUI是什么?
  2. 最新超详细Typora七牛云PicGO配置图床(一篇足以带你上高速)
  3. 第五人格服务器要维修到几点,第五人格维护登不上怎么办 服务器维护中详情...
  4. Unexpected token ‘ in JSON
  5. egg.js跨域设置多个域名白名单
  6. python 比较两字符串是否相同_Python如何确定两个字符串是否相同
  7. 软考是什么?软考的考试安排是什么时候?
  8. Coursera机器学习基石笔记Week1
  9. centos 6.5 编译php mysql5.6_CentOS 6.5编译安装Nginx+MySQL+PHP
  10. mysql 设置主键