CNN 与 LSTM 模型复杂度分析
文章目录
- 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。
输入层和输出层暂时先不考虑,输入层没有参数,而输出层一般是全连接层,就不做单独分析。
- Convolutional Layer:
该层 filter 数量总数为 H*W*I,而每个将被映射到64个新的通道,加上每个filter 的计算要有一个 bias,所以总的参数数量为(H*W*I+1)*O。 - Pooling Layer:
一般的池化层属于固定操作,没有权重系数。 - 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
- https://datascience.stackexchange.com/questions/10615/number-of-parameters-in-an-lstm-model
- https://stackoverflow.com/questions/38080035/how-to-calculate-the-number-of-parameters-of-an-lstm-network
- http://wap.sciencenet.cn/blog-578676-1019567.html
- http://colah.github.io/posts/2015-08-Understanding-LSTMs/
CNN 与 LSTM 模型复杂度分析相关推荐
- 自然语言处理-应用场景-文本分类:基于LSTM模型的情感分析【IMDB电影评论数据集】--(重点技术:自定义分词、文本序列化、输入数据批次化、词向量迁移使用)
文本情感分类 1. 案例介绍 现在我们有一个经典的数据集IMDB数据集,地址:http://ai.stanford.edu/~amaas/data/sentiment/,这是一份包含了5万条流行电影的 ...
- 深度学习LSTM模型对股票分析预测
项目描述: 本程序使用了循环神经网络中的长期短期记忆模型(LSTM)以Apple公司过去60天的股价来预测收盘价 LSTM模型相当于对RNN模型的改良版本 RNN:想把所有的信息都记住,不管是有用的信 ...
- 智能问答:LSTM 句子相似度分析
向AI转型的程序员都关注了这个号
- python jieba 文本相似度_文本相似度分析(基于jieba和gensim)
##基础概念 本文在进行文本相似度分析过程分为以下几个部分进行, 文本分词 语料库制作 算法训练 结果预测 分析过程主要用两个包来实现jieba,gensim jieba:主要实现分词过程 gensi ...
- 基于逻辑回归,支持向量机,朴素贝叶斯以及简单深度学习文本分类方法(BiLSTM、CNN)实现的中文情感分析,含数据集可直接运行
基于逻辑回归,支持向量机,朴素贝叶斯以及简单深度学习文本分类方法(BiLSTM.CNN)实现的中文情感分析,含数据集可直接运行 完整代码下载地址:中文情感分析 中文情感分析 本项目旨在通过一个中文情感 ...
- LSTM模型在问答系统中的应用 2017-06-27 21:03 在问答系统的应用中,用户输入一个问题,系统需要根据问题去寻找最合适的答案。 1:采用句子相似度的方式。根据问题的字面相似度选择相似度最
LSTM模型在问答系统中的应用 2017-06-27 21:03 在问答系统的应用中,用户输入一个问题,系统需要根据问题去寻找最合适的答案. 1:采用句子相似度的方式.根据问题的字面相似度选择相似度最 ...
- 基于LSTM三分类的文本情感分析,采用LSTM模型,训练一个能够识别文本postive, neutral, negative三种
基于LSTM三分类的文本情感分析,采用LSTM模型,训练一个能够识别文本postive, neutral, negative三种 ,含数据集可直接运行 完整代码下载地址:基于LSTM三分类的文本情感分 ...
- 【直播】陈安东,但扬:CNN模型搭建、训练以及LSTM模型思路详解
CNN模型搭建.训练以及LSTM模型思路详解 目前 Datawhale第24期组队学习 正在如火如荼的进行中.为了大家更好的学习"零基础入门语音识别(食物声音识别)"的课程设计者 ...
- CNN模型复杂度(FLOPs、MAC)、参数量与运行速度
CNN模型复杂度(FLOPs.MAC).参数量与运行速度 先转载一下,有空再来整理 文章目录 0. 模型复杂度简介 1. 模型复杂度之一:模型参数量的计算方法 卷积层参数量计算 全连接层参数量计算 2 ...
最新文章
- 配置安全域名https申请免费证书并配置nginx运行环境
- Exynos4412 内核移植(七)—— 内核相关知识补充
- DBUtils使用详细示例(转载)
- 智能会议系统---(4)VOIP 实现
- 【hive】hive(hive cli)中显示列名,不带表名
- 鼠标经过背景图片变换
- Tomcat 系统架构与设计模式之设计模式篇
- Java对接支付宝(alipay)电脑网站生成二维码扫码支付 alipay.trade.page.pay统一收单下单并支付页面接口
- 双硬盘安装win10和linux双系统,双硬盘最初尝试完美安装Windows10 + ubuntu16双系统
- ThinkPHP报错The requested URL /index/index/xxx.html was not found on this server.
- 如何迅速打造敏捷团队
- 【科研论文】Endnote入门指南
- AOP思想实现集中式登录,用户行为统计框架
- 微信登录API使用小结
- 台达PLC中的寄存器如何进行高低位调换?
- 电商抖音直播带货SOP工作流程主播计划脚本方案
- 用户指南:自动切换打印机的位置感知打印功能——乡巴佬下载
- Python+Excel:将一个工作簿拆分为多个工作簿
- 360掐架搜狗浏览器
- 集成mybatis对数据更新和查询加解密操作