一、tensorflow基础元素
使用 TensorFlow, 你必须明白 TensorFlow:
- 使用图 (graph) 来表示计算任务.
- 在被称之为
会话 (Session)
的上下文 (context) 中执行图. - 使用 tensor 表示数据,tensor是张量,即多维数组。
- 通过
变量 (Variable)
维护状态. - 使用 feed 和 fetch 可以为任意的操作op(arbitrary operation) 赋值或者从其中获取数据.
结构图如下:
- 一个Session会话中可以有多个graph图,graph图一般使用框架自带的默认图即可。
- 一个graph图中可以有多个操作op,op可以传入0或多个tensor传入,同时输出0或多个tensor,op需要在session中用session.run()方法执行。
- tensor即多维数组,tensor可以是Variable变量、constant常亮、placeholeder占位符,这三个会在后续内容更新讲解。
graph、session、tensor是三个类,Session可以看做是一整个工作任务,Graph可以看成是工作任务中的其中一个工作流程图,而op是流程图中的的操作方法(也可以看成是函数),op要用Session.run()方法来执行,利用下面的结构图来讲解。
Session中有两个图Graph1与Graph2,这两个图是计算的流程图,流程如下:tensor、Variable输入第一个opration执行操作,第一个opration执行操作输出tensor,输出的tensor与另一个tensor输入到第二个opration,第二个opration执行操作,图结束。
示例代码:
import tensorflow as tf #根据Graph2,创建一个变量常量、两个常量,都是二维数组x=tf.Variable([[1,2,3],[4,5,6]])w=tf.constant([[1],[2],[3]])b=tf.constant([[1],[1]])#OP:初始化。若定义了变量,在执行图操作之前,要对变量进行初始化,下面函数初始化所有变量init=tf.global_variables_initializer()#OP:矩阵相乘MatMul=tf.matmul(x,w)#OP:矩阵相加opAdd=tf.add(MatMul,b)#OP:激活函数opReLU=tf.nn.relu(Add)#创建一个Session会话,graph参数没有指定图则会调用默认图sess=tf.Session()sess.run(init) #执行初始化,所有的op都要在session.run()方法中执行print(sess.run(ReLU)) #执行图的最后一步即可运行整个图,程序会自动一层一层往前调用,得到最后结果sess.close() #会话关闭#用With创建会话,可以用需要closewith tf.Session() as sess: sess.run(init) print(sess.run(ReLU))
任何疑问请查阅: