Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Tensorflow:理解LSTM模型的层结构_Python_Tensorflow_Machine Learning_Lstm_Rnn - Fatal编程技术网

Python Tensorflow:理解LSTM模型的层结构

Python Tensorflow:理解LSTM模型的层结构,python,tensorflow,machine-learning,lstm,rnn,Python,Tensorflow,Machine Learning,Lstm,Rnn,我是tensorflow和LSTM的新手,在理解网络的形状和结构(权重、偏差、输入和日志的形状)时遇到了一些困难 在这段特定的代码中 有人能解释一下为什么我们需要将x转换成这种特定的格式(转置->重塑->分割) 为什么权重定义为[rnn_大小,n_类]而偏差定义为[n_类] 正在形成的网络的确切结构是什么,权重是如何连接的,我不能正确理解这一点 是否有任何网站或参考资料,我可以阅读,这将有帮助 谢谢。对于一般的网络结构,LSTM是RNN网络的扩展。有关RNN网络结构的说明,请参阅 对于实际的LS

我是tensorflow和LSTM的新手,在理解网络的形状和结构(权重、偏差、输入和日志的形状)时遇到了一些困难

在这段特定的代码中

  • 有人能解释一下为什么我们需要将x转换成这种特定的格式(转置->重塑->分割)

  • 为什么权重定义为[rnn_大小,n_类]而偏差定义为[n_类]

  • 正在形成的网络的确切结构是什么,权重是如何连接的,我不能正确理解这一点

  • 是否有任何网站或参考资料,我可以阅读,这将有帮助


  • 谢谢。

    对于一般的网络结构,LSTM是RNN网络的扩展。有关RNN网络结构的说明,请参阅

    对于实际的LSTM

    这些都不是很正式,但它们应该比学术论文更容易阅读和理解

    一旦你读了这些,剩下的就不难了。X变换的原因是因为这是静态\u rnn所期望的格式。rnn_大小是LSTM单元的大小,这就是为什么权重是这样形成的

    def recurrent_neural_network(x):
        layer = {'weights':tf.Variable(tf.random_normal([rnn_size,n_classes])),
             'biases':tf.Variable(tf.random_normal([n_classes]))}
    
        x = tf.transpose(x, [1,0,2])
        x = tf.reshape(x, [-1, chunk_size])
        x = tf.split(x, n_chunks, 0)
    
        lstm_cell = rnn_cell.BasicLSTMCell(rnn_size,state_is_tuple=True)
        outputs, states = rnn.static_rnn(lstm_cell, x, dtype=tf.float32)
    
        output = tf.matmul(outputs[-1],layer['weights']) + layer['biases'])
    
        return output