TensorFlow

回到术语表
2015年11月,谷歌发布了用于机器学习的开源框架,并将其命名TensorFlow.它支持深度学习、神经网络和cpu、gpu和gpu集群上的一般数值计算。TensorFlow最大的优势之一是它的开源社区,由开发人员、数据科学家和数据工程师组成,他们为它的存储库做出了贡献。TensorFlow的当前版本可以在这里找到GitHub上连同发行说明。TensorFlow是目前最受欢迎的人工智能引擎。最流行的人工智能引擎

什么是TensorFlow?

TensorFlow是一个用于数值计算、大规模机器学习、深度学习以及其他统计和预测分析工作负载的开源库。这种类型的技术使开发人员更快更容易地实现机器学习模型,因为它有助于获取数据、大规模预测和改进未来结果的过程。

TensorFlow到底是做什么的?它可以训练和运行深度神经网络,如手写数字分类、图像识别、词嵌入和自然语言处理(NLP)。软件库中包含的代码可以添加到任何应用程序中,以帮助它学习这些任务。

TensorFlow应用程序既可以运行在传统的cpu(中央处理器)上,也可以运行在gpu(高性能图形处理器)上。因为TensorFlow是由谷歌开发的,所以它也可以在该公司自己的张量处理单元(tpu)上运行,tpu是专门用于加速TensorFlow作业的。

你可能还想知道:TensorFlow是用什么语言写的?尽管它使用Python作为前端API来构建框架应用程序,但它实际上有多种语言的包装器,包括c++和Java。这意味着你可以快速训练和部署你的机器学习模型,不管你使用什么语言或平台。bob体育客户端下载

点击这里了解更多关于TensorFlow模型的常见问题发展。

TensorFlow历史

谷歌于2015年在Apache 2.0许可下首次发布TensorFlow。它的前身是一个名为DistBelief的闭源谷歌框架,它为深度学习的实现提供了一个测试平台。

谷歌的第一批tpu于2016年公开发布,并与TensorFlow一起在内部使用,为公司的一些应用程序和在线服务提供动力。这包括谷歌的RankBrain搜索算法和街景地图技术。

2017年初,谷歌TensorFlow达到了Release 1.0.0状态。一年后,谷歌将第二代tpu提供给谷歌云平台用户,供他们培训和运行自己的机器学习模型。bob体育客户端下载

谷歌于2019年10月发布了最新版本TensorFlow 2.0。谷歌考虑了用户反馈,以便对框架进行各种改进,使其更易于使用——例如,它现在使用相对简单的Keras API进行模型训练。

谁创建了TensorFlow?

正如你现在所知道的,谷歌开发了TensorFlow,并继续拥有和维护这个框架。它是由谷歌Brain团队的研究人员创建的,他们进行基础研究,以推进机器智能的关键领域,并促进对深度学习的更好的理论理解。

谷歌Brain团队设计的TensorFlow能够独立于谷歌自己的计算基础设施工作,但它从商业巨头的支持中获得了许多优势。在为项目的快速发展提供资金的同时,多年来谷歌还对TensorFlow进行了改进,以确保它易于部署和使用。

谷歌选择让TensorFlow成为一个开源框架,目的是加速AI的发展。bob下载地址作为一个基于社区的项目,所有用户都可以帮助改进技术,每个人都可以分享好处。

TensorFlow是如何工作的?

TensorFlow结合了各种机器学习和深度学习(或神经网络)模型和算法,并通过公共接口使它们变得有用。

它使开发人员能够使用表示数学操作的计算节点创建数据流图。节点之间的每个连接都代表多维向量或矩阵,创建了所谓的张量。

虽然Python为TensorFlow提供了前端API,但实际的数学运算并不是在Python中执行的。相反,高性能的c++二进制文件在幕后执行这些操作。Python指导各个部分之间的通信,并通过高级编程抽象将它们连接在一起。

TensorFlow应用程序几乎可以在任何方便的目标上运行,包括iOS和Android设备、本地机器或云中的集群——以及cpu或gpu(如果使用谷歌cloud,也可以在谷歌的自定义tpu上运行)。

