提交 f79d61d5 编写于 作者: W wizardforcel

2021-01-06 16:55:37

上级 9cb32847
......@@ -22,7 +22,7 @@
* NumPy
* 大熊猫
* **自然语言工具包****NLTK**
* Flask 1.1.0+和以下版本的兼容版本:
* Flask 1.1.0+ 和以下版本的兼容版本:
* 烧瓶形式
* wtforms
* flask_restful
......
......@@ -181,7 +181,7 @@ Dialogflow 与 GCP 紧密集成,因此我们必须首先创建一个 Google
# 步骤 4.1 – 创建`HelpIntent`
在此子步骤中,单击左侧菜单中“意图”项目右侧的+按钮。 您将看到一个空白的意向创建表单。
在此子步骤中,单击左侧菜单中“意图”项目右侧的`+`按钮。 您将看到一个空白的意向创建表单。
您可以在意向创建表单中看到以下标题:
......
......@@ -128,7 +128,7 @@ plt.imshow(image_arr[:,:,2]) # blue channel
![](img/aad8803a-48cf-4ba5-a284-aef5fbfec5ed.png)
* **旋转+平移**:旋转和平移组合常数的一些示例为`c11 = 1``c12 = 0.5``c13 = 10``c21 = -0.5``c22 = 1``c23 = 10`。结果方程变为`u = x + 0.5y + 10``v = -0.5x + y + 10`
* **旋转 + 平移**:旋转和平移组合常数的一些示例为`c11 = 1``c12 = 0.5``c13 = 10``c21 = -0.5``c22 = 1``c23 = 10`。结果方程变为`u = x + 0.5y + 10``v = -0.5x + y + 10`
![](img/176dcee8-a33f-451b-bccd-abc7d2b530d6.png)
......
......@@ -555,8 +555,8 @@ INFO:tensorflow:Maybe overwriting train_steps: 1000
TensorBoard 具有三个选项卡-标量,图像和图形。 标量包括 mAP(精度),召回率和损失值,图像包括先前的视觉图像,图形包括 TensorFlow 图形`frozen_inference_graph.pb`文件。 请注意,精度和召回率之间的差异定义如下:
* 精度=真正/(真正+假正)
* 召回率=真阳性/(真阳性+假阴性)
* `精度 = 真正 / (真正 + 假正)`
* `召回 = 真正 / (真正 + 假负)`
# 使用神经网络模型时的注意事项
......@@ -659,9 +659,9 @@ Luca Bertinetto,Jack Valmadre,Joao F. Henriques,Andrea Vedaldi 和 Philip
跟踪开始如下:
* 初始图像位置=先前的目标位置
* 位移=步幅乘以最大得分相对于中心的位置
* 新位置=初始位置+位移
* `初始图像位置 = 先前的目标位置`
* `位移 = 步幅乘以最大得分相对于中心的位置`
* `新位置 = 初始位置 + 位移`
因此,矩形边界框用于初始化目标。 在每个后续帧,使用跟踪来估计其位置。
......
......@@ -90,7 +90,7 @@ CNN 的图像过滤和处理方法包括执行多种操作,所有这些操作
上图显示了`1 x 1 x 128`图像过滤器如何将卷积深度减少到 32 个通道。
`1 x 1`卷积在所有 128 个通道中与`5 x 5`输入层执行逐元素乘法–将其在深度维度上求和,并应用 ReLU 激活函数在`5 x 5`中创建单个点 输出表示 128 的输入深度。本质上,通过使用这种机制(卷积+整个深度的和),它会将三维体积折叠为具有相同宽度和高度的二维数组。 然后,它应用 32 个过滤器以创建`5 x 5 x 32`输出,如前所示。 这是有关 CNN 的基本概念,因此请花一些时间来确保您理解这一点。
`1 x 1`卷积在所有 128 个通道中与`5 x 5`输入层执行逐元素乘法–将其在深度维度上求和,并应用 ReLU 激活函数在`5 x 5`中创建单个点 输出表示 128 的输入深度。本质上,通过使用这种机制(卷积 + 整个深度的和),它会将三维体积折叠为具有相同宽度和高度的二维数组。 然后,它应用 32 个过滤器以创建`5 x 5 x 32`输出,如前所示。 这是有关 CNN 的基本概念,因此请花一些时间来确保您理解这一点。
本书将使用`1 x 1`卷积。 稍后,您将了解到池化会减小宽度,而`1 x 1`卷积会保留宽度,但可以根据需要收缩或扩展深度。 例如,您将看到在网络和 Inception 层中使用了`1 x 1`卷积(在“第 5 章”,“神经网络架构和模型”中。具有`1 x 1`的 32 过滤器) 的卷积可以在 TensorFlow 中表示为`.tf.keras.layers.Conv2D(32, (1,1))`
......
......@@ -30,18 +30,18 @@
“第 8 章”,“基于增强型神经网络的国际象棋引擎”讨论了 Google 的 DeepMind,以及如何将增强型神经网络用于 Android 平台上的机器辅助游戏。 首先,您将创建一个 Connect4 引擎,以直观地构建自学习,玩游戏的 AI。 然后,您将开发基于深度强化学习的国际象棋引擎,并将其作为 API 托管在 **Google Cloud Platform****GCP**)上。 然后,您将使用国际象棋引擎的 API 在移动设备上执行游戏。
“第 9 章”,“构建图像超分辨率应用程序”提出了一种借助深度学习生成超分辨率图像的方法。 您将学习在 Android / iOS 上处理图像的第三种方法,以及如何创建可在 DigitalOcean 上托管并包含在 Android / iOS 应用程序中的 TensorFlow 模型。 由于此模型的资源非常密集,因此将指导您如何在云上托管该模型。 该项目使用生成对抗网络。
“第 9 章”,“构建图像超分辨率应用程序”提出了一种借助深度学习生成超分辨率图像的方法。 您将学习在 Android/iOS 上处理图像的第三种方法,以及如何创建可在 DigitalOcean 上托管并包含在 Android/iOS 应用程序中的 TensorFlow 模型。 由于此模型的资源非常密集,因此将指导您如何在云上托管该模型。 该项目使用生成对抗网络。
“第 10 章”,“未来之路”简要介绍了当今移动应用程序中最受欢迎的深度学习应用程序,当前趋势以及在该领域中有望发展的技术。
# 充分利用这本书
您需要在本地系统上有效的 Python 3.5+安装。 将 Python 作为 Anaconda 发行版的一部分进行安装是一个好主意。 要构建移动应用程序,您需要有效安装 Flutter 2.0+。 此外,整本书中通常会同时需要 TensorFlow 1.x 和 2.x。 因此,必须具有两个 Anaconda 环境:
您需要在本地系统上有效的 Python 3.5+ 安装。 将 Python 作为 Anaconda 发行版的一部分进行安装是一个好主意。 要构建移动应用程序,您需要有效安装 Flutter 2.0+。 此外,整本书中通常会同时需要 TensorFlow 1.x 和 2.x。 因此,必须具有两个 Anaconda 环境:
| 书中涵盖的软件/硬件 | **操作系统要求** |
| Jupyter 笔记本 | 带有更新的网络浏览器(最好是 Google Chrome / Mozilla Firefox / Apple Safari)的任何操作系统。最低 RAM 要求:4 GB; 但是,建议使用 8 GB。 |
| Jupyter 笔记本 | 带有更新的网络浏览器(最好是 Google Chrome/Mozilla Firefox/Apple Safari)的任何操作系统。最低 RAM 要求:4 GB; 但是,建议使用 8 GB。 |
| Microsoft Visual Studio 代码 | 任何具有 4 GB 以上 RAM 的操作系统; 但是,建议使用 8 GB。 |
| 具有开发人员访问权限的智能手机 | 具有至少 2 GB RAM 的 Android / iOS; 但是,建议使用 3 GB。 |
| 具有开发人员访问权限的智能手机 | 具有至少 2 GB RAM 的 Android/iOS; 但是,建议使用 3 GB。 |
您可以免费获得本书中所需的所有软件工具。 但是,您必须将您的信用卡/借记卡详细信息添加到您的帐户中才能激活 GCP 或 DigitalOcean 平台。
......@@ -62,9 +62,9 @@ Flutter 移动应用程序上的深度学习尚处于开发的早期阶段。
下载文件后,请确保使用以下最新版本解压缩或解压缩文件夹:
* Windows 的 WinRAR / 7-Zip
* Mac 版 Zipeg / iZip / UnRarX
* 适用于 Linux 的 7-Zip / PeaZip
* Windows 的 WinRAR/7-Zip
* Mac 版 Zipeg/iZip/UnRarX
* 适用于 Linux 的 7-Zip/PeaZip
本书的代码包也托管在 [GitHub](https://github.com/PacktPublishing/Mobile-Deep-Learning-Projects) 上。 如果代码有更新,它将在现有的 GitHub 存储库中进行更新。
......
......@@ -18,9 +18,9 @@ AI 变得比以前更加移动,因为更小的设备具有更多的计算能
为了应对 AI 的高计算能力,对手机的硬件支持进行了定期更改和增强,以使他们具有思考和行动的能力。 移动制造公司一直在不断升级移动设备上的硬件支持,以提供无缝和个性化的用户体验。
华为已经发布了麒麟 970 SoC,该芯片可以使用专门的神经网络处理单元来实现设备上的 AI 体验。 苹果设备装有称为*神经引擎*的 AI 芯片,该芯片是 A11 Bionic 芯片的一部分。 它专用于机器学习和深度学习任务,例如面部和语音识别,记录动画和拍摄照片时的对象检测。 高通公司和联发科已经发布了他们自己的芯片,这些芯片支持设备上的 AI 解决方案。 三星宣布的 Exynos 9810 是一种基于神经网络的芯片,例如高通的 Snapdragon 845。 2018 年的三星设备 Galaxy S9 和 S9 +包括这些基于其销售国家/地区的芯片。 借助 Galaxy S9,该公司非常明显地表明它将集成 AI 以改善设备相机的功能和实时文本翻译。 最新的三星 Galaxy S10 系列由 Qualcomm Snapdragon 855 提供支持,以支持设备上的 AI 计算。
华为已经发布了麒麟 970 SoC,该芯片可以使用专门的神经网络处理单元来实现设备上的 AI 体验。 苹果设备装有称为*神经引擎*的 AI 芯片,该芯片是 A11 Bionic 芯片的一部分。 它专用于机器学习和深度学习任务,例如面部和语音识别,记录动画和拍摄照片时的对象检测。 高通公司和联发科已经发布了他们自己的芯片,这些芯片支持设备上的 AI 解决方案。 三星宣布的 Exynos 9810 是一种基于神经网络的芯片,例如高通的 Snapdragon 845。 2018 年的三星设备 Galaxy S9 和 S9+ 包括这些基于其销售国家/地区的芯片。 借助 Galaxy S9,该公司非常明显地表明它将集成 AI 以改善设备相机的功能和实时文本翻译。 最新的三星 Galaxy S10 系列由 Qualcomm Snapdragon 855 提供支持,以支持设备上的 AI 计算。
Google Translate Word Lens 和 Bixby 个人助理已用于开发该功能。 有了这些技术,该设备即可翻译多达 54 种语言。 这些电话足够智能,可以在 f / 2.4 和 f / 1.5 的传感器之间进行选择,非常适合在弱光条件下拍摄照片。 Google Pixel 2 利用其机器学习的强大功能,通过其协处理器 Pixel Visual Core 集成了八个图像处理单元。
Google Translate Word Lens 和 Bixby 个人助理已用于开发该功能。 有了这些技术,该设备即可翻译多达 54 种语言。 这些电话足够智能,可以在 f/2.4 和 f/1.5 的传感器之间进行选择,非常适合在弱光条件下拍摄照片。 Google Pixel 2 利用其机器学习的强大功能,通过其协处理器 Pixel Visual Core 集成了八个图像处理单元。
# 为什么移动设备需要使用 AI 芯片?
......@@ -293,7 +293,7 @@ Core ML 是 Apple 在 iOS 11 中发布的一种机器学习框架,用于使在
# Caffe2
Caffe2 建立在由加州大学伯克利分校开发的**用于快速嵌入的原始卷积架构****Caffe**)上,是一种轻量级,模块化,可扩展的深度学习框架,由 脸书 它可以帮助开发人员和研究人员部署机器学习模型,并在 Android,iOS 和 Raspberry Pi 上提供 AI 驱动的性能。 此外,它支持在 Android Studio,Microsoft Visual Studio 和 Xcode 中进行集成。 Caffe2 带有可互换使用的本机 Python 和 C++ API,从而简化了原型设计和优化过程。 它足够有效地处理大量数据,并且有助于自动化,图像处理以及统计和数学运算。 Caffe2 是开源的,托管在 GitHub 上,它利用社区的贡献来开发新模型和算法。**
Caffe2 建立在由加州大学伯克利分校开发的**用于快速嵌入的原始卷积架构****Caffe**)上,是一种轻量级,模块化,可扩展的深度学习框架,由 脸书 它可以帮助开发人员和研究人员部署机器学习模型,并在 Android,iOS 和 Raspberry Pi 上提供 AI 驱动的性能。 此外,它支持在 Android Studio,Microsoft Visual Studio 和 Xcode 中进行集成。 Caffe2 带有可互换使用的本机 Python 和 C++ API,从而简化了原型设计和优化过程。 它足够有效地处理大量数据,并且有助于自动化,图像处理以及统计和数学运算。 Caffe2 是开源的,托管在 GitHub 上,它利用社区的贡献来开发新模型和算法。
# TensorFlow
......
......@@ -160,7 +160,7 @@ dependencies:
# 创建第一个屏幕
在这里,我们创建第一个屏幕。 第一个屏幕的用户界面将包含一个文本标题“Pick Image”和两个按钮“Camera”和“Gallery”。 可以将其视为包含文本标题的列和带有两个按钮的行,如以下屏幕截图所示:
在这里,我们创建第一个屏幕。 第一个屏幕的用户界面将包含一个文本标题`Pick Image`和两个按钮`Camera``Gallery`。 可以将其视为包含文本标题的列和带有两个按钮的行,如以下屏幕截图所示:
![](img/957163dc-49c0-4323-8380-f1cc9d0c596d.png)
......@@ -168,7 +168,7 @@ dependencies:
用英语讲,**支架**表示提供某种支持的结构或平台。 就 Flutter 而言,可以将支架视为设备屏幕上的主要结构,所有次要组件(在此情况下为小部件)都可以放置在其上。
在 Flutter 中,每个 UI 组件都是**小部件**。 它们是 Flutter 框架中的中心类层次结构。 如果您以前使用过 Android Studio,则可以将小部件视为 TextView 或 Button 或任何其他视图组件。
在 Flutter 中,每个 UI 组件都是**小部件**。 它们是 Flutter 框架中的中心类层次结构。 如果您以前使用过 Android Studio,则可以将小部件视为`TextView``Button`或任何其他视图组件。
# 建立行标题
......@@ -236,14 +236,14 @@ Widget buildSelectImageRowWidget(BuildContext context) {
}
```
在前面的代码片段中,我们调用先前定义的`createButton()`方法将 Camera 和 Gallery 添加为图像源按钮,并将它们添加到该行的`children`小部件列表中。
在前面的代码片段中,我们调用先前定义的`createButton()`方法将`Camera``Gallery`添加为图像源按钮,并将它们添加到该行的`children`小部件列表中。
3. 现在,让我们定义`onPickImageSelected()`。 此方法使用`image_picker`库将用户定向到图库或照相机以获取图像:
```py
void onPickImageSelected(String source) async {
var imageSource;
if (source == Camera) {
if (source == 'Camera') {
imageSource = ImageSource.camera;
} else {
imageSource = ImageSource.gallery;
......@@ -496,7 +496,7 @@ class FaceDetectorApp extends StatelessWidget {
void main() => runApp(new FaceDetectorApp());
```
可以在[中查看`main.dart`中的整个代码。https://github.com/PacktPublishing/Mobile-Deep-Learning-Projects/blob/master/Chapter2/flutter_face_detection/lib/main.dart](https://github.com/PacktPublishing/Mobile-Deep-Learning-Projects/blob/master/Chapter2/flutter_face_detection/lib/main.dart)
可以在[这个页面](https://github.com/PacktPublishing/Mobile-Deep-Learning-Projects/blob/master/Chapter2/flutter_face_detection/lib/main.dart)中查看`main.dart`中的整个代码。
# 概要
......
......@@ -673,7 +673,7 @@ bool _isListening = false;
String transcription = '';
```
`_speechRecognition``SpeechRecognition`的实例。 `_isAvailable`很重要,因为它可以让平台(Android / iOS)知道我们正在与之交互,并且`_isListening`将用于检查应用程序当前是否正在监听麦克风。
`_speechRecognition``SpeechRecognition`的实例。 `_isAvailable`很重要,因为它可以让平台(Android/iOS)知道我们正在与之交互,并且`_isListening`将用于检查应用程序当前是否正在监听麦克风。
最初,我们将两个`boolean`变量的值都设置为 false。 `transcription`是一个字符串变量,将用于存储已侦听的字符串。
......
......@@ -306,7 +306,7 @@ history = model.fit(train_generator,
validation_data=val_generator)
```
该模型经过 10 个时期的训练,这意味着每个样本至少要在神经网络上抛出 10 次。 注意在此功能中使用了`train_generator``val_generator`。 即使有 12GB +的 RAM 和 TPU 加速可用,训练也需要花费相当长的时间(这在任何个人中端设备上都是过大的)。 您将能够观察到运行上述代码的单元下方的训练日志。
该模型经过 10 个时期的训练,这意味着每个样本至少要在神经网络上抛出 10 次。 注意在此功能中使用了`train_generator``val_generator`。 即使有 12GB+ 的 RAM 和 TPU 加速可用,训练也需要花费相当长的时间(这在任何个人中端设备上都是过大的)。 您将能够观察到运行上述代码的单元下方的训练日志。
17. 然后,我们可以保存模型,之后可以继续转换保存的模型文件,如下所示:
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册