为什么TensorFlow可以做机器学习开发?
机器学习是一门复杂的学科,但由于机器学习框架(例如Google 的 TensorFlow)简化了获取数据、训练模型、提供预测和改进未来结果的过程,实现机器学习远没有以前那么令人生畏。
TensorFlow 由 Google Brain 团队创建,最初于 2015 年向公众发布,是一个用于数值计算和大规模机器学习的开源库。TensorFlow 将大量机器学习和深度学习模型和算法(也称为神经网络)捆绑在一起,并通过常见的编程隐喻使它们变得有用。它使用 Python 或 JavaScript 为构建应用程序提供方便的前端 API,同时在高性能 C++ 中执行这些应用程序。
TensorFlow与 PyTorch和 Apache MXNet 等框架竞争,可以训练和运行深度神经网络,用于手写数字分类、图像识别、词嵌入、循环神经网络、用于机器翻译的序列到序列模型、自然语言处理和基于 PDE(偏微分方程)的模拟。最重要的是,TensorFlow 支持大规模生产预测,使用相同的模型进行训练。
TensorFlow 还拥有广泛的预训练模型库,可用于你自己的项目。你还可以使用TensorFlow 模型园中的代码 作为训练你自己的模型的最佳实践示例。
TensorFlow 的工作原理
TensorFlow 允许开发人员创建数据流图——描述数据如何通过图或一系列处理节点移动的结构。图中的每个节点都代表一个数学运算,节点之间的每个连接或边都是一个多维数据数组,或称张量。
TensorFlow 应用程序可以在大多数方便的目标上运行:本地机器、云中的集群、iOS 和 Android 设备、CPU 或 GPU。如果你使用 Google 自己的云,你可以在 Google 的自定义TensorFlow 处理单元(TPU) 芯片上运行 TensorFlow,以进一步加速。不过,TensorFlow 创建的结果模型可以部署在大多数用于提供预测的设备上。
TensorFlow 2.0 于 2019 年 10 月发布,根据用户反馈对框架进行了多种改进,使其更易于使用(例如,通过使用相对简单的 KerasAPI 进行模型训练)和更高的性能。得益于新的 API,分布式训练更易于运行,并且对 TensorFlow Lite 的支持使在更多种类的平台上部署模型成为可能。但是,必须重写为早期版本的 TensorFlow 编写的代码——有时只是轻微的,有时是显着的——以最大限度地利用新的 TensorFlow 2.0 功能。
经过训练的模型可用于 通过 使用 REST 或gRPC API的 Docker 容器将预测作为服务提供。对于更高级的服务场景,你可以使用Kubernetes
将 TensorFlow 与 Python 结合使用
TensorFlow 通过 Python 语言为程序员提供了所有这些功能。Python 易于学习和使用,它提供了方便的方法来表达如何将高级抽象耦合在一起。TensorFlow 在 Python 3.7 到 3.10 版本上受支持,虽然它可以在早期版本的 Python 上工作,但不能保证这样做。
TensorFlow 中的节点和张量是 Python 对象,TensorFlow 应用程序本身就是 Python 应用程序。然而,实际的数学运算并不是在 Python 中执行的。通过 TensorFlow 提供的转换库被编写为高性能 C++ 二进制文件。Python 只是引导各个部分之间的流量,并提供高级编程抽象来将它们连接在一起。
TensorFlow 中的高级工作(创建节点和层并将它们链接在一起)使用Keras库。Keras API 表面上很简单;一个三层的基本模型可以在不到 10 行代码中定义,同样的训练代码只需要几行代码。但如果你想“揭开面纱”,做更细粒度的工作,比如编写自己的训练循环,你可以这样做。
将 TensorFlow 与 JavaScript 结合使用
Python 是与 TensorFlow 和机器学习一起工作的最流行的语言。但是 JavaScript 现在也是 TensorFlow 的一流语言,JavaScript 的巨大优势之一是它可以在任何有网络浏览器的地方运行。
TensorFlow.js(称为 JavaScript TensorFlow 库)使用 WebGL API 通过系统中可用的任何 GPU 来加速计算。也可以使用WebAssembly后端来执行,如果你只在 CPU 上运行,它比常规的 JavaScript 后端更快,但最好尽可能使用 GPU。预建模型让你可以启动并运行简单的项目,让你了解事情的运作方式。
TensorFlow 精简版
经过训练的 TensorFlow 模型也可以部署在边缘计算或移动设备上,例如 iOS 或 Android 系统。TensorFlow Lite工具集通过允许你在模型大小和准确性之间进行权衡,优化 TensorFlow 模型以在此类设备上良好运行。较小的模型(即 12MB 对 25MB,甚至 100+MB)的准确度较低,但准确度的损失通常很小,并且被模型的速度和能效所抵消。
为什么使用 TensorFlow
TensorFlow 为机器学习开发提供的最大好处是抽象。开发人员可以专注于整体应用程序逻辑,而不是处理实现算法的细节,或者找出将一个函数的输出连接到另一个函数的输入的正确方法。TensorFlow 负责幕后的细节。
TensorFlow 为需要调试和了解 TensorFlow 应用程序的开发人员提供了更多便利。每个图形操作都可以单独且透明地进行评估和修改,而不是将整个图形构建为单个不透明对象并立即对其进行评估。这种所谓的“急切执行模式”作为旧版 TensorFlow 的一个选项提供,现在已成为标准。
TensorBoard可视化套件可让你通过基于 Web 的交互式仪表板检查和分析图表的运行方式。Tensorboard.dev服务 (由 Google 托管)可让你托管和共享用 TensorFlow 编写的机器学习实验。它可以免费用于存储多达 100M 的标量、1GB 的张量数据和 1GB 的二进制对象数据。(请注意,托管在 Tensorboard.dev 中的任何数据都是公开的,因此请勿将其用于敏感项目。)
TensorFlow 还从谷歌一流商业机构的支持中获得了许多优势。谷歌推动了该项目的快速发展,并创造了许多重要的产品,使 TensorFlow 更易于部署和使用。上述用于在谷歌云中加速性能的 TPU 芯片只是一个例子。
使用 TensorFlow 进行确定性模型训练
TensorFlow 实现的一些细节使得某些训练作业很难获得完全确定的模型训练结果。有时,在一个系统上训练的模型与在另一个系统上训练的模型会略有不同,即使它们提供了完全相同的数据。这种差异的原因很棘手——一个原因是随机数是如何播种的以及在哪里播种;另一个与使用 GPU 时的某些非确定性行为有关。TensorFlow 的 2.0 分支有一个选项,可以通过几行代码在整个工作流程中启用确定性。但是,此功能以性能为代价,并且仅应在调试工作流时使用。
TensorFlow 与 PyTorch、CNTK 和 MXNet
TensorFlow 与许多其他机器学习框架竞争。PyTorch、CNTK 和 MXNet 是满足许多相同需求的三个主要框架。让我们快速了解一下它们在哪些方面脱颖而出并与 TensorFlow 相比不足:
- PyTorch是用 Python 构建的,并且与 TensorFlow 有许多其他相似之处:引擎盖下的硬件加速组件、允许即用即设计工作的高度交互的开发模型,以及已经包含许多有用的组件。对于需要在短时间内启动并运行的项目的快速开发,PyTorch通常是更好的选择,但 TensorFlow 更适合大型项目和更复杂的工作流程。
- CNTK是 Microsoft Cognitive Toolkit,在使用图结构来描述数据流方面与 TensorFlow 类似,但它主要侧重于创建深度学习神经网络。CNTK可以更快地处理许多神经网络作业,并拥有更广泛的 API(Python、C++、C#、Java)。但目前它不像 TensorFlow 那样容易学习或部署。它也仅在 GNU GPL 3.0 许可下可用,而 TensorFlow 在更自由的 Apache 许可下可用。而且 CNTK 没有那么积极的发展。上一个主要版本是在 2019 年。
- Apache MXNet被 Amazon 采用为 AWS 上的首要深度学习框架,可以在多个 GPU 和多台机器上几乎线性扩展。MXNet还支持广泛的语言 API——Python、C++、Scala、R、JavaScript、Julia、Perl、Go——尽管它的原生 API 不像 TensorFlow 那样好用。它还拥有一个小得多的用户和开发人员社区。
原文标题:What is TensorFlow? The machine learning library explained
以上是为什么TensorFlow可以做机器学习开发?的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

图像标注是将标签或描述性信息与图像相关联的过程,以赋予图像内容更深层次的含义和解释。这一过程对于机器学习至关重要,它有助于训练视觉模型以更准确地识别图像中的各个元素。通过为图像添加标注,使得计算机能够理解图像背后的语义和上下文,从而提高对图像内容的理解和分析能力。图像标注的应用范围广泛,涵盖了许多领域,如计算机视觉、自然语言处理和图视觉模型具有广泛的应用领域,例如,辅助车辆识别道路上的障碍物,帮助疾病的检测和诊断通过医学图像识别。本文主要推荐一些较好的开源免费的图像标注工具。1.Makesens

在机器学习和数据科学领域,模型的可解释性一直是研究者和实践者关注的焦点。随着深度学习和集成方法等复杂模型的广泛应用,理解模型的决策过程变得尤为重要。可解释人工智能(ExplainableAI|XAI)通过提高模型的透明度,帮助建立对机器学习模型的信任和信心。提高模型的透明度可以通过多种复杂模型的广泛应用等方法来实现,以及用于解释模型的决策过程。这些方法包括特征重要性分析、模型预测区间估计、局部可解释性算法等。特征重要性分析可以通过评估模型对输入特征的影响程度来解释模型的决策过程。模型预测区间估计

本文将介绍如何通过学习曲线来有效识别机器学习模型中的过拟合和欠拟合。欠拟合和过拟合1、过拟合如果一个模型对数据进行了过度训练,以至于它从中学习了噪声,那么这个模型就被称为过拟合。过拟合模型非常完美地学习了每一个例子,所以它会错误地分类一个看不见的/新的例子。对于一个过拟合的模型,我们会得到一个完美/接近完美的训练集分数和一个糟糕的验证集/测试分数。略有修改:"过拟合的原因:用一个复杂的模型来解决一个简单的问题,从数据中提取噪声。因为小数据集作为训练集可能无法代表所有数据的正确表示。"2、欠拟合如

通俗来说,机器学习模型是一种数学函数,它能够将输入数据映射到预测输出。更具体地说,机器学习模型就是一种通过学习训练数据,来调整模型参数,以最小化预测输出与真实标签之间的误差的数学函数。在机器学习中存在多种模型,例如逻辑回归模型、决策树模型、支持向量机模型等,每一种模型都有其适用的数据类型和问题类型。同时,不同模型之间存在着许多共性,或者说有一条隐藏的模型演化的路径。将联结主义的感知机为例,通过增加感知机的隐藏层数量,我们可以将其转化为深度神经网络。而对感知机加入核函数的话就可以转化为SVM。这一

20世纪50年代,人工智能(AI)诞生。当时研究人员发现机器可以执行类似人类的任务,例如思考。后来,在20世纪60年代,美国国防部资助了人工智能,并建立了实验室进行进一步开发。研究人员发现人工智能在许多领域都有用武之地,例如太空探索和极端环境中的生存。太空探索是对宇宙的研究,宇宙涵盖了地球以外的整个宇宙空间。太空被归类为极端环境,因为它的条件与地球不同。要在太空中生存,必须考虑许多因素,并采取预防措施。科学家和研究人员认为,探索太空并了解一切事物的现状有助于理解宇宙的运作方式,并为潜在的环境危机

C++中机器学习算法面临的常见挑战包括内存管理、多线程、性能优化和可维护性。解决方案包括使用智能指针、现代线程库、SIMD指令和第三方库,并遵循代码风格指南和使用自动化工具。实践案例展示了如何利用Eigen库实现线性回归算法,有效地管理内存和使用高性能矩阵操作。

机器学习是人工智能的重要分支,它赋予计算机从数据中学习的能力,并能够在无需明确编程的情况下改进自身能力。机器学习在各个领域都有着广泛的应用,从图像识别和自然语言处理到推荐系统和欺诈检测,它正在改变我们的生活方式。机器学习领域存在着多种不同的方法和理论,其中最具影响力的五种方法被称为“机器学习五大派”。这五大派分别为符号派、联结派、进化派、贝叶斯派和类推学派。1.符号学派符号学(Symbolism),又称为符号主义,强调利用符号进行逻辑推理和表达知识。该学派认为学习是一种逆向演绎的过程,通过已有的

译者|李睿审校|重楼人工智能(AI)和机器学习(ML)模型如今变得越来越复杂,这些模型产生的输出是黑盒——无法向利益相关方解释。可解释性人工智能(XAI)致力于通过让利益相关方理解这些模型的工作方式来解决这一问题,确保他们理解这些模型实际上是如何做出决策的,并确保人工智能系统中的透明度、信任度和问责制来解决这个问题。本文探讨了各种可解释性人工智能(XAI)技术,以阐明它们的基本原理。可解释性人工智能至关重要的几个原因信任度和透明度:为了让人工智能系统被广泛接受和信任,用户需要了解决策是如何做出的
