Tensorflow:一款Python最火的深度学习框架

TensorFlow 是由 Google 团队开发的深度学习框架之一,它是一个完全基于 Python 语言设计的开源的软件。TensorFlow 的初衷是以最简单的方式实现机器学习和深度学习的概念,它结合了计算代数的优化技术,使它便计算许多数学表达式。

TensorFlow 可以训练和运行深度神经网络,它能应用在许多场景下,比如图像识别、手写数字分类、递归神经网络、单词嵌入、自然语言处理、视频检测等等。

TensorFlow 可以运行在多个 CPU 或 GPU 上,同时它也可以运行在移动端操作系统上(如安卓、IOS 等),它的架构灵活,具有良好的可扩展性,能够支持各种网络模型(如OSI七层和TCP/IP四层)。

TensorFlow 官网(https://tensorflow.google.cn/)提供了 TensorFlow 的官方学习文档以及最新版本的下载方式。如图 1所示:

图片[1]|Tensorflow:一款Python最火的深度学习框架
TensorFlow官网

TensorFlow 这个词由 Tensor 和 Flow 两个词组成,这两者是 TensorFlow 最基础的要素。Tensor 代表张量(也就是数据),它的表现形式是一个多维数组;而 Flow 意味着流动,代表着计算与映射,它用于定义操作中的数据流。

TensorFlow发展史

在许多年前,对于处理大量数据来说,深度学习算法的优越性就已经超越了其他机器学习算法。谷歌公司意识到,他们可以使用这些深度神经网络算法来升级公司的服务,比如:

  • 谷歌搜索引擎
  • 谷歌邮箱(Gmail)
  • 谷歌照片

于是谷歌成立了专门的项目组,从事对 TensorFlow 框架的开发,该框架的目的是可以让研究人员和开发人员在人工智能模型(AI模型)中协同工作。

TensorFlow 于 2015 年首次发布,它的第一个稳定版本在 2017 年发布。TensorFlow 是获得 Apache 软件基金会认证的开源平台,因此我们可以免费使用它,如果你想修改 TensorFlow 的源码已实现自己的某些需求,这也是被允许的,不管怎样你无须向谷歌支付任何费用。

框架核心组件

Tensor

TensorFlow 这个名称源自框架核心组件“ Tensor”,它的英文含义是“张量”的意思。张量是矢量概念的推广,矢量是一阶张量,而标量是零阶张量,矩阵可视为二阶张量。

在 TensorFlow 框架中,使用张量表示所有的数据类型,您可以把张量想象成一个 n 维数组或者列表,虽然形式上可以这样理解,但是它们之间也存在明显的不同,后续将会介绍。张量中的所有值都具有相同的数据类型,和一个给定的已知形状(维数)。张量可以作为输入数据,也可以在计算结果中生成。

Graph

该组件能够对模型训练期间所做的计算做出详细的汇总和描述,因此又称“计算图”。

举一个简单示例:现在有下列表达式:a =(b + c)*(c + 2),我们可以将该表达式分成以下几部分:

d = b + c
e = c + 2
a = d * e

下面通过以下图形表示上述数据的关系,如下所示:

图片[2]|Tensorflow:一款Python最火的深度学习框架
图2:计算图数据流向

OP

上图所示每个椭圆要素代表着计算图中的节点(又称 OP)操作,节点在 TensorFlow 中以张量的形式表现出来,而每个节点之间连接线代表着节点之间的流动关系。 

Session

Session 用来执行 Graph 中定义的运算,在 TensorFlow 中只有让 Graph(计算图)上的节点在 Session(会话)中执行,才会得到结果。Session 的开启涉及真实的运算,比较消耗资源。所以当你在使用结束后,务必关闭 Session。

对于上述组件可以这样简单理解其作用:Tensor 是一个张量,用于存放各种数据,若要完成多个 Tensor 计算需要在 Graph 中组织数据关系,而执行计算需要 Session 会话调用 run() 方法 ,促使 Tensor 按计算图设定的数据关系流动,最终得到计算结果,这就是为 Tensor Flow。

TensorFlow优点

我们对 TensorFlow 优点进行了以下总结 :

  • 它包含了一个特性,即在称为张量的多维数组的帮助下轻松地定义、优化和计算数学表达式;
  • 它对深度神经网络和机器学习技术提供了良好的编程支持;
  • 它对各种数据集都具有高扩展性的计算功能;
  • TensorFlow 使用 GPU(图形处理器) 计算,并实现了自动化管理,同时它还具有优化内存和数据的独特功能。

TensorFlow为什么受欢迎?

TensorFlow 自 2015 年 11 月首次发布以来,在 GitHub上吸引了最高的人气,远远超越了其它深度学习框架,稳居第一位!

图片[3]|Tensorflow:一款Python最火的深度学习框架
图3:深度学习框架最新排

TensorFlow 对于所有深度学习爱好者人来说是一个不错的选择。那么它为什么如此受人们欢迎呢?

TensorFlow 官方社区提供了良好的文档支持,这些文档中包括大量的机器学习库,方便大家学习,它还集成了不同的 API ,可以用来创建一个大规模的深度学习架构,比如 CNN(卷积神经网络)或 RNN(递归神经网络)。TensorFlow 是基于图形计算的,它提供了一种可以运行在 CPU 和 GPU 上的可视化工具 Tensorboard(张量面板),该工具很直观的帮助开发人员调试程序。不仅如此,开发人员还可以使用 Tensorboard 创建神经网络架构。

© 版权声明
THE END
喜欢就支持一下吧
点赞5赞赏
分享
评论 抢沙发
HarryPotter的头像|艾奇编程网

昵称

取消
昵称表情