TensorFlow包括高级和低级api集。谷歌推荐高级api来简化数据管道开发和应用程序编程,但低级api(称为TensorFlow Core)用于调试应用程序和实验。

TensorFlow是用来干什么的?你能用TensorFlow做什么?

TensorFlow旨在为数据科学家、统计学家和预测建模师等用户简化开发和执行高级分析应用程序的过程。

不同类型和规模的企业广泛使用该框架来自动化流程和开发新系统,它对于神经网络等非常大规模的并行处理应用程序特别有用。它也被用于自动驾驶汽车的实验和测试。

如你所料,TensorFlow的母公司谷歌也将其用于内部操作,例如提高其搜索引擎的信息检索能力,以及为自动生成电子邮件响应、图像分类和光学字符识别等应用程序提供动力。

TensorFlow的优点之一是它提供了抽象,这意味着开发人员可以专注于应用程序的整体逻辑,而框架则负责细节。对于需要调试和获得TensorFlow应用程序内省的开发人员来说,它也很方便。

TensorBoard可视化套件有一个交互式的、基于web的仪表板,可以让你检查和分析图的运行方式。还有一种即时执行模式,允许您分别透明地计算和修改每个图操作,而不是将整个图创建为一个不透明的对象并一次性计算。

Databricks运行时机器学习包括TensorFlow而且TensorBoard,因此您可以使用这些库,而无需安装任何包。

现在让我们来看看如何使用TensorFlow。

如何安装TensorFlow

完整的说明和教程可在tensorflow.org,但这里是基本的。

系统需求:

  • Python 3.7 +
  • PIP 19.0或更高版本(要求manylinux2010TensorFlow 2需要一个更新版本的pip)
  • Ubuntu 16.04或更高版本(64位)
  • macOS 10.12.6 (Sierra)或更高版本(64位)(不支持GPU)
  • Windows 7及以上版本(64位)

硬件需求:

  • 从TensorFlow 1.6开始,二进制文件使用的AVX指令可能无法在旧的cpu上运行。
  • GPU支持需要CUDA®卡(Ubuntu和Windows)

# 1。在您的系统上安装Python开发环境

检查Python环境是否已经配置:

Python3 - -version

Pip3 - -version

如果已经安装,请跳转到下一步。

否则,请安装Python、pip包管理器和venv。

如果在虚拟环境中,使用python3 -m PIP执行以下命令。这确保您升级并使用Python pip而不是系统pip。

# 2。创建虚拟环境(推荐)

Python虚拟环境用于将包安装与系统隔离。

# 3。安装TensorFlow pip包

从PyPI中选择以下TensorFlow包之一进行安装:

  • tensorflow - CPU和GPU的支持(Ubuntu和Windows)
  • tf-nightly -预览构建(不稳定)。Ubuntu和Windows都支持GPU
  • tensorflow==1.15 - tensorflow 1.x的最终版本。

检查安装结果如果返回一个张量,则表示TensorFlow安装成功。

注意:一些安装机制需要TensorFlow Python包的URL。您指定的值取决于您的Python版本。

如何更新TensorFlow

pip包管理器提供了一个简单的方法来升级TensorFlow,不管环境如何。

先决条件:

  • Python 3.6-3.9安装和配置(启动前检查Python版本)。
  • TensorFlow 2已安装。
  • pip包管理器版本19.0或更高(检查pip版本并在必要时升级)。
  • 访问命令行/终端或笔记本环境。

将TensorFlow升级到新版本:

# 1.打开终端(CTRL+ALT+T)。

#2.查看当前安装的TensorFlow版本:

Pip3显示tensorflow

该命令显示包的信息,包括版本。

# 3.将TensorFlow升级到新版本:

Pip3 install - -upgrade tensorflow==<版本>

请确保您选择的版本与您的Python发行版兼容,否则该版本将无法安装。对于笔记本环境,使用以下命令,完成后重新启动内核:

!pip install - -upgrade tensorflow==<版本>

这将自动删除旧版本以及依赖项,并安装更新的升级版本。

# 4.检查升级后的版本:

Pip3显示tensorflow

什么是TensorFlow Lite?

