TensorFlow是一个通过计算图的形式来表述计算的编程系统,每一个计算都是计算图上的一个节点,而节点之间的边描述了计算之间的依赖关系。
Tensor代表张量,可以简单理解为多维数组,Tensor表明了它的数据结构。
Flow则体现了它的计算模型,表达了张量之间通过计算相互转化的过程。
TensorFlow程序一般可以分为两个阶段,第一个阶段需要定义计算图中所有的计算,第二个阶段为执行计算。
1.基于Tensorflow的NN(nertual netword):用张量表示数据,用计算图搭建神经网络,用会话计算图,优化线上的权重(参数),得到模型。
2.张量(tensor) : 多维数组(列表)
阶:张量的维数
维数 | 阶 | 名字 | 例子 |
---|---|---|---|
0-D | 0 | 标量 scaiar | s=123 |
1-D | 1 | 向量 vector | v=[1,2,3] |
2-D | 2 | 矩阵 matrix | m=[[1,2,3],[4,5,6],[7,8,9]] |
n-D | n | 张量 tensor | t=[[[[[ …]]]]] (n个中括号) |
张量可以表示0阶到n阶数组(列表)
3.数据类型:tf.float32 tf.int32 …
import tensorflow as tf
a = tf.constant([2.0,3.0])#定义常量a为一行两列的数组
b = tf.constant([3.0,4.0])#定义常量b为一行两列的数组
result = a+b
print(result)
运行结果:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-frEPKDa6-1574833737829)(./1574832086831.png)]
add 是节点名,0是第0个输出,shape是维度,(2, )是指一维数组的长度是2,dype=float32 是指数据类型是32位浮点型
5.计算图Graph
计算图是TensorFlow的计算模型,所有TensorFlow的程序都会通过计算图的形式表示。
计算图的每个节点都是一个运算,而计算图上的边则表示运算之间的数据传递关系。
计算图上保存了运行每个运算的设备信息以及运算之间的依赖关系
计算图提供了管理不同集合的功能
上述例子,并没有真的去计算图,为了真正实现去计算它,就有了会话的概念
6.会话Session
会话拥有并管理TensorFlow程序运行时的所有资源,所有计算完成之后需要关闭会话来帮助系统回收资源,否则可能出现资源泄露的问题。
上述例子的改进
import tensorflow as tf
a = tf.constant([2.0,3.0])#定义常量a为一行两列的数组
b = tf.constant([3.0,4.0])#定义常量b为一行两列的数组
result = a+b
with tf.Sessin() as sess:
print(sess.run(result))
运行结果[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KkckKgPc-1574833737831)(./1574833107133.png)]
####总结
计算图是TensorFlow的计算模型,所有TensorFlow的程序都会通过计算图的形式表示。
计算图的每个节点都是一个运算,而计算图上的边则表示运算之间的数据传递关系。
计算图上保存了运行每个运算的设备信息以及运算之间的依赖关系
计算图提供了管理不同集合的功能
张量是TensorFlow的数据模型,所有运算的输入、输出都是张量。
张量不存储任何数据,它只是对运算结果的引用。
会话是TensorFlow的运算模型,它管理了一个TensorFlow程序拥有的系统资源,所有的运算都要通过会话执行。