TensorFlow学习笔记01
TensorFlow学习笔记01
一、TensorFlow的基本概念
- TensorFlow是一个开放源代码软件库,用于进行高性能数值计算
- 借助其灵活的架构,用户可以轻松地将计算工作部署到多种平台(CPU、 GPU、 TPU)和设备(桌面设备、服务器集群、移动设备、边缘设备等)
- TensorFlow最初是由Google Brain团队(隶属于Google的Al部门)中的研究人员和工程师开发的,可为机器学习和深度学习提供强力支持
1、TensorFlow的Hello World
2、TensorFlow的概念
TensorFlow = Tensor + Flow
Tensor 张量
数据结构:多维数组
Flow 流
计算模型:张量之间通过计算而转换的过程
TensorFlow是一个通过计算图的形式表述计算的编程系统
每一个计算都是计算图上的一个节点
节点之间的边描述了计算之间的关系
3、计算图(数据流图)的概念
计算图是一个有向图,由以下内容构成:
- 一组节点,每个节点都代表一个操作,是一种运算
- 一组有向边,每条边代表节点之间的关系(数据传递和控制依赖)
TensorFlow有两种边:
- 常规边(实线):代表数据依赖关系。一个节点的运算输出成为另一个节点的输入,两个节点之间有tensor流动(值传递))
- 特殊边(虚线):不携带值,表示两个节点之间的控制相关性。比如,happens-before关系,表明源节点必须在目的节点执行前完执行
计算图案例演示:
如果需要看到node3的计算结果,那么需要利用tf.Session()的run方法。
关闭会话之后,如果再去执行run方法,就会报错。
4、张量的概念
- 在TensorFlow中,所有的数据通过张量的形式来表示
- 从功能的角度,张量可以简单理解为多维数组
零阶张量表示标量(scalar),也就是一个数
一阶张量为向量(vector),也就是一维数组
n阶张量可以理解为一个n维数组
- 张量并没有真正保存数字,它保存的是计算过程
5、张量的属性
(1)名字(name)
"node:src_output":node 节点名称,src_output 来自节点的第几个输出
(2)形状(shape)
张量的维度信息,shape=(),表示是标量
(3)类型(type)
每一个张量会有一个唯一的类型
TensorFlow会对参与运算的所有张量进行类型的检查,发现类型不匹配时会报错
5、张量的形状
三个术语描述张量的维度:阶(rank)、形状(shape)、维数(dimension number)