TensorFlow的基本套路:
1.使用图表示计算任务
2.在回话(Session)中执行图。
3.用tensor表示数据
4.通过变量(Variable)维护状态
5.使用feed和fetch可以为任意操作赋值或者从中获取数据。
构建图:
图中的节点被称之为op(operation的缩写)。一个op获得0或多个tensor,执行计算产生0个或多个Tensor
import tensorflow as tf
#创建一个op常量,产生一个1*2矩阵,这个op被成为一个节点,加到默认图中。
matrix1=tf.constant([[3.0,3.0]])
#创建一个2*1矩阵
matrix2=tf.constant([[2.0],[2.0]])
#product代表矩阵相乘的结果
product=tf.matmul(matrix1,matrix2)
先在默认图中有三个节点。
在会话中启动图
#启动默认图
sess=tf.Session()
result=sess.run(product)
print result
#结果为12
#关闭会话
sess.close()
也可以使用with代码块来自动完成关闭动作
with tf.Session() as sess:
result=sess.run([product])
print result
Tensor
TensorFlow使用tensor数据结构代表所有数据。操作间传递数据都是tensor。一个tensor包含一个静态类型rank和一个shape。
变量
变量维护一个图执行过程中的状态信息,代码示例:
state=tf.Variable(0,name="counter")
one=tf.constant(1)
new_value=tf.add(state,one)
update=tf.assign(state,new_value)
#启动图,先初始化所有op到图中
init_op=tf.initialize_all_variables()
with tf.Session() as sess:
sess.run(init_op)
print sess.run(state)
for i in range(3)
sess.run(update)
print sess.run(state)
#输出
#0
#1
#2
#3
#4