Skip to content

Commit

Permalink
translation of 'reduction' in linear-algebra (d2l-ai#816)
Browse files Browse the repository at this point in the history
* translation of 'reduction' in linear-algebra

* Update linear-algebra.md

* Update linear-algebra.md

Co-authored-by: goldmermaid <goldpiggy@berkeley.edu>
  • Loading branch information
npudqsz and goldmermaid committed May 15, 2021
1 parent 104ff69 commit 5768e77
Showing 1 changed file with 10 additions and 10 deletions.
20 changes: 10 additions & 10 deletions chapter_preliminaries/linear-algebra.md
Original file line number Diff line number Diff line change
Expand Up @@ -246,7 +246,7 @@ X

## 张量算法的基本性质

标量、向量、矩阵和任意数量轴的张量(本小节中的 “张量” 指代数对象)有一些很好的属性,通常会派上用场。例如,你可能已经从按元素操作的定义中注意到,任何按元素的一元运算都不会改变其操作数的形状。同样,[**给定具有相同形状的任何两个张量,任何按元素二元运算的结果都将是相同形状的张量**]。例如,将两个相同形状的矩阵相加会在这两个矩阵上执行元素加法。
标量、向量、矩阵和任意数量轴的张量(本小节中的 “张量” 指代数对象)有一些很好的属性,通常会派上用场。例如,你可能已经从按元素操作的定义中注意到,任何按元素的一元运算都不会改变其操作数的形状。同样,[**给定具有相同形状的任意两个张量,任何按元素二元运算的结果都将是相同形状的张量**]。例如,将两个相同形状的矩阵相加会在这两个矩阵上执行元素加法。

```{.python .input}
A = np.arange(20).reshape(5, 4)
Expand Down Expand Up @@ -316,7 +316,7 @@ X = tf.reshape(tf.range(24), (2, 3, 4))
a + X, (a * X).shape
```

## 汇总
## 降维
:label:`subseq_lin-alg-reduction`

我们可以对任意张量进行的一个有用的操作是[**计算其元素的和**]。在数学表示法中,我们使用 $\sum$ 符号表示求和。为了表示长度为$d$的向量中元素的总和,可以记为 $\sum_{i=1}^d x_i$。在代码中,我们可以调用计算求和的函数:
Expand Down Expand Up @@ -354,9 +354,9 @@ A.shape, A.sum()
A.shape, tf.reduce_sum(A)
```

默认情况下,调用求和函数会将一个张量沿所有轴汇总为一个标量
我们还可以[**指定张量求和汇总所沿的轴**]。以矩阵为例,为了通过求和所有行的元素来汇总行维度(轴0),我们可以在调用函数时指定`axis=0`
由于输入矩阵沿0轴汇总以生成输出向量,因此输入的轴0的维数在输出形状中丢失。
默认情况下,调用求和函数会沿所有的轴降低张量的维度,使它变为一个标量
我们还可以[**指定张量沿哪一个轴来通过求和降低维度**]。以矩阵为例,为了通过求和所有行的元素来降维(轴0),我们可以在调用函数时指定`axis=0`
由于输入矩阵沿0轴降维以生成输出向量,因此输入的轴0的维数在输出形状中丢失。

```{.python .input}
A_sum_axis0 = A.sum(axis=0)
Expand All @@ -375,7 +375,7 @@ A_sum_axis0 = tf.reduce_sum(A, axis=0)
A_sum_axis0, A_sum_axis0.shape
```

指定 `axis=1` 将通过汇总所有列的元素来汇总列维度(轴 1)。因此,输入的轴1的维数在输出形状中丢失
指定 `axis=1` 将通过汇总所有列的元素降维(轴1)。因此,输入的轴1的维数在输出形状中消失

```{.python .input}
A_sum_axis1 = A.sum(axis=1)
Expand Down Expand Up @@ -426,7 +426,7 @@ A.mean(), A.sum() / A.numel()
tf.reduce_mean(A), tf.reduce_sum(A) / tf.size(A).numpy()
```

同样,计算平均值的函数也可以沿指定轴汇总张量
同样,计算平均值的函数也可以沿指定轴降低张量的维度

```{.python .input}
A.mean(axis=0), A.sum(axis=0) / A.shape[0]
Expand All @@ -442,7 +442,7 @@ A.mean(axis=0), A.sum(axis=0) / A.shape[0]
tf.reduce_mean(A, axis=0), tf.reduce_sum(A, axis=0) / A.shape[0]
```

### 非汇总求和
### 非降维求和
:label:`subseq_lin-alg-non-reduction`

但是,有时在调用函数来[**计算总和或均值时保持轴数不变**]会很有用。
Expand Down Expand Up @@ -480,7 +480,7 @@ A / sum_A
A / sum_A
```

如果我们想沿[**某个轴计算 `A` 元素的累积总和**],比如 `axis=0`(按行计算),我们可以调用 `cumsum` 函数。此函数不会沿任何轴汇总输入张量
如果我们想沿[**某个轴计算 `A` 元素的累积总和**],比如 `axis=0`(按行计算),我们可以调用 `cumsum` 函数。此函数不会沿任何轴降低输入张量的维度

```{.python .input}
A.cumsum(axis=0)
Expand Down Expand Up @@ -773,7 +773,7 @@ tf.norm(tf.ones((4, 9)))
* 标量、向量、矩阵和张量是线性代数中的基本数学对象。
* 向量泛化自标量,矩阵泛化自向量。
* 标量、向量、矩阵和张量分别具有零、一、二和任意数量的轴。
* 一个张量可以通过`sum``mean`沿指定的轴汇总
* 一个张量可以通过`sum``mean`沿指定的轴降低维度
* 两个矩阵的按元素乘法被称为他们的哈达玛积。它与矩阵乘法不同。
* 在深度学习中,我们经常使用范数,如 $L_1$范数、$L_2$范数和弗罗贝尼乌斯范数。
* 我们可以对标量、向量、矩阵和张量执行各种操作。
Expand Down

0 comments on commit 5768e77

Please sign in to comment.