Skip to content

Commit

Permalink
[polish] chapter appendix tool peer review (d2l-ai#1024)
Browse files Browse the repository at this point in the history
* appendix tool soft polish

* appendix tool soft polish

* contribute image translate
  • Loading branch information
goldmermaid authored Dec 2, 2021
1 parent 21b6d83 commit 748150e
Show file tree
Hide file tree
Showing 8 changed files with 250 additions and 230 deletions.
36 changes: 18 additions & 18 deletions chapter_appendix-tools-for-deep-learning/aws.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@

登录到你的aws账户后,单击“EC2”(在 :numref:`fig_aws`中用红色方框标记)进入EC2面板。

![打开EC2控制台](../img/aws.png)
![打开EC2控制台](../img/aws.png)
:width:`400px`
:label:`fig_aws`

Expand All @@ -28,9 +28,9 @@

### 增加限制

在选择实例之前,请点击:numref:`fig_ec2`所示左侧栏中的“Limits”(限制)标签查看是否有数量限制。 :numref:`fig_limits`显示了此类限制的一个例子。账号目前无法按地域打开p2.xlarge实例。如果你需要打开一个或多个实例,请点击“Request limit increase”(请求增加限制)链接,申请更高的实例配额。一般来说,需要一个工作日的时间来处理申请。
在选择实例之前,请点击 :numref:`fig_ec2`所示左侧栏中的“Limits”(限制)标签查看是否有数量限制。 :numref:`fig_limits`显示了此类限制的一个例子。账号目前无法按地域打开p2.xlarge实例。如果你需要打开一个或多个实例,请点击“Request limit increase”(请求增加限制)链接,申请更高的实例配额。一般来说,需要一个工作日的时间来处理申请。

![实例数量限制](../img/limits.png)
![实例数量限制](../img/limits.png)
:width:`700px`
:label:`fig_limits`

Expand All @@ -40,7 +40,7 @@

我们首先选择一个合适的Amazon机器映像(Amazon Machine Image,AMI)。在搜索框中输入“ubuntu”( :numref:`fig_ubuntu`中的红色框标记)。

![选择一个AMI](../img/ubuntu-new.png)
![选择一个AMI](../img/ubuntu-new.png)
:width:`700px`
:label:`fig_ubuntu`

Expand All @@ -51,43 +51,43 @@ EC2提供了许多不同的实例配置可供选择。对于初学者来说,
| Name | GPU | Notes |
|------|-------------|-------------------------------|
| g2 | Grid K520 | 过时的 |
| p2 | Kepler K80 | 旧的但Spot实例通常很便宜 |
| p2 | Kepler K80 | 旧的GPU但Spot实例通常很便宜 |
| g3 | Maxwell M60 | 好的平衡 |
| p3 | Volta V100 | FP16的高性能 |
| g4 | Turing T4 | FP16/INT8推理优化 |
:label:`tab_ec2`

所有这些服务器都有多种类型,显示了使用的GPU数量。例如,p2.xlarge有1个GPU,而p2.16xlarge有16个GPU和更多内存。有关更多详细信息,请参阅[Amazon EC2 文档](https://aws.amazon.com/ec2/instance-types/)

![选择一个实例](../img/p2x.png)
![选择一个实例](../img/p2x.png)
:width:`700px`
:label:`fig_p2x`

注意,你应该使用支持GPU的实例以及合适的驱动程序和支持GPU的深度学习框架。否则,你将感受不到使用GPU的任何好处。

到目前为止,我们已经完成了启动EC2实例的七个步骤中的前两个步骤,如 :numref:`fig_disk`顶部所示。在本例中,我们保留“3. Configure Instance”(3. 配置实例)、“5. Add Tags”(5. 添加标签)和“6. Configure Security Group”(6. 配置安全组)步骤的默认配置。点击“4.添加存储”并将默认硬盘大小增加到64GB( :numref:`fig_disk`中的红色框标记)。请注意,CUDA本身已经占用了4GB空间。

![修改硬盘大小](../img/disk.png)
![修改硬盘大小](../img/disk.png)
:width:`700px`
:label:`fig_disk`

最后,进入“7. Review”(7. 查看),点击“Launch”(启动),即可启动配置好的实例。系统现在将提示你选择用于访问实例的密钥对。如果您没有密钥对,请在 :numref:`fig_keypair`的第一个下拉菜单中选择“Create a new key pair”(新建密钥对),即可生成密钥对。之后,你可以在此菜单中选择“Choose an existing key pair”(选择现有密钥对),然后选择之前生成的密钥对。单击“Launch Instances”(启动实例)即可启动创建的实例。
最后,进入“7. Review”(7. 查看),点击“Launch”(启动),即可启动配置好的实例。系统现在将提示你选择用于访问实例的密钥对。如果你没有密钥对,请在 :numref:`fig_keypair`的第一个下拉菜单中选择“Create a new key pair”(新建密钥对),即可生成密钥对。之后,你可以在此菜单中选择“Choose an existing key pair”(选择现有密钥对),然后选择之前生成的密钥对。单击“Launch Instances”(启动实例)即可启动创建的实例。

![选择一个密钥对](../img/keypair.png)
![选择一个密钥对](../img/keypair.png)
:width:`500px`
:label:`fig_keypair`

如果生成了新密钥对,请确保下载密钥对并将其存储在安全位置。这是你通过SSH连接到服务器的唯一方式。单击 :numref:`fig_launching`中显示的实例ID可查看该实例的状态。

![单击实例ID](../img/launching.png)
![单击实例ID](../img/launching.png)
:width:`700px`
:label:`fig_launching`

### 连接到实例

如 :numref:`fig_connect`所示,实例状态变为绿色后,右键单击实例,选择`Connect`(连接)查看实例访问方式。

![查看实例访问方法](../img/connect.png)
![查看实例访问方法](../img/connect.png)
:width:`700px`
:label:`fig_connect`

Expand All @@ -97,7 +97,7 @@ EC2提供了许多不同的实例配置可供选择。对于初学者来说,
chmod 400 D2L_key.pem
```

![查看实例访问和启动方法](../img/chmod.png)
![查看实例访问和启动方法](../img/chmod.png)
:width:`400px`
:label:`fig_chmod`

Expand All @@ -107,7 +107,7 @@ chmod 400 D2L_key.pem
ssh -i "D2L_key.pem" [email protected]
```

当命令行提示“Are you sure you want to continue connecting (yes/no)”时,输入“yes”并按回车键登录实例。
当命令行提示“Are you sure you want to continue connecting (yes/no)”(“你确定要继续连接吗?(是/否)”)时,输入“yes”并按回车键登录实例。

你的服务器现在已就绪。

Expand All @@ -121,14 +121,14 @@ sudo apt-get update && sudo apt-get install -y build-essential git libgfortran3

我们在这里下载CUDA 10.1。访问NVIDIA的[官方存储库](https://developer.nvidia.com/cuda-toolkit-archive) 以找到下载链接,如 :numref:`fig_cuda`中所示。

![查找CUDA 10.1下载地址](../img/cuda101.png)
![查找CUDA 10.1下载地址](../img/cuda101.png)
:width:`500px`
:label:`fig_cuda`

将说明复制粘贴到终端上,以安装CUDA 10.1。

```bash
# 链接和文件名可能会发生更改
# 链接和文件名可能会发生更改,以NVIDIA的官方为准
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-ubuntu1804.pin
sudo mv cuda-ubuntu1804.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget http://developer.download.nvidia.com/compute/cuda/10.1/Prod/local_installers/cuda-repo-ubuntu1804-10-1-local-10.1.243-418.87.00_1.0-1_amd64.deb
Expand Down Expand Up @@ -159,7 +159,7 @@ echo "export LD_LIBRARY_PATH=\${LD_LIBRARY_PATH}:/usr/local/cuda/lib64" >> ~/.ba

## 远程运行Jupyter笔记本

要远程运行Jupyter笔记本,你需要使用SSH端口转发。毕竟,云中的服务器没有显示器或键盘。为此,请从你的台式机(或笔记本电脑)登录到您的服务器,如下所示:
要远程运行Jupyter笔记本,你需要使用SSH端口转发。毕竟,云中的服务器没有显示器或键盘。为此,请从你的台式机(或笔记本电脑)登录到你的服务器,如下所示:

```
# 此命令必须在本地命令行中运行
Expand All @@ -175,7 +175,7 @@ jupyter notebook

:numref:`fig_jupyter`显示了运行Jupyter笔记本后可能的输出。最后一行是端口8888的URL。

![运行Jupyter Notebook后的输出最后一行是端口8888的URL](../img/jupyter.png)
![运行Jupyter Notebook后的输出最后一行是端口8888的URL](../img/jupyter.png)
:width:`700px`
:label:`fig_jupyter`

Expand All @@ -188,7 +188,7 @@ jupyter notebook
* “Stopping”(停止)实例意味着你可以重新启动它。这类似于关闭常规服务器的电源。但是,停止的实例仍将按保留的硬盘空间收取少量费用。
* “Terminating”(终止)实例将删除与其关联的所有数据。这包括磁盘,因此你不能再次启动它。只有在你知道将来不需要它的情况下才这样做。

如果你想要将该实例用作更多实例的模板,请右击 :numref:`fig_connect`中的例子,然后选择“Image”$\rightarrow$“Create”以创建该实例的镜像。完成后,选择“实例状态”$\rightarrow$“终止”以终止实例。下次要使用此实例时,可以按照本节中的步骤基于保存的镜像创建实例。唯一的区别是,在:numref:`fig_ubuntu`所示的“1.选择AMI”中,你必须使用左侧的“我的AMI”选项来选择你保存的镜像。创建的实例将保留镜像硬盘上存储的信息。例如,你不必重新安装CUDA和其他运行时环境。
如果你想要将该实例用作更多实例的模板,请右击 :numref:`fig_connect`中的例子,然后选择“Image”$\rightarrow$“Create”以创建该实例的镜像。完成后,选择“实例状态”$\rightarrow$“终止”以终止实例。下次要使用此实例时,可以按照本节中的步骤基于保存的镜像创建实例。唯一的区别是,在 :numref:`fig_ubuntu`所示的“1.选择AMI”中,你必须使用左侧的“我的AMI”选项来选择你保存的镜像。创建的实例将保留镜像硬盘上存储的信息。例如,你不必重新安装CUDA和其他运行时环境。

## 小结

Expand Down
75 changes: 58 additions & 17 deletions chapter_appendix-tools-for-deep-learning/contributing.md
Original file line number Diff line number Diff line change
@@ -1,56 +1,97 @@
# 为本书做贡献
:label:`sec_how_to_contribute`

[读者们](https://github.com/d2l-ai/d2l-en/graphs/contributors)的投稿帮助我们改进了这本书。如果你发现笔误、无效的链接、一些你认为我们遗漏了引文的地方,代码看起来不优雅,或者解释不清楚的地方,请回复我们以帮助读者。虽然在常规书籍中,两次印刷之间的间隔(即修订笔误的间隔)可以用几年来衡量,但这本书的改进通常需要几个小时到几天的时间。由于版本控制和持续集成(CI)测试,这一切都是可能的。为此,你需要向gihub存储库提交一个[pull request](https://github.com/d2l-ai/d2l-en/pulls)。当你的pull请求被作者合并到代码库中时,你将成为贡献者。
读者们的投稿大大帮助我们改进了本书的质量。
如果你发现笔误、无效的链接、一些你认为我们遗漏了引文的地方,
代码看起来不优雅,或者解释不清楚的地方,请回复我们以帮助读者。
在常规书籍中,两次印刷之间的间隔(即修订笔误的间隔)常常需要几年,
但这本书的改进通常需要几个小时到几天的时间。
由于版本控制和持续自动集成(CI)测试,这一切颇为高效。
为此,你需要向gihub存储库提交一个
[pull request](https://github.com/d2l-ai/d2l-en/pulls)
当你的pull请求被作者合并到代码库中时,
你将成为[贡献者](https://github.com/d2l-ai/d2l-en/graphs/contributors)

## 提交微小更改

最常见的贡献是编辑一句话或修正笔误。我们建议你在[GitHub存储库](https://github.com/d2l-ai/d2l-en)中查找源文件,以定位源文件(一个markdown文件)。然后单击右上角的“Edit this file”按钮,在markdown文件中进行更改。
最常见的贡献是编辑一句话或修正笔误。
我们建议你在[GitHub存储库](https://github.com/d2l-ai/d2l-en)
中查找源文件,以定位源文件(一个markdown文件)。
然后单击右上角的“Edit this file”按钮,在markdown文件中进行更改。

![在Github上编辑文件](../img/edit-file.png)
![在Github上编辑文件](../img/edit-file.png)
:width:`300px`
:label:`fig_edit_file`

完成后,在页面底部的“Propose file change”面板中填写更改说明,然后单击“Propose file change”按钮。它会重定向到新页面以查看你的更改( :numref:`fig_git_createpr`)。如果一切正常,你可以通过点击“Create pull request”按钮提交pull请求。
完成后,在页面底部的“Propose file change”(“提交文件修改”)
面板中填写更改说明,然后单击“Propose file change”按钮。
它会重定向到新页面以查看你的更改( :numref:`fig_git_createpr`)。
如果一切正常,你可以通过点击“Create pull request”按钮提交pull请求。

## 提出重大更改
## 大量文本或代码修改

如果你计划修改大量文本或代码,那么你需要更多地了解本书使用的格式。源文件基于[markdown格式](https://daringfireball.net/projects/markdown/syntax),并通过[d2lbook](http://book.d2l.ai/user/markdown.html)包提供了一组扩展,例如引用公式、图像、章节和引文。你可以使用任何markdown编辑器打开这些文件并进行更改。
如果你计划修改大量文本或代码,那么你需要更多地了解本书使用的格式。
源文件基于[markdown格式](https://daringfireball.net/projects/markdown/syntax)
并通过[d2lbook](http://book.d2l.ai/user/markdown.html)包提供了一组扩展,
例如引用公式、图像、章节和引文。
你可以使用任何markdown编辑器打开这些文件并进行更改。

如果你想要更改代码,我们建议你使用Jupyter Notebook打开这些标记文件,如 :numref:`sec_jupyter`中所述。这样你就可以运行并测试您的更改。请记住在提交更改之前清除所有输出,我们的CI系统将执行你更新的部分以生成输出。
如果你想要更改代码,我们建议你使用Jupyter Notebook打开这些标记文件,
如 :numref:`sec_jupyter`中所述。
这样你就可以运行并测试你的更改。
请记住在提交更改之前清除所有输出,我们的CI系统将执行你更新的部分以生成输出。

某些部分可能支持多个框架实现。如果您添加的新代码块不是使用mxnet,请使用`#@tab` 来标记代码块的起始行。例如`#@tab pytorch`用于一个PyTorch代码块, `#@tab tensorflow`用于一个TensorFlow代码块,或者`#@tab all`是所有实现的共享代码块。 你可以参考[`d2lbook`](http://book.d2l.ai/user/code_tabs.html)包了解更多信息。
某些部分可能支持多个框架实现。如果你添加的新代码块不是使用mxnet,
请使用`#@tab`来标记代码块的起始行。
例如`#@tab pytorch`用于一个PyTorch代码块,
`#@tab tensorflow`用于一个TensorFlow代码块,
或者`#@tab all`是所有实现的共享代码块。
你可以参考[d2lbook](http://book.d2l.ai/user/code_tabs.html)包了解更多信息。

## 提交主要更改

我们建议你使用标准的Git流程提交重大更改。简而言之,该过程的工作方式如 :numref:`fig_contribute`中所述。
我们建议你使用标准的Git流程提交大量修改。
简而言之,该过程的工作方式如 :numref:`fig_contribute`中所述。

![为这本书作贡献](../img/contribute.svg)
![为这本书作贡献](../img/contribute.svg)
:label:`fig_contribute`

我们将向你详细介绍这些步骤。如果你已经熟悉Git,可以跳过本部分。在介绍时,我们假设贡献者的用户名为“astonzhang”。
我们将向你详细介绍这些步骤。
如果你已经熟悉Git,可以跳过本部分。
在介绍时,我们假设贡献者的用户名为“astonzhang”。

### 安装Git

Git开源书籍描述了[如何安装git](https://git-scm.com/book/en/v2)。这通常通过Ubuntu Linux上的`apt install git`、在MacOS上安装Xcode开发人员工具或使用gihub的[桌面客户端](https://desktop.github.com)来实现。如果你没有GitHub帐户,则需要注册一个帐户。
Git开源书籍描述了[如何安装git](https://git-scm.com/book/en/v2)
这通常通过Ubuntu Linux上的`apt install git`
在MacOS上安装Xcode开发人员工具或使用gihub的
[桌面客户端](https://desktop.github.com)来实现。
如果你没有GitHub帐户,则需要注册一个帐户。

### 登录GitHub

在浏览器中输入本书代码存储库的[地址](https://github.com/d2l-ai/d2l-en/)。单击 :numref:`fig_git_fork`右上角红色框中的`Fork`按钮,以复制本书的存储库。现在这是你的副本,你可以随心所欲地更改它。
在浏览器中输入本书代码存储库的[地址](https://github.com/d2l-ai/d2l-en/)
单击 :numref:`fig_git_fork`右上角红色框中的`Fork`按钮,以复制本书的存储库。
这将是你的副本,你可以随心所欲地更改它。

![代码存储库页面](../img/git-fork.png)
![代码存储库页面](../img/git-fork.png)
:width:`700px`
:label:`fig_git_fork`

现在,本书的代码库将被分叉(即复制)到你的用户名,例如`astonzhang/d2l-en`显示在 :numref:`fig_git_forked`的左上角。
现在,本书的代码库将被分叉(即复制)到你的用户名,
例如`astonzhang/d2l-en`显示在 :numref:`fig_git_forked`的左上角。

![分叉代码存储库](../img/git-forked.png)
![分叉代码存储库](../img/git-forked.png)
:width:`700px`
:label:`fig_git_forked`

### 克隆存储库

要克隆存储库(即制作本地副本),我们需要获取其存储库地址。点击 :numref:`fig_git_clone`中的绿色按钮显示此信息。如果你决定将此分支保留更长时间,请确保你的本地副本与主存储库保持最新。现在,只需按照 :ref:`chap_installation`中的说明开始。主要区别在于,你现在下载的是你自己的存储库分支。
要克隆存储库(即制作本地副本),我们需要获取其存储库地址。
点击 :numref:`fig_git_clone`中的绿色按钮显示此信息。
如果你决定将此分支保留更长时间,请确保你的本地副本与主存储库保持最新。
现在,只需按照 :ref:`chap_installation`中的说明开始。
主要区别在于,你现在下载的是你自己的存储库分支。

![克隆存储库](../img/git-clone.png)
:width:`700px`
Expand Down
2 changes: 1 addition & 1 deletion chapter_appendix-tools-for-deep-learning/d2l.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# `d2l` API 文档
:label:`sec_d2l`

`d2l`包以下成员的实现及其定义和解释部分可在[源文件]](https://github.com/d2l-ai/d2l-en/tree/master/d2l)中找到。
`d2l`包以下成员的实现及其定义和解释部分可在[源文件](https://github.com/d2l-ai/d2l-en/tree/master/d2l)中找到。


:begin_tab:`mxnet`
Expand Down
3 changes: 2 additions & 1 deletion chapter_appendix-tools-for-deep-learning/index.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
# 附录:深度学习工具
:label:`chap_appendix_tools`

为了充分利用 *动手学深度学习*,我们将在本附录中介绍不同工具,例如运行这本交互式开源书籍和为本书做贡献。
为了充分利用《动手学深度学习》,我们将在本附录中介绍不同工具,
例如如何运行这本交互式开源书籍和为本书做贡献。

```toc
:maxdepth: 2
Expand Down
Loading

0 comments on commit 748150e

Please sign in to comment.