Итак, я запускаю этот код из пурпурного с некоторыми изменениями:
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], а state
- это кортеж из двух LSTMStateTuple
с c
и h
имеет форму [128,512] (размер партии и размер слоя).
Когда я запускаю это, я получаю:
InvalidArgumentError (см. Выше для отслеживания): ConcatOp: Размеры входов должны совпадать: shape [0] = [1,38] против shape [1] = [128,512]
Теперь я понимаю, что это означает несоответствие между входом m_seq
и состоянием. Однако должны ли оба размера совпадать (1 и 128, 38 и 512)? Я не очень понимаю, почему это так. почему они должны соответствовать вообще, так как это динамическое число.