2016-06-29 4 views
4

tf.nn.dynamic_rnn 그래프 작업을 사용하여 TensorFlow 0.9.0에서 단어 포함 및 재귀 신경망을 사용하여 언어 모델을 작성하려고하지만 input 텐서가 어떻게 구성되었는지 이해할 수 없습니다.TensorFlow의 tf.nn.dynamic_rnn 연산자에 대한 입력 텐서는 어떻게 구성되어 있습니까?

내가 코퍼스를 가지고 있다고 가정 해 봅시다. 단어는입니다. 각 단어를 e 벡터에 포함시키고 내 RNN을 t 시간 간격으로 펼치 길 원합니다. 기본 time_major = False 매개 변수를 사용한다고 가정 할 때 어떤 모양이 내 input 텐서 [batch_size, max_time, input_size]에 있습니까?

아주 작은 예가이 질문을 명확하게 나타낼 수 있습니다. 예를 들어 n = 8 개의 단어로 구성된 코퍼스가 있다고 가정 해 보겠습니다.

1, 2, 3, 3, 2, 1, 1, 2 

내가 묻어 3 = 크기 E의 벡터에 임베드 말 1 -> [10, 10, 10, 2 -> [20, 20, 20, 3 -> [30, 30, 30], 내 input 텐서는 어떻게 생겼을까요?

나는 TensorFlow Recurrent Neural Network tutorial을 읽었지만 tf.nn.dynamic_rnn은 사용하지 않습니다. 또한 tf.nn.dynamic_rnn에 대한 설명서를 읽었지만 혼란 스럽습니다. 특히 "max_time"과 "input_size"가 무슨 뜻인지 잘 모르겠습니다.

사람은 t전자, 및/또는 그 텐서 내가 설명하는 작은 코퍼스에서 데이터로 초기화 어떻게 보이는지의 예, N의 측면에서 input 텐서의 모양을 줄 수 ? 당신은 하나의 예를보고있는 이후

TensorFlow 0.9.0, 파이썬 3.5.1, 귀하의 경우에는 OS X 10.11.5

답변

3

, 그것은, batch_size = 1처럼 보인다. 따라서 max_time은 인 n=8이고 input_size은 입력 깊이입니다. 그래서 [1, 8, 3] 모양의 input 텐서를 만들고 싶습니다. batch_major이므로 첫 번째 차원 (배치 차원)은 1입니다. 예를 들어, 동시에 다른 입력을 n=6 개의 단어로 사용하는 경우이 두 번째 예를 8 개의 단어 (마지막 2 단어 포함에 0을 덧붙임)로 채우면 둘을 결합하면 inputs 크기가됩니다. [2, 8, 3].

+0

전체 트레이닝 세트가 단일 텐서로 들어가야한다는 것을 의미합니까? 정말 큰 훈련 세트에 메모리 문제가 생길까요? –

+0

아니오; 미니 바에서 훈련 할 수 있습니다. 즉 한 번에 16 또는 32 개의 예제 세트로 구성됩니다. 'tf.batch'와'tf.batch_join'을 보시고 특히이 토론을 위해서'dynamic_pad = True' 인자를보십시오. –

+1

작은 데이터 세트의 경우 간단한 'feed_dict' 메커니즘을 사용하지만 큰 세트로 확장 할 때 파일 읽기 파이프 라인을 사용해야한다는 생각입니까? https://www.tensorflow.org/versions/r0.9/how_tos/reading_data/index.html#reading-from-files –

관련 문제