Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.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 3.x Tensorflow中具有LSTM的多层RNN_Python 3.x_Tensorflow_Lstm_Recurrent Neural Network_Multi Layer - Fatal编程技术网

Python 3.x Tensorflow中具有LSTM的多层RNN

Python 3.x Tensorflow中具有LSTM的多层RNN,python-3.x,tensorflow,lstm,recurrent-neural-network,multi-layer,Python 3.x,Tensorflow,Lstm,Recurrent Neural Network,Multi Layer,我用Python(3.6版)在Tensorflow(1.5版)中用LSTM编写了一个单层RNN。我想向这个RNN添加3个隐藏层(即一个输入层、一个输出层和三个隐藏层)。我已经读过关于单元格的状态、堆栈、取消堆栈等内容,但我仍然不知道如何将这些内容组合起来并升级我的代码。下面是我在单层RNN中的代码。你能帮我升级代码吗(注意:我对Tensorflow和Python非常陌生:)。 ` 下面是适合我的代码。查看此主题的更多信息。动态rnn处理状态和输入的传递 def rnn_cell():

我用Python(3.6版)在Tensorflow(1.5版)中用LSTM编写了一个单层RNN。我想向这个RNN添加3个隐藏层(即一个输入层、一个输出层和三个隐藏层)。我已经读过关于单元格的状态、堆栈、取消堆栈等内容,但我仍然不知道如何将这些内容组合起来并升级我的代码。下面是我在单层RNN中的代码。你能帮我升级代码吗(注意:我对Tensorflow和Python非常陌生:)。 `


下面是适合我的代码。查看此主题的更多信息。动态rnn处理状态和输入的传递

    def rnn_cell():
        return tf.contrib.rnn.BasicRNNCell(num_units=num_hidden, activation=tf.nn.softsign)

    self.stacked_rnn = tf.contrib.rnn.MultiRNNCell([rnn_cell() for _ in range(num_layers)])

        final_outputs, final_state = tf.nn.dynamic_rnn(cell=self.stacked_rnn,
                                   inputs=self.input_x,
                                   dtype=tf.float32)
如果您想要更高的可视性,可以按照上面链接中的示例进行操作

def lstm_cell():
  return tf.contrib.rnn.BasicLSTMCell(lstm_size)
stacked_lstm = tf.contrib.rnn.MultiRNNCell(
    [lstm_cell() for _ in range(number_of_layers)])

initial_state = state = stacked_lstm.zero_state(batch_size, tf.float32)
for i in range(num_steps):
    # The value of state is updated after processing each batch of words.
    output, state = stacked_lstm(words[:, i], state)

    # The rest of the code.
    # ...

final_state = state

看这篇文章,我知道多层RNN背后的想法是什么,但我不知道如何分配状态,如何将一层的输出传输到另一层的输入,以及如何使用包、解包@Devstr
def lstm_cell():
  return tf.contrib.rnn.BasicLSTMCell(lstm_size)
stacked_lstm = tf.contrib.rnn.MultiRNNCell(
    [lstm_cell() for _ in range(number_of_layers)])

initial_state = state = stacked_lstm.zero_state(batch_size, tf.float32)
for i in range(num_steps):
    # The value of state is updated after processing each batch of words.
    output, state = stacked_lstm(words[:, i], state)

    # The rest of the code.
    # ...

final_state = state