tensorflow 的 tf.contrib.legacy_seq2seq.basic_rnn_seq2seq 的 api doc 说:
(outputs, states) = basic_rnn_seq2seq(
encoder_inputs,
decoder_inputs,
cell,
dtype=tf.float32,
scope=None
)
其中,
encoder_inputs:二维张量列表 [batch_size x input_size]。
解码器输入:二维张量列表 [batch_size x input_size]。
问题 1:为什么编码器输入和解码器输入的序列大小 (input_size) 相同。就我而言,存在不等长度的 seq - to - seq 映射。例如,“你在做什么”(长度 4)->“wie gehts(长度 2)”。使用这个 tensorflow 模块时是否需要填充和制作等长的序列?
问题 2:如果我使用
cell = tf.nn.rnn_cell.LSTMCell(num_units = 128)
输出的大小(batch_size x 128 [lstm 中隐藏单元的数量])真的让我感到困惑。它不应该等于(batch_size x output_size)吗?我在这里想念什么?我真的很困惑解码器如何在这里工作。