2016-04-26 3 views
8

私はニューラルネットワークを訓練しようとしていますPythonの3でTensorflow 0.8を使用しています、との目標は、自動的にすべての50反復をエクスポート/インポートネットワークの状態にあります。私は最初の反復で出力テンソルをエクスポートするときに問題があり、出力テンソル名は['Neg:0', 'Slice:0']ですが、私は2回目の反復で出力テンソルをエクスポートする際に、出力テンソル名が['import/Neg:0', 'import/Slice:0']ように変更され、この出力テンソルをインポートすると、動作していませんTensorflow 0.8インポートとエクスポート出力テンソルの問題

ValueError: Specified colocation to an op that does not exist during import: import/Variable in import/Variable/read 

誰かがこの問題に関する考えを持っているのだろうかと思います。ありがとう!!!

+0

明確にするために、グラフ構造が反復の間で変更されるか、別の重みセットをインポートするだけですか? – mrry

+0

@mrry実は、私はちょうど私がTensorflow 0.8でのインポート/エクスポートのためここにバグがあるかもしれないと思う:)グラフ構造を変更することなく、重みの/輸入異なるセットをエクスポートします。 (それはTensorflow 0.6のために非常にうまく機能として、私は、私のコードは問題がないかなり確信している) –

+0

それは輸入のバグのような音はない - あなたは ')(tf.import_graph_def'で 'input_map'に変数を渡しています?しかし、私はあなたの主な問題は 'tf.train.Saver'を使って異なるチェックポイントから保存して復元するだけで解決できると思います。 – mrry

答えて

2

方法tf.import_graph_def作品です。

あなたは接頭辞をしたくない場合は、次の例に示したように、単に空の文字列にnameパラメータを設定します。

# import the model into the current graph 
with tf.Graph().as_default() as graph: 

    const_graph_def = tf.GraphDef() 
    with open(TRAINED_MODEL_FILENAME, 'rb') as saved_graph: 
     const_graph_def.ParseFromString(saved_graph.read()) 
     # replace current graph with the saved graph def (and content) 
     # name="" is important because otherwise (with name=None) 
     # the graph definitions will be prefixed with import. 
     # eg: the defined operation FC2/unscaled_logits:0 
     # will be import/FC2/unscaled_logits:0 
     tf.import_graph_def(const_graph_def, name="") 
    [...] 
+0

あなたの答えをありがとう!基本的には、ここで示したのと同じインポート機能を使用しました。そして私の目標は、列車中に50回の繰り返しごとにネットワーク状態を自動的にエクスポート/インポートすることです。私の質問で言及したように、初めて輸出と輸入のためにはうまくいくが、ネットワークを2回目にインポートすると問題が発生した:opsの一部が見つからない...例えば、 'ValueError:インポート中に存在しないオペランドに指定されたコロケーション:Variable_10 in Variable/read_1'。私はtf 0.6を使って全く同じコードを試しましたが、すべてうまくいきます。非空の 'name'のinput_map'が使用されている'場合tf.import_graph_def()が必要です。私はそれはとValueError(引き上げ0.8 –

+0

で壊れ とValueError「tf.import_graph_defを()非空の 'name'のを必要」だと思います。 – pratsJ