这似乎是tensorflow的一个bug,以下是 stackoverflow里大佬的解答:
cell = tf.nn.rnn_cell.GRUCell(self._hidden_size,kernel_initializer=initializer)
rnn_cells = tf.nn.rnn_cell.MultiRNNCell([cell] * self._num_layer)
to ...
layers = [tf.nn.rnn_cell.GRUCell(self._hidden_size,kernel_initializer=initializer)
for _ in self._num_layer]
rnn_cells = tf.nn.rnn_cell.MultiRNNCell(layers)
可以参考:
https://github.com/tensorflow/tensorflow/issues/14897
另外,在使用函数:
outputs, final_state = tf.nn.dynamic_rnn(cell, x, initial_state=None, dtype=tf.float32, time_major=False)
final_state 输出长度为 lstmcell的层数