Tensorflow RNN API static_rnn

时间:2018-07-13 18:10:46

标签: tensorflow rnn

我目前正在学习RNN和Tensorflow RNN API。

对于tf.contrib.rnn.static_rnn,它有一个参数initial_state,这是一个可选参数。通过初始状态与不通过初始状态有什么区别?如果我不添加initial_state,那是否意味着RNN内部状态输出将不会结转?

非常感谢您!

1 个答案:

答案 0 :(得分:1)

基本的RNN方程沿state_t = nonlinearity(matmul(state_t-1, state_weights) + matmul(input_t, input_weights))线。即,给定时间步长的状态取决于前一个时间步长的状态。这是一个递归定义,因此需要一个“递归停止”,即初始状态,即state_0(或state_-1,我想如果您从0开始对输入进行索引...)。 / p>

如果您未通过初始状态,则Tensorflow默认使用零张量。一种替代方法是使其变得可训练(通过使用tf.Variable)。处理初始状态的另一个示例是编码器-解码器体系结构,其中一个网络(编码器)计算输出,然后将其用作解码器的初始状态。