新書推薦:
《
当代精神分析新论
》
售價:HK$
94.6
《
宋初三先生集(中国思想史资料丛刊)
》
售價:HK$
217.8
《
定言命令式:康德道德哲学研究(政治哲学名著译丛)
》
售價:HK$
129.8
《
棕榈油的全球史 : 从奴隶船到购物篮
》
售價:HK$
96.8
《
简帛时代与早期中国思想世界(上下册)(王中江著作系列)
》
售價:HK$
308.0
《
进化主义在中国的兴起(王中江著作系列)
》
售價:HK$
209.0
《
不废风雅 生活的意趣(汪曾祺风雅意趣妙文)
》
售價:HK$
61.6
《
东亚世界形成史论(新版)
》
售價:HK$
107.8
|
編輯推薦: |
由于人们对AI的广泛需求以及JavaScript的无处不在,TensorFlow.js应运而生。利用这个Google框架,经验丰富的AI老手和Web开发人员可以帮助AI驱动的网站走向更光明的未来。在这本指南中,本书作者Gant Laborde(机器学习和Web领域Google开发者专家)为广大技术人员提供了一种端到端的实战方法来学习TensorFlow.js基础知识,数据科学家、工程师、Web开发人员、学习以及研究人员都能从中受益。
深入学习神经网络架构、DataFrame、TensorFlow Hub、模型转换、迁移学习等内容之前,首先将完成一些基本的TensorFlow.js示例。学完这本书之后,你会了解如何用TensorFlow.js构建和部署产品级深度学习系统。
|
內容簡介: |
研究张量,这是机器学习中最基本的结构。通过一个真实示例完成数据与张量的来回转换。使用TensorFlow.js结合AI和Web。使用资源转换、训练和管理机器学习数据。从头开始构建和训练你自己的训练模型。
|
關於作者: |
Gant Laborde是Infinite Red的创始者,同时也是一位导师、兼职教授、作家和获奖演讲者。作为Google开发者专家,他从多个角度介绍了TensorFlow.js,使这个概念更容易理解。
|
目錄:
|
目录
序 .1
前言 .3
第1 章 AI 是魔法 . 11
1.1 JavaScript 的AI 之路 . 12
1.2 什么是智能? 13
1.3 AI 历史 . 15
1.4 神经网络 16
1.5 如今的AI 19
1.6 为什么选择TensorFlow.js? . 20
1.6.1 强大支持. 20
1.6.2 在线阅读. 21
1.6.3 离线阅读. 21
1.6.4 隐私 21
1.6.5 多样性 . 21
1.7 机器学习类型 22
1.7.1 快速定义:有监督学习 23
1.7.2 快速定义:无监督学习 23
1.7.3 快速定义:半监督学习 23
1.7.4 快速定义:强化学习 24
1.7.5 信息过载. 25
1.8 AI 无处不在 25
1.9 框架全貌 26
什么是模型? 27
1.10 本书内容 28
1.10.1 相关代码 29
1.10.2 各章小节 32
1.10.3 常见AI/ML 术语 . 32
1.11 本章复习 36
复习题 . 36
第2 章 TensorFlow.js 简介 38
2.1 你好,TensorFlow.js 38
2.2 利用TensorFlow.js 40
2.3 准备TensorFlow.js 41
2.4 在浏览器中设置TensorFlow.js . 42
2.4.1 使用NPM 43
2.4.2 包含脚本标记 43
2.5 在Node 中设置TensorFlow.js 44
2.6 检验TensorFlow.js 是否正常工作 46
下载和运行示例 . 47
2.7 真正使用TensorFlow.js 49
2.7.1 Toxicity 分类器 50
2.7.2 加载模型. 56
2.7.3 分类 58
2.8 自己动手 59
2.9 本章复习 59
2.9.1 思考题: 卡车警报! . 59
2.9.2 复习题 . 60
第3 章 张量介绍 62
3.1 为什么使用张量? 62
3.2 你好,张量 . 63
3.2.1 创建张量. 65
3.2.2 数据练习的张量 . 68
3.3 张量闪亮登场 71
3.3.1 张量提供速度 71
3.3.2 张量提供直接访问 . 71
3.3.3 张量批处理数据 . 72
3.4 内存中的张量 72
3.4.1 撤销张量. 73
3.4.2 自动张量清理 74
3.5 张量获取 76
获取张量数据 77
3.6 张量操作 79
3.6 1 张量和数学 79
3.6.2 使用张量实现推荐 . 81
3.7 本章复习 87
3.7.1 思考题: 是什么让你如此独特? 87
3.7.2 复习题 . 88
第4 章 图像张量 90
4.1 视觉张量 91
4.2 快速图像张量 94
4.3 JPG、PNG 和GIF,天呐! 97
4.3.1 浏览器: 张量到图像 . 98
4.3.2 浏览器: 图像到张量 . 99
4.3.3 Node: 张量到图像 102
4.3 4 Node: 图像到张量 106
4.4 常见图像修改 . 108
4.4.1 镜像图像张量 108
4.4.2 调整图像张量大小 111
4.4.3 裁剪图像张量 114
4.4.4 新的图像工具 115
4.5 本章复习 115
4.5.1 思考题: 随机张量排序 . 116
4.5.2 复习题 117
第5 章 模型介绍 119
5.1 加载模型 120
5.1.1 通过公共URL 加载模型 . 121
5.1.2 从其他位置加载模型 . 123
5.2 第一个模型 124
5.2.1 加载、编码和询问模型 125
5.2.2 解释结果 128
5.2.3 清理棋盘 130
5.3 第一个TensorFlow Hub 模型 . 130
5.3.1 探索TFHub 131
5.3.2 使用Inception v3 . 132
5.4 第一个叠加模型 134
5.4.1 本地化模型 . 135
5.4.2 标记检测结果 137
5.5 本章复习 140
5.5.1 思考题: 可爱的脸 141
5.5.2 复习题 142
第6 章 高级模型和UI . 143
6.1 再谈MobileNet 144
SSD MobileNet . 146
6.2 包围框输出 149
6.2.1 读取模型输出 149
6.2.2 显示所有输出 151
6.3 清理检测结果 . 152
6.3.1 质量检查 153
6.3.2 IoU 和NMS 154
6.4 增加文本叠加 . 159
6.4.1 解决低对比度问题 159
6.4.2 解决绘制顺序问题 161
6.5 连接到网络摄像头 164
6.5.1 从图像到视频 165
6.5.2 激活网络摄像头 165
6.5.3 绘制检测结果 166
6.6 本章复习 168
6.6.1 思考题: 头号侦探 168
6.6.2 复习题 169
第7 章 建模资源 170
7.1 利用外部模型 . 171
7.1.1 模型动物园 . 171
7.1.2 转换模型 171
7.2 第一个定制模型 175
7.2.1 认识Teachable Machine 176
7.2.2 使用Teachable Machine 178
7.2.3 采集数据和训练 179
7.2.4 验证模型 181
7.3 机器学习问题 . 184
7.3.1 少量数据 184
7.3.2 差数据 184
7.3.3 数据偏差 185
7.3.4 过拟合 185
7.3.5 欠拟合 186
7.4 获得数据集 187
流行的数据集 188
7.5 本章复习 190
7.5.1 思考题: R.I.P. 转换MNIST 190
7.5.2 复习题 191
第8 章 训练模型 192
8.1 训练基础 193
8.1.1 数据准备 194
8.1.2 设计模型 195
8.1.3 明确学习指标 197
8.1.4 训练模型 199
8.1.5 综合 199
8.2 非线性训练基础 202
8.2.1 收集数据 203
8.2.2 为神经元增加激活函数 204
8.2.3 监视训练 206
8.2.4 改进训练 208
8.3 本章复习 214
8.3.1 思考题: 模型架构师 214
8.3.2 复习题 215
第9 章 分类模型和数据分析 . 217
9.1 分类模型 218
9.2 泰坦尼克号 220
Titanic 数据集 221
9.3 Danfo.js . 222
9.3.1 准备Titanic 数据 . 223
9.3.2 使用Titanic 数据进行训练 . 229
9.4 特征工程 232
9.4.1 Dnotebook 232
9.4.2 Titanic 数据可视化 . 234
9.4.3 创建特征(即预处理) 237
9.4.4 完成特征工程后的训练结果 240
9.4.5 审查结果 240
9.5 本章复习 241
9.5.1 思考题: 开船 . 242
9.5.2 复习题 242
第10 章 图像训练 . 244
10.1 理解卷积 . 245
10.1.1 卷积简要总结 . 246
10.1.2 增加卷积层 248
10.2 理解最大池化 249
10.2.1 最大池化简要总结 250
10.2.2 增加最大池化层 251
10.3 训练图像分类 252
处理图像数据 253
10.4 戴上分院帽 254
10.4.1 开始 . 256
10.4.2 转换图像文件夹 258
10.4.3 CNN 模型 . 261
10.4.4 训练和保存 265
10.5 测试模型 . 266
10.5.1 建立一个绘图板 267
10.5.2 读取绘图板 268
10.6 本章复习 . 271
10.6.1 思考题: 保存魔法 271
10.6.2 复习题 272
第11 章 迁移学习 . 274
11.1 迁移学习如何工作? 275
迁移学习神经网络 . 276
11.2 简单的MobileNet 迁移学习 . 277
TensorFlow Hub 象棋识别! 279
11.3 利用分层模型实现迁移学习 . 284
11.3.1 删减MobileNet 模型层 285
11.3.2 分层特征模型 . 287
11.3.3 统一模型 287
11.4 不需要训练 288
简单的KNN:兔子和跑车 . 289
11.5 本章复习 . 292
11.5.1 思考题: 快速学习 . 293
11.5.2 复习题 294
第12 章 Dicify: 顶石项目 295
12.1 骰子挑战 . 296
12.2 计划 297
12.2.1 数据 . 297
12.2.2 训练 . 299
12.2.3 网站 . 299
12.3 生成训练数据 300
12.4 训练 304
12.5 网站界面 . 306
12.5.1 分解成骰子 307
12.5.2 重构图像 309
12.6 本章复习 . 311
12.6.1 思考题: 简单的二值化 313
12.6.2 复习题 314
后记 315
附录A 复习题答案 319
附录B 思考题答案 326
附录C 专利和授权 337
|
內容試閱:
|
前言
“如果你选择不做决定,那你还是做了一个选择。”——Geddy Lee(Rush 乐队)
开始吧
人们总喜欢当事后诸葛亮。“我应该在价格还是X 的时候买一些比特币”,或者“如果我在创业公司Y 出名之前申请入职就好了”。在这个世界里,我们总会遇到这种关键的时刻,会决定我们的将来是好是坏。时间从不倒退,但在我们前进的路上,会不断遭遇先前的选择带来的教训。你很幸运,能有这本书,能在这个时刻做决定。
由于人工智能的发展,软件行业的基础正在发生改变。这些变化最终将由那些抓住机遇为世界塑造未来的人决定。机器学习是一种探索新的可能性的冒险,结合广泛普及的JavaScript,原有的桎梏在逐渐消失。就像我在AI 演讲中对观众所说的那样,“你们不是只为了创建这样的软件而走到了今天这一步”。现在就开始吧,看看我们的想象力会把我们带往何方。
为什么选择TensorFlow.js?
TensorFlow 是市场上最流行的机器学习框架之一。它由Google 的顶尖人才提供支持,并负责为世界上最具影响力的众多公司提供原动力。TensorFlow.js是TensorFlow 推出的无比强大的JavaScript 框架,超过了所有竞争对手。简而言之,如果你想得到JavaScript 框架的强大功能,只有一种选择,这就是TensorFlow.js。
为什么要读这本书?
两类读者会喜欢这本书的内容并从中受益:
JavaScript 开发人员
如果你熟悉JavaScript,但以前从未接触过机器学习,这本书将成为你的指南。它会介绍这个框架,让你在实践中通过创建令人兴奋的项目主动学习。通过各种项目的构建,你将了解机器学习的基础知识和实战经验。虽然我们不会回避数学或更深层次的概念,但也不会过于复杂化。如果你正在用JavaScript 构建网站,并想获得新的超能力,请阅读这本书。
AI 专家
如果你熟悉TensorFlow,甚至了解线性代数的基本原则,这本书将为你提供大量例子,展示如何将你的技能带入JavaScript。在这里,我们将利用TensorFlow.js 框架阐述、展示和描绘各个核心概念。这会帮助你将你的丰富知识应用于客户端浏览器或物联网(IoT)等边缘设备上的媒体。请阅读这本书,学习如何将你的创造力拓展到各种不同设备来提供丰富的交互体验。
本书要求读者具备JavaScript 中级水平,能阅读和理解现代JavaScript 代码。
本书概述
编写本书的大纲时,我意识到必须做出选择。我可以完成一个旋风式的冒险,探索机器学习的各种应用,并用一些具体的小例子逐一介绍,或者我也可以专一地选择一条路,循序渐进地展示概念的逐步发展。在对我的朋友和关注者做过调查后,我发现大家更需要后者。为了力求简洁,保证这本书不超过1000 页,我决定删除所有JavaScript 框架,主要专注于以实战方式对AI 的视觉方面进行探索。
每一章的末尾都有一些复习题和一个特别的思考题,来考察你的学习情况。“思考题”小节都经过精心设计,以巩固你学到的TensorFlow.js 知识。
各章内容
第1 章和第2 章首先介绍核心概念和一个具体的例子。这种“阴阳”法(概念 实例)反映了这本书的教学风格。每一章都建立在前几章提到的内容、术语和函数基础上。
第3 章至第7 章会介绍如何理解和实现现有AI 工具和数据。你将创建出色的模型库,并且能够在项目中使用众多数据科学家创建的模型。
第8 章到第11 章会赋予你创造力,帮助你有效地使用TensorFlow.js。你可以在JavaScript 中训练模型,我坚信这是整本书中最有趣也最激动人心的部分之一。
第12 章是最后的挑战。最后一章提出了一个顶石项目,使你能够将本书所学融会贯通,以你自己的方式表述和运用所学的知识。
学习目标
读完这本书之后,不论你以前的经验如何,都将能够在TensorFlow.js 中查找、实现、调整和创建机器学习模型。你能够识别出网站中哪些方面要应用机器学习,并且能够具体实现。
排版约定
本书采用以下排版约定。
斜体
表示新术语、URL、电子邮件地址、文件名和文件扩展名。
等宽字体(Constant Width)
表示程序清单,在段落内表示程序元素,例如变量、函数名称、数据库、数据类型、环境变量、语句和关键字。
粗体等宽字体(Constant width bold)
表示应由用户原封不动输入的命令或其他文本。
斜体等宽字体(Constant width italic)
表示应该替换成用户提供值的文本,或者由上下文决定的值。
使用代码示例
这本书的补充材料(代码示例、练习等)可以从https://github.com/GantMan/learn-tfjs 下载。
如果你有技术问题,或者使用代码示例时遇到问题,请发送电子邮件至bookquestions@oreilly.com。
本书的目的是要帮助你完成工作。一般来讲,如果书中提供了示例代码,你可以在你的程序和文档中使用这些示例代码,不需要联系我们来得到许可,除非你直接复制了大部分的代码。例如,如果你在编写一个程序,使用了本书中的多段代码,这并不需要得到许可。但是出售或发行O’Reilly 书的示例代码则需要得到许可。回答问题时如果引用了这本书的文字和示例代码,这不需要得到许可。但是如果你的产品文档借用了本书中的大量示例代码,则需要得到许可。
我们希望但不严格要求标明引用出处。引用信息通常包括书名、作者、出版商和ISBN。例如,“Learning TensorFlow.js by Gant Laborde(O’Reilly).Copyright 2021 Gant Laborde, 978-1-492-09079-3”。
如果你认为你在使用代码示例时超出了合理使用范围或者上述许可范围,可以随时联系我们:permissions@oreilly.com。
O’Reilly 在线学习平台(O’Reilly Online Learning)
近40 年来,O’Reilly Media 致力于提供技术和商业
培训、知识和卓越见解,来帮助众多公司取得成功。
我们拥有独一无二的专家和革新者组成的庞大网络,他们通过图书、文章、会议和我们的在线学习平台分享他们的知识和经验。O’Reilly 的在线学习平台允许你按需访问现场培训课程、深入的学习路径、交互式编程环境,以及O’Reilly 和200 多家其他出版商提供的大量文本和视频资源。有关的更多信息,请访问http://oreilly.com。
联系我们
请把对本书的评价和问题发给出版社。
美国:
O’Reilly Media, Inc.
1005 Gravenstein Highway North
Sebastopol, CA 95472
中国:
北京市西城区西直门南大街2号成铭大厦C座807室(100035)
奥莱利技术咨询(北京)有限公司
针对这本书,我们还建有一个网页,列出了有关勘误、示例和其他信息。可以通过以下地址访问这个页面:https://oreil.ly/learning-tensorflow-js。
如果对这本书有什么意见,或者询问技术上的问题,请发送电子邮件至errata@oreilly.com。
要了解关于我们的图书和课程的新闻和信息,请访问我们的网站:http://www.oreilly.com。
我们的Facebook: http://facebook.com/oreilly。
我们的Twitter: http://twitter.com/oreillymedia。
我们的YouTube: http://www.youtube.com/oreillymedia。
致谢
我想对O’Reilly 的编辑、制作人员和员工说声谢谢,在写这本书的过程中,与他们一起工作真是一件幸事。
当然,要感谢杰出的Laurence Moroney,他是这本书序言的作者。在我的成长过程中,你一直是我的偶像,激励着我前进。我从你身上学到了很多,我将在你的机器学习课程和成果基础上继续成长。
这本书的技术审校是我有幸共事过的最友好、最细致的人。
Laura Uzcátegui
你的善意而鼓舞人心的反馈读起来很温暖。你的直觉让我对这本书充满信心。
Vishwesh Ravi Shrimali
你听懂了我所有的笑话。你显然是一个睿智而友善的人,在这方面,你让我变得更好。感谢你的忠告和智慧。
Jason Mayes
在你被选为这本书的技术编辑之前我就认识你了,所以我不仅把你当作队友,更当作朋友,共同让这本书尽可能地完美。你的反馈很细致,很明智,绝对不可替代。衷心感谢你。
Axel Damian Sirota
我能从你的每一个反馈中感受到你的热忱和支持。你投入大量时间给予了明智和善意的建议。你的艺术才能绝对是对这本书的一份难得的礼物。
Lee Warrick
你不断地审查和质疑,让我更好地完成我的所有工作。这本书是我因你的洞察力而取得成就的最新例证。
Michele Cronin
我喜欢我们的每一次会谈。你简直是快乐之源!谢谢你的坦诚。你让这本书读起来毫不费力。我永远也不知道你是怎么做到的。
特别感谢Frank von Hoven III,感谢你提出的所有问题,感谢你一页一页手写的反馈(见图1)。你的才华和诚实一直在有力地鼓舞着我。
最后,感谢我亲爱的家人,他们尽量避免打断我,但也知道我什么时候需要
打断。Alicia,亲爱的,你比我自己更了解我。每当我需要动力时,你用提神
的咖啡给我惊喜,而当我需要停下来休息时,你就会给我一杯美酒。每一天的美好都是因为你。
|
|