深度学习入门:基于PyTorch和TensorFlow的理论与实现
上QQ阅读APP看书,第一时间看更新

3.1 TensorFlow概述

3.1.1 什么是TensorFlow

什么是TensorFlow?与PyTorch类似,TensorFlow也可以拆分成两部分:Tensor+Flow。Tensor即张量,第2章学习PyTorch的时候已经介绍过了,是可以在GPU中运行的多维数组。而Flow是流的意思,说明TensorFlow是一个采用数据流图进行数值计算的开源软件库。

与PyTorch一样,TensorFlow也是一个基于Python的深度学习框架。TensorFlow最初由Google大脑小组的研究员和工程师们开发出来,用于机器学习和深度神经网络方面的研究。后来,TensorFlow逐渐发展壮大,最终成为使用人数最多、社区最大、排名第一的深度学习框架。

TensorFlow的基本原理是基于图运算,而且可以将一个计算图划分成多个子图,然后在多个CPU或者GPU上并行地执行。除此之外,TensorFlow还支持分布式计算,可以在合理的时间内在数百台服务器上进行分割计算,在庞大的训练集上训练巨大的神经网络。

3.1.2 为什么使用TensorFlow

TensorFlow内建深度学习的扩展支持模块,任何能够用计算流图形来表达的计算,都可以使用TensorFlow。任何基于梯度的机器学习算法都能够受益于TensorFlow的自动分化(auto-differentiation)。通过灵活的Python接口,要在TensorFlow中表达想法也会很容易。TensorFlow对于实际的产品也是很有意义的,可以将思路从桌面GPU训练无缝搬迁到手机中运行。

正是因为TensorFlow这种独一无二的特性,使TensorFlow得以迅速发展。它目前已经被Google、OpenAI、NVIDIA、Intel、SAP、eBay、Airbus、Uber、Airbnb、Snap、Dropbox等许多大公司广泛采用。

总而言之,选择使用TensorFlow主要基于以下原因。

(1)Python API。

(2)可移植性:仅仅使用一个API就可以将计算任务部署到服务器或者计算机的CPU或者GPU上。

(3)灵活性:适用于Linux、CentOS、Windows等操作系统。

(4)可视化(TensorBoard)。

(5)支持存储和恢复模型与图。

(6)拥有庞大的社区支持。