文章目录

  • 0.关于Neural Network 的复杂度
  • 1.CNN 模型复杂度
  • 2.LSTM 模型复杂度
  • 3.References

Author: Cao Shengming
Email: caoshengming@trio.ai
Company: Trio 北京(三角兽)科技有限公司


0.关于Neural Network 的复杂度

NN 模型的复杂度一般可以从两个方面来刻画:
时间复杂度:

时间复杂度与硬件执行息息相关,但是一般表示模型时间复杂度的方法,可以是某一层、或者产生某个结果所需要的操作(operation)数、所需要处理的元素(elements)个数或者完成某个操作所需要经历的路径长度(path length)。

空间复杂度:

空间复杂度与模型容量是息息相关的,这里我们可以将空间复杂度简单理解为模型的参数数量,也就是说 parameters per layer 就可以认为是该层的模型复杂度。

(Note: 下边如果不做特殊说明,我们将先讲述空间复杂度的状况。)

1.CNN 模型复杂度

常见的 CNN 模型一般包含以下集中类型的层,卷积层、池化层和全连接层。假设卷积核大小为 H*W,input channel 为 I,out channel 为 O。

输入层和输出层暂时先不考虑,输入层没有参数,而输出层一般是全连接层,就不做单独分析。

  1. Convolutional Layer:
    该层 filter 数量总数为 H*W*I,而每个将被映射到64个新的通道,加上每个filter 的计算要有一个 bias,所以总的参数数量为(H*W*I+1)*O。
  2. Pooling Layer:
    一般的池化层属于固定操作,没有权重系数。
  3. Fully Connected Layer:
    全连接层也好理解,前后要是 n,m 维的输入输出,所以其参数数量为(n+1)*m。

2.LSTM 模型复杂度

如图所示LSTM将一共维护4套参数,分别对应输入门、输出门、遗忘门和候选态。所以总的参数数量如下所示:

Number_of_weight = 4 * Hidden_size * (Input_size + Bias + Output_size)

其中当不做 project 的时候,Output_size 和 Hidden_size 实际上是一致的。
其中 Input_size + Output_size 实际上就是 concat[ht−1h_{t-1}ht−1​, x] 。假设只有一个 hidden unit 那么参数数量为num(ht−1h_{t-1}ht−1​) + num(x) + num(bias),所以所有的 hidden unit 加起来只需要在前边乘以 hidden_size 就可以。

但我们还可以整体来理解,LSTM 中的参数我们可以简化为 U ,V 两个矩阵,其分别对输入和输出做映射,U 的维度为 hidden*Input,V 的维度是 hidden*hidden。所以这样分开理解也可以,网络在学习的就是这两个矩阵,所以总的数量为 4(hidden*Input + hidden*hidden + hidden) 这也就是我们常看到的 4(nm+ n2n^2n2 +n),其中 n 为 hidden_size,m 为 input_size。

3.References

  1. https://datascience.stackexchange.com/questions/10615/number-of-parameters-in-an-lstm-model
  2. https://stackoverflow.com/questions/38080035/how-to-calculate-the-number-of-parameters-of-an-lstm-network
  3. http://wap.sciencenet.cn/blog-578676-1019567.html
  4. http://colah.github.io/posts/2015-08-Understanding-LSTMs/