2017年,谷歌推出了TensorFlow的新版本TensorFlow Lite。TensorFlow Lite针对嵌入式和移动设备进行了优化。它是一个开源、产品就绪、跨平台的深度学习框架,可以将预先训练好的TensorFlowbob体育客户端下载模型转换为一种特殊的格式,可以优化速度或存储。

为了确保你在任何给定的场景下使用正确的版本,你需要知道什么时候使用TensorFlow,什么时候使用TensorFlow Lite。例如,如果你需要在一个没有良好网络连接的地区部署一个高性能的深度学习模型,你会使用TensorFlow Lite来减小文件大小。

如果您正在为边缘设备开发模型,那么它需要是轻量级的,以便在低带宽网络上使用最小的空间并提高下载速度。为了实现这一点,你需要优化以减少模型的大小或改善延迟——TensorFlow Lite通过量化和权重修剪来实现这一点。

所得到的模型足够轻,可以部署在边缘设备(如Android或iOS手机)或基于linux的嵌入式设备(如Raspberry pi或微控制器)上进行低延迟推断。TensorFlow Lite还使用了几个硬件加速器来提高速度、准确性和优化功耗,这对于在边缘运行推理非常重要。

TensorFlow中的稠密层是什么?

密集层用于创建浅神经网络和深层神经网络。人工神经网络是由神经元系统组成的类脑架构,它们能够通过示例学习,而不是按照特定的规则编程。

在深度学习中,使用多层来从原始输入中提取更高级别的特征;当网络由几层组成时,它被称为堆叠神经网络。每一层都由节点组成,节点将来自数据的输入与一组称为权重的系数结合起来,这些系数可以放大或减弱输入。

在其2.0版本中,TensorFlow采用了一个名为Keras的深度学习API,该API运行在TensorFlow之上,并为不同的神经网络架构和目的提供了许多预先构建的层。密集层就是其中之一——它有很深的联系,这意味着每个神经元接收来自其前一层所有神经元的输入。

密集层通常用于改变它生成的向量的维度、旋转、缩放和平移。它们有能力从前一层的所有组合特征中学习特征。

TensorFlow和Python有什么区别?

TensorFlow是一个开源的机器学习框架,Python是一种流行的计算机编程语言。它是TensorFlow中使用的语言之一。Python是TensorFlow的推荐语言,尽管它也使用c++和JavaScript。

Python的开发是为了帮助程序员为大型和小型项目编写清晰、合乎逻辑的代码。它通常用于构建网站和软件,自动化任务,并进行数据分析。这使得初学者学习TensorFlow相对简单。

一个有用的问题是:TensorFlow支持什么版本的Python ?某些TensorFlow版本只与特定版本的Python兼容,而2.0需要Python 3.7到3.10。确保在安装TensorFlow之前检查需求。

什么是PyTorch和TensorFlow?

TensorFlow并不是目前唯一的机器学习框架。还有许多其他的选择,比如PyTorch,它们有相似之处并满足许多相同的需求。那么,TensorFlow和PyTorch之间的实际区别是什么呢?

PyTorch和TensorFlow只是科技公司为Python深度学习环境开发的两个框架,帮助类人计算机解决现实世界的问题。PyTorch和TensorFlow之间的关键区别是它们执行代码的方式。PyTorch与Python语言的集成更加紧密。

正如我们所看到的,TensorFlow具有强大的可视化功能、生产就绪的部署选项以及对移动平台的支持。bob体育客户端下载PyTorch还没有建立起来,但仍然因其简单易用、动态计算图和高效内存使用而流行。

至于TensorFlow和Pytorch哪个更好的问题——这实际上取决于你想要实现什么。如果你的目标是构建人工智能相关的产品,TensorFlow将很适合你,而PyTorch更适合研究型开发人员。PyTorch非常适合在短时间内启动和运行项目,但TensorFlow对于更大的项目和更复杂的工作流具有更强大的功能。

使用TensorFlow的公司

根据TensorFlow网站,其他一些大公司和谷歌一样使用这个框架。这些公司包括Airbnb、可口可乐、eBay、英特尔、高通、SAP、推特、优步、Snapchat开发商Snap Inc.和体育咨询公司STATS LLC。

