2015-12-12 22 views

答えて

16

TensorFlow tf.Graphクラスを使用すると、グラフの一部を実行した後、グラフにノードを追加することができますが、既存のノードを削除または修正することができないことを意味追加のみデータ構造です。 Session.run()を呼び出すと、TensorFlowは必要なサブグラフのみを実行するため、グラフは冗長ノードを持つための実行時にコストがかかりません(ただし、メモリを消費し続けます)。

は、新しいグラフとのセッションを作成することができ、グラフに すべてノードを削除するには、次の

with tf.Graph().as_default(): # Create a new graph, and make it the default. 
    with tf.Session() as sess: # `sess` will use the new, currently empty, graph. 
    # Build graph and execute nodes in here. 
+3

"メモリを消費し続けますが" - このセッションは、セッションがPythonランタイムによってガベージコレクトされたときに解放されますか? –

5

はい、tf.Graphは@mrryがそれを置くよう追加のみの方法で構築されています。

しかし、回避策あります:

概念的には、あなたがそれをクローン化することにより、既存のグラフを変更し、道に沿って必要な修正を行うことができます。 r1.1から、Tensorflowは、上記の考えを納得のいく機能のセットとして実装するtf.contrib.graph_editorというモジュールを提供します。

+6

これらのメソッドに関しては、ドキュメントが貧弱すぎます –

関連する問題