在这几行代码中完全体现了这两项操作
( 还额外包括了 :
将数据表示为tensors;
使用Variables来保持状态信息;
分别使用feeds和fetches来填充数据和抓取任意的操作结果; )
import tensorflow as tf
a =tf.placeholder("float")
b =tf.placeholder("float")
y = tf.multiply(a,b)
sess = tf.Session()
print(sess.run(y, feed_dict={a: 3, b: 3}))
---------------------
转载于 作者:Jasen_Fu
TensorFlow用张量表示所有的数据,张量可看成一个n维的数组或列表,在图中的节点之间流通。张量的维数称为阶,在另一片文中有相应的一些介绍。
在tensorflow程序中,系统会自动给参数一个默认的计算图,可以通过tf.get_default_graph()函数获取。
import tensorflow as tf
x = tf.constant(10)
y = tf.constant(15)
print(x.graph)
结果为:
tensorflow可以通过tf.Graph函数生成新的计算图。不同计算图上的张量和运算都不会共享
g1=tf.Graph() with g1.as_default(): # 在计算图g1中定义变量'v',并设置初始值为0。 v=tf.get_variable('v',initializer=tf.zeros_initializer()(shape = [1])) g2=tf.Graph() with g2.as_default(): # 在计算图g2中定义变量'v',并设置初始值微1。 v=tf.get_variable('v',initializer=tf.ones_initializer()(shape = [1])) # 在计算图g1中读取变量'v'的取值 with tf.Session(graph=g1) as sess: tf.global_variables_initializer().run() with tf.variable_scope('',reuse=True): # 在计算图g1中,变量'v'的取值应该为0,下一行代码会输出[0.]。 print(sess.run(tf.get_variable('v'))) # 在计算图g2中读取变量'v'的取值 with tf.Session(graph=g2) as sess: tf.global_variables_initializer().run() with tf.variable_scope('',reuse=True): # 在计算图g2中,变量'v'的取值应该为1,下一行代码会输出[1.]。 print(sess.run(tf.get_variable('v')))
############# 代码借鉴于https://www.cnblogs.com/hypnus-ly/p/8040951.html 这位朋友的博客#######
tensorflow中的计算图不仅可以用来隔离张量和计算,它还提供了管理张量和计算的机制,具体的可以到上面这位朋友的博客中看。
import tensorflow as tf
x = tf.constant(10)
y = tf.constant(15)
print(x+y)
结果: Tensor("add_1:0", shape=(), dtype=int32)
我们观察一下这里的输出信息,一共是三个,代表了张量在存储时候的三种属性:
名字(name)、维度(shape)和类型(type)
其中,name属性以“node:src_output”的形式表示,node表示节点的名称,src_output表示当前张量来自节点的第几个输出。
还可以通过result.get_shape函数来获取结果张量的维度信息。
创建session的三种方式:
# 1、 创建一个会话 with tf.Session() as sess: print(sess.run(result))
# tensorflow中需要手动指定默认会话,当该会话指定后,可以通过tf.Tensor.eval函数来计算一个张量的取值。 # 2、 创建一个默认的会话 sess=tf.Session() with sess.as_default(): # 需要在这里先指定一个会话,也就是指定一个sess的名称(有点类似于namespace吧) print(result.eval())
# 3、 创建一个会话 sess=tf.Session()
# 下面两个命令等价 print(sess.run(result)) print(result.eval(session=sess))
# 在交互式环境下,使用设置默认会话的方法来获取张量的取值更加方便,tensorflow提供了一种在交互式环境下直接构建 # 默认会话的函数,tf.InteractiveSession。该函数会自动将生成的会话注册为默认会话。 sess= tf.InteractiveSession() print(result.eval()) sess.close()