本文介绍TensorFlow的基本知识
一、TensorFlow 的认识
先来看下TensorFlow模块和一些APIs,简单了解一下
TensorFlow数据流图:
一种声明式编程方式,不同于命令式编程。不拘泥于内部具体的实现过程,而是模型化,结构化。两种编程方式的具体细节可自行百度。
TensorFlow数据流图如下所示,如果学过图论的话很很容易理解,最主要的两个概念就是“边”和“节点”
TensorFlow 数据流图的优势有以下几点:
- 并行计算快
- 分布式计算快
- 预编译优化
- 可移植性好
二、TensorFlow 张量
张量概念是矢量概念的推广,矢量是一阶张量。张量是一个可以用来表示在一些矢量、标量和其他张量之间的线性关系的多线性函数。在数学里,张量是一种几何实体,广义上表示任意形势的“数据”
0阶张量就是标量,一阶张量是向量,二阶张量是矩阵……。张量的阶描述它表示数据的最大维度。
在TensorFlow中,张量(Tensor)表示某种相同数据类型和多维数组
1. 数据类型(e.g.:float、int、string)
2. 数组形状(各个维度的大小)
所以张量到底是什么?
- 张量是用来表示多维数组的
- 张量是执行操作时的输入和输出数据
- 用户通过执行操作来创建或计算张量
- 张量的形状不一定在编译时确定,可以在运行时通过形状推断计算得出。
在TensorFlow中,有几类特别的张量,由如下操作产生:
• tf.constant //常量, 不会随计算过程变化
• tf.placeholder //占位符,可以简单理解为描述一个数据的壳,只有当数据流图外的数据填充进来/赋值时才有值,或者也可以覆盖掉之前的值。不同于常量那种固定不变的值。
三、TensorFlow 变量
TensorFlow变量(Variable)的主要作用是维护特定节点的状态,如深度学习或机器学习的模型参数。
比如神经网络中的权重W和偏置b
tf.Variable 方法是操作,返回值是变量(特殊张量)
通过tf.Variable方法创建的变量,与张量一样,可以作为操作的输出和输入。不同之处在于:
- 张量的生命周期通常随依赖的计算完成而结束,内存也随即释放。
- 变量则常驻内存,在每一步训练时不断更新其值,以实现模型参数的更新。
创建TensorFlow变量方式如下
import tensorflow