graph

tensorflow中graph包含一些操作对象,这些对象就是计算节点。而tensor表示的是不同操作间的数据节点。

tensorflow会创建默认的图,可以通过tf.get_default_graph()来访问:

代码:

import tensorflow as tf
import numpy as np

c=tf.constant(value=1)
#print(assert c.graph is tf.get_default_graph())
print(c.graph)
print(tf.get_default_graph())

结果:

如何使用自定义的graph,使用Graph.as_default()的上下文管理器:

代码:

import tensorflow as tf
import numpy as np

c=tf.constant(value=1)
#print(assert c.graph is tf.get_default_graph())
print(c.graph)
print(tf.get_default_graph())

g=tf.Graph()
print("g:",g)
with g.as_default():
  d=tf.constant(value=2)
  print(d.graph)
  #print(g)

g2=tf.Graph()
print("g2:",g2)
g2.as_default()
e=tf.constant(value=15)
print(e.graph)

结果:

分析:第一个总共有一个graph,就是c默认创建的;第二种情况:先创建了图g,然后在g下声明变量,因此g覆盖了d声明时默认的graph。第三种情况,就是有两个图。

猜你喜欢

转载自www.cnblogs.com/smartwhite/p/8989413.html