精华内容
下载资源
问答
  • LSTM参数计算

    2020-07-13 16:28:08
    LSTM参数计算LSTM结构输入输出结构门结构参数计算 LSTM结构 输入输出结构 在n时刻 LSTM的输入有三个: 1.当前时刻网络的输入值Xt; 2.上一时刻LSTM的输出值ht-1; 3.上一时刻的单元状态Ct-1。 LSTM的输出有两个: 1...

    LSTM结构

    在这里插入图片描述

    输入输出结构

    在n时刻
    LSTM的输入有三个:
    1.当前时刻网络的输入值Xt;
    2.上一时刻LSTM的输出值ht-1;
    3.上一时刻的单元状态Ct-1。

    LSTM的输出有两个:
    1.当前时刻LSTM输出值ht;
    2.当前时刻的单元状态Ct。

    门结构

    门有三类:忘记门,输入门,输出门。
    1.忘记门:以一定的概率控制是否遗忘上一层的隐藏细胞状态;
    在这里插入图片描述
    2.输入门:负责处理当前序列位置的输入,更新细胞状态;
    在这里插入图片描述
    在这里插入图片描述
    3.输出门:决定输出什么。
    在这里插入图片描述

    参数计算

    假设输入为:

    TIME_STEPS = 28		# 时间步
    INPUT_SIZE = 28		# 每个时间步的特征长度m
    CELL_SIZE = 100		# 隐藏神经元个数n
    OUTPUT_SIZE = 10	# 输出长度
    inputs = Input(shape=[TIME_STEPS,INPUT_SIZE])
    

    LSTM:

    x = LSTM(CELL_SIZE, input_shape = (TIME_STEPS,INPUT_SIZE), return_sequences=False)(inputs)
    

    输出:

    x = Dense(OUTPUT_SIZE)(x)
    x = Activation("softmax")(x)
    model = Model(inputs,x)
    

    网络参数:

    Layer (type)                 Output Shape              Param #   
    =================================================================
    input_1 (InputLayer)         (None, 28, 28)            0         
    _________________________________________________________________
    lstm_1 (LSTM)                (None, 100)               51600     
    _________________________________________________________________
    dense_1 (Dense)              (None, 10)                1010      
    _________________________________________________________________
    activation_1 (Activation)    (None, 10)                0         
    =================================================================
    Total params: 52,610
    Trainable params: 52,610
    Non-trainable params: 0
    

    其中:
    总参数 = LSTM层 + Dense层 = 51600 + 1010 = 52610
    LSTM层:51600 = 4 x ((input_size+cell_size) x cell_size+cell_size) = 4x((28+100)x100+100)
    Dense层:1010 = 100 x 10 + 10

    展开全文
  • cnn、lstm参数计算

    千次阅读 2018-12-17 10:27:54
    一、cnn参数计算   假设输入7*7*3,卷积核3*3*2,stride=(1,1),输出是3*3*2 参数量计算:fileter_size✖️input_channel✖️output_channel 解释:参数量与输入尺寸无关,只是卷积核的参数,每一个卷积核首先...

    一、cnn参数计算

     

    假设输入7*7*3,卷积核3*3*2,stride=(1,1),输出是3*3*2

    参数量计算:fileter_size✖️input_channel✖️output_channel

    解释:参数量与输入尺寸无关,只是卷积核的参数,每一个卷积核首先对input_feature所有通道做卷积,得到 n*n*input-channel,然后input_channel个n*n  的feature_map相同位置数目相加,再➕bias,得到n*n*1的feature_map输出,因为有output_channel个filter,所以输出n*n*output*channel(通俗容易想象的解释)

    二、lstm参数计算

    lstm原理图,一个绿色框是一个cell,上边一行S(t)表示长时记忆,下边一行h(t)表示短时记忆

    每一个小黄框代表一个前馈网络层,对,就是经典的神经网络的结构,num_units就是这个层的隐藏神经元个数,就这么简单。其中1、2、4的激活函数是 sigmoid,第三个的激活函数是 tanh。

    1、 cell 的状态是一个向量,是有多个值

    2、 上一次的状态 h(t-1)和下一次的输入 x(t) 结合(concat)起来的,向量直接拼起来,比如 x是28位的向量,h(t-1)是128位的,那么拼起来就是156位的向量。

    3、 cell 的权重是共享的,这是什么意思呢?这是指这张图片上有三个绿色的大框,代表三个 cell 对吧,但是实际上,它只是代表了一个 cell 在不同时序时候的状态,所有的数据只会通过一个 cell,然后不断更新它的权重。

    4、那么一层的 LSTM 的参数有多少个?根据第 3 点的说明,我们知道参数的数量是由 cell 的数量决定的,这里只有一个 cell,所以参数的数量就是这个 cell 里面用到的参数个数。假设 num_units 是128,输入是28位的,那么根据上面的第 2 点,可以得到,四个小黄框的参数一共有 (128+28)*128*4,也就是156 * 512,可以看看 TensorFlow 的最简单的 LSTM 的案例,中间层的参数就是这样,不过还要加上输出的时候的激活函数的参数,假设是10个类的话,就是128*10的 W 参数和10个bias 参数

    5、lstm网络的unit在深度学习网络框架中是指一层的output size(hidden size),相当于MLP一层的神经元数目,lstm的一个cell相当于一层lstm。

    总结:units_num=y,input_size=m*x,bias=y,输入和上一时刻h(t-1)是concat关系

    rnn参数量(x+y)✖️y+y

    lstm因为有四个单元,4*【(x+y)✖️y+y】

     

    参考:https://www.zhihu.com/question/64470274/answer/256379387

    写的比较详细的一个lstm介绍:http://www.cnblogs.com/wangduo/p/6773601.html?utm_source=itdadao&utm_medium=referral

    展开全文
  • LSTM参数个数计算

    万次阅读 多人点赞 2018-09-21 16:53:35
    今天看程序看到了LSTM,原理都懂,但是想看看参数的个数是怎么算出来的,先简单介绍下我的网络前两层: (1)第一层是一个 embedding 层,输出是 100 维的。 (2)第二层是一个 LSTM 层,输出是 512 维的。 LSTM...

    今天看程序看到了LSTM,原理都懂,但是想看看参数的个数是怎么算出来的,先简单介绍下我的网络前两层:

    (1)第一层是一个 embedding 层,输出是 100 维的。

    (2)第二层是一个 LSTM 层,输出是 512 维的。

    LSTM这一层的参数个数是 1255424 个,这一看还有整有零的,好奇怎么算出来的,于是百度搜了下,得到这么一个公式:

    设 LSTM 输入维度为 x_dim, 输出维度为 y_dim,那么参数个数 n 为:

    n = 4 * ((x_dim + y_dim) * y_dim + y_dim)

    对应我的网络结构就是:n = 4 * ((100 + 512) * 512 + 512) = 1255424

     

    LSTM 的原理以及公式的又来可以参考这个链接https://www.cnblogs.com/wushaogui/p/9176617.html

    展开全文
  • LSTM参数个数计算方法

    千次阅读 2020-04-05 17:25:40
    LSTM计算方式如下(不加偏置): 可以看到若不加偏置,该LSTM层共有4个权重参数,图中输入的一个timestep的特征大小为3(绿色单元),隐藏层输出大小为2(橙色单元),因此该LSTM层的参数个数为: n=4∗(2+3)∗2=...

    计算LSTM的参数个数需要了解其工作原理,如下:
    在这里插入图片描述
    可以看到若不加偏置,该LSTM层共有4个权重参数,图中输入的一个timestep的特征大小为3(绿色单元),隐藏层输出大小为2(橙色单元),因此该LSTM层的参数个数为:
    n=4(2+3)2=40n=4*(2+3)*2=40

    若加上偏置则该LSTM层的参数个数为:
    n=4((2+3)2+2)=48n=4*((2+3)*2+2)=48

    使用keras的LSTM进行验证

    带偏置:

    from keras.models import Sequential
    from keras.layers import LSTM
    
    timestep = 4  # LSTM层的block个数
    model = Sequential()
    model.add(LSTM(units=2, use_bias=True, input_shape=[timestep, 3]))
    model.summary()
    
    Model: "sequential_1"
    _________________________________________________________________
    Layer (type)                 Output Shape              Param #   
    =================================================================
    lstm_1 (LSTM)                (None, 2)                 48        
    =================================================================
    Total params: 48
    Trainable params: 48
    Non-trainable params: 0
    _________________________________________________________________
    

    不带偏置:

    from keras.models import Sequential
    from keras.layers import LSTM
    
    timestep = 4  # LSTM层的block个数
    model = Sequential()
    model.add(LSTM(units=2, use_bias=False, input_shape=[timestep, 3]))
    model.summary()
    
    Model: "sequential_1"
    _________________________________________________________________
    Layer (type)                 Output Shape              Param #
    =================================================================
    lstm_1 (LSTM)                (None, 2)                 40
    =================================================================
    Total params: 40
    Trainable params: 40
    Non-trainable params: 0
    _________________________________________________________________
    

    以小见大,通过推理可以得到一般的计算方法。

    展开全文
  • RNN和LSTM参数计算

    千次阅读 2019-04-17 11:55:08
    RNN(Recurrent Neural Network)是一类用于处理序列数据的神经网络。神经网络包含输入层、隐含层、输出层,通过激活函数控制输出,层与层之间通过...这里主要写一下RNN中参数计算: 再加上偏执值b,即可得到...
  • pytorch-LSTM参数计算以及输出分析

    千次阅读 2019-07-05 14:33:24
    参数计算1 首先这篇博客不是介绍LSTM原理的,因为我也不敢说我已经完全理解了LSTM。。。。。。好了,言归正传,我们开始计算lstm 中的参数,首先来看pytorch中公式怎么写的: it=σ(Wiixt+bii+Whih(t−1)+bhi)ft=σ...
  • 本文就来补充一下,讲讲如何计算 LSTM参数数量。 建议阅读本文前先阅读 Understanding LSTM Networks 的原文或我的译文。 首先来回顾下 LSTM。一层 LSTM 如下: 这里的 xtx_txt​ 实际上是一个句子的 ...
  • 神经网络学习小记录36——Keras实现LSTM学习前言什么是LSTM1、LSTM的结构2、LSTM独特的门结构3、LSTM参数计算a、遗忘门b、输入门c、输出门d、全部参数量在Keras中实现LSTM实现代码 学习前言 我死了我死了我死了! ...
  • 例如,设置’ ‘ num_layers=2 ‘ ‘意味着将两个LSTM堆叠在一起,形成一个’堆叠的LSTM ‘,第二个LSTM接收第一个LSTM的输出并计算最终结果。默认值:1 bias:如果’ False’,则该层不使用偏置权重’ b_ih ‘和’ b_...
  • LSTM参数计算方法

    2020-12-12 11:07:13
    总体来说,假设lstm层的一个时间点上的输入特征长度是n,输出长度是m,那么参数量是4*((n+m)*m+m)。 详细的推导看这篇文章,讲得很详细很明白。
  • LSTM参数数量如何计算

    千次阅读 2019-01-01 17:40:48
    可以首先计算LSTM参数数量. 那么, 一个LSTM有多少个参数呢? 首先,文中提到LSTM在每层使用了1000个cell(对应于 与 的维度)与大小为1000的word embedding(最底层LSTM的输入大小等于word embedding的维度大小,其他层...
  • Keras中的LSTM
  • LSTM参数计算 keras中若干个Cell例如LSTMCell 1.RNN循环神经网络 先来解释一下 batch_size timestep 样本数据: 小明爱学习 小王爱学习 小李爱学习 小花爱学习 通常样本数据会以(batch_size, time_step, ...
  • 先回忆一下LSTM,直接上pytorch官网的公式截图: 它可以处理变长序列,每个rnn cell参数是一样的,共享,就是上面列出的...BiLSTM包含一个从左到右和一个从右到左的并列的的序列计算。需要注意的是,两个方向使用...

空空如也

空空如也

1 2 3 4 5 ... 11
收藏数 211
精华内容 84
关键字:

lstm参数计算