2016-07-18 9 views
2

.ckptファイルを使用してモデルを復元しようとしています。をtensorflow/models/embeddingに実行しています。どのように変数を復元して、モデルをロードして使用できるようになるかわからない。すべてのtf変数がカプセル化され、クラス内でtensorflow/models/embedding/word2vec_optimized.pyに初期化されるためです。どんな助けもありがとう。テンソルフローモデルを復元するには?

また、.ckptを「復元」すると、今度はWor2Vecインスタンスがありますか、.ckptを使用してモデルを復元すると実際に何が得られますか?

答えて

1

保存機能を呼び出すと、モデルのトレーニングに使用していたtf.Sessionが渡されます。これには、すべての変数を含むグラフへの参照が含まれています。 Python変数とテンソルフロー変数を混同しないでください。あなたが作成したテンソルフロー変数を指すPythonの変数をもはや持っていなくても、それが計算グラフの一部であればそれはまだ存在します。モデルを作成した後、次のコードを実行してみてください。

for v in tf.all_variables(): 
    print(v.name) 

作成したすべての変数の名前が表示されます。セーバーは、デフォルトでこれらのすべてを保存します。変数を復元するときに変数の名前が同じであれば、作成された場所は関係ありません。すべての変数がモデルに追加されたら、リストアを必ず実行してください。変数に初期化子を渡すと、sess.run(tf.initialize_all_variables())を呼び出すときにのみ初期化が実行されます。値を復元するだけの場合は、これを呼び出す必要はありません。私はしばしば次のコードを使用します。私はそれらの内部変数を作成thensorflow RNNクラスを使用していたときに

sess = tf.Session() 
saver = tf.train.Saver() 
if 'restore' in sys.argv: 
    saver.restore(sess, '/media/chase/98d61322-9ea7-473e-b835-8739c77d1e1e/model.chk') 
else: 
    sess.run(tf.initialize_all_variables()) 

このコードは正常に動作します。

関連する問題