2017-01-05 7 views
3

초보자이기 때문에 이상하게 보입니다.하지만 용서해주세요.TensorFlow의 API : tf.squeeze, tf.nn.rnn

tf.squeezetf.nn.rnn은 어떤 종류의 처리를 수행합니까? 이 API를 검색했지만 인수, 예제 등을 찾을 수 없습니다. 또한 다음 코드로 구성된 'p_inputs'의 모양은 tf.squeeze이고, tf.nn.rnn의 의미와 사례는 무엇입니까?

batch_num = 10 
step_num = 2000 
elem_num = 26 

p_input = tf.placeholder(tf.float32, [batch_num, step_num, elem_num]) 
p_inputs = [tf.squeeze(t, [1]) for t in tf.split(1, step_num, p_input)] 
+0

* 어떤 종류의 처리 *를 의미합니까? – martianwars

+0

죄송합니다. 이 함수의 동작을 의미합니다. – 417mm

답변

5

이러한 질문에 대한 가장 좋은 답변은 TensorFlow API documentation입니다. 위에서 언급 한 두 함수는 데이터 흐름 그래프에서 연산과 상징적 인 텐서를 생성합니다. 특히 다음

  • tf.squeeze() 함수는 첫번째 인수와 동일한 값이지만 다른 형상의 텐서를 반환한다. 크기가 1 인 차원을 제거합니다. 예를 들어, t이 모양이 [batch_num, 1, elem_num] 인 텐서 인 경우 (질문에서와 같이) tf.squeeze(t, [1])은 같은 내용이지만 크기가 [batch_num, elem_num] 인 텐서를 반환합니다.

  • tf.nn.rnn() 함수는 한 쌍의 결과를 반환합니다. 첫 번째 요소는 주어진 입력에 대해 반복적 인 신경망의 출력을 나타내고 두 번째 요소는 해당 입력에 대한 해당 네트워크의 최종 상태를 나타냅니다. TensorFlow 웹 사이트에는 자세한 내용이 포함 된 tutorial on recurrent neural networks이 있습니다.

+0

감사! 나는 그 사이트를 본다. – 417mm

+0

@ 417mm이 대답을 upvote/accept하는 것을 잊지 마세요. – martianwars