69

デフォルトのグローバル グラフを操作する場合、ノードを追加した後でノードを削除したり、デフォルトのグラフを空にリセットしたりすることはできますか? IPython でインタラクティブに TF を操作していると、カーネルを繰り返し再起動する必要があることに気付きます。可能であれば、グラフをもっと簡単に実験できるようにしたいと考えています。

4

5 に答える 5

101

2016 年 11 月 2 日更新

tf.reset_default_graph()

古いもの

はありますがreset_default_graph、パブリック API の一部ではありません (あるべきだと思います。GitHubで問題を報告したい人はいますか?)

物事をリセットするための私の回避策は次のとおりです。

from tensorflow.python.framework import ops
ops.reset_default_graph()
sess = tf.InteractiveSession()
于 2015-11-17T22:21:44.920 に答える
36

デフォルトでは、セッションはデフォルト グラフを中心に構築されます。セッションにデッド ノードを残さないようにするには、デフォルト グラフを制御するか、明示的なグラフを使用する必要があります。

  • デフォルトのグラフをクリアするには、tf.reset_default_graph関数を使用できます。

    tf.reset_default_graph()
    sess = tf.InteractiveSession()
    
  • 明示的にグラフを作成して、デフォルトのグラフを使用しないようにすることもできます。通常の を使用する場合はSession、セッションを構築する前にグラフを完全に作成する必要があります。の場合InteractiveSession、グラフを宣言し、それをコンテキストとして使用して、さらに変更を宣言できます。

    g = tf.Graph()
    sess = tf.InteractiveSession(graph=g)
    with g.asdefault():
        # Put variable declaration and other tf operation
        # in the graph context
        ....
        b = tf.matmul(A, x)
        ....
    
     sess.run([b], ...)
    

tensorflow編集: (1.0+)の最近のバージョンでは、正しい関数はg.as_default.

于 2016-03-10T01:27:02.447 に答える