所以我从洋红色运行这段代码并进行了一些修改:
outputs, final_state = tf.nn.dynamic_rnn(
self.cell,
m_seq,
sequence_length=lens,
initial_state=initial_state,
swap_memory=swap_memory,
parallel_iterations=parallel_iterations)
其中self.cell
是具有两层的 MultiRNN 单元,是m_seq
具有形状 [1,38] 的一个热长度向量,并且是具有形状 [128,512](批量大小和层大小)state
的两个元组。LSTMStateTuple
c
h
当我运行它时,我得到:
InvalidArgumentError(参见上文的回溯):ConcatOp:输入的尺寸应匹配:shape[0] = [1,38] vs. shape[1] = [128,512]
现在我明白这意味着输入m_seq
和状态之间的不匹配。但是,两个维度都必须匹配(1 和 128、38 和 512)吗?我真的不明白为什么会这样。为什么它们必须完全匹配,因为这是一个动态 rnn。