tensorflow의 dynamic_rnn 함수에서 출력 모양에 놀랐으며 누군가 RNN 셀에 대한 이해를 높이기를 바랍니다. 예를 들어tensorflow가있는 다중 차원 동적 rnn
입력으로 정의되는 경우 :
seq_size = 5 input_dim = 2. (즉, 두 개의 시계열) 및 (110)가 배치 크기x = tf.placeholder(tf.float32, [110, seq_size, input_dim])
; 셀은 다음과 같이 정의된다
cell = rnn_cell.BasicLSTMCell(hidden_dim)
여기서 hidden_dim =
I는 dynamic_rnn에게
outputs, states = rnn.dynamic_rnn(cell, x, dtype=tf.float32)
을 생성하고 [110 5 6]는 출력의 크기를 확인 6. 이러한 차원은 seq_size by hidden_dim의 일괄 처리 크기입니다.
질문 :
1 : 이러한 치수는 시계열 시간 스텝 당 6 개 숨겨진 노드 30 개 숨겨진 노드 (X 6 5)보다는 6 숨겨진 노드 합계 총있다 의미한다. 이것이 올바른 해석입니까?
2 : 입력 시퀀스가 5 x 2 (각 시퀀스와 2 개의 시퀀스에서 5 단계)이므로 각 시간 단계에서 텐서 흐름이 입력을 숨겨진 노드에 연결하는 방법은 무엇입니까? tensorflow는 각 숨겨진 셀 앞에 2 개의 입력, 12 개의 가중치 및 6 개의 편향을 가진 완전히 연결된 그래프로 가정합니까? 또는 다른 것?
질문 1 : 시퀀스 당 5 개의 숨겨진 노드가 있으며 각 숨겨진 노드는 하나의 입력/단어에 해당합니다. 질문 2 : 각 입력은 2 차원 공간의 벡터입니다 (예를 들어). –
1 번에 대한 대답을 이해하지 못했습니다. 원래는 각 단어/입력에 해당하는 하나의 숨겨진 노드가있을 것이라고 생각했지만, 위 출력의 크기는 그렇지 않은 것으로 보입니다. 위의 예에서 각 배치 요소에는 [1 5 6]이 있으므로 30 개의 출력이 있습니다. 또한 숨겨진 노드의 수는 Cell의 독립 변수입니다 (예 : https://github.com/aymericdamien/TensorFlow-Examples/blob/master/notebooks/3_NeuralNetworks/recurrent_network.ipynb). – Kemp
[1 5 6]은 5 개의 출력이 있고 각 출력은 6 차원 벡터임을 의미합니다. 5 개의 입력을 의미하는 [1 5 2]를 제공했으며 각 입력은 2 차원 벡터입니다. –