我很困惑在Tensorflow中为RNN使用初始状态张量的正确方式是什么。在使用LSTMStateTuple或cell.zero_state的turtorials之间几乎有50/50的分割。Tensorflow中针对RNN的LSTMStateTuple与cell.zero_state()
两者是否相同?如果是这样,为什么有两种方式?
在一个示例中,他们使用tf.nn.rnn_cell.LSTMStateTuple
来设置初始状态,而在另一个示例中它们使用cell.zero_state()
。
为什么有两种方法?什么时候喜欢这个或那个?当您设置state_is_tuple
时,您只能使用LSTMStateTuple
吗?如果是这样,cell.zero_state()
不再起作用了吗?
两者是不同的东西。在LSTM单元上使用'state_is_tuple',因为LSTM单元的状态是一个元组。 'cell.zero_state'是所有RNN小区状态的初始值。 –
看到这个解释为什么LSTM状态是一个元组:http://colah.github.io/posts/2015-08-Understanding-LSTMs/ –
是的,但如果你看看我提供的两个例子,他们使用两个不同的设置初始状态的方法。 – user3139545