深度学习框架 TensorFlow 介绍

深度学习框架 TensorFlow 介绍

1. 背景介绍

TensorFlow 是一款优秀的、应用广泛的深度学习框架。“Tensor”意为“张量”,“张量”表示多维矩阵,“Flow”意为“流动”,表示基于数据流图的计算。“TensorFlow”表示张量从数据流图的一端流动到另一端的计算过程。TensorFlow 跨平台性好,可以在三大主流的系统 Linux、Mac 和 Windows 下运行。TensorFlow 的核心语法包括:数据流图、可视化的 TensorBoard、会话(Session)等。


2. 数据流图

在机器学习中,一般来说,某次计算结果的输出可能是一下次计算的全部或者部分输入,整个计算过程可以看作是一个个张量的流动过程。在 TensorFlow 中,将这一系列的计算流程抽象为一张数据流图。数据流图主要包含两个基础元素: (1)节点 在数据流图中,节点表示某种操作或对数据的运算,通常用圆、椭圆或者方框来表示。 (2)边 在数据流图中,边表示节点之间的连接,由一条带箭头的线段表示。箭头指向节点的一端表示输入,从节点引出的一端表示输出。输入可以是用户的输入、文件的读入或者是其他的数据流图,输出代表的是某个节点“操作(Operation,Op)”的结果。

3. 可视化的 TensorBoard

TensorBoard 能够可视化机器学习的流程,绘制图像生成的定量指标图并且附加数据。在使用 TensorBoard 的时候,为了方便在 TensorBoard 读取数据,首先需要将TensorFlow 运行时的数据快照写到磁盘。利用名为 FileWriter 的 Python 类可以添加可视化的语句。当将数据写入指定路径下的文件之后,可用 TensorBoard 进行解析,指令为: tensorboard --logdir=日志文件路径; 除了“--logdir”参数之外,TensorBoard 还有其他启动参数,例如: (1)--part:可以设置 Web 端口号,默认为 6006。 (2)--event_file:指定的日志文件。 (3)--reload_interval:Web 服务后台重新加载数据的间隔,默认为 120 秒。 TensorBoard 除了可生成计算结构图,还可以生成以下四种概要数据: (1)标量数据:使用 tf.summary.scalar 算子。 (2)参数数据:使用 tf.summary.histogram 直方图算子。 (3)音频数据:使用 tf.summary.audio 算子。 (4)图像数据:使用 tf.summary.image 算子。

4. TensorFlow 中的 Session

TensoFlow 的内核使用 C++做后台,将前台与后台的连接称为“会话(Session)”。Session 包含 3 个参数:

(1)target:指定连接的执行引擎。

(2)graph:指定要在 Session 对象中参与计算的图。

(3)config:辅助配置 Session 对象所需要的参数。

当 Session 对象创建成功之后,需要触发 run()方法启动数据流图进行运算。


微信公众号:人工智能感知信息处理算法研究院

知乎主页:zhihu.com/people/zhuime

发布于 2021-05-16 06:25