What is the equivalent of tf.nn.rnn in new versions of TensorFlow?

馋奶兔 提交于 2019-11-27 18:01:36

问题


I used to create the RNN network, in version 0.8 of TensorFlow, using:

from tensorflow.python.ops import rnn

# Define a lstm cell with tensorflow
lstm_cell = rnn_cell.BasicLSTMCell(n_hidden, forget_bias=1.0)

# Get lstm cell output
outputs, states = rnn.rnn(cell=lstm_cell, inputs=x, dtype=tf.float32)

rnn.rnn() is not available anymore, and it sounds it has been moved to tf.contrib. What is the exact code to create RNN network out of a BasicLSTMCell?

Or, in the case that I have an stacked LSTM,

lstm_cell = tf.contrib.rnn.BasicLSTMCell(hidden_size, forget_bias=0.0)
stacked_lstm = tf.contrib.rnn.MultiRNNCell([lstm_cell] * num_layers)
outputs, new_state =  tf.nn.rnn(stacked_lstm, inputs, initial_state=_initial_state)

What is the replacement for tf.nn.rnn in new versions of TensorFlow?


回答1:


tf.nn.rnn is equivalent to tf.nn.static_rnn.

Note: before version 1.2 of TensorFlow, the namespace tf.nn.static_rnn did not exist, but only tf.contrib.rnn.static_rnn (which is now an alias for tf.nn.static_rnn).




回答2:


You should use tf.nn.dynamic_rnn.

FYI: What is the upside of using tf.nn.rnn instead of tf.nn.dynamic_rnn in TensorFlow?



来源:https://stackoverflow.com/questions/42497216/what-is-the-equivalent-of-tf-nn-rnn-in-new-versions-of-tensorflow

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!