精华内容
下载资源
问答
  • RNNLIB中LSTM节点描述

    千次阅读 2016-11-22 12:21:43
    LSTM隐含层只需设定Block个。 一个block可以有多个cell(但目前一般都是一个block里一个cell) 对于二维数据,一个block需要固定的5个输入信号,分别是:输入门计算用,输出门计算用,遗忘门1计算,遗忘门2计算...

    RNNLIB是由 Alex Graves写RNN开元工具 https://sourceforge.net/projects/rnnl/
    支持多维RNN训练(MDRNN 多维,MDMDRNN 多方向+多维),并支持深度网络级联训练。广泛应用于手写识别和语音识别等。

    LSTM隐含层只需设定Block个数。
    一个block可以有多个cell(但目前一般都是一个block里一个cell)
    对于二维数据,一个block需要固定的5个输入信号,分别是:输入门计算用,输出门计算用,遗忘门1计算,遗忘门2计算(因为是二维信息所以有2个遗忘门,一个维度一个),信号变换计算用(真正计算输出用的)。
    所以一个block可以看做有5个输入节点,1个输出节点的结构。
    而实际训练用输入数据可以多维的,比如图片100*400大小,每次取3*4的小块儿输入到RNN里,那么每个输入数据就是一个12维向量,100*400就右很多个12维向量串联构成(由扫描方式决定)。
    对于一个block来看,训练用数据12维度,自己输入信号是5维,所以需要一个[5X12]weight矩阵进行变换。入下图所示:

    这里写图片描述

    展开全文
  • 从pytorch代码角度初次理解LSTM各种术语。 LSTM: ...hidden_size 隐层状态的维:(每个LSTM单元或者时间步的输出的ht的维度,单元内部有权重与偏差计算) num_layers RNN层的个数:(在竖直...

    从pytorch代码角度初次理解LSTM各种术语。


    LSTM:

    class torch.nn.LSTM(*args, **kwargs)

    Parameters

    input_size 输入特征维数:(特征向量的长度,如2048)
    hidden_size 隐层状态的维数:(每个LSTM单元或者时间步的输出的ht的维度,单元内部有权重与偏差计算)
    num_layers RNN层的个数:(在竖直方向堆叠的多个相同个数单元的层数)
    bias 隐层状态是否带bias,默认为true
    batch_first 是否输入输出的第一维为batchsize
    dropout 是否在除最后一个RNN层外的RNN层后面加dropout层
    bidirectional 是否是双向RNN,默认为false

    Inputs: input, (h_0, c_0)

    input (seq_len, batch, input_size) 时间步数或序列长度,batch数,输入特征维度。如果设置了batch_first,则batch为第一维。
    (h_0, c_0) 隐层状态

    h0 shape:(num_layers * num_directions, batch, hidden_size)

    c0 shape:(num_layers * num_directions, batch, hidden_size)


    Outputs: output, (h_n, c_n)

    output (seq_len, batch, hidden_size * num_directions) 包含每一个时刻的输出特征,如果设置了batch_first,则batch为第一维
    (h_n, c_n) 隐层状态

    单层LSTM:

    此结构包含3个LSTM单元,seq_len=3

    两层LSTM: 

    第一层的3个时间步的多维隐藏输出作为第二层的3个时间步的输入.

    并且初始h0((2 * num_directions, batch, hidden_size))默认为0初始化。

    参考文章:

    1.【PyTorch】PyTorch进阶教程三 https://blog.csdn.net/q295684174/article/details/79043985 

    2.对于LSTM输入层、隐含层及输出层参数的个人理解 https://blog.csdn.net/qq_27318693/article/details/85642827

    3.多层LSTM结构的深入解读  https://blog.csdn.net/herr_kun/article/details/80697232

     RNN,LSTM,GRU等重要入门:

    1. http://karpathy.github.io/2015/05/21/rnn-effectiveness/

    2. http://colah.github.io/posts/2015-08-Understanding-LSTMs/

    展开全文
  • LSTM隐藏层规模(隐藏层节点数

    万次阅读 2019-03-07 12:27:32
    https://blog.csdn.net/ZJRN1027/article/details/80301039
    展开全文
  • RNN实践一:LSTM实现MNIST数字分类

    千次阅读 2017-11-30 16:54:55
    将MNIST数据集实现手写分类,代码转自周莫烦的Github。 输入为[None, 784] 的image(28*28)数据。 1、将输入数据[None, 784]->[None, 28, 28]; 注:[None, time_step, input_data...注:128是LSTM节点数,将每行输入

    将MNIST数据集实现手写分类,代码转自周莫烦的Github。
    输入为[None, 784] 的image(28*28)数据。
    1、将输入数据[None, 784]->[None, 28, 28]; 注:[None, time_step, input_data];
    2、线性隐含层:线性变换[None, 28, 28]->[None, 28, 128];注:128是LSTM的节点数,将每行输入28的数据长度变为128长度。X = X*W_in+Bias_in;
    3、设计128个节点数的LSTM,输出为[None, 28, 128];注:[None, time_step, LSTM_num];
    4、线性隐含层:线性变化[None, 28, 128]->[None, 28, 10];
    5、transpose操作:output:[None, 28, 10]->[28, None, 10];
    使用output[-1]进行误差计算;注:output[-1]表示最后一个时间节点的输出作为结果输出(读完28行数据后)。

    import tensorflow as tf
    from tensorflow.examples.tutorials.mnist import input_data
    
    # set random seed for comparing the two result calculations
    tf.set_random_seed(1)
    
    # this is data
    mnist = input_data.read_data_sets('MNIST_data', one_hot=True)
    
    # hyperparameters
    lr = 0.001
    training_iters = 100000
    batch_size = 128
    
    n_inputs = 28   # MNIST data input (img shape: 28*28)
    n_steps = 28    # time steps
    n_hidden_units = 128   # neurons in hidden layer
    n_classes = 10      # MNIST classes (0-9 digits)
    
    # tf Graph input
    x = tf.placeholder(tf.float32, [None, n_steps, n_inputs])
    y = tf.placeholder(tf.float32, [None, n_classes])
    
    # Define weights
    weights = {
        # (28, 128)
        'in': tf.Variable(tf.random_normal([n_inputs, n_hidden_units])),
        # (128, 10)
        'out': tf.Variable(tf.random_normal([n_hidden_units, n_classes]))
    }
    biases = {
        # (128, )
        'in': tf.Variable(tf.constant(0.1, shape=[n_hidden_units, ])),
        # (10, )
        'out': tf.Variable(tf.constant(0.1, shape=[n_classes, ]))
    }
    
    
    def RNN(X, weights, biases):
        # hidden layer for input to cell
        ########################################
    
        # transpose the inputs shape from
        # X ==> (128 batch * 28 steps, 28 inputs)
        X = tf.reshape(X, [-1, n_inputs])
    
        # into hidden
        # X_in = (128 batch * 28 steps, 128 hidden)
        X_in = tf.matmul(X, weights['in']) + biases['in']
        # X_in ==> (128 batch, 28 steps, 128 hidden)
        X_in = tf.reshape(X_in, [-1, n_steps, n_hidden_units])
    
        # cell
        ##########################################
    
        # basic LSTM Cell.
        if int((tf.__version__).split('.')[1]) < 12 and int((tf.__version__).split('.')[0]) < 1:
            cell = tf.nn.rnn_cell.BasicLSTMCell(n_hidden_units, forget_bias=1.0, state_is_tuple=True)
        else:
            cell = tf.contrib.rnn.BasicLSTMCell(n_hidden_units)
        # lstm cell is divided into two parts (c_state, h_state)
        init_state = cell.zero_state(batch_size, dtype=tf.float32)
    
        # You have 2 options for following step.
        # 1: tf.nn.rnn(cell, inputs);
        # 2: tf.nn.dynamic_rnn(cell, inputs).
        # If use option 1, you have to modified the shape of X_in, go and check out this:
        # https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/3_NeuralNetworks/recurrent_network.py
        # In here, we go for option 2.
        # dynamic_rnn receive Tensor (batch, steps, inputs) or (steps, batch, inputs) as X_in.
        # Make sure the time_major is changed accordingly.
        outputs, final_state = tf.nn.dynamic_rnn(cell, X_in, initial_state=init_state, time_major=False)
    
        # hidden layer for output as the final results
        #############################################
        # results = tf.matmul(final_state[1], weights['out']) + biases['out']
    
        # # or
        # unpack to list [(batch, outputs)..] * steps
        if int((tf.__version__).split('.')[1]) < 12 and int((tf.__version__).split('.')[0]) < 1:
            outputs = tf.unpack(tf.transpose(outputs, [1, 0, 2]))    # states is the last outputs
        else:
            outputs = tf.unstack(tf.transpose(outputs, [1,0,2]))
        results = tf.matmul(outputs[-1], weights['out']) + biases['out']    # shape = (128, 10)\
    
        return results
    
    pred = RNN(x, weights, biases)
    cost = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits=pred, labels=y))
    train_op = tf.train.AdamOptimizer(lr).minimize(cost)
    
    correct_pred = tf.equal(tf.argmax(pred, 1), tf.argmax(y, 1))
    accuracy = tf.reduce_mean(tf.cast(correct_pred, tf.float32))
    
    with tf.Session() as sess:
        # tf.initialize_all_variables() no long valid from
        # 2017-03-02 if using tensorflow >= 0.12
        if int((tf.__version__).split('.')[1]) < 12 and int((tf.__version__).split('.')[0]) < 1:
            init = tf.initialize_all_variables()
        else:
            init = tf.global_variables_initializer()
        sess.run(init)
        step = 0
        while step * batch_size < training_iters:
            batch_xs, batch_ys = mnist.train.next_batch(batch_size)
            batch_xs = batch_xs.reshape([batch_size, n_steps, n_inputs])
            sess.run([train_op], feed_dict={
                x: batch_xs,
                y: batch_ys,
            })
            if step % 20 == 0:
                print(sess.run(accuracy, feed_dict={
                x: batch_xs,
                y: batch_ys,
                }))
            step += 1
    
    展开全文
  • python tensorflow1.x 提出一种改进的粒子群算法ipso,用于lstm迭代次数,学习率,隐含层节点数的寻优,最后将ipso-lstm用于电力负荷的回归预测,以头一天平均温度、最高温度、最低温度、相对湿度、星期类型、24个...
  • "LSTM的参数解释,LSTM

    千次阅读 2020-04-20 07:40:16
    LSTM的参数解释 LSTM总共有7个参数:前面3个是必须输入的 1:input_size: 输入特征维,即每一行输入元素的个数。...2:hidden_size: 隐藏层状态的维,即隐藏层节点的个数,这个和单层感知器的结...
  • lstm理解

    2018-05-25 16:44:52
    精辟文章连接:https://www.jianshu.com/p/9dc9f41f0b29https://yq.aliyun.com/articles/202939下图是mxnet中一个lstm单元门的实现函数:输入:当前输入x_t +...hidden: 就是自定义的全联接层的节点下图是2层 ...
  • python tensorflow1.x 提出一种改进的粒子群算法ipso,用于lstm迭代次数,学习率,隐含层节点数的寻优,最后将ipso-lstm用于电力负荷的回归预测,以头一天平均温度、最高温度、最低温度、相对湿度、星期类型、24个...
  • RNN LSTM 网络参数问题

    千次阅读 2018-11-24 17:38:21
    问题一:在NLP任务中,词向量维度(embedding size)是否一定要等于LSTM隐藏层节点数(hidden size)? 词向量(Word Embedding)可以说是自然语言处理任务的基石,运用深度学习的自然语言处理任务更是离不开词向量...
  • 什么是LSTM

    2020-03-30 15:24:45
    一.首先什么是RNN。...s是一个向量,它表示隐藏层的值(这一层其实可以是多个节点,节点数与向量s的维度相同); U是输入层到隐藏层的权重矩阵; o也是一个向量,它表示输出层的值; V是隐藏层到输出层的...
  • 多层LSTM结构的深入解读

    万次阅读 多人点赞 2018-06-15 01:37:52
    读这篇文章的时候,默认你已经对LSTM神经网络有了一个初步的认识,当你深入理解时,可能会对多层LSTM内部的隐藏节点数,有关cell的定义或者每一层的输入输出是什么样子的特别好奇,虽然神经网络就像是一个黑箱子一样...
  • LSTM&GRU

    2021-03-12 14:32:39
    1,那经过不断与误差累乘,传到初试时间的时候,就可能会变成一个接近于0的,所以对于初始时刻,误差就相当于消失了,这就是所谓的梯度消失,或者叫梯度离散; 反之,如果W>1,经过不断与误差累乘,就会得到一...
  • PyTorch 中的 LSTM模型参数解释

    万次阅读 多人点赞 2018-11-25 18:26:07
    LSTM的参数解释 LSTM总共有7个参数:前面3个是必须...2:hidden_size: 隐藏层状态的维,即隐藏层节点的个数,这个和单层感知器的结构是类似的。这个维数值是自定义的,根据具体业务需要决定,如下图: input_...
  • import tensorflow as tf import numpy as np import matplotlib as mpl from matplotlib import ...hidden_size = 30 # LSTM 中隐藏节点的个数 //TODO 这个size是是什么意思 num_layers = 2 # LSTM 的层 timest...
  • import numpy as np import tensorflow as tf from matplotlib.pyplot as plt HIDDEN_SIZE = 30 # Lstm中隐藏节点的个数 NUM_LAYERS = 2 # LSTM的层 TIMESTEPS = 10 ...
  • 对于航空发动机寿命预测问题,它的难点在于特征数数多,而且特征也是传感器所收集到的数据,传感器一般带有噪声,会造成拟合过程中的不准确性,设计一个多变量输入,单变量输出的预测模型,而RNN(循环神经网络)是...
  • 在网上看了很多代码详解,感觉对数据的shape变化都没有一个简洁直观的解释过程,在这里,我尝试着自己总结一下。...lstm_cell包含100个节点 权重w的shape为[100, 10] 偏置b的shape为[10] 关键在于tf.nn.dynami...
  • RNN代码

    2019-04-16 10:28:45
    import numpy as np import tensorflow as tf import matplotlib.pyplot as plt HIDDEN_SIZE = 30 # LSTM中隐藏节点的个数。 NUM_LAYERS = 2 # LSTM的层。 TIMESTEPS...
  • 问题一:在NLP任务中,词向量维度(embedding size)是否一定要等于LSTM隐藏层节点数(hidden size)? 词向量(Word Embedding)可以说是自然语言处理任务的基石,运用深度学习的自然语言处理任务更是离不开词向量...
  • Keras学习---RNN模型建立篇

    千次阅读 2017-07-14 22:32:39
    因为RNN的隐层节点数是固定的,因此要求输入层节点数也是固定的。 x_train = sequence.pad_sequences(x_train, maxlen=maxlen) 有没有动态的呢?因为输入的句子长度本身是动态长度的。 2. 关于E
  • 利用RNN实现对函数sinx的取值预测,因为RNN模型预测的是离散时刻的取值,所以代码中需要将sin函数的曲线离散化,每隔一个时间段...HIDDEN_SIZE = 30 # LSTM中隐藏节点的个数。 NUM_LAYERS = 2 # LSTM的层。 TIMESTEPS
  • Heterogeneous Graph Neural Network是发表在KDD 2019的一篇文章,提出了HetGNN模型,采用LSTM进行节点级别的聚合,采用注意力机制进行语义级别的聚合。 Motivation 作者认为现在的网络几乎都没有同时考虑异构网络的...
  • 循环独立LSTMs

    2019-06-04 18:58:13
    在IndyLSTM的每一层中,参数数量与节点呈现线性关系而传统的LSTM则为二次,此特性使模型更小更快。与传统的LSTM相比,尽管IndyLSTMs的尺寸较小,但在每个参数的精确度和总体精度方面,它始终优于常规LSTMs。作者...
  • 与一般的循环神经网络相比,在代码上改动不多,调用的函数仍是nn.LSTM,只是函数参数bidirectional设置为True,而隐层分成forward layer和backward layer,分别进行两个不同时间方向的信息传递,因此,隐层节点数翻...
  • 基于IPSO优化GRU的回归建模

    千次阅读 2020-04-19 10:38:42
    在tensorflow1.x下进行基于GRU的回归建模,为改善其性能,采用改进的粒子群算法进行GRU的超参数寻优,包括学习率、隐含层节点数,精度明显提高,详情请移步我的github仓库:...可以参考我的另一篇博客,采用IPSO对LSTM...
  • 利用LSTM网络对分类器评估的失稳样本进行发电机功角轨迹预测,提前发现失稳机组,减少误判样本。通过IEEE 10机39节点系统产生训练样本并对所提方法进行测试,结果验证了所提方法的快速性和精确性。
  • MPI用于节点之间的消息传递。 01.03高维Lorenz 96系统 GP-LSTM体系结构用于Lorenz 96模型的预测和不确定性量化。 Lorenz 96是爱德华·N·洛伦兹(Edward N. Lorenz)在[34]中开发的混沌动力学系统,描述了中纬度大气...
  • 首先来回顾之前用到的两种seq2seq模型(sequence to sequence) ...看RNN的输入,要看它左边的箭头(time step时间节点)和下面的箭头(与RNN的层相关)。 注意:编码器中时间节点t的hidden state用h(t)表示,...
  • 14.4.3 含两个操作的计算节点228 14.4.4 用来计算统计量的计算节点类型235 14.5 卷积神经网络 236 14.6 循环连接 239 14.6.1 只在循环中一个接一个地处理样本240 14.6.2 同时处理多个句子242 14.6.3 创建...

空空如也

空空如也

1 2
收藏数 34
精华内容 13
关键字:

lstm节点数