什么是TensorFlow?

2025年3月17日 | 阅读 7 分钟

TensorFlow 是一个流行的 机器学习深度学习 框架。 它是一个 免费开源 的库,于 2015 年 11 月 9 日 发布,由 Google Brain 团队 开发。 它完全基于 Python 编程语言,用于数值计算和数据流,这使得机器学习更快更容易。

TensorFlow 可以训练和运行深度神经网络,用于图像识别、手写数字分类、循环神经网络、词嵌入自然语言处理、视频检测等等。 TensorFlow 在多个 CPUGPU 以及移动操作系统上运行。

单词 TensorFlow 由两个单词组成,即 Tensor 和 Flow

  1. Tensor 是一个多维数组
  2. Flow 用于定义操作中数据的流

TensorFlow 用于定义多维数组或 Tensor 上操作中的数据流。

TensorFlow Introduction

TensorFlow 的历史

许多年前,当提供大量数据时,深度学习开始超越所有其他机器学习算法。 谷歌已经看到它可以利用这些深度神经网络来升级其服务

  • 谷歌搜索引擎
  • Gmail
  • 照片

他们构建了一个名为 TensorFlow 的框架,允许研究人员和开发人员在 AI 模型中一起工作。 一旦获得批准并扩大规模,它允许许多人使用它。

它于 2015 年首次发布,而第一个稳定版本于 2017 年 发布。它是一个根据 Apache 开源许可证发布的开源平台。 我们可以免费使用、修改和重组修订后的版本,而无需向 Google 支付任何费用。

TensorFlow 的组成部分

张量

TensorFlow 的名称源于其核心框架“Tensor”。 张量是 n 维的向量或矩阵,代表所有类型的数据。 张量中的所有值都具有相同的数据类型和已知的形状。 数据的形状是矩阵或数组的维度。

张量可以从输入数据或计算结果生成。 在 TensorFlow 中,所有操作都在一个图中进行。 该组是一组连续发生的操作。 每个事务都称为一个 op 节点连接在一起。

TensorFlow Introduction

TensorFlow 使用图框架。 该图收集并描述了在训练期间完成的所有计算。

优点

  • 它被配置为在多个 CPU 或 GPU 和移动操作系统上运行。
  • 图的可移植性允许保存计算以供当前或以后使用。 该图可以被保存,因为它可以将来执行。
  • 图中所有的计算都是通过将张量连接在一起来完成的。

考虑以下表达式 a= (b+c)*(c+2)

我们可以将这些函数分解为下面给出的组件

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

现在,我们可以在下面以图形方式表示这些操作

TensorFlow Introduction

Session

会话可以执行图中的操作。 为了用张量的值填充图,我们需要打开一个会话。 在会话中,我们必须运行一个操作员以创建一个输出。

为什么 TensorFlow 如此受欢迎?

TensorFlow 对所有人来说都是更好的库,因为它对每个人都可用。 TensorFlow 库集成了不同的 API 来创建像 CNN(卷积神经网络)RNN(循环神经网络) 这样的规模深度学习架构。

TensorFlow 基于图计算; 它允许开发人员使用 Tensorboard 创建神经网络的构造。 此工具可帮助调试我们的程序。 它在 CPU(中央处理器)和 GPU(图形处理器)上运行。

与其他深度学习框架相比,TensorFlowGitHub 上获得了最大的欢迎。

TensorFlow 的用例/应用程序

TensorFlow Introduction

与其他流行的深度学习框架相比,TensorFlow 提供了惊人的功能和服务。 TensorFlow 用于创建具有多层的 神经网络

TensorFlow Introduction

它主要用于深度学习或机器学习问题,例如 分类感知理解发现预测创建

1. 语音/声音识别

语音和声音识别应用程序是最著名的深度学习用例。 如果神经网络具有适当的输入数据馈送,则神经网络能够理解音频信号。

例如

语音识别 用于物联网、汽车、安全和 UX/UI。

情感分析 主要用于客户关系管理 (CRM)

缺陷检测(发动机噪音) 主要用于汽车和航空领域。

语音搜索 主要用于客户关系管理 (CRM)

2. 图像识别

图像识别是使深度学习和机器学习流行的第一个应用程序。 电信、社交媒体和手机制造商主要使用图像识别。 它还用于人脸识别、图像搜索、运动检测、机器视觉和照片聚类。

