2017-04-13 16 views
4

テンソルフローの入力パラメータの理解に問題があります。 static_rnn入力をdynamic_rnn入力に変換する方法を理解できれば、多くの助けになります。 static_rnnについてstatic_rnn入力をtensorflowのdynamic_rnn入力に変換するにはどうすればよいですか?

は、入力が形状Tはシーケンス長である[batch_size, input_size]、あるテンソルの長さTリストであるとします。これは私には意味がある。

dynamic_rnnの場合、入力は形状[batch_size, max_time, ...]のテンソルであると想定されます。私はinput_sizeをここに組み込む方法を理解していません。より一般的には、私は他にあなたが省略記号を入れることができるか分からない。

たとえば、データが50文字の長さの文で構成されているとします。input_sizeは、アルファベットの文字数です。 static_rnnの場合、私は形状が[batch_size, input_size]であるテンソルの長さ50のリストを作成します。このテンソルのリストをどのようにして1つのテンソルに変換すればいいですか?dynamic_rnnにフィードできますか?

答えて

7

dynamic_rnnの入力は、形状が[batch_size, sequence_length, input_size]である必要があります。

基本的に、テンソルは、長さがsequence_lengthbatch_sizeの例を表し、省略記号に残っているものは単一のシーケンス要素の形状です。

事がdynamic_rnnで、あなたが事前にsequence_lengthを知っている必要はありませんので、ご入力プレースホルダはかなり便利になる

x = tf.placeholder(tf.int32, shape=(batch_size, None, input_size)) 

ようになり、です。さらに、1つのバッチの例は長さが異なることがあります(同じ長さにパディングする必要があります)。sequence_lengthパラメータをdynamic_rnnに渡す必要があります。

関連する問題