精华内容
下载资源
问答
  • LSTM神经元中参数个数

    千次阅读 2019-04-23 17:03:30
    LSTM神经元个数 1. LSTM简单介绍 上图中间位置就是一个LSTM cell,红框框从左到右,依次是: 忘记门层: 决定从细胞状态中丢弃什么信息,通过当前时刻输入(xtx_{t}xt​)和前一个时刻输出(ht−1h_{t-1}ht−1​)...
    转载资料:https://www.cnblogs.com/wushaogui/p/9176617.html

    LSTM的神经元个数

    1. LSTM简单介绍

    在这里插入图片描述
    上图中间位置就是一个LSTM cell,红框框从左到右,依次是:
    忘记门层: 决定从细胞状态中丢弃什么信息,通过当前时刻输入(xtx_{t})和前一个时刻输出(ht1h_{t-1})决定。
    细胞状态: 确定并更新新消息到当前时刻的细胞状态中。
    输出门层: 基于目前的细胞状态决定该时刻的输出。

    2. 简单假设样例

    假设现有一个样本,Shape = (13,5),时间步是13,每个时间步的特征长度是5【我的理解就是现在有13条数据,每条数据用5个字符表示】,如下所示:
    (1)a11a12...a15a21a22...a25..............a131a132...a135 \begin{matrix} a^1_1 & a^2_1 & ... &a^5_1 \\ a^1_2 & a^2_2 & ... &a^5_2 \\ ... & ... & ....& ....& \\ a^1_{13} & a^2_{13} & ... &a^5_{13} \\ \end{matrix} \tag{1}
    使用Keras框架添加LSTM层时,我的设置是这样的keras.layers.LSTM(10),也就是我现在设定,每个时间步经过LSTM后,得到的中间隐向量是10维(意思就是5->10维),13个时间步的数据进去得到的是(13*10)的数据。
    每个时间步对应神经元个数(参数个数)一样,也就是算一个LSTM中神经元个数,算一个事件步中参与的神经元个数即可,下面将对LSTM每个计算部分进行神经元分析。

    3.神经元分析

    3.1 忘记门层在这里插入图片描述

    图中公式的ht1h_{t-1}是上一个状态的隐向量(已设定隐向量长度为10),xtx_t为当前状态的输入(长度为5),那么[ht1,xt][h_{t-1},x_t]的长度就是10+5=15了,WfW_fbfb_f为该层的参数。
    该层输出是中间隐向量的长度(10),经过σ\sigma激活前后的长度不变,只需要考虑σ\sigma里面的操作得到10维特征即可。
    [ht1,xt][h_{t-1},x_t]是(1,15)的向量,与WfW_f相乘得到(1,10)的向量,根据矩阵相乘规律,得到WfW_f是(15,10)的矩阵,得到(1,10)矩阵后,与该门层偏置相加,偏置也应该有相同的形状,即bfb_f也是(1,10)的矩阵。
    即该层参数个数为:
    Neurons1=15×10+10×1=160Neurons_1=15×10+10×1=160

    3.2 细胞状态

    (1)确定更新信息过程
    在这里插入图片描述
    可以看到,这里公式和前面的一样,σ\sigmatanhtanh都是激活函数,不影响参数个数。
    同理这个过程的参数个数为:
    Neurons2=2×15×10+10×1=320Neurons_2=2×(15×10+10×1)=320
    (2)更新过程
    在这里插入图片描述
    公式中的四个值,均是前面计算得到的结果,因此该过程没有参数需要学习。

    3.3 输出层


    一样的公式,参数个数一样,即:
    Neurons3=15×10+10×1=160Neurons_3=15×10+10×1=160

    3.4 总结

    把上面公式总结起来,就是该LSTM的神经元个数了:
    Neuronsall=Neurons1+Neurons2+Neurons3=160+320+160=640Neurons_{all}=Neurons_1+Neurons_2+Neurons_3=160+320+160=640
    一般化:假设你一个样本的特征长度为n,结果该LSTM得到的长度为m,就可以这样计算参数个数:
    Neuronsall=4×((n+m)×m+m)Neurons_{all} = 4×((n+m)×m+m)

    展开全文
  • LSTM神经元个数

    千次阅读 2018-06-13 10:54:00
    3.神经元分析 3.1忘记门层 3.2细胞状态 3.3输出层 3.4总结 4.测试 1.LSTM简单介绍 LSTM在时间上展开 红框从左到右,依次是: 忘记门层: 决定从细胞状态中丢弃什么信息,通过当前时刻输入和前一时刻输出决定 ...

    目录:


    1.LSTM简单介绍

    LSTM在时间上展开
    LSTM在时间上展开

    红框从左到右,依次是:
    忘记门层: 决定从细胞状态中丢弃什么信息,通过当前时刻输入和前一个时刻输出决定
    细胞状态: 确定并更新新信息到当前时刻的细胞状态中
    输出门层: 基于目前的细胞状态决定该时刻的输出

    2.简单假设样例

    假设现有一个样本,Shape=(13,5),时间步是13,每个时间步的特征长度是5.形象点,我把一个样本画了出来:

    1222446-20190415180811989-1065983867.png
    一个样本

    使用Keras框架添加LSTM层时,我的设置是这样的keras.layers.LSTM(10),也就是我现在设定,每个时间步经过LSTM后,得到的中间隐向量是10维(意思是5->10维),13个时间步的数据进去得到的是(13*10)的数据.

    每个时间步对应神经元个数(参数个数)一样.也就是算一个LSTM中神经元个数,算一个时间步中参与的神经元个数即可.下面将对LSTM每个计算部分进行神经元分析.

    3.神经元分析

    3.1忘记门层

    忘记门层
    忘记门层

    图中公式的1222446-20190415180812315-1735912952.png是上一个状态的隐向量(已设定隐向量长度为10),1222446-20190415180812676-1866559047.png为当前状态的输入(长度为5),那么1222446-20190415180813103-47271897.png的长度就是10+5=15了.1222446-20190415180813627-1071531875.png1222446-20190415180813979-1735200719.png为该层的参数.

    该层输出是中间隐向量的长度(10),经过1222446-20190415180814404-462974265.png激活前后的长度不变.只需要考虑1222446-20190415180814724-1619504873.png里面的操作得到10维特征即可.

    1222446-20190415180815411-285570230.png是(1,15)的向量,与1222446-20190415180815829-1792523185.png相乘得到(1,10)的向量,根据矩阵相乘规律,得到1222446-20190415180816231-929069220.png是(15,10)的矩阵,得到(1,10)矩阵后,与该门层偏置相加,偏置也应该有相同的形状,即1222446-20190415180816565-628669704.png是(1,10)的矩阵.

    即:该层神经元为:

    1222446-20190415180817231-773674123.png

    3.2细胞状态

    (1)确定更新信息过程

    确定该时刻细胞要更新的内容
    确定该时刻细胞要更新的内容

    可以看到,这里公式和前面的一样的,1222446-20190415180817524-1856062226.png1222446-20190415180817846-114531421.png都是激活函数,不影响参数个数.

    同理这过程的神经元个数是:

    1222446-20190415180818383-1390105373.png

    (2)更新过程

    细胞状态更新
    细胞状态更新

    公式中的四个值,均是前面计算得到的结果,因此该过程没有参数需要学习.

    3.3输出层

    输出门层
    输出门层

    一样的公式,神经元个数一样.即个数为:

    1222446-20190415180818728-987798656.png

    3.4总结

    把公式(1),(2),(3)的神经元加起来,就是该LSTM的神经元个数了.

    1222446-20190415180819072-14979792.png

    其实,我们可以把这个问题一般化,不看这个例子,假设你一个时间步的特征长度是n,经过该LSTM得到的长度是m,这样就可以算出该LSTM层的神经元个数为:

    1222446-20190415180819370-842090812.png

    4.测试

    1. from keras.layers import LSTM 
    2. from keras.models import Sequential 
    3.  
    4. time_step=13 
    5. featrue=5 
    6. hidenfeatrue=10 
    7.  
    8. model=Sequential() 
    9. model.add( LSTM(hidenfeatrue,input_shape=(time_step,featrue))) 
    10. model.summary() 

    输出是:

    1. _________________________________________________________________________________ 
    2. Layer (type) Output Shape Param #  
    3. ================================================================================= 
    4. lstm_8 (LSTM) (None, 10) 640  
    5. ================================================================================= 
    6. Total params: 640 
    7. Trainable params: 640 
    8. Non-trainable params: 0 
    9. _________________________________________________________________________________ 
    10.  

    参考:
    理解 LSTM 网络
    推荐给初学LSTM或者懂个大概却不完全懂的人

    转载于:https://www.cnblogs.com/wushaogui/p/9176617.html

    展开全文
  • 关于LSTM神经元数及参数个数

    万次阅读 多人点赞 2019-03-30 21:01:37
    上图中一浅绿色大框框起来的我们暂时叫一个LSTM_Cell,我们可以看到一个LSTM_Cell中有四基本的神经网络Cell(即四黄色的小框),每小框可以说存放的是向量,且四框中向量长度相同,这相同的向量长度便是...

    先上经典的LSTM结构

    1、首先 tf.nn.rnn_cell.BasicLSTMCell(num_units=n)中的参数num_units指的是什么?

    上图中一个浅绿色大框框起来的我们暂时叫一个LSTM_Cell,我们可以看到一个LSTM_Cell中有四个基本的神经网络Cell(即四个黄色的小框),每个小框可以说存放的是个向量,且四个框中向量长度相同,这个相同的向量长度便是num_units

    2、LSTM中的参数到底有多少个?

    这里假设输入向量(即xt)的长度是75,num_units=125

    我们详细看张量在LSTM_Cell中是如何流动的

    1)遗忘门(最左边的黄色框)

    它接收的是上一时刻的隐藏状态h_{t-1}和当前时刻的输入x_{t},经过矩阵W_{f}得到另外一个向量才经过\sigma

    W_{f}=\begin{bmatrix} & & \\ & & \\ & & \end{bmatrix}_{125*(125+75)}+\begin{bmatrix} \\ \\ \end{bmatrix}_{125*1}

    所以这个过程的参数个数是125*(125+75)+125

    2)输入门(第二个黄色框)

    这个过程决定保留输入的哪些信息,由两步构成,首先是sigma层决定我们要更新哪些值,接下来tanh层对输入做一次加工(有点归一化的味道),二者得到的结果相乘后去更新LSTM_Cell的状态。这里经过了相当于两次矩阵相乘再加偏置的运算,所以这个过程的参数个数是2*(125*(125+75)+125)

    3)输出门(最后一个黄色框)

    可以看到隐藏状态h_{t}也有两部分组成。此过程的参数个数也是125*(125+75)+125

    4)LSTM_Cell的状态更新

    这一部分,没有新的参数

    总之,整个过程的参数个数是:(125*(125+75)+125)*4

    更一般地,若输入的长度=m,隐藏层的长度=n,则一个LSTM层的参数个数是

    (n*(n+m)+n)*4

    展开全文
  • 这篇文章让我了解到如何确定LSTM里面怎么确定 参数个数(神经元个数?) 感谢作者! 小书匠深度学习目录: 1.LSTM简单介绍 2.简单假设样例 3.神经元分析 3.1忘记门层 3.2细胞状态 3.3输出层 3.4总结 4.测试 .....

    转载自:https://www.cnblogs.com/wushaogui/p/9176617.html#undefined
    作者:7秒记忆的战斗机

    这篇文章让我了解到如何确定LSTM里面怎么确定 参数个数(神经元个数?)
    感谢作者!


    目录:


    1.LSTM简单介绍

    LSTM在时间上展开
    LSTM在时间上展开

    红框从左到右,依次是:
    忘记门层: 决定从细胞状态中丢弃什么信息,通过当前时刻输入和前一个时刻输出决定
    细胞状态: 确定并更新新信息到当前时刻的细胞状态中
    输出门层: 基于目前的细胞状态决定该时刻的输出

    2.简单假设样例

    假设现有一个样本,Shape=(13,5),时间步是13,每个时间步的特征长度是5.形象点,我把一个样本画了出来:

    一个样本

    使用Keras框架添加LSTM层时,我的设置是这样的keras.layers.LSTM(10),也就是我现在设定,每个时间步经过LSTM后,得到的中间隐向量是10维(意思是5->10维),13个时间步的数据进去得到的是(13*10)的数据.

    每个时间步对应神经元个数(参数个数)一样.也就是算一个LSTM中神经元个数,算一个时间步中参与的神经元个数即可.下面将对LSTM每个计算部分进行神经元分析.

    3.神经元分析

    3.1忘记门层

    忘记门层
    忘记门层

    图中公式的是上一个状态的隐向量(已设定隐向量长度为10),为当前状态的输入(长度为5),那么的长度就是10+5=15了.为该层的参数.

    该层输出是中间隐向量的长度(10),经过激活前后的长度不变.只需要考虑里面的操作得到10维特征即可.

    是(1,15)的向量,与相乘得到(1,10)的向量,根据矩阵相乘规律,得到是(15,10)的矩阵,得到(1,10)矩阵后,与该门层偏置相加,偏置也应该有相同的形状,即是(1,10)的矩阵.

    即:该层神经元为:

    3.2细胞状态

    (1)确定更新信息过程

    确定该时刻细胞要更新的内容
    确定该时刻细胞要更新的内容

    可以看到,这里公式和前面的一样的,都是激活函数,不影响参数个数.

    同理这过程的神经元个数是:

    (2)更新过程

    细胞状态更新
    细胞状态更新

    公式中的四个值,均是前面计算得到的结果,因此该过程没有参数需要学习.

    3.3输出层

    输出门层
    输出门层

    一样的公式,神经元个数一样.即个数为:

    3.4总结

    把公式(1),(2),(3)的神经元加起来,就是该LSTM的神经元个数了.

    其实,我们可以把这个问题一般化,不看这个例子,假设你一个时间步的特征长度是n,经过该LSTM得到的长度是m,这样就可以算出该LSTM层的神经元个数为:

    4.测试

    1. from keras.layers import LSTM 
    2. from keras.models import Sequential 
    3.  
    4. time_step=13 
    5. featrue=5 
    6. hidenfeatrue=10 
    7.  
    8. model=Sequential() 
    9. model.add( LSTM(hidenfeatrue,input_shape=(time_step,featrue))) 
    10. model.summary() 

    输出是:

    1. _________________________________________________________________________________ 
    2. Layer (type) Output Shape Param #  
    3. ================================================================================= 
    4. lstm_8 (LSTM) (None, 10) 640  
    5. ================================================================================= 
    6. Total params: 640 
    7. Trainable params: 640 
    8. Non-trainable params: 0 
    9. _________________________________________________________________________________ 
    10.  

    参考:
    理解 LSTM 网络
    推荐给初学LSTM或者懂个大概却不完全懂的人

    展开全文
  • 将28X28的图片看成28行像素,按行展开成28时间步,每时间步间对识别都有影响,故用双向LSTM神经元,其实每列间对识别也有影响,用卷积神经网络也许更合理,这里只是学习LSTM的用法。应该也可以用两双向LSTM神经...
  • 长期困惑与LSTM神经元个数计算,记录一下当下的理解 A代表LSTM cell,同一个LSTM但是timestamp不同,由左图可知一个timestamp中有四个前馈神经元(黄色的,3个sigmoid和一个tanh) 图中还有一个tanh(红色的),这里...
  • LSTM神经网络,单步预测,循环2000次,100个神经元,无dropout。 蓝线:最近50期蓝球数字 橙线:LSTM网络预测数字 绿线:蓝线 - 橙线,相差值 结果就是,没有预测出任何有用的数据 过程: 步骤一:利用爬虫获取500...
  • 转载:https://www.cnblogs.com/wushaogui/p/9176617.html 目录: 1. LSTM简单介绍 2.... 3.神经元分析 3.1忘记门层 3.2细胞状态 3.3输出层 3.4总结 4.测试 1.LSTM简单介绍 ...
  • python深度学习之GA(遗传算法)优化LSTM神经网络

    千次阅读 热门讨论 2021-03-15 13:57:36
    上次优化完bp神经网络后,发现用matlab优化高级的...本文优化的是LSTM的层数参数和各层神经元参数,其中包含了lstm层和Dense层,其中我们规定了神经网络的层数不超过3层,每层的神经元个数在[32,256]之间。 3.注意事项
  • 下面我们假设有13*5大小的图片,放进LSTM,隐含层神经元数量为10 ht-1 是上一时刻的输出,维与隐含层神经元数量一致:1*10 xt为1*5 所以[ ht-1 , xt ] 的维是1*15 又因为激活函数不改变位数维,所以...
  • 循环神经网络之LSTM

    2019-12-19 16:24:50
    -- 这个cell神经元个数和隐藏层个数皆可以设置 -- 其中1、2、4层的激活函数是 sigmoid,第三层的激活函数是 tanh。 2、对LSTM的理解 1)、cell 的状态是一个向量,是有多个值的 -- cell在t时刻的状态即是ht ...
  • 1 前言 基于keras的双层LSTM网络和双向LSTM网络中,都会用到 LSTM层,主要参数...units:隐藏层神经元个数 input_shape=(time_step, input_feature):time_step是序列递归的步数,input_feature是输入特征维数 re...
  • GA优化LSTM网络.zip

    2020-03-14 00:19:36
    用遗传算法优化对LSTM网络的层及每层的神经元数进行优化,包括一个LSTM程序和一GA程序,运行时只运行GA.py即可。
  • LSTM结构

    2020-06-20 10:09:21
    cell 里面有四个黄色小框,你如果理解了那个代表的含义一切就明白了,每一个小黄框代表一个前馈网络层,对,就是经典的神经网络的结构,num_units就是这个层的隐藏神经元个数,就这么简单。其中1、2、4的激活函数是 ...
  • LSTM网络结构

    千次阅读 2019-03-07 20:08:54
    假设词向量长度为128,隐含层神经元个数为256。LSTM中引入3个门,即输入门、遗忘门、输出门;及其他组件:候选记忆细胞、记忆细胞。 2.时间t时候:各个组件(3个门+候选记忆细胞、记忆细胞) 如上图所示,对于每个...
  • GRU和LSTM对比

    2020-07-24 18:00:19
    GRU和LSTM对比网络结构对比参数量对比 网络结构对比 下图上为GRU的网络结构,下为LSTM的网络结构。 不同的是,GRU将LSTM中的遗忘门和输入门合并成了一个重置门...CELL_SIZE = 100 # 隐藏神经元个数n OUTPUT_SIZE = 10
  • nb_lstm_outputs = 128 #神经元个数 nb_time_steps = 200 #时间序列长度 nb_input_vector = 160 #输入序列 # 读取数据和标签 print("------开始读取数据------") data = [] labels = [] # 拿到图像数据...
  • 初步了解RNN、LSTM、GRU

    2020-08-07 14:21:12
    <> RNN最为原始的循环神经网络----容易梯度消失、...(中间的 cell 里面有四个黄色小框,每一个小黄框代表一个前馈网络层,就是经典的神经网络的结构,num_units就是这个层的隐藏神经元个数。) cell 的状态是一
  • 如果是,按照LSTM原理这些cell之间应该是无连接的,那units的多少其意义是什么呢,是不是相当于MLP里面对应隐层的神经元个数,只是为了扩展系统的输出能力? 可以看到中间的 cell 里面有四个黄色小框,你如果...
  • 关于LSTM的units参数

    千次阅读 2019-03-21 16:49:35
    如果是,按照LSTM原理这些cell之间应该是无连接的,那units的多少其意义是什么呢,是不是相当于MLP里面对应隐层的神经元个数,只是为了扩展系统的输出能力 作者:lonlon ago 链接:...
  • RNN、LSTM、GRU学习补充

    2018-10-09 11:44:17
    隐藏层神经元个数的解释 每一个小黄框代表一个前馈网络层,对,就是经典的神经网络的结构,num_units就是这个层的隐藏神经元个数(例如128,256)https://www.zhihu.com/question/64470274   双向 LSTM 我今天不...
  • 想问一下LSTM为啥不收敛

    千次阅读 2020-03-01 15:19:41
    按照别人的代码写了一三层的 LSTM的代码,输入为(-1,stpes,input)的形式,具体大小为(32,10,512),做动作识别的,但是网络的损失值一直为固定范围内的值大概...num_layers=3 # 双向lstm神经网络的层 n_s...
  • TensorFlow基于LSTM的预测实例

    千次阅读 2018-11-08 14:56:08
    本实例在前辈基础上,代码有所修改。为了支持Python3.6修改了一处编码方式, 本文使用单层的LSTM模型对数据进行预测,更为复杂的多层LSTM模型也是基于单层LSTM... 定义隐层神经元的数量 3. 定义每批训练样本 4....
  • Keras关于LSTM的units参数

    千次阅读 2018-10-30 11:21:22
    可以看到中间的cell里面有四个黄色小框,你如果理解了那个代表的含义一切就明白了,每一个小黄框代表一个前馈网络层,对,就是经典的神经网络的结构,num_units就是这个层的隐藏神经元个数,就这么简单。其中1,2,4的...
  • LSTM中state 与 output关系

    千次阅读 2018-05-08 10:37:05
    本文通过简单的实验说明lstm中 state与output之间的关系假设参数如下:batch_size = 4 # 训练语料中一共有4句话sequeue_len = 5 # 每句话只有5词语ebedding = 6 # 每词语的词向量维度为 6hidden_size = 10 # ...
  • Tensorflow2.0之用遗传算法优化LSTM网络结构 Version1

    千次阅读 热门讨论 2020-01-31 16:08:14
    将deep_learning.py中需要优化的参数(在这里我们优化LSTM层数和全连接层数及每层的神经元个数)统一写到一个列表num中。 然后,进行遗传算法的编写GA.py,用需要传入deep_learning.py文件的列表num当染色体,需要...
  • 学习记录--- LSTM 时序特征提取

    千次阅读 2019-08-09 16:14:52
    最近做项目,看了一点关于LSTM的知识,...(时序特征维数由隐层神经元个数num_units决定) data数据格式 数据说明:jobid,taskid,5条序列。 比如1到6行,是第一task的5条序列 比如7到14行,是第二个task的5条序列 ...
  • LSTM是由每个cell组成的,每个cell里有3个门:输入门、遗忘门、输出门;...这些前馈网络层里有神经元,即隐藏神经元,每个前馈网络层里的隐藏神经元个数都是相同的,即num_units,也写作hidden_size, 每个ht ...
  • Keras关于LSTM的units参数,还是不理解?

    万次阅读 多人点赞 2018-03-06 00:39:20
    如果是,按照LSTM原理这些cell之间应该是无连接的,那units的多少其意义是什么呢,是不是相当于MLP里面对应隐层的神经元个数,只是为了扩展系统的输出能力? 作者:lonlon ago 链接:...

空空如也

空空如也

1 2 3
收藏数 56
精华内容 22
关键字:

lstm神经元个数