TensorFlow 几种LSTM对比
tf.nn.rnn_cell.BasicLSTMCell
tf.nn.static_rnn
tf.nn.static_rnn
tf.nn.dynamic_rnn
tf.contrib.cudnn_rnn
tf.contrib.rnn.LSTMBlockCell
tf.contrib.rnn.LSTMBlockFusedCell
tf.contrib.rnn.BasicLSTMCell variants
1. BasicLSTMCell
tf.nn.rnn_cell.BasicLSTMCell 是一种参考或者标准实现。一般情况下,都不应该是首选。
The tf.nn.rnn_cell.BasicLSTMCell should be considered a reference implementation and used only as a last resort when no other options will work.
2. tf.nn.static_rnn vs tf.nn.dynamic_rnn
如果不是使用一个 RNN layer,而是只使用一个 RNN cell,应该首要选择 tf.nn.dynamic_rnn。好处有:
1. 如果 inputs 过大的话,使用 tf.nn.static_rnn 会增加 graph 的大小,并且有增加编译时间。
2. tf.nn.dynamic_rnn 能够很好地处理长 sequence,它可以从 GPU 和 CPU 中交换内存。
1. 如果 inputs 过大的话,使用 tf.nn.static_rnn 会增加 graph 的大小,并且有增加编译时间。
2. tf.nn.dynamic_rnn 能够很好地处理长 sequence