2017-02-02 18 views
2

私はTensorFlow RNNチュートリアルに従ってLSTMモデルを作成しました。しかし、このプロセスでは、「バッチ」と「タイムステップ」の違いについては混乱してしまいましたが、この問題を明確にするのに役立ちます。あなたと仮定するとLSTMバッチとタイムステップ

for epoch in range(5): 
     print('----- Epoch', epoch, '-----') 
     total_loss = 0 
     for i in range(inputs_cnt // BATCH_SIZE): 
      inputs_batch = train_inputs[i * BATCH_SIZE: (i + 1) * BATCH_SIZE] 
      orders_batch = train_orders[i * BATCH_SIZE: (i + 1) * BATCH_SIZE] 
      feed_dict = {story: inputs_batch, order: orders_batch} 

      logits, xent, loss = sess.run([...], feed_dict=feed_dict) 

答えて

1

:しかし

with tf.variable_scope("RNN"): 
     for time_step in range(num_steps): 
     if time_step > 0: tf.get_variable_scope().reuse_variables() 
     (cell_output, state) = cell(inputs[:, time_step, :], state) 
     outputs.append(cell_output) 

、次は同じことを行うために表示されます。

チュートリアルコード(以下参照)は、本質的に「バッチ」はステップの指定された数に基づいて作成されますBATCH_SIZEは並列処理している文の数、num_stepsは任意の文の最大語数になります。これらは、LSTMへの入力のさまざまな次元です。

関連する問題