我Tensorflow 1.1.0MulticellRNN误差Tensorflow
和我下面从https://github.com/ageron/handson-ml/blob/master/14_recurrent_neural_networks.ipynb在多小区基本教程(堆放)RNNs
下面的代码生成一个奇怪的错误,我想不通为什么从搜索。
import tensorflow as tf
n_inputs = 2
n_neurons = 100
n_layers = 3
n_steps = 5
X = tf.placeholder(tf.float32, [None, n_steps, n_inputs])
basic_cell = tf.contrib.rnn.BasicRNNCell(num_units=n_neurons)
multi_layer_cell = tf.contrib.rnn.MultiRNNCell([basic_cell for _ in range(n_layers)])
outputs, states = tf.nn.dynamic_rnn(multi_layer_cell, X, dtype=tf.float32)
init = tf.global_variables_initializer()
这似乎是正确的代码,但它得到的错误:
ValueError异常:尝试比第一次使用不同的变量范围重用RNNCell。第一次使用cell的范围是'rnn/multi_rnn_cell/cell_0/basic_rnn_cell',这个尝试的范围是'rnn/multi_rnn_cell/cell_1/basic_rnn_cell'。如果您希望使用不同的权重集,请创建单元格的新实例。 如果在使用之前:MultiRNNCell([BasicRNNCell(...)] * num_layers),更改为:MultiRNNCell([BasicRNNCell(...)for _in range(num_layers)]))。如果在使用与双向RNN的正向和反向小区相同的小区实例之前,只需创建两个实例(一个用于正向,一个用于反向)。 2017年5月,我们将开始将此单元格的行为转换为使用现有存储的权重(如果有的话),当调用范围=无(可能会导致模型无声降级,因此此错误将保持到此时为止。)
我在Github的代码中加入了一个我开关的部分。 任何想法为什么这仍然抛出一个错误? 非常感谢帮助!