例如, 图像识别用于识别和识别图像中的人和物体。 图像识别用于理解任何图像的上下文和内容。

对于对象识别,TensorFlow 帮助对较大图像中的任意对象进行分类和识别。

这也用于工程应用中,以识别建模目的的形状(3d2d 图像重建),并被 Facebook 用于照片标记。

例如, 深度学习使用 TensorFlow 来分析数千张猫的照片。 因此,深度学习算法可以学会识别一只猫,因为该算法用于查找物体、动物或人的一般特征。

3. 时间序列

深度学习使用时间序列算法来检查时间序列数据以提取有意义的统计数据。 例如,它已使用时间序列来预测股票市场。

推荐是时间序列最常见的用例。 亚马逊谷歌FacebookNetflix 正在使用深度学习来进行推荐。 因此,深度学习算法用于分析客户活动,并将其与其他数百万用户进行比较,以确定客户可能喜欢购买或观看的内容。

例如, 它可以用来根据我们已经观看的电视节目或电影来推荐人们喜欢的电视节目或电影。

4. 视频检测

深度学习算法用于视频检测。 它用于游戏、安全、机场和 UI/UX 领域的运动检测、实时威胁检测。

例如, 美国宇航局正在开发一个深度学习网络,用于小行星的对象聚类和轨道分类。 因此,它可以对近地天体(近地天体)进行分类和预测。

5. 基于文本的应用程序

基于文本的应用程序也是一种流行的深度学习算法。 情绪分析、社交媒体、威胁检测和欺诈检测是基于文本的应用程序的例子。

例如, 谷歌翻译支持 100 多种语言。

一些 公司 目前正在使用 TensorFlow,包括 Google、AirBnb、eBay、Intel、DropBox、Deep Mind、Airbus、CEVA、Snapchat、SAP、Uber、Twitter、Coca-Cola 和 IBM。

TensorFlow 的特点

与其他可用的深度学习库相比,TensorFlow 具有交互式 多平台 编程接口,具有可扩展性和可靠性。

TensorFlow 的这些特性将告诉我们 TensorFlow 的受欢迎程度。

TensorFlow Introduction

1. 响应式结构

我们可以可视化图的每个部分,在使用 NumpySciKit 时,这并非一个选项。 为了开发深度学习应用程序,首先,需要两到三个组件来创建深度学习应用程序,并且需要一种编程语言。

2. 灵活

根据其可操作性,它是 TensorFlow 的重要功能之一。 它具有模块化和我们想要使其独立的各个部分。

3. 易于训练

它很容易在 CPU 上进行训练,并且可以在分布式计算中使用 GPU。

4. 并行神经网络训练

TensorFlow 在我们可以训练多个神经网络和各种 GPU 方面提供了管道,这使得模型在大型系统上非常高效。

TensorFlow Introduction

5. 大型社区

谷歌已经开发了它,并且已经有一大批软件工程师不断致力于稳定性改进。

6. 开源

关于机器学习库最好的事情是它是开源的,所以任何人在有互联网连接的情况下都可以使用它。 因此,人们可以操纵该库并提出各种有用的产品。 它已经成为另一个 DIY 社区,为刚开始使用它的人以及那些发现它难以使用的人提供了一个大型论坛。

7. 特征列

TensorFlow 有特征列,可以被认为是原始数据和评估器之间的中间环节;因此,它们桥接了输入数据与我们的模型。

以下特征描述了特征列是如何实现的。

TensorFlow Introduction

8. 统计分布的可用性

该库提供了各种分布函数,包括伯努利分布、贝塔分布、卡方分布、均匀分布、伽马分布,这些对于考虑概率方法,如贝叶斯模型至关重要。

9. 分层组件

TensorFlow 通过诸如 tf.contrib.layers 之类的函数生成权重和偏置的分层操作,并且还提供批量归一化、卷积层和 dropout 层。 因此,tf.contrib.layers.optimizers 拥有诸如 Adagrad, SGD, Momentum 等优化器,这些优化器经常用于解决数值分析的优化问题。

10. 视觉化工具(使用 TensorBoard)

我们可以检查模型的不同表示,并在使用 TensorBoard 调试时进行必要的更改。

11. 事件日志记录器(使用 TensorBoard)

它就像 UNIX 一样,我们使用 tail - f 在 cmd 中监控任务的输出。 它检查、记录来自图表和使用 TensorBoard 的生产过程中的事件和摘要。