我目前正在学习RNN和Tensorflow RNN API。
对于tf.contrib.rnn.static_rnn,它有一个参数initial_state,这是一个可选参数。传递初始状态和不传递初始状态有什么区别?如果我不添加initial_state,这是否意味着RNN内部状态输出将不会继续?
非常感谢!
发布于 2018-07-14 02:31:16
基本的随机神经网络方程是沿着state_t = nonlinearity(matmul(state_t-1, state_weights) + matmul(input_t, input_weights))的线。也就是说,给定时间步长的状态取决于前一个时间步长的状态。这是一个递归定义,因此需要一个“递归停止”,这就是初始状态,即state_0 (或者state_-1,如果你从0开始索引你的输入...)。
如果不传递初始状态,Tensorflow默认使用零张量。一种替代方案是使其成为可训练的(通过使用tf.Variable)。处理初始状态的另一个示例是编码器-解码器架构,其中一个网络(编码器)计算输出,然后将其用作解码器的初始状态。
https://stackoverflow.com/questions/51330738
复制相似问题