2016-11-28 18 views
0

私はオートエンコーダーを訓練し、セーバーを使ってセッションを保存しました。今私は別のモデルを訓練したいと思います。それは、入力をエンコードしてMLPに沿って渡す必要のある、訓練された変数の束を使用します。問題は、Saverのエクスポート/インポート機能を使用していても、オートエンコーダモデルを新しいモデルにロードする際に問題が発生していることです。TensorFlow:モデルの訓練可能な変数を別のモデルに復元するにはどうすればよいですか?

これも可能ですか? 私は入手し続ける 'encoder.ckptを開くことができませんでした:データ損失:sstable(悪いマジックナンバー)ではありませんあなたのファイルは異なるフォーマットであり、別の復元演算子を使用する必要がありますか?

助けていただけたら幸いです!

+0

セーバーに渡す変数が両方のモデルで同じ名前になっている場合は、これが機能するはずです。あなたが言ったエラーは無関係です。あなたは完全なスタックトレースを投稿できますか? –

答えて

0

これはおそらくコメントであるはずですが、@Alexandre Passosが述べたように、saver.restore(encoder.ckpt)は以前にすべての変数/操作を定義していればうまくいくはずです。あなたがいない場合にのみ、そのモデルからの変数のいくつかをつかむしたい場合、あなたはまた、

graph = tf.get_default() 
restored_var = graph.get_tensor_by_name(restored_var_name) 

あなたによってそうすることができ、その後

saver = tf.train.import_meta_graph(encoder.ckpt.meta) 
saver.restore(encoder.ckpt) 

として保存されたグラフをロードする必要がありますチェックポイントファイルをチェックして、エンコーダーパスのエンコーディングファイルがあることを確認することができます。

関連する問題