나는 tensorflow를 사용하여 반복적 인 신경망을 만들려고합니다. 내 코드는 다음과 같습니다.Tensorflow RNN 입력 크기
import tensorflow as tf
rnn_cell = tf.nn.rnn_cell.GRUCell(3)
inputs = [tf.constant([[0, 1]], dtype=tf.float32), tf.constant([[2, 3]], dtype=tf.float32)]
outputs, end = tf.nn.rnn(rnn_cell, inputs, dtype=tf.float32)
이제 모든 것이 잘 돌아갑니다. 그러나 실제로 어떤 일이 일어나고 있는지 혼란 스럽습니다. 출력 크기는 항상 배치 크기 x rnn 셀의 숨겨진 상태의 크기입니다 - 어떻게 입력 크기와 완전히 독립적 일 수 있습니까?
이해가 정확하다면, 입력은 각 단계에서 rnn의 숨겨진 상태로 연결되고 (다른 연산들 중에서) 가중치 행렬이 곱해진다. 이것은 입력 행렬이 선언되기 전에 rnn_cell이 작성되기 때문에 가중치 행렬의 크기가 입력 크기에 의존해야한다는 것을 의미합니다!