tf.nn.dynamic_rnn
グラフ操作を使用してTensorFlow 0.9.0で単語埋め込みと再帰的ニューラルネットワークを使用して言語モデルを作成しようとしていますが、input
テンソルがどのように構造化されているのか分かりません。TensorFlowのtf.nn.dynamic_rnn演算子の入力テンソルはどのように構造化されていますか?
私はのコーパスがnワードであるとしましょう。私は各単語を長さeのベクトルに埋め込み、私はRNNをtタイムステップに展開します。デフォルトのtime_major = False
パラメータを使用すると仮定すると、私のinput
テンソル[batch_size, max_time, input_size]
の形状はどのようになりますか?
おそらく特定の小さな例では、この疑問が明確になります。私はコーパスがn = 8のようになっているとします。 > [10、10、10]、2 - - > [20、20、20]、及び3 -
1, 2, 3, 3, 2, 1, 1, 2
私は埋め込み1サイズE = 3のベクターに埋め込む言います> [30、30、30]、私のinput
テンソルの外観はどうですか?
TensorFlow Recurrent Neural Network tutorialは読んでいますが、tf.nn.dynamic_rnn
は使用していません。私もtf.nn.dynamic_rnn
のドキュメントを読んだことがありますが、混乱しています。特に、ここでは「max_time」と「input_size」が何を意味するのかよくわかりません。
誰がN、トン、およびE、および/またはそのテンソルは、私が説明する小さなコーパスからのデータで初期化されたどのように見えるかの例の観点でinput
テンソルの形状を与えることができます?あなたは、単一の例を見ているので、
TensorFlow 0.9.0、Pythonの3.5.1、あなたの場合はOS X 10.11.5
これは、トレーニングセット全体が1つのテンソルに入る必要があることを意味しますか?本当に大きな訓練セットで記憶に問題が生じるのではないでしょうか? –
いいえ。ミニバンで訓練することができます。すなわち、一度に16または32の例の集合である。 'tf.batch'と' tf.batch_join'を見てください。特にこの議論のためには 'dynamic_pad = True'の引数があります。 –
小さなデータセットの場合、単純な 'feed_dict'メカニズムを使用するという考えですが、大きなセットにスケールアップするときは、ファイル読み込みパイプラインを使用する必要がありますか? https://www.tensorflow.org/versions/r0.9/how_tos/reading_data/index.html#reading-from-files –