Skip to content

Commit

Permalink
[WIP][publisher] CH2 (d2l-ai#920)
Browse files Browse the repository at this point in the history
* publisher notes

* fahrenheit

* csv -> CSV

* 无需——>无须
  • Loading branch information
goldmermaid committed Aug 2, 2021
1 parent 2cca941 commit 54ca288
Show file tree
Hide file tree
Showing 16 changed files with 25 additions and 25 deletions.
6 changes: 3 additions & 3 deletions STYLE_GUIDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,8 @@
* 训练数据集、验证数据集、测试数据集
* 中文优先于英文
* 首次出现,注明原英文术语
* 无需加粗
* 无需加引号
* 无须加粗
* 无须加引号
* 中英文对照统一标准
* https://github.com/mli/gluon-tutorials-zh/blob/master/README.md

Expand Down Expand Up @@ -162,7 +162,7 @@
* [“线性回归”](linear-reg.md)一节
* 外链
* [](http:bla)
* 无需暴露URL
* 无须暴露URL

## 英翻汉的常见问题

Expand Down
2 changes: 1 addition & 1 deletion chapter_computer-vision/kaggle-cifar10.md
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ else:
### [**整理数据集**]

我们需要整理数据集来训练和测试模型。
首先,我们用以下函数读取 csv 文件中的标签,它返回一个字典,该字典将文件名中不带扩展名的部分映射到其标签。
首先,我们用以下函数读取CSV文件中的标签,它返回一个字典,该字典将文件名中不带扩展名的部分映射到其标签。

```{.python .input}
#@tab all
Expand Down
6 changes: 3 additions & 3 deletions chapter_computer-vision/object-detection-dataset.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

## [**下载数据集**]

包含所有图像和 csv 标签文件的香蕉检测数据集可以直接从互联网下载
包含所有图像和CSV标签文件的香蕉检测数据集可以直接从互联网下载

```{.python .input}
%matplotlib inline
Expand Down Expand Up @@ -42,7 +42,7 @@ d2l.DATA_HUB['banana-detection'] = (
## 读取数据集

通过 `read_data_bananas` 函数,我们[**读取香蕉检测数据集**]
该数据集包括一个的 csv 文件,内含目标类别标签和位于左上角和右下角的真实边界框坐标。
该数据集包括一个的CSV文件,内含目标类别标签和位于左上角和右下角的真实边界框坐标。

```{.python .input}
#@save
Expand Down Expand Up @@ -123,7 +123,7 @@ class BananasDataset(torch.utils.data.Dataset):
return len(self.features)
```

最后,我们定义 `load_data_bananas` 函数,来[**为训练集和测试集返回两个数据加载器实例**]。对于测试集,无需按随机顺序读取它
最后,我们定义 `load_data_bananas` 函数,来[**为训练集和测试集返回两个数据加载器实例**]。对于测试集,无须按随机顺序读取它

```{.python .input}
#@save
Expand Down
2 changes: 1 addition & 1 deletion chapter_deep-learning-computation/deferred-init.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

你可能会对我们的代码能运行感到惊讶。毕竟,深度学习框架无法判断网络的输入维度是什么。这里的诀窍是框架的*延后初始化*(defers initialization),即等到我们第一次将数据通过模型传递时,才会动态地推断出每个层的大小。

在以后,当使用卷积神经网络时,由于输入维度(即图像的分辨率)将影响每个后续层的维数,因此该技术将变得更加方便。现在我们在编写代码时无需知道维度是什么就可以设置参数,这种能力可以大大简化定义和修改模型的任务。接下来,我们将更深入地研究初始化机制。
在以后,当使用卷积神经网络时,由于输入维度(即图像的分辨率)将影响每个后续层的维数,因此该技术将变得更加方便。现在我们在编写代码时无须知道维度是什么就可以设置参数,这种能力可以大大简化定义和修改模型的任务。接下来,我们将更深入地研究初始化机制。

## 实例化网络

Expand Down
2 changes: 1 addition & 1 deletion chapter_linear-networks/linear-regression.md
Original file line number Diff line number Diff line change
Expand Up @@ -214,7 +214,7 @@ d = a + b
f'{timer.stop():.5f} sec'
```

结果很明显,第二种方法比第一种方法快得多。矢量化代码通常会带来数量级的加速。另外,我们将更多的数学运算放到库中,而无需自己编写那么多的计算,从而减少了出错的可能性。
结果很明显,第二种方法比第一种方法快得多。矢量化代码通常会带来数量级的加速。另外,我们将更多的数学运算放到库中,而无须自己编写那么多的计算,从而减少了出错的可能性。

## 正态分布与平方损失
:label:`subsec_normal_distribution_and_squared_loss`
Expand Down
4 changes: 2 additions & 2 deletions chapter_multilayer-perceptrons/kaggle-house-price.md
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@ DATA_HUB['kaggle_house_test'] = ( #@save
'fa19780a7b011d9b009e8bff8e99922a8ee2eb90')
```

我们使用`pandas`分别加载包含训练数据和测试数据的两个csv文件
我们使用`pandas`分别加载包含训练数据和测试数据的两个CSV文件

```{.python .input}
#@tab all
Expand Down Expand Up @@ -409,7 +409,7 @@ print(f'{k}-折验证: 平均训练log rmse: {float(train_l):f}, '

## [**提交你的Kaggle预测**]

既然我们知道应该选择什么样的超参数,我们不妨使用所有数据对其进行训练(而不是仅使用交叉验证中使用的$1-1/K$的数据)。然后,我们通过这种方式获得的模型可以应用于测试集。将预测保存在csv文件中可以简化将结果上传到Kaggle的过程
既然我们知道应该选择什么样的超参数,我们不妨使用所有数据对其进行训练(而不是仅使用交叉验证中使用的$1-1/K$的数据)。然后,我们通过这种方式获得的模型可以应用于测试集。将预测保存在CSV文件中可以简化将结果上传到Kaggle的过程

```{.python .input}
#@tab all
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,7 @@ $$U\left(-\sqrt{\frac{6}{n_\mathrm{in} + n_\mathrm{out}}}, \sqrt{\frac{6}{n_\mat

### 额外内容

上面的推理仅仅触及了现代参数初始化方法的皮毛。深度学习框架通常实现十几种不同的启发式方法。此外,参数初始化一直是深度学习基础研究的热点领域。其中包括专门用于参数绑定(共享)、超分辨率、序列模型和其他情况的启发式算法。例如,Xiao等人演示了通过使用精心设计的初始化方法 :cite:`Xiao.Bahri.Sohl-Dickstein.ea.2018`可以无需结构上的技巧而训练10000层神经网络的可能性
上面的推理仅仅触及了现代参数初始化方法的皮毛。深度学习框架通常实现十几种不同的启发式方法。此外,参数初始化一直是深度学习基础研究的热点领域。其中包括专门用于参数绑定(共享)、超分辨率、序列模型和其他情况的启发式算法。例如,Xiao等人演示了通过使用精心设计的初始化方法 :cite:`Xiao.Bahri.Sohl-Dickstein.ea.2018`可以无须结构上的技巧而训练10000层神经网络的可能性

如果你对该主题感兴趣,我们建议你深入研究本模块的内容,阅读提出并分析每种启发式方法的论文,然后探索有关该主题的最新出版物。也许你会偶然发现甚至发明一个聪明的想法,并为深度学习框架提供一个实现。

Expand Down
2 changes: 1 addition & 1 deletion chapter_natural-language-processing-pretraining/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

为了理解文本,我们可以从学习它的表述开始。利用来自大型语句的现有文本序列,
*自我监督学习 *
广泛用于预训文本表示法,例如使用其周围文本的其他部分来预测文本的某些隐藏部分。通过这种方式,模型可以通过监督从 * 大量 * 文本数据中学习,而无需 * 昂贵的 * 标签工作!
广泛用于预训文本表示法,例如使用其周围文本的其他部分来预测文本的某些隐藏部分。通过这种方式,模型可以通过监督从 * 大量 * 文本数据中学习,而无须 * 昂贵的 * 标签工作!

正如我们将在本章中看到的那样,当将每个单词或子词视为单个词元时,可以使用 word2vec、GloVE 或在大型语库上嵌入子词模型来预训每个词元的表示形式。训练前后,每个词元的表示可以是向量,但是,无论上下文是什么,它都保持不变。例如,“银行” 的矢量表示在 “去银行存一些钱” 和 “去银行坐下” 两个方面都是相同的。因此,更多最近的训练前模型使同一词元的表示适应不同的环境。其中包括 BERT,这是一个基于变压器编码器的更深入的自我监督模型。在本章中,我们将重点介绍如何为文本预先训练此类表示形式,正如 :numref:`fig_nlp-map-pretrain` 中所强调的那样。

Expand Down
2 changes: 1 addition & 1 deletion chapter_optimization/convexity.md
Original file line number Diff line number Diff line change
Expand Up @@ -364,7 +364,7 @@ $$\mathrm{Proj}_\mathcal{X}(\mathbf{x}) = \mathop{\mathrm{argmin}}_{\mathbf{x}'

8. 给定一个向量 $\mathbf{w} \in \mathbb{R}^d$ 与 $|\mathbf{w}| 1 > 1$ 计算在 $L_1$ 单位球上的投影。
i. 作为中间步骤,写出惩罚目标 $|\mathbf{w} - \mathbf{w}'|_2^2 + \lambda |\mathbf{w}'|_1$ ,计算给定 $\lambda > 0$ 的解。
ii. 你能无需反复试错就找到 $\lambda$ 的“正确”值吗?
ii. 你能无须反复试错就找到 $\lambda$ 的“正确”值吗?

9. 给定一个凸集 $\mathcal{X}$ 和两个向量 $\mathbf{X}$ 和 $\mathbf{y}$ 证明了投影不会增加距离,即$\|\mathbf{x} - \mathbf{y}\| \geq \|\mathrm{Proj}_\mathcal{X}(\mathbf{x}) - \mathrm{Proj}_\mathcal{X}(\mathbf{y})\|$。

Expand Down
2 changes: 1 addition & 1 deletion chapter_optimization/gd.md
Original file line number Diff line number Diff line change
Expand Up @@ -265,7 +265,7 @@ $$\nabla f(\mathbf{x}) + \mathbf{H} \boldsymbol{\epsilon} = 0 \text{ and hence }

举一个简单的例子,对于$f(x) = \frac{1}{2} x^2$,我们有$\nabla f(x) = x$和$\mathbf{H} = 1$。
因此,对于任何$x$,我们可以获得$\epsilon = -x$。
换言之,单单一步就足以完美地收敛,而无需任何调整
换言之,单单一步就足以完美地收敛,而无须任何调整
我们在这里比较幸运:泰勒展开式是确切的,因为$f(x+\epsilon)= \frac{1}{2} x^2 + \epsilon x + \frac{1}{2} \epsilon^2$。

让我们看看其他问题。
Expand Down
4 changes: 2 additions & 2 deletions chapter_preliminaries/calculus.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
在2500年前,古希腊人把一个多边形分成三角形,并把它们的面积相加,才找到计算多边形面积的方法。
为了求出曲线形状(比如圆)的面积,古希腊人在这样的形状上刻内接多边形。如 :numref:`fig_circle_area`所示,内接多边形的等长边越多,就越接近圆。这个过程也被称为*逼近法*(method of exhaustion)。

![用逼近法求圆的面积](../img/polygon-circle.svg)
![用逼近法求圆的面积](../img/polygon-circle.svg)
:label:`fig_circle_area`

事实上,逼近法就是*积分*(integral calculus)的起源,我们将在 :numref:`sec_integral_calculus`中详细描述。2000多年后,微积分的另一支,*微分*(differential calculus),被发明出来。在微分学最重要的应用是优化问题,即考虑如何把事情做到最好。正如在 :numref:`subsec_norms_and_objectives`中讨论的那样,这种问题在深度学习中是无处不在的。
Expand Down Expand Up @@ -110,7 +110,7 @@ $$\frac{d}{dx} \left[\frac{f(x)}{g(x)}\right] = \frac{g(x) \frac{d}{dx} [f(x)] -
在下面,`use_svg_display`函数指定`matplotlib`软件包输出svg图表以获得更清晰的图像。

注意,注释`#@save`是一个特殊的标记,会将对应的函数、类或语句保存在`d2l`包中
因此,以后无需重新定义就可以直接调用它们(例如,`d2l.use_svg_display()`)。
因此,以后无须重新定义就可以直接调用它们(例如,`d2l.use_svg_display()`)。

```{.python .input}
#@tab all
Expand Down
4 changes: 2 additions & 2 deletions chapter_preliminaries/linear-algebra.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@

## 标量

如果你从来没有学过线性代数或机器学习,那么你过去的数学经历可能是一次只想一个数字。如果你曾经报销过发票,或者在餐厅支付餐费,那么你已经知道如何做一些基本的事情,比如在数字间相加或相乘。例如,北京的温度为$52$华氏度(除了摄氏度外,另一种温度刻度)。严格来说,我们称仅包含一个数值的叫*标量*(scalar)。如果要将此华氏度值转换为更常用的摄氏度,则可以计算表达式$c=\frac{5}{9}(f-32)$,并将$f$赋为$52$。在此等式中,每一项($5$、$9$和$32$)都是标量值。符号$c$和$f$称为*变量*(variables),它们表示未知的标量值。
如果你从来没有学过线性代数或机器学习,那么你过去的数学经历可能是一次只想一个数字。如果你曾经报销过发票,或者在餐厅支付餐费,那么你已经知道如何做一些基本的事情,比如在数字间相加或相乘。例如,北京的温度为$52^{\circ}F$(除了摄氏度外,另一种温度计量单位)。严格来说,我们称仅包含一个数值的叫*标量*(scalar)。如果要将此华氏度值转换为更常用的摄氏度,则可以计算表达式$c=\frac{5}{9}(f-32)$,并将$f$赋为$52$。在此等式中,每一项($5$、$9$和$32$)都是标量值。符号$c$和$f$称为*变量*(variables),它们表示未知的标量值。

在本书中,我们采用了数学表示法,其中标量变量由普通小写字母表示(例如,$x$、$y$和$z$)。我们用$\mathbb{R}$表示所有(连续)*实数*标量的空间。为了方便,我们之后将严格定义*空间*(space)是什么,但现在只要记住,表达式$x\in\mathbb{R}$是表示$x$是一个实值标量的正式形式。符号$\in$称为“属于”,它表示“是集合中的成员”。我们可以用$x, y \in \{0,1\}$来表明$x$和$y$是值只能为$0$或$1$的数字。

(**标量由只有一个元素的张量表示**)。在下面的代码中,我们实例化两个标量,并使用它们执行一些熟悉的算术运算,即加法,乘法,除法和指数。
(**标量由只有一个元素的张量表示**)。在下面的代码中,我们实例化两个标量,并使用它们执行一些熟悉的算术运算,即加法、乘法、除法和指数。

```{.python .input}
from mxnet import np, npx
Expand Down
6 changes: 3 additions & 3 deletions chapter_preliminaries/pandas.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@

## 读取数据集

举一个例子,我们首先(**创建一个人工数据集,并存储在csv(逗号分隔值)文件**)`../data/house_tiny.csv`中。以其他格式存储的数据也可以通过类似的方式进行处理。下面的`mkdir_if_not_exist`函数可确保目录`../data`存在。注意,注释`#@save`是一个特殊的标记,该标记下方的函数、类或语句将保存在`d2l`软件包中,以便以后可以直接调用它们(例如`d2l.mkdir_if_not_exist(path)`而无需重新定义
举一个例子,我们首先(**创建一个人工数据集,并存储在csv(逗号分隔值)文件**)`../data/house_tiny.csv`中。以其他格式存储的数据也可以通过类似的方式进行处理。下面的`mkdir_if_not_exist`函数可确保目录`../data`存在。注意,注释`#@save`是一个特殊的标记,该标记下方的函数、类或语句将保存在`d2l`软件包中,以便以后可以直接调用它们(例如`d2l.mkdir_if_not_exist(path)`而无须重新定义

下面我们将数据集按行写入csv文件中
下面我们将数据集按行写入CSV文件中

```{.python .input}
#@tab all
Expand All @@ -23,7 +23,7 @@ with open(data_file, 'w') as f:
f.write('NA,NA,140000\n')
```

[**从创建的csv文件中加载原始数据集**],我们导入`pandas`包并调用`read_csv`函数。该数据集有四行三列。其中每行描述了房间数量(“NumRooms”)、巷子类型(“Alley”)和房屋价格(“Price”)。
[**从创建的CSV文件中加载原始数据集**],我们导入`pandas`包并调用`read_csv`函数。该数据集有四行三列。其中每行描述了房间数量(“NumRooms”)、巷子类型(“Alley”)和房屋价格(“Price”)。

```{.python .input}
#@tab all
Expand Down
2 changes: 1 addition & 1 deletion chapter_preliminaries/probability.md
Original file line number Diff line number Diff line change
Expand Up @@ -237,7 +237,7 @@ $$P(B) = \sum_{A} P(A, B),$$
让我们用实战考验一下我们的技能。假设一个医生对患者进行艾滋病病毒(HIV)测试。这个测试是相当准确的,如果患者健康但测试显示他患病,这样的失败概率只有1%。此外,如果患者真正感染HIV,它永远不会检测不出。我们使用$D_1$来表示诊断结果(如果阳性,则为$1$,如果阴性,则为$0$),$H$来表示感染艾滋病病毒的状态(如果阳性,则为$1$,如果阴性,则为0)。
在 :numref:`conditional_prob_D1`中列出了这样的条件概率。

:条件概率为 $P(D_1 \mid H)$
:条件概率为 $P(D_1 \mid H)$

| 条件概率 | $H=1$ | $H=0$ |
|---|---|---|
Expand Down
2 changes: 1 addition & 1 deletion chapter_recurrent-neural-networks/rnn.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ $$\mathbf{O} = \mathbf{H} \mathbf{W}_{hq} + \mathbf{b}_q,$$

其中,$\mathbf{O} \in \mathbb{R}^{n \times q}$ 是输出变量,$\mathbf{W}_{hq} \in \mathbb{R}^{h \times q}$ 是权重参数,$\mathbf{b}_q \in \mathbb{R}^{1 \times q}$ 是输出层的偏置参数。如果是分类问题,我们可以用 $\text{softmax}(\mathbf{O})$ 来计算输出类别的概率分布。

这完全类似于之前在 :numref:`sec_sequence` 中解决的回归问题,因此我们省略了细节。无需多言,只要可以随机选择“特征-标签”对,并且通过自动微分和随机梯度下降能够学习网络参数就可以了。
这完全类似于之前在 :numref:`sec_sequence` 中解决的回归问题,因此我们省略了细节。无须多言,只要可以随机选择“特征-标签”对,并且通过自动微分和随机梯度下降能够学习网络参数就可以了。

## 有隐藏状态的循环神经网络
:label:`subsec_rnn_w_hidden_states`
Expand Down
2 changes: 1 addition & 1 deletion static/frontpage/frontpage.html
Original file line number Diff line number Diff line change
Expand Up @@ -213,7 +213,7 @@ <h3>公告</h3>
<div align="left">
<ul>
<li><b>【在线课程每周直播中】</b>
3月20日起北京时间每周六、日下午1:00至2:30直播教学《动手学深度学习》。无需缴费或注册,欢迎<a href="https://courses.d2l.ai/zh-v2/">参加</a>
3月20日起北京时间每周六、日下午1:00至2:30直播教学《动手学深度学习》。无须缴费或注册,欢迎<a href="https://courses.d2l.ai/zh-v2/">参加</a>
</li>
<li><b>【关注第二版更新】</b>
英文版第一章至第十章、第十二章至第十三章已翻译至中文版第二版,并含多种深度学习框架的实现。
Expand Down

0 comments on commit 54ca288

Please sign in to comment.