《智能计算系统》第四章

第四章 编程框架的使用

4.1 TensorFlow编程模型及基本用法

​ 在程序开发中,根据解决问题的不同思路,通常采用两种不同的编程方式,常见的编程方式有两种:命令式编程和声明式编程。

​ 命令式编程:关注程序执行的具体步骤,计算机按照代码中的顺序一步一步地执行具体的运算,整体优化困难。比如交互式UI程序和操作系统。

​ 声明式编程:告诉计算机想要表达的目标,不指定具体的实现步骤,而是通过函数、推理规则等来描述数据之间的关系,优化比较容易。比如人工智能和深度学习。

4.1.1 计算图

​ 用包含了一组节点和边的有向图来描述计算过程,这个有向图叫做计算图。TensorFlow使用计算图来表示机器学习算法中所有的计算和状态。

4.1.2 操作

​ 计算图中每个节点代表一个操作,表示一个局部计算,TensorFlow中一些常用操作如下:

操作类型 常用操作
标量运算 add、subtract、multiply、div、greater、less、equal、abs、sign、square、pow、log、sin、cos
矩阵运算 matmul、matrix_inverse、matrix_determinant、matrix_transpose
逻辑操作 logical_and、is_finite
神经网络运算 convolution、max_pool、bias_add、softmax、dropout、sigmoid、relu
保存和恢复 save、restore
初始化操作 zeros_initializer、random_normal_initializer、orthogonal_initializer
随机运算 random_gamma、multinomail、random_normal、random_shuffle
4.1.3 张量

​ TensorFlow用张量来计算图中的所有数据。张量在计算图的节点之间流动,但张量并没有实际保存数据,只是对操作结果的引用。张量可以看作N维数组,数组的维数就是张量的阶数。对张量的常用操作可以查看书本。

4.1.4 会话

​ 真正的计算过程需要在TensorFlow程序的会话中定义并执行。会话为程序提供了求解张量、执行操作的运行环境。一个典型的使用流程就是:创建会话;执行会话;关闭会话。

4.1.5 变量

​ 变量是计算图中的一种有状态节点,用来在多次执行同一计算图时存储并更新指定张量,常用来表示机器学习或深度学习算法中的模型参数。变量的常用属性如下:

属性名称 含义
dtype 变量的数据类型
shape 变量的形状
name 变量在计算图中的名称
op 产生此变量的操作
device 存储此变量所用的设备名
graph 包含此变量的计算图
initialized_value 变量的初始值
initializer 为变量赋值的初始化操作
trainable 是否在训练时被优化器更新
4.1.6 占位符

​ 占位符是TensorFlow中特有的数据结构,它本身没有初值,仅在程序中分配了内存。通过占位符将张量传递到会话中。

4.1.7 队列

​ 通过队列处理数据读取和计算图的异步执行。队列是一种有状态的操作机制,用来处理数据读取。

作者

Cindy

发布于

2021-12-03

许可协议

CC BY-NC-SA 4.0

Your browser is out-of-date!

Update your browser to view this website correctly.&npsb;Update my browser now

×