2016-12-27 5 views
2

저는 tensorflow에 익숙하지 않습니다. 이제는 batch_size의 의미에 대해 약간 혼란 스럽습니다. 로 일반적으로 batch_size의 의미는 각 배치에 대한 샘플의 수 것으로 알려져 있지만, ptb_word_lm의 코드에 따라, 그렇지 않아 보인다ptb_word_lm (tensorflow의 LSTM 모델)에서의 batch_size의 의미

는 reader.py :

data_len = tf.size(raw_data) #the number of words in dataset 
batch_len = data_len // batch_size 

무엇을 의미 batch_len합니까? 배치 수 는요?

ptb_word_lm.py :

self.epoch_size = ((len(data) // batch_size) - 1) // num_steps 

epoch_size은 무엇을 의미합니까? 각 배치의 서열 수는?

그러나 batch_size가 배치 수를 의미하면 모든 것이 의미가 있습니다. 내가 뭔가를 오해 했니?

답변

3

여기에는 LSTM에 대한 획, 단계, 배치 및 언롤 단계가 있습니다.

최상위 레벨에서는 여러 신기원으로 네트워크를 교육합니다. 각 신기원에서 모든 훈련 데이터를 (일반적으로 무작위 순서로) 단계별로 사용합니다. 각 단계에서 일련의 샘플을 학습합니다.

나는 LSTM에 의해 여기에 추가 된 혼란이 있다고 생각한다 : 각 단계마다, 당신은 일괄 처리 대신에 일련의 배치를 훈련시킬 것이다. 시퀀스의 길이는 언 롤 단계 수 (num_steps)입니다.

+0

감사합니다. 원시 데이터를 [batch_size, batch_len] – shakacs

+0

으로 다시 만들어야하는 이유이기도합니다. 따라서 "배치"는 LSTM에 대한 벡터 입력이고 num_steps는 LSTM에 교육을받는 동안 시퀀스의 배치 수? 그래서, 각 시간 단계에서 X, Y, Z의 값으로 구성된 시계열을 학습하면 배치는 X, Y 및 Z에 대한 단일 시간 단계 값이됩니까? – zcleghern

관련 문제