CNN 与 LSTM 模型复杂度分析相关推荐

  1. 自然语言处理-应用场景-文本分类:基于LSTM模型的情感分析【IMDB电影评论数据集】--(重点技术:自定义分词、文本序列化、输入数据批次化、词向量迁移使用)

    文本情感分类 1. 案例介绍 现在我们有一个经典的数据集IMDB数据集,地址:http://ai.stanford.edu/~amaas/data/sentiment/,这是一份包含了5万条流行电影的 ...

  2. 深度学习LSTM模型对股票分析预测

    项目描述: 本程序使用了循环神经网络中的长期短期记忆模型(LSTM)以Apple公司过去60天的股价来预测收盘价 LSTM模型相当于对RNN模型的改良版本 RNN:想把所有的信息都记住,不管是有用的信 ...

  3. 智能问答:LSTM 句子相似度分析

    向AI转型的程序员都关注了这个号

  4. python jieba 文本相似度_文本相似度分析(基于jieba和gensim)

    ##基础概念 本文在进行文本相似度分析过程分为以下几个部分进行, 文本分词 语料库制作 算法训练 结果预测 分析过程主要用两个包来实现jieba,gensim jieba:主要实现分词过程 gensi ...

  5. 基于逻辑回归,支持向量机,朴素贝叶斯以及简单深度学习文本分类方法(BiLSTM、CNN)实现的中文情感分析,含数据集可直接运行

    基于逻辑回归,支持向量机,朴素贝叶斯以及简单深度学习文本分类方法(BiLSTM.CNN)实现的中文情感分析,含数据集可直接运行 完整代码下载地址:中文情感分析 中文情感分析 本项目旨在通过一个中文情感 ...

  6. LSTM模型在问答系统中的应用 2017-06-27 21:03 在问答系统的应用中,用户输入一个问题,系统需要根据问题去寻找最合适的答案。 1:采用句子相似度的方式。根据问题的字面相似度选择相似度最

    LSTM模型在问答系统中的应用 2017-06-27 21:03 在问答系统的应用中,用户输入一个问题,系统需要根据问题去寻找最合适的答案. 1:采用句子相似度的方式.根据问题的字面相似度选择相似度最 ...

  7. 基于LSTM三分类的文本情感分析,采用LSTM模型,训练一个能够识别文本postive, neutral, negative三种

    基于LSTM三分类的文本情感分析,采用LSTM模型,训练一个能够识别文本postive, neutral, negative三种 ,含数据集可直接运行 完整代码下载地址:基于LSTM三分类的文本情感分 ...

  8. 【直播】陈安东,但扬:CNN模型搭建、训练以及LSTM模型思路详解

    CNN模型搭建.训练以及LSTM模型思路详解 目前 Datawhale第24期组队学习 正在如火如荼的进行中.为了大家更好的学习"零基础入门语音识别(食物声音识别)"的课程设计者 ...

  9. CNN模型复杂度(FLOPs、MAC)、参数量与运行速度

    CNN模型复杂度(FLOPs.MAC).参数量与运行速度 先转载一下,有空再来整理 文章目录 0. 模型复杂度简介 1. 模型复杂度之一:模型参数量的计算方法 卷积层参数量计算 全连接层参数量计算 2 ...

最新文章

  1. 配置安全域名https申请免费证书并配置nginx运行环境
  2. Exynos4412 内核移植(七)—— 内核相关知识补充
  3. DBUtils使用详细示例(转载)
  4. 智能会议系统---(4)VOIP 实现
  5. 【hive】hive(hive cli)中显示列名,不带表名
  6. 鼠标经过背景图片变换
  7. Tomcat 系统架构与设计模式之设计模式篇
  8. Java对接支付宝(alipay)电脑网站生成二维码扫码支付 alipay.trade.page.pay统一收单下单并支付页面接口
  9. 双硬盘安装win10和linux双系统,双硬盘最初尝试完美安装Windows10 + ubuntu16双系统
  10. ThinkPHP报错The requested URL /index/index/xxx.html was not found on this server.
  11. 如何迅速打造敏捷团队
  12. 【科研论文】Endnote入门指南
  13. AOP思想实现集中式登录,用户行为统计框架
  14. 微信登录API使用小结
  15. 台达PLC中的寄存器如何进行高低位调换?
  16. 电商抖音直播带货SOP工作流程主播计划脚本方案
  17. 用户指南:自动切换打印机的位置感知打印功能——乡巴佬下载
  18. Python+Excel:将一个工作簿拆分为多个工作簿
  19. 360掐架搜狗浏览器
  20. 集成mybatis对数据更新和查询加解密操作

热门文章

  1. 基于单片机的贪吃蛇游戏设计_前端入门,基于html,css,javascript的贪吃蛇游戏
  2. mysql忘记密码解决方法
  3. 影响solr性能的一些因素(附使用经验)
  4. 洛谷P3694 邦邦的大合唱
  5. HDU1081 (最大连续子序列/矩阵)
  6. (android之sqlite一)Sqlite介绍和sqlite工具介绍
  7. 黄金矿工游戏demo
  8. 一个简单的GridView分页
  9. AODV---点点滴滴
  10. pack unpakc