2017-04-27 8 views
2

テンソルフローGraphを作成しました。保存されたgraph.pbからセッションのグラフオブジェクトを取得する方法

これは、protobufferファイルで定義されたグラフをその時点のデフォルトグラフとして配置します。セッションを作成すると、このグラフが現在のグラフとして使用されます。私は、複数の間で変更する必要がユースケースを持って

TypeError: graph must be a tf.Graph, but got <class 'tensorflow.core.framework.graph_pb2.GraphDef'> 

予想されるエラーで終了Session

with tf.Session(graph=graph_def) as sess: 

として変数にシリアライズさ graph_defオブジェクトを保存し、起動しようとすると

グラフ。提示されたアプローチでは、デフォルトのグラフをクリアして新しいグラフをロードすることができます。これは、インポート関数を繰り返し呼び出す必要があるという欠点があります。

質問は、

with tf.Session(graph=my_graph) as sess: 

を使用してgraph.pbファイルからグラフをリロードせずにセッションを作成することが可能であるのでmy_graphが得Graphオブジェクトは、どのように、私のgraph.pbから、でしょうか?

+0

をあなたはこれを行うために管理方法を教えてくださいできますか? –

+0

@HaraHaraMahadevaki受け入れられた答えが示唆したように。 – milez

+0

ありがとうございます...少し遅いです...速度を向上させるための回避策はありますか? –

答えて

1

独自のグラフを作成して、インポート操作のデフォルトとして設定することができます

import tensorflow as tf 
graph1 = tf.Graph() 
graph2 = tf.Graph() 
with graph1.as_default(): 
    tf.import_graph_def(graph_def1) # graph_def1 loaded somewhere 

with graph2.as_default(): 
    tf.import_graph_def(graph_def2) # graph_def2 loaded somewhere 

session1 = tf.Session(graph=graph1) 
session2 = tf.Session(graph=graph2) 
+0

pbファイルから自分のグラフを作成する方法は? –

関連する問題