LSTM 需要 initial state。一般情况下,我们都会使用 lstm_cell.zero_state()来获取 initial state。但有些时候,我们想要给 lstm_cell 的 initial state 赋予我们想要的值,而不是简单的用 0 来初始化,那么,应该怎么做呢?
当然,当我们设置了state_is_tuple=False的时候,是很简单的,当state_is_tuple=True的时候,应该怎么做呢?
需要用到LSTMStateTuple
可以把 LSTMStateTuple() 看做一个op
from tensorflow.contrib.rnn.python.ops.core_rnn_cell_impl import LSTMStateTuple
...
c_state = ...
h_state = ...
# c_state , h_state 都为Tensor
initial_state = LSTMStateTuple(c_state, h_state)当然,GRU就没有这么麻烦了,因为GRU没有两个state。