Decoder
- class
Decoder
[源代码]
Decoder提供的主要抽象为:
(initial_input, initial_state, finished) = initialize(inits)
, 为第一个解码步生成输入和状态,并给出指示batch中的每个序列是否结束的初始标识。(output, next_state, next_input, finished) = step(time, input, state)
, 将输入和状态转换为输出和新的状态,为下一个解码步生成输入,并给出指示batch中的每个序列是否结束的标识。
与RNNCell相比,Decoder更为通用,因为返回的 next_input
和 使它可以自行决定输入以及结束时机。
initialize
(inits)
在解码迭代之前调用一次。
- 参数:
返回:一个元组 (initial_inputs, initial_states, finished)
。initial_inputs
和 initial_states
都是单个tensor变量或tensor变量组成的嵌套结构, finished
是具有bool数据类型的tensor。
- (time, inputs, states)
在解码的每个时间步中被调用的接口
- 参数:
- final_states (Variable) - 单个tensor变量或tensor变量组成的嵌套结构。 它是
decoder.step
在最后一个解码步返回的next_states
, 因此具有与任何时间步长的状态相同的结构,形状和数据类型。
- final_states (Variable) - 单个tensor变量或tensor变量组成的嵌套结构。 它是
返回:一个元组 (final_outputs, final_states)
。final_outputs
和 都是单个tensor变量或tensor变量组成的嵌套结构。
返回类型:tuple