当前位置:首页 > 文章列表 > 科技周边 > 人工智能 > 为什么TensorFlow可以做机器学习开发?

为什么TensorFlow可以做机器学习开发?

来源:51CTO.COM 2023-04-24 07:19:57 0浏览 收藏

从现在开始,我们要努力学习啦!今天我给大家带来《为什么TensorFlow可以做机器学习开发?》,感兴趣的朋友请继续看下去吧!下文中的内容我们主要会涉及到等等知识点,如果在阅读本文过程中有遇到不清楚的地方,欢迎留言呀!我们一起讨论,一起学习!

机器学习是一门复杂的学科,但由于机器学习框架(例如Google 的 TensorFlow)简化了获取数据、训练模型、提供预测和改进未来结果的过程,实现机器学习远没有以前那么令人生畏。

为什么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可以做机器学习开发?》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~golang学习网公众号也会发布科技周边相关知识,快来关注吧!

版本声明
本文转载于:51CTO.COM 如有侵犯,请联系study_golang@163.com删除
人工智能采用的七个最大障碍及其解决方案人工智能采用的七个最大障碍及其解决方案
上一篇
人工智能采用的七个最大障碍及其解决方案
RPA将如何用于自动化重复性和规则驱动的业务
下一篇
RPA将如何用于自动化重复性和规则驱动的业务
查看更多
最新文章
查看更多
课程推荐
  • 前端进阶之JavaScript设计模式
    前端进阶之JavaScript设计模式
    设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
    542次学习
  • GO语言核心编程课程
    GO语言核心编程课程
    本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
    508次学习
  • 简单聊聊mysql8与网络通信
    简单聊聊mysql8与网络通信
    如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
    497次学习
  • JavaScript正则表达式基础与实战
    JavaScript正则表达式基础与实战
    在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
    487次学习
  • 从零制作响应式网站—Grid布局
    从零制作响应式网站—Grid布局
    本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
    484次学习
查看更多
AI推荐
  • 可图AI图片生成:快手可灵AI2.0引领图像创作新时代
    可图AI图片生成
    探索快手旗下可灵AI2.0发布的可图AI2.0图像生成大模型,体验从文本生成图像、图像编辑到风格转绘的全链路创作。了解其技术突破、功能创新及在广告、影视、非遗等领域的应用,领先于Midjourney、DALL-E等竞品。
    12次使用
  • MeowTalk喵说:AI猫咪语言翻译,增进人猫情感交流
    MeowTalk喵说
    MeowTalk喵说是一款由Akvelon公司开发的AI应用,通过分析猫咪的叫声,帮助主人理解猫咪的需求和情感。支持iOS和Android平台,提供个性化翻译、情感互动、趣味对话等功能,增进人猫之间的情感联系。
    12次使用
  • SEO标题Traini:全球首创宠物AI技术,提升宠物健康与行为解读
    Traini
    SEO摘要Traini是一家专注于宠物健康教育的创新科技公司,利用先进的人工智能技术,提供宠物行为解读、个性化训练计划、在线课程、医疗辅助和个性化服务推荐等多功能服务。通过PEBI系统,Traini能够精准识别宠物狗的12种情绪状态,推动宠物与人类的智能互动,提升宠物生活质量。
    13次使用
  • 可图AI 2.0:快手旗下新一代图像生成大模型,专业创作者与普通用户的多模态创作引擎
    可图AI 2.0图片生成
    可图AI 2.0 是快手旗下的新一代图像生成大模型,支持文本生成图像、图像编辑、风格转绘等全链路创作需求。凭借DiT架构和MVL交互体系,提升了复杂语义理解和多模态交互能力,适用于广告、影视、非遗等领域,助力创作者高效创作。
    18次使用
  • 毕业宝AIGC检测:AI生成内容检测工具,助力学术诚信
    毕业宝AIGC检测
    毕业宝AIGC检测是“毕业宝”平台的AI生成内容检测工具,专为学术场景设计,帮助用户初步判断文本的原创性和AI参与度。通过与知网、维普数据库联动,提供全面检测结果,适用于学生、研究者、教育工作者及内容创作者。
    29次使用
微信登录更方便
  • 密码登录
  • 注册账号
登录即同意 用户协议隐私政策
返回登录
  • 重置密码