提交 3a3dee84 编写于 作者: W wizardforcel

2020-12-31 11:08:45

上级 7664258c
......@@ -44,12 +44,12 @@
# 充分利用这本书
* **深度学习和 Python** :读者应该具有深度学习及其在 Python 中的实现的基础知识。 尽管以前使用 Keras 实施深度学习算法的经验很重要,但这不是必需的。“第 1 章”, *Keras 引入高级深度学习*概述了深度学习的概念及其在`tf.keras`中的实现。
* **深度学习和 Python**:读者应该具有深度学习及其在 Python 中的实现的基础知识。 尽管以前使用 Keras 实施深度学习算法的经验很重要,但这不是必需的。“第 1 章”, *Keras 引入高级深度学习*概述了深度学习的概念及其在`tf.keras`中的实现。
* **数学**:本书中的讨论假定读者熟悉大学级别的微积分,线性代数,统计和概率。
* **GPU** :本书中的大多数`tf.keras`实现都需要 GPU。 如果没有 GPU,则由于涉及的时间(数小时至数天),因此无法执行许多代码示例。 本书中的示例尽可能多地使用合理数量的数据,以最大程度地减少高性能计算机的使用。 读者应该至少可以使用 NVIDIA GTX 1060。
* **GPU**:本书中的大多数`tf.keras`实现都需要 GPU。 如果没有 GPU,则由于涉及的时间(数小时至数天),因此无法执行许多代码示例。 本书中的示例尽可能多地使用合理数量的数据,以最大程度地减少高性能计算机的使用。 读者应该至少可以使用 NVIDIA GTX 1060。
* **编辑器**:本书的示例代码是在 Ubuntu Linux 18.04 LTS 和 MacOS Catalina 中使用 vim 编辑的。 任何支持 Python 的文本编辑器都是可以接受的。
* **TensorFlow 2** :本书中的代码示例是使用 TensorFlow 2 的 Keras API 或`tf2`编写的。 请确保正确安装了 NVIDIA GPU 驱动程序和`tf2`
* **GitHub** :我们通过示例和实验学习。 请从其 GitHub 存储库中 git pull 或 fork 这本书的代码包。 获取代码后,对其进行检查。 运行。 更改。 再次运行。 通过调整代码进行创造性的实验。 这是欣赏本章中解释的所有理论的唯一方法。 在此书的 GitHub 存储库[上加注星号也受到高度赞赏,https://github.com/PacktPublishing/Advanced-Deep-Learning-with-Keras](https://github.com/PacktPublishing/Advanced-Deep-Learning-with-Keras)
* **TensorFlow 2**:本书中的代码示例是使用 TensorFlow 2 的 Keras API 或`tf2`编写的。 请确保正确安装了 NVIDIA GPU 驱动程序和`tf2`
* **GitHub**:我们通过示例和实验学习。 请从其 GitHub 存储库中 git pull 或 fork 这本书的代码包。 获取代码后,对其进行检查。 运行。 更改。 再次运行。 通过调整代码进行创造性的实验。 这是欣赏本章中解释的所有理论的唯一方法。 在此书的 GitHub 存储库[上加注星号也受到高度赞赏,https://github.com/PacktPublishing/Advanced-Deep-Learning-with-Keras](https://github.com/PacktPublishing/Advanced-Deep-Learning-with-Keras)
## 下载示例代码文件
......
......@@ -95,9 +95,9 @@ $ python3
我们已经提到,我们将使用三个深度学习网络,它们是:
* **MLP** :多层感知器
* **CNN** :卷积神经网络
* **RNN** :递归神经网络
* **MLP**:多层感知器
* **CNN**:卷积神经网络
* **RNN**:递归神经网络
这些是我们将在本书中使用的三个网络。 稍后,您会发现它们经常结合在一起以利用每个网络的优势。
......
......@@ -67,7 +67,7 @@ EMD 背后的想法是,它是为了确定概率分布`p`<sub style="font-style
图 5.1.1:EMD 是从`x`传输以匹配目标分布`y`的质量的加权数量。
`x`在位置`x`上具有 i = 1、2、3 和 4 的质量`m`<sub xmlns:epub="http://www.idpf.org/2007/ops" style="font-style: italic;">i</sub> i = 1、2、3 和 4 的 <sub xmlns:epub="http://www.idpf.org/2007/ops" style="font-style: italic;">i</sub> *。同时,`y`的质量为`m`<sub xmlns:epub="http://www.idpf.org/2007/ops" style="font-style: italic;">i</sub> [* i = 1 和 2 的*在位置`y`<sub xmlns:epub="http://www.idpf.org/2007/ops" style="font-style: italic;">i</sub> *对于* i = 1 和 2。匹配分布 *y [HTG29 图中的箭头显示了将每个质量`x`<sub xmlns:epub="http://www.idpf.org/2007/ops" style="font-style: italic;">i</sub> 移动`d`<sub xmlns:epub="http://www.idpf.org/2007/ops" style="font-style: italic;">i</sub> 的最小运输计划。 EMD 计算如下:**
`x`在位置`x`上具有 i = 1、2、3 和 4 的质量`m`<sub xmlns:epub="http://www.idpf.org/2007/ops" style="font-style: italic;">i</sub> i = 1、2、3 和 4 的 <sub xmlns:epub="http://www.idpf.org/2007/ops" style="font-style: italic;">i</sub> *。同时,`y`的质量为`m`<sub xmlns:epub="http://www.idpf.org/2007/ops" style="font-style: italic;">i</sub> [* i = 1 和 2 的*在位置`y`<sub xmlns:epub="http://www.idpf.org/2007/ops" style="font-style: italic;">i</sub> *对于* i = 1 和 2。匹配分布 *y [HTG29 图中的箭头显示了将每个质量`x`<sub xmlns:epub="http://www.idpf.org/2007/ops" style="font-style: italic;">i</sub> 移动`d`<sub xmlns:epub="http://www.idpf.org/2007/ops" style="font-style: italic;">i</sub> 的最小运输计划。 EMD 计算如下:
<figure class="mediaobject">![](img/B14853_05_014.png) (Equation 5.1.4)</figure>
......
......@@ -28,7 +28,7 @@
* **弹性容量**:即付即用是建立云服务的核心原则。 尽管仔细的容量规划对于任何成功的数据策略都很重要,但是借助云,我们可以在容量规划方面拥有一定的灵活性。 如果需要更多容量(例如,在线零售商可以预期在黑色星期五期间会有很高的销量),则公司可以在短时间内扩展容量,然后缩减到常规容量。 这种类型的灵活性在数据管理系统的内部部署中不可行。
* **全局连接**:只要可以使用 Internet 连接以及适当的身份验证/授权,就可以在全球范围内虚拟访问作为云上可用的基础结构,平台和应用程序的服务。 通过云提供商跨区域和物理位置的隐式冗余,确保了连接性。 内部部署和拓扑不是客户端考虑或关注的领域。 云端点是一致且无缝的,而与客户端的位置无关。
* **无缝升级**:云提供商可以无缝升级在云上配置的操作系统和应用程序软件。 这样可以确保所有部署之间的一致性和可靠性,并且非常适合 Internet 规模的企业应用程序。 与传统的本地部署相比,传统的本地部署需要在管理服务停机和业务中断的同时,将应用程序版本和补丁小心地应用于所有节点。 在云环境中,责任完全转移给云提供商,企业可以专注于核心业务应用程序。
* **无服务器 DevOps** :借助此,应用程序开发团队可以完全专注于核心业务逻辑。 他们可以根据数据量和计算需求,根据应用范围简单地规定存储和计算需求。 这些团队无需担心任何部署,他们将以最少的配置和扩展时间开始使用服务。 无服务器架构将云功能作为服务公开给云提供商托管应用程序的地方,并负责管理硬件和相关软件组件。 这种模式提供了进入业务应用程序,算法和模型开发的快速入门,而不必担心底层基础结构,因此,可以快速构建核心功能以开始实现业务收益。
* **无服务器 DevOps**:借助此,应用程序开发团队可以完全专注于核心业务逻辑。 他们可以根据数据量和计算需求,根据应用范围简单地规定存储和计算需求。 这些团队无需担心任何部署,他们将以最少的配置和扩展时间开始使用服务。 无服务器架构将云功能作为服务公开给云提供商托管应用程序的地方,并负责管理硬件和相关软件组件。 这种模式提供了进入业务应用程序,算法和模型开发的快速入门,而不必担心底层基础结构,因此,可以快速构建核心功能以开始实现业务收益。
* **快速上市时间****TTM**):有了前面列出的所有优点,采用 Cloud First 策略将各种概念和原型的 TTM 降至最低。
Google 通过从头开始构建服务,从而为企业提供云服务时采取了创新的方法。 这些服务最初是由 Google 自己内部用于搜索和其他互联网规模的服务而构建的。 该平台迅速成熟,形成了一套完整的套件,可用于开发整个简单范围的应用程序,从简单的 Web 应用程序开始,再到微服务和高级分析,这些功能利用了大量的结构化和非结构化数据以及 GPU 和 **张量处理单元****TPU**),用于训练计算密集型模型。 在本书的“第 7 章”,*了解云 TPU* 中,我们将深入研究 TPU 并详细了解 TPU。 在本书中,我们将详细了解 GCP 的各个组成部分,并将专门研究如何利用 GCP 部署**人工智能****AI**)工作负载以及各种应用程序的无缝集成 作为服务。
......@@ -146,22 +146,22 @@ Google 简化了在 GCP 上使用现成的 AI 构建块构建 AI 系统的过程
Sight 是指智能机器的可视界面。 GCP 提供以下用于视觉信息和情报的 API:
* **Cloud Vision API** :这是在 GCP 上经过预先训练的模型之上的**代表性状态转移****REST**)API 抽象。 API 可以将图像分为通用类别和特定对象。 它还可以读取图像中的文本。 随 Cloud Vision API 开箱即用地提供了图像元数据管理以及对特定应用程序不需要的内容的审核。 从图像中收集见解非常简单,无缝。 此 API 的一些常见用例是图像搜索,文档分类和产品搜索(零售)。 下图显示了 Cloud Vision API 的各种应用程序和用例:
* **Cloud Vision API**:这是在 GCP 上经过预先训练的模型之上的**代表性状态转移****REST**)API 抽象。 API 可以将图像分为通用类别和特定对象。 它还可以读取图像中的文本。 随 Cloud Vision API 开箱即用地提供了图像元数据管理以及对特定应用程序不需要的内容的审核。 从图像中收集见解非常简单,无缝。 此 API 的一些常见用例是图像搜索,文档分类和产品搜索(零售)。 下图显示了 Cloud Vision API 的各种应用程序和用例:
![](img/20038c09-29c1-4f48-a1c0-e25b12119802.png)
* **Cloud Video Intelligence API** :这是一种 REST API,可以从视频供稿中提取信息,并可以从视频数据中搜索和提取元数据。 该 API 易于使用,并且包含超过 20,000 个预定义标签的列表。 该 API 还提供了视频标签和内容之间的互操作性,当视频资产存储在 Google Cloud Storage 中时,可以跨视频资产进行基于文本的搜索。 下图显示了 Cloud Video Intelligence API 的各种应用程序和用例:
* **Cloud Video Intelligence API**:这是一种 REST API,可以从视频供稿中提取信息,并可以从视频数据中搜索和提取元数据。 该 API 易于使用,并且包含超过 20,000 个预定义标签的列表。 该 API 还提供了视频标签和内容之间的互操作性,当视频资产存储在 Google Cloud Storage 中时,可以跨视频资产进行基于文本的搜索。 下图显示了 Cloud Video Intelligence API 的各种应用程序和用例:
![](img/fa194721-0bde-4a9d-87ec-908e30d4fe5a.png)
* **AutoML Vision** :此服务可以定制火车模型以对视觉图像进行分类。 可以使用易于使用的界面对模型进行训练和评估。 也可以使用唯一的名称空间注册它们,以便通过 AutoML API 使用它们。 如果用户有大量要标记的图像,则可以使用人工标记服务来补充 AutoML Vision API。 可以通过 AutoML Vision 用户界面直接启动人工标签。
* **AutoML Vision**:此服务可以定制火车模型以对视觉图像进行分类。 可以使用易于使用的界面对模型进行训练和评估。 也可以使用唯一的名称空间注册它们,以便通过 AutoML API 使用它们。 如果用户有大量要标记的图像,则可以使用人工标记服务来补充 AutoML Vision API。 可以通过 AutoML Vision 用户界面直接启动人工标签。
# 语言
GCP 通过翻译和自然语言 API 提供用于语言信息和情报的 API,如下所示:
* **Cloud Translation API** :此 API 根据预先训练的模型以及可以使用 AutoML 翻译框架进行训练的自定义模型,在两种语言之间提供双向翻译。 当源文本的语言未知时,API 还可促进语言检测。 与其他 AI 服务类似,翻译服务也可用作 REST API,用于在应用程序内进行编程访问和集成。 在撰写本文时,支持 100 种语言。 无需显式解析即可翻译 HTML 内容的独特功能使提供网页翻译以及创建多语言站点和应用程序变得容易。
* **Cloud Natural Language API** :此 API 提供了对基于预训练模型以及可以使用 AutoML Natural Language 框架进行训练的自定义模型的非结构化文本和音频数据的见解。 API 可以根据各种形式的非结构化文本来收集有关人员,地点,事件,情感等的信息。 在内部,该服务利用丰富的本体图和不断发展的模型来提高准确性。 此 API 可能会使用的一些常见用例是客户情感分析和产品分类(零售市场研究)。 易于使用的 REST API 有助于语法分析,实体识别,情感分析和内容分类,并支持多种语言。
* **Cloud Translation API**:此 API 根据预先训练的模型以及可以使用 AutoML 翻译框架进行训练的自定义模型,在两种语言之间提供双向翻译。 当源文本的语言未知时,API 还可促进语言检测。 与其他 AI 服务类似,翻译服务也可用作 REST API,用于在应用程序内进行编程访问和集成。 在撰写本文时,支持 100 种语言。 无需显式解析即可翻译 HTML 内容的独特功能使提供网页翻译以及创建多语言站点和应用程序变得容易。
* **Cloud Natural Language API**:此 API 提供了对基于预训练模型以及可以使用 AutoML Natural Language 框架进行训练的自定义模型的非结构化文本和音频数据的见解。 API 可以根据各种形式的非结构化文本来收集有关人员,地点,事件,情感等的信息。 在内部,该服务利用丰富的本体图和不断发展的模型来提高准确性。 此 API 可能会使用的一些常见用例是客户情感分析和产品分类(零售市场研究)。 易于使用的 REST API 有助于语法分析,实体识别,情感分析和内容分类,并支持多种语言。
GCP 提供了 API,可通过 Dialogflow 和 Google Cloud Text-to-Speech / Speech-to-Text API 与智能机实现语音和对话界面。
......@@ -169,9 +169,9 @@ GCP 提供了 API,可通过 Dialogflow 和 Google Cloud Text-to-Speech / Speec
对话界面是支持 AI 的应用程序的重要方面。 GCP 提供了 Dialogflow 引擎,用于通过简单的界面和 API 创建企业级的对话应用程序,如下所示:
* **Dialogflow Enterprise Edition** :此服务使用预先训练好的随时可用的底层深度学习模型,为应用程序的会话界面创建提供便利。 会话服务可用于具有网站,移动应用程序甚至**物联网****IoT**)设备的用户的自然界面。 在编写本书时,该服务支持 20 种语言的对话界面。 Dialogflow 与 Natural Language API 无缝集成,以便在进行实时对话时执行情感分析。 这有助于为客户提供特定于客户的针对性服务。 该界面可能的一些用例包括企业生产率的提高,面向最终客户的自助业务交易以及与 IoT 设备的自然语言通信。
* **Cloud Text-to-Speech API** :此 API 有助于从输入文本合成人类语音。 该服务具有多种语言和变体,可以为应用程序创建自然语言界面。 负责文本到语音转换的机器学习模型已经过预先训练,并且不断发展以提高准确性和保真度,使其尽可能接近自然的人声。 可以通过 Text-to-Speech API 实现的一些常见用例包括呼叫中心自动化,与 IoT 设备的交互以及将文本转换为音频以供阅读器使用。
* **Cloud Speech-to-Text API** :此 API 基于强大的模型,这些模型经过预先训练,可以将音频输入转换为多种语言的文本。 该 API 支持实时流式传输或预先录制的音频输入。 它还具有自动检测语言的能力,并支持将短格式和长格式音频片段实时转换为文本。 在编写本书时,语音到文本接口有四类预训练的模型。 这些模型适用于特定的用例和对话界面:
* **Dialogflow Enterprise Edition**:此服务使用预先训练好的随时可用的底层深度学习模型,为应用程序的会话界面创建提供便利。 会话服务可用于具有网站,移动应用程序甚至**物联网****IoT**)设备的用户的自然界面。 在编写本书时,该服务支持 20 种语言的对话界面。 Dialogflow 与 Natural Language API 无缝集成,以便在进行实时对话时执行情感分析。 这有助于为客户提供特定于客户的针对性服务。 该界面可能的一些用例包括企业生产率的提高,面向最终客户的自助业务交易以及与 IoT 设备的自然语言通信。
* **Cloud Text-to-Speech API**:此 API 有助于从输入文本合成人类语音。 该服务具有多种语言和变体,可以为应用程序创建自然语言界面。 负责文本到语音转换的机器学习模型已经过预先训练,并且不断发展以提高准确性和保真度,使其尽可能接近自然的人声。 可以通过 Text-to-Speech API 实现的一些常见用例包括呼叫中心自动化,与 IoT 设备的交互以及将文本转换为音频以供阅读器使用。
* **Cloud Speech-to-Text API**:此 API 基于强大的模型,这些模型经过预先训练,可以将音频输入转换为多种语言的文本。 该 API 支持实时流式传输或预先录制的音频输入。 它还具有自动检测语言的能力,并支持将短格式和长格式音频片段实时转换为文本。 在编写本书时,语音到文本接口有四类预训练的模型。 这些模型适用于特定的用例和对话界面:
* `command_and_search`:可用于短命令和语音搜索。
* `phone_call`:用于来自电话对话的音频。
* `video`:适用于作为视频信号一部分或以更高采样率录制的音频。
......
......@@ -256,7 +256,7 @@ def predict_json(project, model, instances, version=None):
在此用户项目矩阵中,行代表用户,每一列都是项目,每个单元格都是用户评分。 共有 j + 1 个用户和 n + 1 个项目。 在此, *<sub>jn</sub>**i <sub>n</sub>* 的用户 *u <sub>j</sub>* 分数。 *A <sub>jn</sub>* 可以在 1 到 5 之间。有时,如果矩阵是用户 *u <sub>i</sub>* 是否看着对象[HTG20 无论是否 <sub>j</sub> , *A <sub>jn</sub>* 也可以是二进制的。 在这种情况下, *A <sub>jn</sub>* 为 0 或 1。在我们的情况下,我们将 *A <sub>jn</sub>* 视为 1 到 5 分 。 该矩阵是非常稀疏的矩阵,这意味着其中的许多单元都是空的。
由于项目很多,因此单个用户不可能对所有项目进行评分。 在实际情况下,单个用户甚至不会给最低的项目评分。 这就是为什么此矩阵中约有 99%的单元空着。 空单元格可以表示为**而不是数字**(**NaN**)。 例如,假设 n 为 1000 万,m 为 20,000。 因此 n * m 为 20 ^ 10M,这是一个非常大的数字。 如果用户平均给 5 项评分,则评分总数为 5 * 1 千万= 5 *10⁶。 这被称为矩阵的**的** **奇偶性。 矩阵稀疏度的公式如下:**
由于项目很多,因此单个用户不可能对所有项目进行评分。 在实际情况下,单个用户甚至不会给最低的项目评分。 这就是为什么此矩阵中约有 99%的单元空着。 空单元格可以表示为**而不是数字**(**NaN**)。 例如,假设 n 为 1000 万,m 为 20,000。 因此 n * m 为 20 ^ 10M,这是一个非常大的数字。 如果用户平均给 5 项评分,则评分总数为 5 * 1 千万= 5 *10⁶。 这被称为矩阵的**的** **奇偶性。 矩阵稀疏度的公式如下:
*矩阵的稀疏度=空单元数/单元总数。*
......
......@@ -687,7 +687,7 @@ GCP 提供了一个非常有效且易于使用的 API,用于语音到文本的
与语音到文本 API 交互的方法有以下三种:
* **同步识别:**这是一个阻塞 API 调用,适用于少于 1 分钟的音频内容。 音频数据将发送到 REST 或 gRPC 端点。 仅当转录整个音频内容时,API 才会响应。
* **同步识别**这是一个阻塞 API 调用,适用于少于 1 分钟的音频内容。 音频数据将发送到 REST 或 gRPC 端点。 仅当转录整个音频内容时,API 才会响应。
* **异步识别**:这是一个非阻塞 API 调用,适用于持续时间较长的音频内容(最长 480 分钟)。 此 API 调用在云上启动了长期运行的操作,并且调用服务需要定期轮询以获取转录结果。 呼叫服务需要在后续呼叫期间管理文本数据,以优化性能。
* **流识别**:用于实时转录,并通过 gRPC 作为双向流进行支持。 文本转换过程是实时的,并且响应文本可以作为连续流使用。 呼叫服务需要收集时间序列数据并将其用作流。
......@@ -874,7 +874,7 @@ URI 指向的音频文件应该可以通过 Internet 公开访问和/或可以
响应包含两个不同的部分:
* **标头信息:**这是有关语音到文本转录过程的标头级信息。 标头包含以下字段:
* **标头信息**这是有关语音到文本转录过程的标头级信息。 标头包含以下字段:
* `name`:这是语音转文字 API 分配的唯一名称。
* `metadata`:包括以下内容:
* `@type`:此字段表示 GCP 定义的响应类型。 该字段指向对象定义 URI。
......
......@@ -60,7 +60,7 @@ Google AI 平台笔记本为您节省了创建专门用于运行深度学习算
第二个概念称为图像。 映像是虚拟机的单个蓝图。 深度学习 VM 图片是由公共计算引擎预先配置的虚拟机图片。 图像类型有两种,如下所示:
* **自定义图像**:只有您的项目可以查看自定义图像。 这些图像是根据您正在处理的项目的需要专门定制的。 可以创建启动驱动器中的自定义图片以及其他图片。 然后,您可以使用此个性化图片生成示例。
* **公共图像:** Google,开放源代码社区和第三方供应商提供并维护公共图像。 默认情况下,所有项目都可以访问和使用这些图像来创建实例。
* **公共图像**Google,开放源代码社区和第三方供应商提供并维护公共图像。 默认情况下,所有项目都可以访问和使用这些图像来创建实例。
您可以免费使用大多数公共图像,但也可以在项目中添加一些高级图像。 您无需为 Compute Engine 的自定义图片付费,但在维护项目中的自定义图片时会产生存储费。
......@@ -541,20 +541,20 @@ SAVED_MODEL_PATH = KERAS_EXPORT_DIRS[-1]
让我们回顾一下前面代码中使用的每个参数:
* **数据格式**:用于输入文件进行预测的格式类型。 对于特定任务,所有输入文件必须具有相同的信息格式。 它可以是 JSON,`TF_Record``TF_Record_GZIP`格式。
* **输出数据格式:**用于预测输出文件的格式类型。
* **输入路径:**需要存储在 Google Cloud 存储中的输入数据文件的 URI。
* **输出路径:**云中要通过提供预测服务保存输出的位置。 您的项目需要被允许写到这个地方。
* **型号名称和版本名称:**您希望从中接收投影的型号名称和版本。 如果未指定版本,则使用模型的默认版本。 如果愿意,可以使用未部署的 SavedModel Cloud 存储路径,称为 Model URI。
* **输出数据格式**用于预测输出文件的格式类型。
* **输入路径**需要存储在 Google Cloud 存储中的输入数据文件的 URI。
* **输出路径**云中要通过提供预测服务保存输出的位置。 您的项目需要被允许写到这个地方。
* **型号名称和版本名称**您希望从中接收投影的型号名称和版本。 如果未指定版本,则使用模型的默认版本。 如果愿意,可以使用未部署的 SavedModel Cloud 存储路径,称为 Model URI。
* **模型 URI:**您要从中接收投影的模型名称和版本。 如果未指定版本,则使用模型的默认版本。 如果愿意,可以使用未部署的 SavedModel Cloud 存储路径,称为 Model URI。
* **模型 URI**您要从中接收投影的模型名称和版本。 如果未指定版本,则使用模型的默认版本。 如果愿意,可以使用未部署的 SavedModel Cloud 存储路径,称为 Model URI。
* **地区:** Google Compute Engine 将在其中运行您的工作的区域。 为了执行预测任务并保存输入和输出信息以获取非常广泛的信息,所有内容都需要在同一区域中设置。
* **地区**Google Compute Engine 将在其中运行您的工作的区域。 为了执行预测任务并保存输入和输出信息以获取非常广泛的信息,所有内容都需要在同一区域中设置。
* **最大工作者数(可选):**处理集群中用于此任务的最大预测节点数。 您可以通过这种方式为自动批量预测缩放功能设置上限。 如果不设置值,则默认为 10。
* **最大工作者数(可选)**处理集群中用于此任务的最大预测节点数。 您可以通过这种方式为自动批量预测缩放功能设置上限。 如果不设置值,则默认为 10。
* **运行时版本(可选):**使用的 AI 平台的版本。 包含此选项以允许您指定要与 AI Platform 模型一起使用的运行时版本。 对于已部署的模型版本,应始终忽略此值,以告知服务使用在部署模型版本时指定的相同版本。
* **运行时版本(可选)**使用的 AI 平台的版本。 包含此选项以允许您指定要与 AI Platform 模型一起使用的运行时版本。 对于已部署的模型版本,应始终忽略此值,以告知服务使用在部署模型版本时指定的相同版本。
* **签名名称(可选):**如果您保存的模型具有各种签名,则可以选择由 TensorFlow SavedModel 标识的备用输入/输出映射,以指定自定义 TensorFlow 签名名称。
* **签名名称(可选)**如果您保存的模型具有各种签名,则可以选择由 TensorFlow SavedModel 标识的备用输入/输出映射,以指定自定义 TensorFlow 签名名称。
4. 以下 Python 代码代表了如何构建 JSON 主体:
......
......@@ -28,7 +28,7 @@
该引擎还利用了不断增强的 ML 模型来支持其他意图,实体和上下文。 在本节中,我们将学习 DialogFlow 的各种构造块和接口,如以下列表所示:
* **DialogFlow 代理:**简而言之,此组件类似于需要培训才能处理用户呼叫的人工代理。 例如,一家银行的呼叫中心员工需要了解他们在接听客户电话时将会遇到的一些基本工作流程,术语和常见情况。 但是,培训不能满足所有可能的问题和会话分支。 代理需要了解上下文中的意图,并在信息不足以满足客户查询的情况下以最佳选择或首要问题做出回应。 与人工代理类似,DialogFlow 代理是一个复制人工代理并以一定程度的模糊性理解自然语言的模块。 作为 DialogFlow 应用程序开发人员,我们需要设计和开发 DialogFlow 代理,以处理预期应用程序上下文中的对话。
* **DialogFlow 代理**简而言之,此组件类似于需要培训才能处理用户呼叫的人工代理。 例如,一家银行的呼叫中心员工需要了解他们在接听客户电话时将会遇到的一些基本工作流程,术语和常见情况。 但是,培训不能满足所有可能的问题和会话分支。 代理需要了解上下文中的意图,并在信息不足以满足客户查询的情况下以最佳选择或首要问题做出回应。 与人工代理类似,DialogFlow 代理是一个复制人工代理并以一定程度的模糊性理解自然语言的模块。 作为 DialogFlow 应用程序开发人员,我们需要设计和开发 DialogFlow 代理,以处理预期应用程序上下文中的对话。
* **DialogFlow 意图**:一旦代理将文本转换成段,便会标记和标记某些关键字以了解代理上下文中的意图。 与人类对话一样,DialogFlow 代理和另一端的人类用户轮流进行对话,以使其成为有意义的对话。 从该人那里收集到的信息又称为**最终用户表示。** DialogFlow 代理需要经过培训,以将最终用户表达与预配置的意图匹配-此过程称为**意图分类**。 例如,如果我们正在设计一个 DialogFlow 代理来处理餐厅的预订,则该代理需要响应与菜单,时间安排和预订有关的用户问题和查询。 这称为对话的上下文,并且代理需要在餐厅预订的上下文中对用户的意图进行分类。 基于意图分类,代理要么通过从用户那里寻求其他信息来进行响应,要么查询应用程序的后端以找到问题的答案。 该意图包含以下组件:
* **训练短语**:这些是代理在应用程序上下文内的对话中寻找的预定义关键字集。 DialogFlow 使用基于主要短语集的本体映射,应用程序开发人员使用这些短语来扩展代理的词汇表。 这意味着应用程序开发人员无需针对所有可能的意图关键字和短语训练代理。 DialogFlow 引擎在内部增强了代理上下文中可能的一组意图表达。
* **动作**:应用程序开发人员可以为意图定义动作。 这些动作需要在系统中预定义和配置。 这些动作可能是对基础数据集进行修改的特定活动,也可能是代理在下一个会话输出中提出的主要问题。 例如,在酒店预订系统的情况下,如果最终用户的意图被理解为针对特定人数的特定时间的预订,则代理商可以继续进行并触发预订餐桌的动作。 如果代理商需要其他信息以了解预订时间,则可以提出补充问题。
......@@ -187,7 +187,7 @@ DialogFlow 控制台提供了一种快速测试已配置响应的简便方法。
一旦用户知道书店有新来的东西,代理就可以引导对话以查看用户是否感兴趣。 如果是,则可以将意图响应配置为引导用户保留特定书籍的副本以供提取。 为了简化此操作,我们需要从用户的表达式中捕获参数。 到目前为止,这是使用 MyBookStore 代理进行的转换的流程:
| 来电者:你好我的书店代理:您好,感谢您致电我的书店。 我们的营业时间为上午 9 点至下午 6 点。来电者:这个月有什么新来的?我的书店的代理人:这个月我们有三个新来的人。 您想来接下一本书吗?来电者:是的。 我想明天来接**。**我的书店代理:可以。 你明天想什么时间来?来电者:**上午 10 点**。我的书店代理:知道了。 您的约会预定于 **2019 年 12 月 30 日****上午 10 点**进行。 再见。 |
| 来电者:你好我的书店代理:您好,感谢您致电我的书店。 我们的营业时间为上午 9 点至下午 6 点。来电者:这个月有什么新来的?我的书店的代理人:这个月我们有三个新来的人。 您想来接下一本书吗?来电者:是的。 我想明天来接。我的书店代理:可以。 你**明天**想什么时间来?来电者:**上午 10 点**。我的书店代理:知道了。 您的约会预定于 **2019 年 12 月 30 日****上午 10 点**进行。 再见。 |
在这种情况下,用户打算去商店并提到一天。 DialogFlow 代理需要配置为从用户表达式中提取含义。 对于人类来说,从对话中提取有意义的信息是一件容易的事。 但是,机器(DialogFlow)代理需要针对特定​​的对话流进行培训。 要安排商店访问的约会,让我们创建一个名为`Store_Visit`的新意图:
......
......@@ -114,7 +114,7 @@ Google 已经开发了 TPU,以加速 ML 工作流程。 借助 Cloud TPU,用
Google 提供了两种不同类型的配置,用户可以在两个 TPU 版本中利用它们。 它们如下:
* **单设备 TPU** :这些是执行所有操作的单独设备。 这些设备未通过网络与其他 TPU 设备互连。 实际上,一个以上的单个 TPU 设备无法通过网络连接到另一设备。
* **单设备 TPU**:这些是执行所有操作的单独设备。 这些设备未通过网络与其他 TPU 设备互连。 实际上,一个以上的单个 TPU 设备无法通过网络连接到另一设备。
* **TPU 盒**:TPU 盒不过是群集,其中有多个 TPU 设备通过高速网络与另一台设备互连。
下图描述了单个 TPU 设备,因为它不连接到另一个 TPU 设备,因此不需要高速网络带宽。 TPU 节点仅连接到一个 TPU 设备。 TPU 中的芯片已经互连,不需要主机 CPU 或主机网络资源:
......@@ -143,7 +143,7 @@ Google 提供了两种不同类型的配置,用户可以在两个 TPU 版本
**TPU 软件体系结构的流程**:TensorFlow 生成计算图,并通过 **gRPC 远程过程调用****gRPC**)。 根据您选择的 TPU 的类型和可用于工作负载的设备数量,TPU 节点会及时编译计算图,并将二进制文件发送到一个或多个可用的 TPU 设备。
下图描述了 TPU 软件体系结构的软件组件块。 它由 ML 模型, **TPUEstimator****TensorFlow 客户端****TensorFlow Server****XLA 即时(JIT)编译** **组成 ] r**
下图描述了 TPU 软件体系结构的软件组件块。 它由 ML 模型, **TPUEstimator****TensorFlow 客户端****TensorFlow Server****XLA 即时(JIT)编译** **组成 ] r**
![](img/b3c22eb1-bc71-4c74-b8e4-fa6fbb9eb189.png)
......@@ -151,7 +151,7 @@ Google 提供了两种不同类型的配置,用户可以在两个 TPU 版本
让我们详细讨论每个组件,如下所示:
* **TPUEstimator** :TPUEstimator 简化了 Cloud TPU 的模型构建,以提取最大的 TPU 性能。 TPUEstimator 是基于估计器的高级 API。 TPUEstimator 将 ML 程序转换为 TensorFlow 操作。 对于使用 Cloud TPU 的 ML 模型,绝对应该使用 TPUEstimator。
* **TPUEstimator**:TPUEstimator 简化了 Cloud TPU 的模型构建,以提取最大的 TPU 性能。 TPUEstimator 是基于估计器的高级 API。 TPUEstimator 将 ML 程序转换为 TensorFlow 操作。 对于使用 Cloud TPU 的 ML 模型,绝对应该使用 TPUEstimator。
* **TensorFlow 客户端**:TensorFlow 客户端将 TensorFlow 操作转换为计算图,然后通过 gRPC 发送到 TensorFlow 服务器。
* **TensorFlow 服务器**:TensorFlow 服务器在 Cloud TPU 服务器上运行。 当 TensorFlow 服务器从 TensorFlow 客户端接收到计算图时,它将从所需的存储中加载输入。 它将图划分为多个块,应在 TPU 和 CPU 上运行。 它生成**加速线性代数****XLA**)操作,以便在 Cloud TPU 上运行子图,并调用 XLA 编译器。
* **XLA 编译器**:XLA 是**即时****JIT**)编译器。 TensorFlow 服务器产生 XLA 编译器视为输入的操作。 XLA 生成在 Cloud TPU 上运行的二进制代码,包括从片上存储器到硬件执行单元的数据编排以及芯片间通信。 Cloud TPU 使用 Cloud TPU 服务器和 Cloud TPU 之间的**外围组件互连快速****PCIe**)连接来加载二进制代码,然后启动执行。
......
......@@ -35,7 +35,7 @@ Cloud ML Engine 具有各种组件,它们执行独特的操作并在机器学
* **线性学习器**:此学习器算法使用 TensorFlow 估计器,LinearClassifier 和 LinearRegressor,可用于分类和回归问题。 该算法支持**图形处理单元****GPU**)加速,以及默认的**中央处理单元****CPU**)加速器。
* **宽和深**:这是一种旨在具有最佳级别的算法,用于存储训练数据并同时概括输入。 该算法对于分类,回归和排名问题很有用。 该算法支持 GPU 加速以及默认的 CPU 加速器。
* **XGBoost** :我们已经在“第 3 章”,*使用 XGBoost 的机器学习应用程序*中详细了解了此算法,Cloud ML Engine 提供了对该算法的内置包装器 并以并行的方式简化了两个阶段,即预处理和培训。 在预处理阶段,Cloud ML Engine 将分类数据和数字数据转换为统一的数据集,该数据集完全以数字格式表示。 该算法可轻松用于诸如点击率预测之类的用例。 GPU 加速器不支持该算法,并且只能与 CPU 一起使用。
* **XGBoost**:我们已经在“第 3 章”,*使用 XGBoost 的机器学习应用程序*中详细了解了此算法,Cloud ML Engine 提供了对该算法的内置包装器 并以并行的方式简化了两个阶段,即预处理和培训。 在预处理阶段,Cloud ML Engine 将分类数据和数字数据转换为统一的数据集,该数据集完全以数字格式表示。 该算法可轻松用于诸如点击率预测之类的用例。 GPU 加速器不支持该算法,并且只能与 CPU 一起使用。
一旦确定了合适的算法,就需要对输入(培训,评估和生产)数据进行格式化,以匹配内置算法的预期模式。 数据需要以不带标题的**逗号分隔值****CSV**)格式提交,并且第一列应代表目标变量。 我们需要在 GCP 上为内置算法指定存储分区,以存储训练输出。 Cloud ML Engine 为培训工作提供了有限的自定义,例如使用特定的机器类型进行培训。
......@@ -106,18 +106,18 @@ Cloud ML Engine 具有各种组件,它们执行独特的操作并在机器学
设置算法参数后,最后一步是在下一个工作流程步骤中提供作业 ID,区域和资源大小,如下所示:
13. **作业 ID** :这是一个字母数字字段,在项目中必须是唯一的,并且一旦设置就无法更改。 建议在作业 ID 创建中使用项目特定的上下文,因为这样可以更轻松地在生产环境中进行监视和故障排除。
13. **作业 ID**:这是一个字母数字字段,在项目中必须是唯一的,并且一旦设置就无法更改。 建议在作业 ID 创建中使用项目特定的上下文,因为这样可以更轻松地在生产环境中进行监视和故障排除。
14. **区域**:这是用于训练模型的服务器所在的地理区域。 建议使用相同的区域来存储训练数据和模型训练。
15. **规模层**:这定义了需要分配给 AI 平台用于培训工作的资源。 各个层具有预先配置的资源级别,并且可以进行自定义,如下所示:
* **BASIC** :此层设置单个工作程序实例。 顾名思义,这是基本配置级别,不能考虑用于生产负载。
* **STANDARD_1** :此层配置许多工作程序和一组有限的参数服务器。
* **PREMIUM_1** :此层预配置了大量工作程序和参数服务器。
* **BASIC_GPU** :此层为 GPU 提供单个工作程序实例。 再一次,这将加快训练速度,仅对实验有益。
* **BASIC_TPU** :此层使用 Cloud TPU 设置单个工作程序实例。
* **CUSTOM** :使用此配置时,可以完全配置用于训练的群集的规模。 需要为自定义配置设置以下参数:
* **BASIC**:此层设置单个工作程序实例。 顾名思义,这是基本配置级别,不能考虑用于生产负载。
* **STANDARD_1**:此层配置许多工作程序和一组有限的参数服务器。
* **PREMIUM_1**:此层预配置了大量工作程序和参数服务器。
* **BASIC_GPU**:此层为 GPU 提供单个工作程序实例。 再一次,这将加快训练速度,仅对实验有益。
* **BASIC_TPU**:此层使用 Cloud TPU 设置单个工作程序实例。
* **CUSTOM**:使用此配置时,可以完全配置用于训练的群集的规模。 需要为自定义配置设置以下参数:
* **主节点类型**:需要用于主节点的虚拟机的类型。 这是必填字段。
* **工人数**:这定义了用于培训的工人数。 如果工人数设置为 1 或更多,则还需要设置工人类型。
* **参数服务器计数**:这定义了用于训练的参数服务器的计数。 如果参数服务器的数量为 1 个或更多,则需要设置参数服务器类型。
......@@ -154,7 +154,7 @@ AI 平台与典型的机器学习开发生命周期同步工作并对其进行
另外,可以以分布式方式训练模型。 AI 平台使其成为一个无缝的过程,并要求将有关多台机器的详细信息作为训练群集的参数进行传递。 培训服务根据机器类型和所选容量执行资源分配。 在单个节点上运行的每个训练作业都称为**复制副本**。 每个副本都扮演一个角色,并对一组特定的训练数据进行操作。 工作负载分配的详细信息由平台管理,不需要特定的用户配置或参与。 有三种类型的实体有助于分布式模型训练,如下所示:
* **主节点:** AI 平台将一个副本指定为主节点。 分布式培训计划在其他可用节点上进行,并且主节点会跟踪进度。 培训作业的总体状态与主节点的状态相同。
* **主节点**AI 平台将一个副本指定为主节点。 分布式培训计划在其他可用节点上进行,并且主节点会跟踪进度。 培训作业的总体状态与主节点的状态相同。
* **工作者**:集群中可用的节点扮演工作者的角色。 单个工作人员执行其任务,并将状态报告回主节点。
* **参数服务器**:副本节点之一被指定为参数服务器,并执行节点之间模型的共享状态的协调任务。
......@@ -259,7 +259,7 @@ POST https://ml.googleapis.com/v1/{parent=projects/*}/models
* `list`:提供项目中存在的所有模型的列表
* `patch`:更新模型资源
* `setIamPolicy`:设置 AI 平台内特定资源的访问控制
* `testIamPermissions` **:**列出呼叫用户帐户对特定资源拥有的所有权限
* `testIamPermissions`列出呼叫用户帐户对特定资源拥有的所有权限
为了执行在线预测,需要以值列表形式或 JSON 对象的形式对输入数据进行结构化和格式化。 以下是可以在 AI 平台上传递给 Tensor 模型的输入张量的示例:
......
......@@ -186,27 +186,27 @@ gcloud ai-platform local predict --model-dir model_storage_path/ \
以下组件可用作 GCP 中的数据存储区; 在我们的应用程序中,我们将利用 Cloud SQL:
* **Cloud SQL** :这是一个完全托管的数据库,可以充当 GCP 上的关系数据库。 在撰写本文时,Cloud SQL 可以与 MySQL,PostgreSQL 和 SQL Server 一起使用。
* **Cloud Bigtable** :这是 GCP 上的 NoSQL 数据库服务。 Bigtable 为数据集提供了低延迟,可大规模扩展的界面。 该存储是 ML 应用程序的理想选择,并且易于与各种开源大数据框架集成。
* **Cloud Spanner** :这是一种水平可伸缩的关系数据库服务,在各个实例和节点之间高度一致。 它结合了关系型数据库和非关系型数据库的最佳功能,其完全托管的特性使其成为用最少的时间投资来进行大型数据库部署的有吸引力的选择。
* **Cloud Memorystore** :这是一种完全托管的内存中数据存储服务,可用于构建应用程序缓存,并为数据访问提供极低的延迟。 该内存存储利用 Redis 协议,从而使它在各个部署之间保持一致。 缓存的移植很容易。
* **Cloud Firestore** :这是一个方便的 NoSQL 数据存储,用于使客户端和服务器端之间的数据保持同步。 它通常用于移动,Web 和服务器开发,并为构建响应式应用程序和跨设备应用程序提供支持。
* **Cloud Datastore** :这是另一个完全托管的 NoSQL 数据库,用于处理分片和复制,以确保跨部署区域的高可用性。 它支持 ACID 事务以及类似 SQL 的查询和索引。 数据存储区提供了 REST API,通过允许通过多级安全连接进行数据访问,可以轻松集成外部应用程序。 可以很容易地更改基础数据结构,并提供一种易于使用的查询语言。
* **Cloud SQL**:这是一个完全托管的数据库,可以充当 GCP 上的关系数据库。 在撰写本文时,Cloud SQL 可以与 MySQL,PostgreSQL 和 SQL Server 一起使用。
* **Cloud Bigtable**:这是 GCP 上的 NoSQL 数据库服务。 Bigtable 为数据集提供了低延迟,可大规模扩展的界面。 该存储是 ML 应用程序的理想选择,并且易于与各种开源大数据框架集成。
* **Cloud Spanner**:这是一种水平可伸缩的关系数据库服务,在各个实例和节点之间高度一致。 它结合了关系型数据库和非关系型数据库的最佳功能,其完全托管的特性使其成为用最少的时间投资来进行大型数据库部署的有吸引力的选择。
* **Cloud Memorystore**:这是一种完全托管的内存中数据存储服务,可用于构建应用程序缓存,并为数据访问提供极低的延迟。 该内存存储利用 Redis 协议,从而使它在各个部署之间保持一致。 缓存的移植很容易。
* **Cloud Firestore**:这是一个方便的 NoSQL 数据存储,用于使客户端和服务器端之间的数据保持同步。 它通常用于移动,Web 和服务器开发,并为构建响应式应用程序和跨设备应用程序提供支持。
* **Cloud Datastore**:这是另一个完全托管的 NoSQL 数据库,用于处理分片和复制,以确保跨部署区域的高可用性。 它支持 ACID 事务以及类似 SQL 的查询和索引。 数据存储区提供了 REST API,通过允许通过多级安全连接进行数据访问,可以轻松集成外部应用程序。 可以很容易地更改基础数据结构,并提供一种易于使用的查询语言。
以下组件可用于计算和处理; 在我们的应用程序中,我们将利用云功能:
* **Cloud SDK** :这是用于使用 GCP 开发的一组工具和库。 这是所有 GCP 服务的命令行界面,例如虚拟机编排,计算引擎,网络和磁盘存储。 它通常用于自动执行各种应用程序管理任务。 对于 AIP 应用程序,我们可以使用 Cloud SDK 来管理开发,测试和部署管道,并自动管理整个应用程序。
* **Cloud SDK**:这是用于使用 GCP 开发的一组工具和库。 这是所有 GCP 服务的命令行界面,例如虚拟机编排,计算引擎,网络和磁盘存储。 它通常用于自动执行各种应用程序管理任务。 对于 AIP 应用程序,我们可以使用 Cloud SDK 来管理开发,测试和部署管道,并自动管理整个应用程序。
* **云功能**:这是一个无服务器,事件驱动的计算平台。 根据工作负载和基于预定义的事件,可以轻松地进行伸缩。 对于 AIP 应用程序,一旦发票到达源位置,我们就可以使用 Cloud Functions 触发自动过程,以读取发票并进行处理。 它为跨各种语言和应用程序接口协议的互操作性提供了无缝支持。 它基于最小特权的核心安全原理工作,并根据为用户分配的角色,促进对事件和功能的安全访问。
以下是 AI 工具包中可利用的组件: 在我们的应用程序中,我们将利用云机器学习,自然语言 API,视觉 API,翻译 API,语音 API 和云视频智能 API:
* **云机器学习**:这是一个全面的平台,可利用 Google Cloud 的功能,使训练和部署可用于任何类型和大小的数据的 ML 模型变得容易。 在平台上培训的模型可以立即使用,并且可以通过安全的 API 进行访问,从而可以以最少的资金和时间投入轻松开发应用程序的快速原型。
* **自然语言 API** :自然语言 API 可用于执行 Web 规模的文本分析。 该 API 与 AutoML 集成在一起,并允许用户基于非结构化数据来训练,测试和部署其模型。 有预训练的模型,具有各种功能域的各种应用程序可以轻松利用这些模型。 该平台使协作和共享不断被平台升级的模型变得容易,从而提供了一种一致且可靠的方式来创建用于处理自然语言形式输入的应用程序。 这样可以通过语音 API 与人进行数据交互。
* **自然语言 API**:自然语言 API 可用于执行 Web 规模的文本分析。 该 API 与 AutoML 集成在一起,并允许用户基于非结构化数据来训练,测试和部署其模型。 有预训练的模型,具有各种功能域的各种应用程序可以轻松利用这些模型。 该平台使协作和共享不断被平台升级的模型变得容易,从而提供了一种一致且可靠的方式来创建用于处理自然语言形式输入的应用程序。 这样可以通过语音 API 与人进行数据交互。
* **视觉 API** :这在基于视觉输入(例如图像)的分析中非常方便。 如果机器具有补充人类视觉的能力(例如从 PDF 或 Word 文档抄录文本),我们可以将大量 API 用于此用例。 这样,可以以有效和具有成本效益的方式对大量文档进行分类。 无需大量设置即可使用该服务,因此,一旦为项目和用户帐户启用了该服务,就可以轻松无缝地开始使用它。 强大的 API 层使您可以轻松以安全的方式与第三方应用程序集成。
* **Translation API** :这是一种便捷的服务,无需设置转换规则即可使用。 该 API 允许根据预先训练并不断发展的模型在各种语言之间进行翻译。 这些功能易于使用,为语言互操作性以及以各种语言构建的各种应用程序之间的集成打开了可能性。
* **语音 API** :这是智能机器的重要方面,它使人与应用程序之间具有类似人的界面。 首先,API 启用了文本到语音到文本的转换。 这些功能可用于创建对话应用程序。 DialogFlow 在内部利用语音 API 来促进对话。
* **Cloud Video Intelligence API** :此 API 使我们能够利用视频输入中的信息。 GCP 上有可用的预训练模型,这些模型可用于分类和识别视频帧内的特定对象。 它是自动驾驶汽车的组成部分之一,API 高效且可扩展,足以在关键任务应用中使用。
* **视觉 API**:这在基于视觉输入(例如图像)的分析中非常方便。 如果机器具有补充人类视觉的能力(例如从 PDF 或 Word 文档抄录文本),我们可以将大量 API 用于此用例。 这样,可以以有效和具有成本效益的方式对大量文档进行分类。 无需大量设置即可使用该服务,因此,一旦为项目和用户帐户启用了该服务,就可以轻松无缝地开始使用它。 强大的 API 层使您可以轻松以安全的方式与第三方应用程序集成。
* **Translation API**:这是一种便捷的服务,无需设置转换规则即可使用。 该 API 允许根据预先训练并不断发展的模型在各种语言之间进行翻译。 这些功能易于使用,为语言互操作性以及以各种语言构建的各种应用程序之间的集成打开了可能性。
* **语音 API**:这是智能机器的重要方面,它使人与应用程序之间具有类似人的界面。 首先,API 启用了文本到语音到文本的转换。 这些功能可用于创建对话应用程序。 DialogFlow 在内部利用语音 API 来促进对话。
* **Cloud Video Intelligence API**:此 API 使我们能够利用视频输入中的信息。 GCP 上有可用的预训练模型,这些模型可用于分类和识别视频帧内的特定对象。 它是自动驾驶汽车的组成部分之一,API 高效且可扩展,足以在关键任务应用中使用。
在下一部分中,概述了 GCP 上可用于构建端到端 AI 应用程序的各种组件,下面让我们看一下如何在 GCP 上构建自动发票处理应用程序。
......@@ -299,7 +299,7 @@ Vision API 还将 PDF 文件中找到的所有符号收集到一个文本字段
首先,让我们通过执行以下步骤来创建 Cloud SQL 实例:
1. 从左侧面板中,从“存储”部分中选择 **SQL**
1. 从左侧面板中,从“存储”部分中选择 **SQL**
![](img/afb811fe-5538-49b6-b1ad-edd9b3e32501.png)
......
......@@ -187,7 +187,7 @@ $python mobilenet_keras.py --im_path=pelican.jpg
Google 的研究人员希望 MobileNet 更轻巧。 如何使 MobileNet 具有更少的参数? 所有基于 CNN 的模型都增加了特征图(深度通道)的数量,同时减小了宽度和高度。 减小网络大小的一种简单方法是减小特征图的深度。 通道数越少,参数越少。 但这会削弱 CNN! 卷积过滤器将无法从浅层特征图中提取特征。 那我们现在怎么办?
Google 研究人员找到了解决该问题的方法,并介绍了现有 MobileNet 体系结构的两个主要变化:**扩展线性瓶颈层****倒置残差块。** 我们将在下一部分中介绍 MobileNetV2 的详细结构。
Google 研究人员找到了解决该问题的方法,并介绍了现有 MobileNet 体系结构的两个主要变化:**扩展线性瓶颈层****倒置残差块**我们将在下一部分中介绍 MobileNetV2 的详细结构。
# MobileNetV2 的结构
......
......@@ -321,11 +321,11 @@ The predictions for the notMNIST example are: [2.0, 5.0, 2.0, 2.0, 2.0, 2.0, 2.0
假设我们正在使用 CNN 模型进行人脸检测项目。 训练有素的网络的某些卷积可能*识别*眼睛,但有些可能是由鼻子,一些耳朵或嘴巴触发的。 只要我们具有所有组件,包括两只眼睛和耳朵,一只鼻子和一只嘴,无论它们的相对位置如何,完全连接的层都可以识别一张脸。 那就对了! 因此,以下两个图像 A 和 B 都将通过 CNN 人脸检测器:
**图片 A**
**图片 A**
![](img/e62dccc6-a063-4a7b-8d2e-b4d4ea8eadb1.png)
**图片 B**
**图片 B**
![](img/be8ef03a-7b54-4349-8899-852cfe6ed3f8.png)
......
......@@ -809,7 +809,7 @@ import pandas as pd
熊猫提供以下数据结构:
* **系列**:一维数组或向量,类似于表中的列
* **DataFrames** :二维表,带有表标题和行标签
* **DataFrames**:二维表,带有表标题和行标签
* **面板**:DataFrames 的字典,很像一个 MySQL 数据库,其中包含多个表
可以使用`pd.Series( )`方法创建一个熊猫系列,而可以使用`pd.DataFrame( )`方法创建一个 DataFrame-例如,在下面的代码中,我们使用多个序列对象创建一个熊猫 DataFrame 对象:
......
......@@ -42,9 +42,9 @@ Spotify 还引入了一项非常强大的功能-根据音频样本搜索歌曲
尽管云图像存储是 Dropbox 等公司提供的现有解决方案,但 Google Photos 通过将 AI 纳入方程式,彻底改变了云图像存储空间。 Google 相册由于其令人惊叹的功能,例如以下内容,已被全球数十亿人采用:
* **人脸识别:**此功能存在于名为 Picasa 的较早的 Google 产品中,该产品被认为是 Google Photos 的前身。
* **向导:** Google 相册自动确定在同一事件或场合拍摄的照片。 然后,它尝试创建有关图片的电影,或者只是触摸图像以使其看起来更好。 有时,Google 相册还会用看起来似乎是连续的照片来创建动画 GIF。
* **文档和模因的识别:** Google 相册建议其用户归档旧文档,屏幕截图和模因。 这对于节省设备存储空间非常有帮助:
* **人脸识别**此功能存在于名为 Picasa 的较早的 Google 产品中,该产品被认为是 Google Photos 的前身。
* **向导**Google 相册自动确定在同一事件或场合拍摄的照片。 然后,它尝试创建有关图片的电影,或者只是触摸图像以使其看起来更好。 有时,Google 相册还会用看起来似乎是连续的照片来创建动画 GIF。
* **文档和模因的识别**Google 相册建议其用户归档旧文档,屏幕截图和模因。 这对于节省设备存储空间非常有帮助:
![](img/07b18479-7ac7-4225-94b6-a59738a7ddc4.png)
......
......@@ -77,7 +77,7 @@ LBP 阵列 W <sub>3</sub> 以直方图形式表示如下:
可以使用不同的直方图比较方法来计算直方图之间的距离。 这些如下:
* **交叉方法:**
* **交叉方法**:
![](img/8a40f9f5-728b-4c5f-aadd-a3027faa8c9e.png)
......@@ -88,23 +88,23 @@ minima = np.minimum(test_hist,train_hist)
intersection = np.true_divide(np.sum(minima),np.sum(train_hist))
```
* **卡方方法:**
* **卡方方法**
![](img/9ccf09de-025c-4142-b055-429d39f0bb4c.png)
* **欧几里得方法:**
* **欧几里得方法**
![](img/d9afa095-dbe1-4142-8445-036a1ba18229.png)
* **城市街区方法:**
* **城市街区方法**
![](img/6595eecf-b046-41ec-90a9-2701ce62ebce.png)
* **Bhattacharya 方法:**
* **Bhattacharya 方法**
![](img/f55ed18c-e6bc-489f-adec-4b2d1dc6408a.png)
* **Wasserstein 方法:**
* **Wasserstein 方法**
![](img/030dc965-f4e1-4340-9941-aa55417eef52.png)
......
......@@ -384,10 +384,10 @@ plt.show()
实时 3D 曲面贴图的一些流行算法描述如下:
* **Kinect Fusion** :使用 Kinect 深度传感器的实时 3D 构造。 Kinect 是一种商品传感器平台,其中包含 30 Hz 的基于结构的飞行时间深度传感器。
* **Kinect Fusion**:使用 Kinect 深度传感器的实时 3D 构造。 Kinect 是一种商品传感器平台,其中包含 30 Hz 的基于结构的飞行时间深度传感器。
* **动态融合**:使用单个 Kinect 传感器使用体积 TSDF(截断有符号距离融合)技术的动态场景重建系统。 它需要一个嘈杂的深度图,并通过估计体积 6D 运动场来重建实时 3D 运动场景。
* **Fusion4D** :这使用多个实时 RGBD 摄像机作为输入,并使用体积融合以及使用密集对应字段的非刚性对齐来处理多个图像。 该算法可以处理较大的帧到帧运动和拓扑更改,例如,人们快速脱下外套或从左到右更改其面部方向。
* **Motion2Fusion** :此方法是用于实时(每秒 100 帧)重建的 360 度性能捕获系统。 它基于具有学习的 3D 嵌入的非刚性对齐策略,快速匹配策略,用于 3D 对应估计的机器学习以及用于复杂拓扑更改的后向/向前非刚性对齐策略。
* **Fusion4D**:这使用多个实时 RGBD 摄像机作为输入,并使用体积融合以及使用密集对应字段的非刚性对齐来处理多个图像。 该算法可以处理较大的帧到帧运动和拓扑更改,例如,人们快速脱下外套或从左到右更改其面部方向。
* **Motion2Fusion**:此方法是用于实时(每秒 100 帧)重建的 360 度性能捕获系统。 它基于具有学习的 3D 嵌入的非刚性对齐策略,快速匹配策略,用于 3D 对应估计的机器学习以及用于复杂拓扑更改的后向/向前非刚性对齐策略。
# 参数跟踪概述
......
......@@ -239,7 +239,7 @@ CNN 具有许多不同的参数。 训练 CNN 模型需要许多输入图像并
* **剩余的卷积和池化层**:剩余的计算– *CONV2,CONV3,CONV4,CONV5,POOL2* –遵循与第一卷积层相同的逻辑。
* **全连接(FC)层**:对于全连接层( *FC1,FC2* ),*参数* *的数量= [(当前层 n *上一个 层 n)+1]参数= 128 * 1,024 + 1 = 131,073*
* **退出(DROP)**:对于退出,将丢弃 20%的神经元。 剩余的神经元为 *1,024 * 0.8 = 820* 。 第二次删除的参数数= *820 x 820 +1 = 672401。*
* **CNN 的最后一层始终是 Softmax** :对于 Softmax,参数数= *7 x 820 +1 = 5,741*
* **CNN 的最后一层始终是 Softmax**:对于 Softmax,参数数= *7 x 820 +1 = 5,741*
在“第 3 章”,*使用 OpenCV 和 CNN 进行面部检测的第一张图中用于面部表情识别的神经网络类别有 7 个类别,其准确性约为 54%。*
......
......@@ -445,8 +445,8 @@ plt.show()
上述流程图包含几个关键组件:
* **模型开发:**这包括选择一个合适的预训练模型,除去其顶部附近的层,冻结之前的所有层,并添加一个新的顶层以匹配我们的班级。 这意味着,如果我们使用在 1,000 个类的 ImageNet 数据集上训练的预训练模型,我们将删除其顶层,并仅用 3 类`bed``chair``sofa`替换为新的顶层。 。
* **模型训练:**这涉及首先编译模型,然后使用`model.fit()`功能开始训练。
* **模型开发**这包括选择一个合适的预训练模型,除去其顶部附近的层,冻结之前的所有层,并添加一个新的顶层以匹配我们的班级。 这意味着,如果我们使用在 1,000 个类的 ImageNet 数据集上训练的预训练模型,我们将删除其顶层,并仅用 3 类`bed``chair``sofa`替换为新的顶层。 。
* **模型训练**这涉及首先编译模型,然后使用`model.fit()`功能开始训练。
* **模型输出**:将上传的图像和测试图像数据库中的每个图像传递给模型,以生成特征向量。 上载的图像也用于确定模型类别。
* **搜索算法**:搜索算法在给定类别指定的测试图像文件夹中执行,而不是在整个测试图像集中执行,从而节省了时间。 搜索算法依赖于 CNN 模型选择的正确类别。 如果类匹配不正确,则最终的视觉搜索将导致错误的结果。 要解决此问题,可以采取几个步骤:
......
......@@ -75,13 +75,13 @@ Google Colab 包含基于几个预先训练的模型的内置 DeepLab Python 代
在深入研究示例代码之前,让我们了解 Google 机器学习的一些基本功能,所有这些功能都是免费提供的,以便我们可以开发强大的计算机视觉和机器学习代码:
* **Google Colab** :您可以从 Google 云端硬盘打开 Goog​​le Colab,如以下屏幕截图所示。 如果您是第一次使用它,则必须先单击“新建”,然后单击“更多”,才能将 Google Colab 安装到您的云端硬盘。 Google Colab 可让您无需安装即可打开 Jupyter Notebook。 它还内置了 TensorFlow,这意味着处理包含给您的所有 TensorFlow 依赖项要容易得多:
* **Google Colab**:您可以从 Google 云端硬盘打开 Goog​​le Colab,如以下屏幕截图所示。 如果您是第一次使用它,则必须先单击“新建”,然后单击“更多”,才能将 Google Colab 安装到您的云端硬盘。 Google Colab 可让您无需安装即可打开 Jupyter Notebook。 它还内置了 TensorFlow,这意味着处理包含给您的所有 TensorFlow 依赖项要容易得多:
![](img/b8aedd97-824a-432d-bdab-c84027be44f7.png)
上面的屏幕快照显示了 Google Colab 文件夹相对于 Google 云端硬盘的位置。 它使您可以处理`.ipynb`文件,然后进行存储。
* **Google Cloud TPU:**这是张量处理单元。 它使您可以更快地运行神经网络代码。 进入 Google Colab 笔记本后,您可以为 Python `.ipynb`文件激活 TPU,如以下屏幕截图所示:
* **Google Cloud TPU**这是张量处理单元。 它使您可以更快地运行神经网络代码。 进入 Google Colab 笔记本后,您可以为 Python `.ipynb`文件激活 TPU,如以下屏幕截图所示:
![](img/b34db856-0328-4cc1-bc6f-c01c96b2bc67.png)
......
......@@ -198,10 +198,10 @@ showim(image)
音频文件的一些流行格式如下:
* **MP3** :一种非常流行的格式,广泛用于共享音乐文件。
* **AAC** :是对 MP3 格式的改进,AAC 主要用于 Apple 设备。
* **WAV** :由 Microsoft 和 IBM 创建,这种格式是无损压缩,即使对于小的音频文件也可能很大。
* **MIDI** :乐器数字接口文件实际上不包含音频。 它们包含乐器音符,因此体积小且易于使用。
* **MP3**:一种非常流行的格式,广泛用于共享音乐文件。
* **AAC**:是对 MP3 格式的改进,AAC 主要用于 Apple 设备。
* **WAV**:由 Microsoft 和 IBM 创建,这种格式是无损压缩,即使对于小的音频文件也可能很大。
* **MIDI**:乐器数字接口文件实际上不包含音频。 它们包含乐器音符,因此体积小且易于使用。
音频处理是以下技术的增长所必需的:
......
......@@ -25,12 +25,12 @@
让我们尝试通过定义与通用强化学习算法关联的变量来赋予此定义更多的结构:
* **代理:**执行动作的虚拟实体。 是替换游戏/软件的指定用户的实体。
* **操作****和**):代理可以执行的可能操作。
* **代理**执行动作的虚拟实体。 是替换游戏/软件的指定用户的实体。
* **操作**`a`):代理可以执行的可能操作。
* **环境**`e`):在软件/游戏中可用的一组场景。
* **状态**`S`):所有方案的集合,以及其中可用的配置。
* **奖励**`R`):对于代理执行的任何操作返回的值,然后代理尝试将其最大化。
* **策略****π**):代理用来确定接下来必须执行哪些操作的策略。
* **策略**`π`):代理用来确定接下来必须执行哪些操作的策略。
* **值**`V`):R 是短期每动作奖励,而值是在一组动作结束时预期的总奖励。 Vπ(s)通过遵循状态 S 下的策略π来定义预期的总回报。
下图显示了该算法的流程:
......
......@@ -66,9 +66,9 @@ GAN 的核心概念围绕两个玩家玩游戏的想法。 在这个游戏中,
GAN 具有许多不同的变体,所有变体都取决于它们正在执行的任务。 其中一些如下:
* **渐进式 GAN** :在 ICLR 2018 上的一篇论文中介绍,渐进式 GAN 的生成器和鉴别器均以低分辨率图像开始,并随着图像层的增加而逐渐受到训练,从而使系统能够生成 高分辨率图像。 例如,在第一次迭代中生成的图像为 10x10 像素,在第二代中它变为 20x20,依此类推,直到获得非常高分辨率的图像为止。 生成器和鉴别器都在深度上一起增长。
* **有条件的 GAN** :假设您有一个 GAN 可以生成 10 个不同类别的样本,但是在某个时候,您希望它在给定类别或一组类别内生成样本。 这是有条件 GAN 起作用的时候。有条件 GAN 使我们可以生成 GAN 中经过训练可以生成的所有标签中任何给定标签的样本。 在图像到图像的翻译领域中,已经完成了条件 GAN 的一种非常流行的应用,其中将一个图像生成为相似或相同域的另一个更逼真的图像。 您可以通过[这个页面](https://affinelayer.com/pixsrv/)上的演示来尝试涂鸦一些猫,并获得涂鸦的真实感版本。
* **堆叠式 GAN** :堆叠式 GAN 的最流行的应用是基于文本描述生成图像。 在第一阶段,GAN 生成描述项的概述,在第二阶段,根据描述添加颜色。 然后,后续层中的 GAN 将更多细节添加到图像中,以生成图像的真实感版本,如描述中所述。 通过观察堆叠 GAN 的第一次迭代中的图像已经处于将要生成最终输出的尺寸,可以将堆叠式 GAN 与渐进式 GAN 区别开来。但是,与渐进式 GAN 相似,在第一次迭代中, 图像是最小的,并且需要进一步的层才能将其馈送到鉴别器。
* **渐进式 GAN**:在 ICLR 2018 上的一篇论文中介绍,渐进式 GAN 的生成器和鉴别器均以低分辨率图像开始,并随着图像层的增加而逐渐受到训练,从而使系统能够生成 高分辨率图像。 例如,在第一次迭代中生成的图像为 10x10 像素,在第二代中它变为 20x20,依此类推,直到获得非常高分辨率的图像为止。 生成器和鉴别器都在深度上一起增长。
* **有条件的 GAN**:假设您有一个 GAN 可以生成 10 个不同类别的样本,但是在某个时候,您希望它在给定类别或一组类别内生成样本。 这是有条件 GAN 起作用的时候。有条件 GAN 使我们可以生成 GAN 中经过训练可以生成的所有标签中任何给定标签的样本。 在图像到图像的翻译领域中,已经完成了条件 GAN 的一种非常流行的应用,其中将一个图像生成为相似或相同域的另一个更逼真的图像。 您可以通过[这个页面](https://affinelayer.com/pixsrv/)上的演示来尝试涂鸦一些猫,并获得涂鸦的真实感版本。
* **堆叠式 GAN**:堆叠式 GAN 的最流行的应用是基于文本描述生成图像。 在第一阶段,GAN 生成描述项的概述,在第二阶段,根据描述添加颜色。 然后,后续层中的 GAN 将更多细节添加到图像中,以生成图像的真实感版本,如描述中所述。 通过观察堆叠 GAN 的第一次迭代中的图像已经处于将要生成最终输出的尺寸,可以将堆叠式 GAN 与渐进式 GAN 区别开来。但是,与渐进式 GAN 相似,在第一次迭代中, 图像是最小的,并且需要进一步的层才能将其馈送到鉴别器。
在此项目中,我们将讨论 GAN 的另一种形式,称为**超分辨率 GAN****SRGAN**)。 我们将在下一部分中了解有关此变体的更多信息。
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册