TensorFlow学习笔记01

TensorFlow学习笔记01

TensorFlow学习笔记01

一、TensorFlow的基本概念

  • ​​TensorFlow是一个开放源代码软件库,用于进行高性能数值计算
  • 借助其灵活的架构,用户可以轻松地将计算工作部署到多种平台(CPU、 GPU、 TPU)和设备(桌面设备、服务器集群、移动设备、边缘设备等)
  • TensorFlow最初是由Google Brain团队(隶属于Google的Al部门)中的研究人员和工程师开发的,可为机器学习和深度学习提供强力支持

1、TensorFlow的Hello World

TensorFlow学习笔记01

2、TensorFlow的概念

TensorFlow = Tensor + Flow

Tensor  张量

        数据结构:多维数组

Flow 流

        计算模型:张量之间通过计算而转换的过程

TensorFlow是一个通过计算图的形式表述计算的编程系统

        每一个计算都是计算图上的一个节点

        节点之间的边描述了计算之间的关系

3、计算图(数据流图)的概念

        TensorFlow学习笔记01

计算图是一个有向图,由以下内容构成:

  • 一组节点,每个节点都代表一个操作,是一种运算
  • 一组有向边,每条边代表节点之间的关系(数据传递和控制依赖)

TensorFlow有两种边:

  • 常规边(实线):代表数据依赖关系。一个节点的运算输出成为另一个节点的输入,两个节点之间有tensor流动(值传递))
  • 特殊边(虚线):不携带值,表示两个节点之间的控制相关性。比如,happens-before关系,表明源节点必须在目的节点执行前完执行

计算图案例演示:

TensorFlow学习笔记01

如果需要看到node3的计算结果,那么需要利用tf.Session()的run方法。

TensorFlow学习笔记01

关闭会话之后,如果再去执行run方法,就会报错。

TensorFlow学习笔记01

4、张量的概念

TensorFlow学习笔记01

  • 在TensorFlow中,所有的数据通过张量的形式来表示
  • 从功能的角度,张量可以简单理解为多维数组

            零阶张量表示标量(scalar),也就是一个数

            一阶张量为向量(vector),也就是一维数组

            n阶张量可以理解为一个n维数组

  • 张量并没有真正保存数字,它保存的是计算过程

5、张量的属性

TensorFlow学习笔记01

(1)名字(name)

         "node:src_output":node 节点名称,src_output 来自节点的第几个输出

(2)形状(shape)

          张量的维度信息,shape=(),表示是标量

(3)类型(type)

          每一个张量会有一个唯一的类型

          TensorFlow会对参与运算的所有张量进行类型的检查,发现类型不匹配时会报错

5、张量的形状

三个术语描述张量的维度:阶(rank)、形状(shape)、维数(dimension number)

TensorFlow学习笔记01

TensorFlow学习笔记01

TensorFlow学习笔记01