手工计算深度学习模型中的参数数量
https://www.toutiao.com/a6649299295855968782/
2019-01-22 20:37:14
计算深度学习模型的可训练参数的数量被认为太微不足道了,因为您的代码已经可以为您完成此操作。但是我想在这里留下笔记,让我们偶尔参考一下。以下是我们将要运行的神经网络模型:
- 前馈神经网络(FFNN)
- 循环神经网络(RNN)
- 卷积神经网络(CNN)
我们将使用Keras的API构建机器学习模型,以便于原型设计和干净的代码,因此我们可以在此处快速导入依赖库:
构建之后model,调用model.count_params()以验证可训练的参数数量。
1. 前馈神经网络(FFNN)
- i, 输入大小
- h,隐藏层的大小
- o,输出大小
对于一个隐藏层,
num_params
=各层之间的连接+每层中的偏差
= (i×h + h×o)+(h + o)
例1.1:输入大小为3,隐藏层大小为5,输出大小为2
图1.1
- i = 3
- h = 5
- o = 2
num_params
=各层之间的连接+每层中的偏差
= (3×5 + 5×2)+(5 + 2)
= 32
例1.2:输入大小50,隐藏层大小[100,1,100],输出大小50
图1.2
- i = 50
- h = 100,1,100
- o = 50
num_params
=各层之间的连接+每层中的偏差
= (50×100 + 100×1 + 1×100 + 100×50)+(100 + 1 + 100 + 50)
= 10,451
2. 循环神经网络(RNN)
- g,门数量(RNN有1个,GRU有3个,LSTM有4个)
- h,隐藏单元的大小
- i,输入的大小
每个门的权重个数实际上是一个FFNN,具有输入大小(h+i)和输出大小h。所以每个门都有h(h + i)+ h个参数。
num_params = g ×[ h(h + i)+ h ]
例2.1:具有2个隐藏单元和输入大小为3的LSTM。
图2.1:LSTM cell
- g = 4(LSTM有4个门)
- h = 2
- i= 3
num_params
= g ×[ h(h + i)+ h ]
= 4 ×[2(2 + 3)+ 2]
= 48
例2.2:具有5个隐藏单元和输入大小为8(其输出串联)+ LSTM(50个隐藏单元)的堆叠双向GRU
图2.2:由BiGRU和LSTM层组成的堆叠RNN
双向GRU,5个隐藏单元,输入大小8
- g = 3(GRU有3个门)
- h = 5
- i = 8
num_params_layer1
= 2 × g ×[ h(h + i)+ h ](由于是双向,第一项为2)
= 2 ×3×[5(5 + 8)+ 5]
= 420
LSTM有50个隐藏单位
- g = 4(LSTM有4个门)
- h = 50
- i = 5 + 5(GRU的输出大小为5,与隐藏单元的数量相同)
num_params_layer2
= g ×[ h(h + i)+ h ]
= 4×[50(50 + 10)+ 50]
= 12,200
total_params = 420 + 12,200 = 12,620
merge_mode 默认情况下是串联。
3.卷积神经网络(CNN)
对于一层,
- i,输入映射(或通道)的数量
- f,filter size
- o,输出映射(或通道。这也是由使用了多少个filters定义的)的数量
一个filter应用于每个输入映射。
num_params
=权重+偏差
= [ i×(f×f)×o ] + o
例3.1:灰度图像,输出3个通道
图3.1:使用2 ×2 filter对灰度图像进行卷积 输出3个通道
- i = 1(灰度只有1个通道)
- f = 2
- o = 3
num_params
= [ i×(f×f)×o ] + o
= [1 ×(2 × 2)× 3] + 3
= 15
例3.2:RGB图像,1通道的输出
每个输入特征映射都有一个过滤器。生成的卷积按元素顺序添加,并向每个元素添加一个偏差项。这将给出一个带有1个feature map的输出。
图3.2:使用2 ×2 filter将RGB图像卷积,输出1通道
- i = 3(RGB图像有3个通道)
- f = 2
- o = 1
num_params
= [ i×(f×f)×o ] + o
= [3 ×(2×2)×1] + 1 = 13
例3.3:具有2个通道的图像,以及3个通道的输出
每个输入feature map有3个filters(紫色、黄色、青色)。生成的卷积按元素顺序添加,并向每个元素添加一个偏差项。这给出了一个带有3个特性映射的输出。
图3.1:2通道图像,2 ×2 filter, 输出3个通道
这里有27个参数--24个权重和3个偏差。
- i = 2
- f = 2
- o = 3
num_params
= [ i×(f×f)×o ] + o
= [2 ×(2×2)×3] + 3 = 27
手工计算深度学习模型中的参数数量相关推荐
- 深度学习模型中的参数数量(备忘)
原文地址:huay' blog/模型中的参数数量(备忘) 记录模型参数数量的计算方法 最早使用 tensorflow 的时候没怎么注意这个问题: 后面高级 API 用的多了,有点忘记怎么计算模型的参数 ...
- 【AI初识境】深度学习模型中的Normalization,你懂了多少?
文章首发于微信公众号<有三AI> [AI初识境]深度学习模型中的Normalization,你懂了多少? 这是<AI初识境>第6篇,这次我们说说Normalization.所谓 ...
- DL之模型调参:深度学习算法模型优化参数之对深度学习模型的超参数采用网格搜索进行模型调优(建议收藏)
DL之模型调参:深度学习算法模型优化参数之对深度学习模型的超参数采用网格搜索进行模型调优(建议收藏) 目录 神经网络的参数调优 1.神经网络的通病-各种参数随机性 2.评估模型学习能力
- 【深度学习】深度学习模型中的信任危机及校正方法
作者: 北邮 GAMMA Lab 硕士生 刘洪瑞,副教授 王啸 1 前言 深度学习在计算机视觉.自然语言处理.数据挖掘等诸多研究领域中的潜力被广泛认可,在目标检测.语音识别.医疗检测.金融欺诈检 ...
- CMU | 深度学习模型中集成优化、约束和控制
点上方蓝字计算机视觉联盟获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散 仅作分享,不代表本公众号立场,侵权联系删除 转载于:专知 AI博士笔记系列推荐 周志华<机器学习>手推笔 ...
- 深度学习模型中颜色空间转换
目录 背景 方法 结论 背景 情况是这样的,我训练一个深度学习模型,用于图片的处理,读取图片时使用的是skimage包,然后进行一系列常见的处理变为tensor类型送入模型中进行训练.这个模型为我自己 ...
- 「AI初识境」深度学习模型中的Normalization,你懂了多少?
https://www.toutiao.com/a6694436118189834765/ 这是<AI初识境>第6篇,这次我们说说Normalization.所谓初识,就是对相关技术有基本 ...
- 如何向深度学习模型中加入先验知识?
链接:https://www.zhihu.com/question/279012198 编辑:深度学习与计算机视觉 声明:仅做学术分享,侵删 作者:采石工 https://www.zhihu.com/ ...
- 计算深度学习模型的推理时间、fps
目录 背景 代码 参考: 背景 评估模型的推理时间时有需要注意的地方.如torch.cuda.synchronize(),因为pytorch代码执行时异步的,使用该代码会等待gpu上所有操作结束后再接 ...
最新文章
- html文本域应该写在哪,我们如何在pharo上填写html文本区域
- SpringBoot整合WebSocket
- ITK:重新缩放图像
- 音视频技术开发周刊 | 206
- tomcat8日志乱码_Tomcat输出日志乱码解决
- MDK C++中对内联的极度优化
- php 表格分页代码,[Php]分页及表格样式
- redis数据类型list总结
- 使用 OpCache 提升 PHP 5.5+ 程序性能
- 数字语音识别 - 源码下载|数值算法/人工智能|matlab例程|源代码 - 源码中国
- H264格式说明及解析
- 腾达ap设置说明_腾达Tenda F6无线信号放大模式(Client+AP)设置方法
- Ubuntu连接IKEv2
- c语言写一元一次函数图像,一次函数与一元一次不等式(洋葱数学)
- 无忧·企业文档2.1.4版本更新清单说明来啦
- 一切都好,只是很想念
- 2022年人工智能领域发展七大趋势
- 【EXE PE】了解pe段--PE结构详解
- sql join备忘
- QQ2005正式版将于27日发布!(转)
热门文章
- 开启报名丨图神经网络前沿学术研讨会
- 智源成立面向可持续发展的人工智能智库并发布公益研究计划
- 北京智源人工智能研究院2020年博士后招收简章
- Java程序员必备秘籍 Scala与Clojure函数式编程语言
- TensorFlow学习笔记(二十三)四种Cross Entropy交叉熵算法实现和应用
- 零知识证明实践教程,第二部分
- ​超大规模时空数据的分布式存储与应用
- 机器学习训练中常见的问题和挑战
- 算法博士平均月入4万,数据可视化技能全球吃香 | 2020年《顶级数据团队建设全景报告》重磅发布...
- 刘政:别着急颠覆传统数据分析人才培养,先将落脚点放在实处