前言:开始接触TensorFlow了,为了加深印象,打算陆陆续续写一写学习笔记,主要参考文献为TensorFlow官方文档
一. TensorFlow的特点:
使用图 (graph) 来表示计算任务.
在被称之为 会话 (Session) 的上下文(context) 中执行图.
使用 tensor 表示数据.
通过 变量 (Variable) 维护状态.
使用 feed 和 fetch 可以为任意的操作(arbitraryoperation) 赋值或者从其中获取数据.
二. TensorFlow概述
TensorFlow 是一个编程系统, 使用图来表示计算任务。图中的节点被称之为 op (operation 的缩写)。 一个 op 获得 0 个或多个Tensor
, 执行计算, 产生 0 个或多个 Tensor
. 每个 Tensor 是一个类型化的多维数组. 例如, 你可以将一小组图像集表示为一个四维浮点数数组, 这四个维度分别是 [batch, height, width, channels]
.
一个 TensorFlow 图描述了计算的过程. 为了进行计算, 图必须在 会话
里被启动. 会话
将图的 op 分发到诸如 CPU 或 GPU 之类的 设备
上, 同时提供执行 op 的方法. 这些方法执行后, 将产生的 tensor 返回. 在 Python 语言中, 返回的 tensor 是 numpy ndarray
对象; 在 C 和 C++ 语言中, 返回的 tensor 是tensorflow::Tensor
实例.
注:图代表的是一个计算过程,但是图需要在会话中去进行
三. 实战
1. 创建图
import tensorflow as tf #导入包
m1 = tf.constant([[3,3]]) #创建一个常量op
m2 = tf.constant([[2],[3]]) #创建一个常量op
product = tf.matmul(m1,m2)#创建一个矩阵乘法op 把m1 m2传入
print(product)
因为只是定义了op 但op并不在图中更不在会话中,所以print结果不会是15
1. 启动图
sess = tf.Session()#定义一个会话 启动默认的图
result = sess.run(product)#调用sess的run方法来执行矩阵乘法op,run(product)触发图中的三个op
print (result)
sess.close
创建会话后,图才能得以正常运行。完整版如下图:
参考文献: