Decoder

    Decoder提供的主要抽象为:

    1. (initial_input, initial_state, finished) = initialize(inits), 为第一个解码步生成输入和状态,并给出指示batch中的每个序列是否结束的初始标识。

    2. (output, next_state, next_input, finished) = step(time, input, state), 将输入和状态转换为输出和新的状态,为下一个解码步生成输入,并给出指示batch中的每个序列是否结束的标识。

    与RNNCell相比,Decoder更为通用,因为返回的 next_input 和 使它可以自行决定输入以及结束时机。

    • initialize(inits)

    在解码迭代之前调用一次。

    • 参数:

    返回:一个元组 (initial_inputs, initial_states, finished)initial_inputsinitial_states 都是单个tensor变量或tensor变量组成的嵌套结构, finished 是具有bool数据类型的tensor。

    • (time, inputs, states)

    在解码的每个时间步中被调用的接口

    • 参数:
      • final_states (Variable) - 单个tensor变量或tensor变量组成的嵌套结构。 它是 decoder.step 在最后一个解码步返回的 next_states, 因此具有与任何时间步长的状态相同的结构,形状和数据类型。

    返回:一个元组 (final_outputs, final_states)final_outputs 和 都是单个tensor变量或tensor变量组成的嵌套结构。

    返回类型:tuple