TensorFlow程序一般有两个过程,第一阶段需要定义计算图中所有的计算,第二个阶段为执行计算。
第一步:构造图
TensorFlow有一个默认图,op构造器可以为其增加节点。
创建一个矩阵乘法 'matmul ' op , 把 'matrix1' 和 'matrix2' 作为输入. 返回值 'product' 代表矩阵乘法的结果.
>>> import tensorflow as tf
>>> matrix1=tf.constant([[3.,3.]]) #创建一个常量op
>>> matrix2=tf.constant([[2.],[2.]])#创建一个常量op
>>> product=tf.matmul(matrix1,matrix2)# 创建一个矩阵乘法matmul op ,把'matrix1' 和 'matrix2' 作为输入.
# 返回值 'product' 代表矩阵乘法的结果.
第二步:执行计算
默认图现在有三个节点, 两个 constant() op, 和一个matmul() op. 为了真正进行矩阵相乘运算, 并得到矩阵乘法的结果, 你必须在会话里启动这个图.
构造阶段完成后, 才能启动图. 启动图的第一步是创建一个 Session 对象, 如果无任何创建参数, 会话构造器将启动默认图.
启动默认参数 ‘sess=tf.Session()’
调用sess的run()方法来执行矩阵乘法op,'product'代表了矩阵乘法op的输出,传入它是向方法表明,我们希望取回矩阵乘法op的输出。整个执行过程是自动化的,会话负责传递op所需的全部输入. op通常是并发执行的.函数调用 'run(product)'触发了图中三个 op (两个常量op和一个矩阵乘法 op)的执行.返回值 'result'是一个 numpy `ndarray`对象.
任务完成, 关闭会话.
>>> sess=tf.Session()
>>> result=sess.run(product)
>>> print result
[[ 12.]]
>>> sess.close()
运算示例:
x = tf.constant(10)
y = tf.constant(2)
z = tf.add(tf.div(x,y),tf.constant(1))
with tf.Session() as sess:
output = sess.run(z)
print(output)
6