提交 363bb674 编写于 作者: W wizardforcel

2021-01-06 16:12:30

上级 ba00edf7
......@@ -67,7 +67,7 @@
本书中使用了许多文本约定。
`CodeInText`:指示文本,数据库表名称,文件夹名称,文件名,文件扩展名,路径名,虚拟 URL,用户输入和 Twitter 句柄中的代码字。 这是一个示例:“ `Lead_Stage`是我们将根据测试数据进行预测的标签。”
`CodeInText`:指示文本,数据库表名称,文件夹名称,文件名,文件扩展名,路径名,虚拟 URL,用户输入和 Twitter 句柄中的代码字。 这是一个示例:“`Lead_Stage`是我们将根据测试数据进行预测的标签。”
代码块设置如下:
......
......@@ -187,7 +187,7 @@ text_classification
执行以下步骤以使用 XGBoost 训练的模型:
1. 从网络浏览器转到`console.google.com`
2. 在 GCP 控制台中打开“ AI 平台模型”页面:
2. 在 GCP 控制台中打开“AI 平台模型”页面:
![](img/21248a2d-e7a3-4dcc-8795-e5a358949a07.png)
......
......@@ -426,7 +426,7 @@ Bank_Name VARCHAR(50));
接下来,让我们向运行 Cloud Function 的服务帐户提供 Cloud SQL Admin 角色:
1. 转到“ IAM”部分:
1. 转到“IAM”部分:
![](img/71cd4bd7-4577-4e46-8747-7090a07d9c14.png)
......
......@@ -105,7 +105,7 @@ TensorFlow 对象检测 API 具有预先训练的模型,[您可以使用网络
2. 创建一个项目,如下面的屏幕快照所示。 在这里,`R-CNN-trainingpack`是我的项目的名称。 您的项目名称可能会有所不同。
3. 按照[启动 VM 实例]下的 10 条说明进行操作-在“步骤 12”之后的屏幕快照中也进行了说明。
4. 在 Google Cloud Console 中,导航到“ VM 实例”页面。
4. 在 Google Cloud Console 中,导航到“VM 实例”页面。
5. 点击顶部的创建实例。 它应该带您到另一个页面,您必须在其中输入实例名称。
6. 以小写字母输入实例的名称。 请注意,实例名称与项目名称不同。
7. 单击计算机类型,然后选择`n1-standard-8`(8vCPU,30 GB 内存)。
......
......@@ -37,9 +37,9 @@
1. 首先,单击“转到项目设置”,为项目命名,然后分配团队成员(如果要由多个人从事该项目)。
2. 然后,点击左侧的帐单并提供您的信用卡信息。 在撰写本文时,Google 提供了 300 美元的免费试用额度,但您仍需要提供信用卡信息。
3. 完成此操作后,单击“ API 和服务”,然后单击“启用 API 和服务”,然后在“机器学习”下选择“ AI 平台训练和预测 API”。
3. 完成此操作后,单击“API 和服务”,然后单击“启用 API 和服务”,然后在“机器学习”下选择“AI 平台训练和预测 API”。
4. 单击启用,将启用 API。 以下屏幕截图显示了启用后的 AI Platform TrainingPrediction API:
4. 单击启用,将启用 API。 以下屏幕截图显示了启用后的 AI Platform Training&Prediction API:
![](img/de81e552-ecaf-4070-8cbd-63f8c8b1072c.png)
......@@ -61,13 +61,13 @@
如前面的屏幕快照所示,首先创建一个名为`data`的文件夹。 然后,单击数据,单击上载文件,然后上载`test.record``train.record``label_map.pbtxt``pipeline.config``model.ckpt*`(三个文件)。 我们将在下一节中介绍如何获取这些文件。
# 使用 Ubuntu Terminal 设置存储桶
# 使用 Ubuntu 终端设置存储桶
此过程涉及到设置 Google Cloud SDK,然后将 Google Cloud 项目和存储桶链接到您的终端,以便您可以在那里上传文件。 请记住,训练将由终端命令启动,因此,即使您使用前面的 API 进行了设置,您仍然需要执行以下部分中显示的步骤(从“开始设置 Google Cloud SDK”部分)以将终端链接到 GCP。
# 设置 Google Cloud SDK
Google Cloud SDK 是一组命令行工具,使您的 PC 可以与 Google Cloud 进行交互。 由于在本节中,我们将使用 Ubuntu Terminal 与 Google Cloud 进行交互,因此我们需要首先设置 SDK。 在终端中输入以下命令:
Google Cloud SDK 是一组命令行工具,使您的 PC 可以与 Google Cloud 进行交互。 由于在本节中,我们将使用 Ubuntu 终端与 Google Cloud 进行交互,因此我们需要首先设置 SDK。 在终端中输入以下命令:
```py
$ echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] http://packages.cloud.google.com/apt cloud-sdk main" | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list
......@@ -84,9 +84,9 @@ $ gcloud init
# 将您的终端链接到 Google Cloud 项目和存储桶
在上一节的步骤中,我们设置了 Google Cloud SDK。 现在,我们需要执行最重要的步骤,这是将 Ubuntu Terminal 链接到 Google Cloud 项目以及您之前创建的存储桶。
在上一节的步骤中,我们设置了 Google Cloud SDK。 现在,我们需要执行最重要的步骤,这是将 Ubuntu 终端接到 Google Cloud 项目以及您之前创建的存储桶。
为什么需要将 Ubuntu Terminal 链接到 Google Cloud 项目? 答案是我们使用本地 PC 上的终端启动训练命令,但是我们的数据存储在 GCP 的存储桶中,并且模型将在 GCP 中生成。 因此,我们需要将 PC 终端连接到 GCP 以完成训练任务。
为什么需要将 Ubuntu 终端链接到 Google Cloud 项目? 答案是我们使用本地 PC 上的终端启动训练命令,但是我们的数据存储在 GCP 的存储桶中,并且模型将在 GCP 中生成。 因此,我们需要将 PC 终端连接到 GCP 以完成训练任务。
在终端中按顺序输入以下步骤:
......@@ -143,11 +143,11 @@ $ export TPU_ACCOUNT="service-111111111111@cloud-tpu.iam.gserviceaccount.com"
$ gcloud projects add-iam-policy-binding $PROJECT --member serviceAccount:$TPU_ACCOUNT --role roles/ml.serviceAgent
```
这将在 Terminal 中产生一系列注释,从`Updated IAM policy for the project [rcnn-trainingpack]`开始。
这将在终端中产生一系列注释,从`Updated IAM policy for the project [rcnn-trainingpack]`开始。
# 安装 TensorFlow 对象检测 API
现在我们已经将 Terminal 链接到存储桶和 Google Cloud 项目,下一步是将其链接到 TensorFlow 对象检测 API。 请遵循[这里](https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/installation.md)提供的一组说明。
现在我们已经将终端链接到存储桶和 Google Cloud 项目,下一步是将其链接到 TensorFlow 对象检测 API。 请遵循[这里](https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/installation.md)提供的一组说明。
前面的安装链接包含许多未在此处列出的代码行。 您将能够正确执行大多数代码。 此过程的最后两行代码描述如下:
......@@ -209,7 +209,7 @@ Operation completed over 1 objects/75.0 B.
如果您不使用终端,则只需使用 Google Cloud 存储桶中的 Upload 命令上传文件,如“使用 GCP API”部分的屏幕截图所示。
# model.ckpt 文件
# `model.ckpt`文件
在本节中,我们将学习如何下载预训练模型的检查点文件。 检查点是模型的权重。 这些权重将被上传到 GCS 存储桶,以使用迁移学习来开始训练:
......@@ -317,14 +317,14 @@ $ python diagnose_tensorboard.py
```py
### Suggestion: Fix conflicting installations
Conflicting package installations found. Depending on the order of installations and uninstallations, behavior may be undefined. Please uninstall ALL versions of TensorFlow and TensorBoard, then reinstall ONLY the desired version of TensorFlow, which will transitively pull
"Conflicting package installations found. Depending on the order of installations and uninstallations, behavior may be undefined. Please uninstall ALL versions of TensorFlow and TensorBoard, then reinstall ONLY the desired version of TensorFlow, which will transitively pull
in the proper version of TensorBoard. (If you use TensorBoard without TensorFlow, just reinstall the appropriate version of TensorBoard directly.)
Namely:
pip uninstall tb-nightly tensorboard tensorflow-estimator tensorflow-estimator-2.0-preview tensorflow-gpu tf-nightly-gpu-2.0-preview
pip install tensorflow # or `tensorflow-gpu`, or `tf-nightly`, ...
pip install tensorflow # or `tensorflow-gpu`, or `tf-nightly`, ..."
```
3. 根据建议执行命令,TensorBoard 将正常工作。
......@@ -398,7 +398,7 @@ Docker 是一种虚拟机,使开发人员可以将应用程序及其所有组
在以下部分中,我们将描述“第 11 章”,“在具有 CPU/GPU 优化功能的边缘设备上进行深度学习”提及的`tflite`转换过程。
# 从 Google Colab 执行导出 tflite graph.py
# 从 Google Colab 执行导出 tflite `graph.py`
在“第 10 章”,“使用 R-CNN,SSD 和 R-FCN 的对象检测”和“第 11 章”,“在具有 CPU/GPU 优化 的边缘设备上进行深度学习”,我们使用 Google Colab 将检查点转换为冻结图。 我们将在此处使用相同的方法,除了我们将导入配置,检查点和输出目录,如下所示:
......@@ -446,7 +446,7 @@ ResourceLimitExceeded
用于训练作业使用情况的帐户级别服务限制`ml.p3.2xlarge`为零实例,当前利用率为零实例,请求增量为一个实例。 请联系 AWS 支持以请求增加此限制。
# 将.xml 文件转换为 JSON 格式
# 将`.xml`文件转换为 JSON 格式
AWS SageMaker 批注数据使用 JSON 格式而不是我们之前使用的`.xml`。 通过以下步骤将`.xml`文件转换为 COCO JSON 格式:
......@@ -543,7 +543,7 @@ s3:// sample1/DEMO/s3_output_location/
# 在 Microsoft Azure 云平台中训练对象检测器
在本节中,我们将使用 Azure 自定义视觉来训练对象检测器。 可以在[中找到有关使用 Microsoft Azure 云平台训练对象检测器的详细说明:https://docs.microsoft.com/zh-cn/azure/cognitive-services/custom-vision-service/get-started -build-detector](https://docs.microsoft.com/en-us/azure/cognitive-services/custom-vision-service/get-started-build-detector)
在本节中,我们将使用 Azure 自定义视觉来训练对象检测器。 可以在[这个页面](https://docs.microsoft.com/en-us/azure/cognitive-services/custom-vision-service/get-started-build-detector)中找到有关使用 Microsoft Azure 云平台训练对象检测器的详细说明:
下一节将详细介绍训练对象检测器时的各种过程。
......@@ -559,7 +559,7 @@ s3:// sample1/DEMO/s3_output_location/
2. 设置订阅。 在“订阅”选项卡中,单击“添加”,然后为您的订阅命名并设置帐单信息。
3. 设置项目,然后选择并创建项目,并为其命名。
4. 设置资源,然后从菜单中选择“资源”组。
5. 选择“对象检测”,然后完成所有这些操作,然后使用“ Custom Vision”创建对象检测。
5. 选择“对象检测”,然后完成所有这些操作,然后使用“Custom Vision”创建对象检测。
设置帐户设置是非常重要的部分,如果操作不正确,将花费相当长的时间。 设置帐户后,接下来的步骤实际上将很快进行。
......
......@@ -160,7 +160,7 @@ dependencies:
# 创建第一个屏幕
在这里,我们创建第一个屏幕。 第一个屏幕的用户界面将包含一个文本标题“ Pick Image”和两个按钮“ Camera”和“ Gallery”。 可以将其视为包含文本标题的列和带有两个按钮的行,如以下屏幕截图所示:
在这里,我们创建第一个屏幕。 第一个屏幕的用户界面将包含一个文本标题“Pick Image”和两个按钮“Camera”和“Gallery”。 可以将其视为包含文本标题的列和带有两个按钮的行,如以下屏幕截图所示:
![](img/957163dc-49c0-4323-8380-f1cc9d0c596d.png)
......
......@@ -210,7 +210,7 @@ Google 平台上的操作为有兴趣构建聊天机器人的开发人员提供
1. 单击“意图”按钮。 然后,单击“默认欢迎意图”。 向下滚动到“意图”编辑页面的“响应”部分,然后删除那里的所有响应。 由于 luckyNum 意图希望用户说类似`My name is XYZ`的内容,因此合适的问题是`What is your name?`。 因此,我们将响应设置为`Hi, what is your name?`
请注意,“响应”部分的选项卡式导航中有一个名为“ Google 助手”的新导航栏。 这样,当我们从 Google Assistant 调用此意图时,我们可以为其指定其他响应。
请注意,“响应”部分的选项卡式导航中有一个名为“Google 助手”的新导航栏。 这样,当我们从 Google Assistant 调用此意图时,我们可以为其指定其他响应。
2. 单击选项卡,然后从默认选项卡中启用用户响应作为第一个响应。 我们这样做是因为我们不想在聊天机器人中指定特定于 Google 助手的其他响应。
3. 向上滚动到“事件”部分,并检查它是否类似于以下屏幕截图:
......
......@@ -101,7 +101,7 @@ Cloud Vision API 是 GCP 套件中流行的 API。 它已成为使用计算机
![](img/d8ff1b34-0395-4639-b48d-b558bdff7d8c.png)
2. 单击“ API 和服务”选项。 这将打开 API 仪表板,其中显示了与项目中启用的 API 相关的统计信息。
2. 单击“API 和服务”选项。 这将打开 API 仪表板,其中显示了与项目中启用的 API 相关的统计信息。
3. 单击启用 API 和服务按钮。
4. 在出现的搜索框中,键入 Cloud Vision API。
5. 单击相关的搜索结果。 该 API 提供程序将列为 Google。
......@@ -113,7 +113,7 @@ Cloud Vision API 是 GCP 套件中流行的 API。 它已成为使用计算机
现在,您必须创建一个 API 密钥来访问 API 并从中获取响应。 为此,请执行以下步骤:
1. 再次打开左侧的导航菜单,并将鼠标悬停在“ API 和服务”菜单项上。 出现一个子菜单-单击“凭据”。
1. 再次打开左侧的导航菜单,并将鼠标悬停在“API 和服务”菜单项上。 出现一个子菜单-单击“凭据”。
2. 单击创建凭据按钮。 在显示的下拉菜单中,选择 API 密钥,如以下屏幕截图所示:
![](img/c1939d94-1eff-481d-9f17-4360050a2f4a.png)
......
......@@ -91,7 +91,7 @@ showim(image)
![](img/856d9f1c-21a6-424e-9623-a385b8bd4fcd.png)
在我们的示例中,我们加载了柑橘类水果切片的图像,这是艾萨克·奎萨达(Isaac Quesada)在“ Unsplash”上拍摄的惊人照片。
在我们的示例中,我们加载了柑橘类水果切片的图像,这是艾萨克·奎萨达(Isaac Quesada)在“Unsplash”上拍摄的惊人照片。
您可以在[这里](https://unsplash.com/photos/6mw7bn9k9jw)找到上一张图片。
......
......@@ -936,7 +936,7 @@ var squareList = [
HashMap board = new HashMap<String, String>();
```
HashMap 的键将包含正方形的索引,而值将是正方形将保留的片段。 我们将使用一个字符串来表示一块特定的作品,该字符串将根据作品的名称包含一个字母。 例如,K 代表国王,B 代表主教。 我们通过使用大写和小写字母来区分白色和黑色部分。 大写字母代表白色,小写字母代表黑色。 例如,“ K”代表白国王,“ b”代表黑主教。 `board['e7'] = "P"`表示索引为`'e7'`的盒子当前有一个白色棋子。
HashMap 的键将包含正方形的索引,而值将是正方形将保留的片段。 我们将使用一个字符串来表示一块特定的作品,该字符串将根据作品的名称包含一个字母。 例如,K 代表国王,B 代表主教。 我们通过使用大写和小写字母来区分白色和黑色部分。 大写字母代表白色,小写字母代表黑色。 例如,“K”代表白国王,“b”代表黑主教。 `board['e7'] = "P"`表示索引为`'e7'`的盒子当前有一个白色棋子。
3. 现在,让我们将它们放置在初始位置。 为此,我们需要定义`initializeBoard()`方法,如下所示:
......@@ -1042,7 +1042,7 @@ Widget mapImages(String squareName) {
}
```
在前面的函数中,我们构建一个与矩形中所含件名相对应的开关盒块。 我们使用哈希图在特定的正方形中找到片段,然后返回相应的图像。 例如,如果将`a1`的值传递到`squareName`中,并且哈希图板具有与键值`a1`对应的值“ P”,则白色 Pawn 的图像将存储在`imageToDisplay`中 变量。
在前面的函数中,我们构建一个与矩形中所含件名相对应的开关盒块。 我们使用哈希图在特定的正方形中找到片段,然后返回相应的图像。 例如,如果将`a1`的值传递到`squareName`中,并且哈希图板具有与键值`a1`对应的值“P”,则白色 Pawn 的图像将存储在`imageToDisplay`中 变量。
请注意,在 64 个棋盘格正方形中,只有 32 个包含棋子。 其余将为空白。 因此,在哈希表`board`中,将存在没有值的键。 如果`squareName`没有片段,则将其传递给`imageToDisplay`变量,该变量将只有一个空容器。
......@@ -1204,9 +1204,9 @@ String getPositionString(String move) {
在前面的方法中,我们将`move`作为参数,它是`from``to`变量的串联。 接下来,我们为棋盘的当前状态创建 FEN 字符串。 创建 FEN 字符串背后的逻辑是,我们遍历电路板的每一行并为该行创建一个字符串。 然后将生成的字符串连接到最终字符串。
让我们借助示例更好地理解这一点。 考虑一个`rnbqkbnr/pp1ppppp/8/1p6/8/3P4/PPP1PPPP/RNBQKBNR w KQkq - 0 1`的 FEN 字符串。 在此,每行可以用八个或更少的字符表示。 特定行的状态通过使用分隔符“ /”与另一行分开。 对于特定的行,每件作品均以其指定的符号表示,其中“ P”表示白色典当,`b`表示黑色 Bishop。 每个占用的正方形均由件符号明确表示。 例如,`PpkB`指示板上的前四个正方形被白色棋子,黑色棋子,黑色国王和白色主教占据。 对于空盒子,使用整数,该数字表示可传染的空盒子的数量。 注意示例 FEN 字符串中的`8`。 这表示该行的所有 8 个正方形均为空。 `3P4`表示前三个正方形为空,第四个方框被白色棋子占据,并且四个正方形为空。
让我们借助示例更好地理解这一点。 考虑一个`rnbqkbnr/pp1ppppp/8/1p6/8/3P4/PPP1PPPP/RNBQKBNR w KQkq - 0 1`的 FEN 字符串。 在此,每行可以用八个或更少的字符表示。 特定行的状态通过使用分隔符“/”与另一行分开。 对于特定的行,每件作品均以其指定的符号表示,其中“P”表示白色典当,`b`表示黑色 Bishop。 每个占用的正方形均由件符号明确表示。 例如,`PpkB`指示板上的前四个正方形被白色棋子,黑色棋子,黑色国王和白色主教占据。 对于空盒子,使用整数,该数字表示可传染的空盒子的数量。 注意示例 FEN 字符串中的`8`。 这表示该行的所有 8 个正方形均为空。 `3P4`表示前三个正方形为空,第四个方框被白色棋子占据,并且四个正方形为空。
`getPositionString()`方法中,我们迭代从 8 到 1 的每一行,并为每行生成一个状态字符串。 对于每个非空框,我们只需在`'s'`变量中添加一个表示该块的字符。 对于每个空框,当找到非空框或到达行末时,我们将 count 的值增加 1 并将其连接到`'s'`字符串。 遍历每一行后,我们添加“ /”以分隔两行。 最后,我们通过将生成的`'s'`字符串与`w KQkq - 0 1`串联来生成位置字符串。 然后,我们通过将`jsonEncode()`与键值对结合使用来生成所需的 JSON 对象
`getPositionString()`方法中,我们迭代从 8 到 1 的每一行,并为每行生成一个状态字符串。 对于每个非空框,我们只需在`'s'`变量中添加一个表示该块的字符。 对于每个空框,当找到非空框或到达行末时,我们将 count 的值增加 1 并将其连接到`'s'`字符串。 遍历每一行后,我们添加“/”以分隔两行。 最后,我们通过将生成的`'s'`字符串与`w KQkq - 0 1`串联来生成位置字符串。 然后,我们通过将`jsonEncode()`与键值对结合使用来生成所需的 JSON 对象
2. 我们使用“步骤 1”的“步骤 1”中的`from``to`变量来保存用户的当前移动。 我们可以通过在`refreshBoard()`方法中添加两行来实现:
......
......@@ -643,7 +643,7 @@ Flutter 安装可以通过以下方式验证:
一个新的 Flutter 项目的创建带有一个模板代码,我们可以直接在移动设备上运行它。 创建第一个模板应用程序后,可以尝试如下运行它:
1. 导航至“ VS Code”状态栏(即窗口底部的蓝色栏):
1. 导航至“VS Code”状态栏(即窗口底部的蓝色栏):
![](img/79b61bb4-f80d-4fa1-819f-5d3403d4099b.png)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册