我正在训练LSTM,并且正在定义参数和回归层。出现以下代码,标题出现错误:
lstm_cells = [
tf.contrib.rnn.LSTMCell(num_units=num_nodes[li],
state_is_tuple=True,
initializer= tf.contrib.layers.xavier_initializer()
)
for li in range(n_layers)]
drop_lstm_cells = [tf.contrib.rnn.DropoutWrapper(
lstm, input_keep_prob=1.0,output_keep_prob=1.0-dropout, state_keep_prob=1.0-dropout
) for lstm in lstm_cells]
drop_multi_cell = tf.contrib.rnn.MultiRNNCell(drop_lstm_cells)
multi_cell = tf.contrib.rnn.MultiRNNCell(lstm_cells)
w = tf.get_variable('w',shape=[num_nodes[-1], 1], initializer=tf.contrib.layers.xavier_initializer())
b = tf.get_variable('b',initializer=tf.random_uniform([1],-0.1,0.1))
我正在使用tensorflow2,并且已经阅读了https://www.tensorflow.org/guide/migrate指南,我认为网络上几乎所有内容。 但我无法解决。 我该怎么办?
答案 0 :(得分:0)
tf.contrib.rnn.LSTMCell-> tf.compat.v1.nn.rnn_cell.LSTMCell或tf.keras.layers.LSTMCell
tf.contrib.rnn.DropoutWrapper-> tf.compat.v1.nn.rnn_cell.DropoutWrapper或tf.keras.layers.DropOut
tf.contrib.rnn.MultiRNNCell-> tf.compat.v1.nn.rnn_cell.MultiRNNCell或tf.keras.layers.RNN
答案 1 :(得分:0)
发生此错误是因为{2}版本的contrib
模块已被删除。有两种方法可以解决此问题:
您可以删除当前软件包并安装Series 1版本之一。
您可以使用此命令,该命令也与版本2软件包兼容:在命令行中使用tf.compat.v1.nn.rnn_cell.LSTMCell
代替tf.contrib.rnn.LSTMCell
,并使用tf.initializers.GlorotUniform ()
代替tf.contrib.layers.xavier_initializer ()
其他包含rnn的命令,您可以使用tf.compat.v1.nn.rnn_cell
。
答案 2 :(得分:0)
tf_upgrade_v2
已从TF 2.0 alpha开始移出TF。
看看这些tf 2.0发行说明https://github.com/tensorflow/tensorflow/releases/tag/v2.0.0-alpha0
您可以使用tidyr
脚本将TF 1.x代码升级到TF2.x。
https://www.tensorflow.org/alpha/guide/upgrade