0

0

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

WBOY

WBOY

发布时间:2023-04-08 21:21:04

|

1826人浏览过

|

来源于51CTO.COM

转载

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

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

为什么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 的巨大优势之一是它可以在任何有网络浏览器的地方运行。

闪念贝壳
闪念贝壳

闪念贝壳是一款AI 驱动的智能语音笔记,随时随地用语音记录你的每一个想法。

下载

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​

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
TypeScript类型系统进阶与大型前端项目实践
TypeScript类型系统进阶与大型前端项目实践

本专题围绕 TypeScript 在大型前端项目中的应用展开,深入讲解类型系统设计与工程化开发方法。内容包括泛型与高级类型、类型推断机制、声明文件编写、模块化结构设计以及代码规范管理。通过真实项目案例分析,帮助开发者构建类型安全、结构清晰、易维护的前端工程体系,提高团队协作效率与代码质量。

26

2026.03.13

Python异步编程与Asyncio高并发应用实践
Python异步编程与Asyncio高并发应用实践

本专题围绕 Python 异步编程模型展开,深入讲解 Asyncio 框架的核心原理与应用实践。内容包括事件循环机制、协程任务调度、异步 IO 处理以及并发任务管理策略。通过构建高并发网络请求与异步数据处理案例,帮助开发者掌握 Python 在高并发场景中的高效开发方法,并提升系统资源利用率与整体运行性能。

46

2026.03.12

C# ASP.NET Core微服务架构与API网关实践
C# ASP.NET Core微服务架构与API网关实践

本专题围绕 C# 在现代后端架构中的微服务实践展开,系统讲解基于 ASP.NET Core 构建可扩展服务体系的核心方法。内容涵盖服务拆分策略、RESTful API 设计、服务间通信、API 网关统一入口管理以及服务治理机制。通过真实项目案例,帮助开发者掌握构建高可用微服务系统的关键技术,提高系统的可扩展性与维护效率。

178

2026.03.11

Go高并发任务调度与Goroutine池化实践
Go高并发任务调度与Goroutine池化实践

本专题围绕 Go 语言在高并发任务处理场景中的实践展开,系统讲解 Goroutine 调度模型、Channel 通信机制以及并发控制策略。内容包括任务队列设计、Goroutine 池化管理、资源限制控制以及并发任务的性能优化方法。通过实际案例演示,帮助开发者构建稳定高效的 Go 并发任务处理系统,提高系统在高负载环境下的处理能力与稳定性。

51

2026.03.10

Kotlin Android模块化架构与组件化开发实践
Kotlin Android模块化架构与组件化开发实践

本专题围绕 Kotlin 在 Android 应用开发中的架构实践展开,重点讲解模块化设计与组件化开发的实现思路。内容包括项目模块拆分策略、公共组件封装、依赖管理优化、路由通信机制以及大型项目的工程化管理方法。通过真实项目案例分析,帮助开发者构建结构清晰、易扩展且维护成本低的 Android 应用架构体系,提升团队协作效率与项目迭代速度。

92

2026.03.09

JavaScript浏览器渲染机制与前端性能优化实践
JavaScript浏览器渲染机制与前端性能优化实践

本专题围绕 JavaScript 在浏览器中的执行与渲染机制展开,系统讲解 DOM 构建、CSSOM 解析、重排与重绘原理,以及关键渲染路径优化方法。内容涵盖事件循环机制、异步任务调度、资源加载优化、代码拆分与懒加载等性能优化策略。通过真实前端项目案例,帮助开发者理解浏览器底层工作原理,并掌握提升网页加载速度与交互体验的实用技巧。

102

2026.03.06

Rust内存安全机制与所有权模型深度实践
Rust内存安全机制与所有权模型深度实践

本专题围绕 Rust 语言核心特性展开,深入讲解所有权机制、借用规则、生命周期管理以及智能指针等关键概念。通过系统级开发案例,分析内存安全保障原理与零成本抽象优势,并结合并发场景讲解 Send 与 Sync 特性实现机制。帮助开发者真正理解 Rust 的设计哲学,掌握在高性能与安全性并重场景中的工程实践能力。

227

2026.03.05

PHP高性能API设计与Laravel服务架构实践
PHP高性能API设计与Laravel服务架构实践

本专题围绕 PHP 在现代 Web 后端开发中的高性能实践展开,重点讲解基于 Laravel 框架构建可扩展 API 服务的核心方法。内容涵盖路由与中间件机制、服务容器与依赖注入、接口版本管理、缓存策略设计以及队列异步处理方案。同时结合高并发场景,深入分析性能瓶颈定位与优化思路,帮助开发者构建稳定、高效、易维护的 PHP 后端服务体系。

532

2026.03.04

AI安装教程大全
AI安装教程大全

2026最全AI工具安装教程专题:包含各版本AI绘图、AI视频、智能办公软件的本地化部署手册。全篇零基础友好,附带最新模型下载地址、一键安装脚本及常见报错修复方案。每日更新,收藏这一篇就够了,让AI安装不再报错!

171

2026.03.04

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
尚学堂Mahout视频教程
尚学堂Mahout视频教程

共18课时 | 3.3万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号