Tensorlfow中的计算是通过一个有向图directed graph或则计算图computation graph来实现的。
将每一个运算操作operation作为一个节点node,节点之间通过边edge连接。
这个计算图描述的数据计算流程用户可以进行相关分支、循环、选择。使用的语言是python、C++、java、Go等。
计算图中每一个节点可以有多个输入和输出,每个节点只能描述一种运算操作。所以节点是运算操作的实例化(instance)。
在计算图中传递(流动flow)的数据叫张量(tensor)
tensor的数据类型可以预先定义也可以根据计算图的结构推断得到,特殊情况下的依赖控制边(control dependencies),他的功能是起始节点执行计算后再执行目标节点方便用户进行条件控制,只要用在限制内存的高峰值。
import tenorlfow as tf
b = tf.Variable(tf.zeros([100])) #生成100维的向量初始化为0
w = tf.Veriable(tf.random_unifrom([784,100],-1,1) #生成784*100的随机矩阵w
x = tf.placeholder(name = "x") #输入的placeholder
relu = tf.nn.relu(tf.matmul(w,x)+b) #ReLU(Wx+b)
C = [. . .] #根据ReLU函数的结果计算Cost
s = tf.Seeion( )
for step in range(0,10):
input = . . .construct 100-D input arry . . .# 为输入创建一个100维的向量
result = s. run(C,feed_dirc = {x: input}) #获取Cost供给输入x
print(step,result)