2016-12-08 7 views
0

(batch_size, sequence_lengh, depth)の入力データを持つdynamic_rnnネットワークを訓練しました。最長の例(この場合は97)、それをチェックポイントとして保存しています。 "実世界のデータ"上のネットワークを評価するために、チェックポイントをロードし、復元されていない入力データを復元された入力テンソル(tf.Session.run()を使用)に送ります。TensorFlow:パッドされていないデータを含むパッド付きデータでトレーニングされたネットワークを評価する(ValueError:図形の値をフィードできません...)

ValueError: Cannot feed value of shape (1, 1, 32) for Tensor 'input_x:0', which has shape '(?, 97, 32)' 

tf.Graph.get_operation_by_name()を使用して入力テンソルを復元しました。

可能な回避策は、(?、97,32)に従うように入力を埋め込むことですが、バッチの埋め込み(直感的に同じ問題に直面するはずです)のサポートが実装されているので、溶液。

答えて

0

入力のシーケンス長はトレーニングデータと同じでなければなりません。ニューラルネットは一定の大きさの配列を受け入れるように構築されました。あなたの場合は長さ97のシーケンスで、長さは32です。

非常に堅いnumpy関数のように考えることができます。この関数は、最初の次元以外のすべてに対してハードコードされたサイズ制限があります。トレーニングデータのパッドに使用したものと同じパッドで入力を埋め込む必要があります。

+0

ありがとうございました。私は[wildml](http://www.wildml.com/2016/08/rnns-in-tensorflow-a-practical-guide-and-undocumented-features/)の投稿に気を取られたと思いますあなたは、同じ長さ(そのバッチ内のサンプルの最大長)にバッチ内のサンプルを埋め込む必要があります。そのように、本当に長い例は、単一のバッチにしか影響しません " – 0x14d

関連する問題