人工智能神器——TensorFlow入门基础(构建与启动图)

上一篇文章,我们介绍了TensorFlow的基础安装教学,本篇文章主要介绍TensorFlow的基本知识点,进行TensorFlow的学习

基本使用

使用 TensorFlow, 你需要知道 TensorFlow:

  • 使用图 (graph) 来表示计算任务.
  • 在被称之为 会话 (Session) 的上下文 (context) 中执行图.
  • 使用 tensor 表示数据.
  • 通过 变量 (Variable) 维护状态.
  • 使用 feed 和 fetch 可以为任意的操作(arbitrary operation) 赋值或者从其中获取数据

TensorFlow流程图

TensorFlow流程

TensorFlow主要包括:构建图(相当于输入层)、计算图、启动图(相当于训练层)

构建图:第一步, 是创建源 op (source op). 源 op 不需要任何输入, 例如 常量 (Constant). 源 op 的输出被传递给其它 op 做运算.

import tensorflow as tf
 # 创建一个常量 x(op), 产生一个 2x2 矩阵. 这个 x 被作为一个节点
 # 构造器的返回值代表该常量 op 的返回值.
x = tf.constant([[3., 3.],
 [4.,5.]])
 # 创建另外一个常量 y(op), 产生一个 2x1 矩阵.
y = tf.constant([[2.,3.],[2.,2.]])
 # 创建一个矩阵乘法 matmul op , 把 'x' 和 'y' 作为输入.
 # 返回值‘z‘代表矩阵乘法的结果.
z = tf.matmul(x, y)
#若此时打印z,会出现如下结果
>>>Tensor("MatMul:0", shape=(2, 2), dtype=float32)

通过以上我们就构建了一个图,现在图中有三个节点x、y、z;为了得到z的结果(虽然z是x、y的矩阵乘积,但是现在z并没有执行乘法运算),我们必须启动图

矩阵计算

启动图:构造图后, 才能启动图. 启动图的第一步是创建一个 Session 对象, 如果无任何创建参数, 会话构造器将启动默认图.

# 启动默认图.
sess = tf.Session()
 # 调用 sess 的 'run()' 方法来执行矩阵乘法
result=sess.run(z) #此时TensorFlow才会运行矩阵运算
print(result)
# 任务完成, 关闭会话.
sess.close()
#此时打印result
>>>[[12. 15.]
 [18. 22.]]

完整的代码如下:

import tensorflow as tf
x = tf.constant([[3., 3.],
 [4.,5.]])
y = tf.constant([[2.,3.],
 [2.,2.]])
z=tf.matmul(x,y)
print(z)
with tf.Session() as sess:
 result = sess.run(z)
 print(result)

下期预告

TensorFlow的输入层(权重W,偏差bias),隐藏层,预测层、激励函数等

TensorFlow流程图