TensorFlow的使用一般分为两个阶段
1. 定义计算图中的所有计算
2. 执行计算
import tensorflow as tf
a = tf.constant([1.0,2.0],name='a')
b = tf.constant([2.0,3.0],name='b')
result = a + b
如果说我们没有指定计算图的话
张量就会存储到默认图中
print(a.graph is tf.get_default_graph())
可以用以上方法查询张量所属的图
Tensorflow支持生成新的计算图
不同计算图的张量和运算都是隔离的,不会共享
# 生成计算图1
g1 = tf.Graph()
with g1.as_default():
# 在计算图1中定义 v 初始化为0
v = tf.get_variable('v',shape=[1],initializer = tf.zeros_initializer)
# 生成计算图2
g2 = tf.Graph()
with g2.as_default():
# 在计算图2中定义 v 初始化为1
v = tf.get_variable('v',shape=[1],initializer = tf.ones_initializer)
# 在计算图1中读取变量v
with tf.Session(graph=g1) as sess:
#执行初始化
tf.global_variables_initializer().run()
with tf.variable_scope('',reuse=True):
print(sess.run(tf.get_variable('v')))
# 在计算图2中读取变量v
with tf.Session(graph=g2) as sess:
#执行初始化
tf.global_variables_initializer().run()
with tf.variable_scope('',reuse=True):
print(sess.run(tf.get_variable('v')))
tensorflow 可以指定运行设备,提供gpu计算
g = tf.Graph()
with g.device('/gpu:0'):
result = a + b