使用Tensorflow的公司

前五个TensorFlow替代方案


1.DataRobot

DataRobot是一个基于云的机器学习框架,旨在通过部署机器学习模型和创建高级人工智能应用程序来帮助企业扩展其数据科学能力。

该框架使您能够使用和优化来自R、Python、Spark、H2O、VW和XGBoost等最有价值的开源建模技术。通过自动化预测分析,DataRobot帮助数据科学家和分析师产生更准确的预测模型。

用于构建每个模型的最佳特征、算法和参数值的库正在不断增长——通过自动集成,用户可以轻松地找到并组合多个算法和预构建的原型,用于特征提取和数据准备(不需要反复尝试和错误猜测)。

2.PyTorch

由Facebook团队于2017年开发,并在GitHub.com上开源,bob下载地址PyTorch是较新的深度学习框架之一。正如我们前面提到的,它与TensorFlow有几个相似之处,包括硬件加速组件和用于随用随设计的高度交互式开发模型。

PyTorch还通过利用Python对异步执行的本地支持来优化性能。优点包括内置的动态图和比TensorFlow更强大的社区。

然而,PyTorch并没有提供直接在线部署训练过的模型的框架,并且需要一个API服务器用于生产。它还需要第三方Visdom来实现可视化,而Visdom的功能相当有限。

3.Keras

Keras是一个高级开源神经网络库,设计为用户友好、模块化、易于扩展。它是用Python编写的,支持多个后端神经网络计算引擎——尽管它的主要(和默认)后端是TensorFlow,它的主要支持者是谷歌。

我们已经提到过TensorFlow Keras高级API, Keras也运行在Theano之上。它有许多可以组合的独立模块,包括神经层、代价函数、优化器、初始化方案、激活函数和正则化方案。

Keras提供了对广泛的生产部署选项的支持,以及对多gpu和分布式培训的强大支持。然而,社区支持很少,并且库通常用于小型数据集。

4.MXNet

Apache MXNet是一个开源的深度学习软件框架,用于在广泛的设备上定义、训练和部署深度神经网络。它有幸被亚马逊采纳为AWS上的首要深度学习框架。

它可以在多个gpu和多台机器上几乎线性扩展,允许快速模型训练,并支持灵活的编程模型,使用户能够混合符号编程和命令式编程,以获得最大的效率和生产力。

MXNet还支持多种编程语言api,包括Python、c++、Scala、R、JavaScript、Julia、Perl和Go(尽管它的原生api不像TensorFlow的那样适合任务)。

5.CNTK

CNTK也被称为Microsoft Cognitive Toolkit,是一个统一的深度学习工具包,它使用图结构将数据流描述为一系列计算步骤(就像TensorFlow一样,尽管它不那么容易学习或部署)。

它主要专注于创建深度学习神经网络,并可以快速处理这些任务。CNTK允许用户轻松实现和组合流行的模型类型,如前馈dnn、卷积网络(cnn)和循环网络(RNNs/LSTMs)。

CNTK有一组广泛的api (Python、c++、c#、Java),可以作为库包含在Python、c#或c++程序中,也可以通过它自己的模型描述语言(BrainScript)作为独立的机器学习工具使用。支持64位Linux或64位Windows操作系统。

注意:2.7版本是CNTK的最后一个主要版本,目前没有开发新特性的计划。

我应该使用TensorFlow吗?

TensorFlow有很多优点。开源机器bob下载地址学习框架提供了优秀的架构支持,允许跨各种平台轻松部署计算框架。bob体育客户端下载它受益于谷歌的声誉,一些大公司已经采用TensorFlow来执行人工智能任务。

另一方面,TensorFlow实现的一些细节使得一些训练作业很难获得完全确定性的模型训练结果——但团队正在考虑更多的控制来影响工作流中的确定性。

开始是很简单的,尤其是用Databricks的TensorFlow,通过Databricks Runtime for Machine Learning进行开箱即用的集成。您可以在几秒钟内启动并运行集群,并受益于一系列低级和高级api。

额外的资源


回到术语表