diff --git a/new/dl-pt-workshop/1.md b/new/dl-pt-workshop/1.md index 0022256344da65f051d745ae1f7edde644eb3d92..9502435c29863f9a026e40a50dd7cc6a08a4a837 100644 --- a/new/dl-pt-workshop/1.md +++ b/new/dl-pt-workshop/1.md @@ -116,7 +116,7 @@ torch.cuda.is_available() 这意味着张量不仅是数据结构,而且是容器,当容器提供某些数据时,它们可以与其他张量以多线性方式映射。 -类似于 NumPy 阵列或任何其他类似矩阵的结构,PyTorch 张量可以具有所需的任意多个尺寸。 可以使用以下代码片段在 PyTorch 中定义一维张量(`tensor_1`)和二维张量(`tensor_2`): +类似于 NumPy 数组或任何其他类似矩阵的结构,PyTorch 张量可以具有所需的任意多个尺寸。 可以使用以下代码片段在 PyTorch 中定义一维张量(`tensor_1`)和二维张量(`tensor_2`): ```py tensor_1 = torch.tensor([1,1,0,2]) diff --git a/new/handson-1shot-learn-py/5.md b/new/handson-1shot-learn-py/5.md index e1e8efd04eac41c6f5be6b7014d15f6dfd654177..f869fcb586331b34bc2fbe60f0569c00696cb3cc 100644 --- a/new/handson-1shot-learn-py/5.md +++ b/new/handson-1shot-learn-py/5.md @@ -52,7 +52,7 @@ ![](img/169cea75-5669-4783-a7c4-a4b77f185c91.png) -此图中`S`,`R`,`L`,`W`和`T`的随机变量的联合分布 通过一个简单的链规则可分为多个分布: +此图中`S`,`R`,`L`,`W`和`T`的随机变量的联合分布 通过一个简单的链式规则可分为多个分布: ![](img/9511985a-1153-4134-8e00-3c8126a5dc83.png) diff --git a/new/handson-nlp-pt-1x/9.md b/new/handson-nlp-pt-1x/9.md index 43a39d2b620665001aeb1daab15c311b280e6529..b99d9639133d3593afc899549b4b63ffa7f65438 100644 --- a/new/handson-nlp-pt-1x/9.md +++ b/new/handson-nlp-pt-1x/9.md @@ -124,7 +124,7 @@ BERT 是按照**转换器**的原理构建的,现在将对其进行详细说 ![Figure 9.6 – Linked encoder/decoder array ](img/B12365_09_6.jpg) -图 9.6 –链接的编码器/解码器阵列 +图 9.6 –链接的编码器/解码器数组 这将为您提供有关大型模型中不同编码器和解码器如何堆叠的有用概述。 接下来,我们将更详细地检查各个部分。 diff --git a/new/pt-ai-fund/1.md b/new/pt-ai-fund/1.md index bfaa727517758f779998426e16bddfb9f3b7dfe4..09125f49f75a96ba59e66cc240cfff337328a0d6 100644 --- a/new/pt-ai-fund/1.md +++ b/new/pt-ai-fund/1.md @@ -334,7 +334,7 @@ tensor([[3, 3], NumPy 是 Python 中科学计算的基本软件包。 它是一个 Python 库,提供多维数组对象和各种派生对象。 除此之外,NumPy 用作通用多维数据的有效容器。 NumPy 允许与各种数据库进行无缝,快速的集成。 -NumPy 是标准的 Python 库,用于处理数字数据。 Python 中许多著名的 ML/DS 库,例如 pandas(用于从许多来源读取数据的库)和 scikit-learn(用于读取和写入图像的最重要的 ML 库之一)都使用 NumPy 引擎盖。 例如,在处理表格数据,使用`pandas`库加载表格数据并将`numpy`数组移出数据框时,您将处理很多`numpy`。 读取图像,许多现有库都具有内置的 API,可以将它们读取为`numpy`数组; 并将`numpy`数组转换为图像以及文本和其他形式的数据。 同样,它们都使用`scikit-learn`(机器学习库)支持`numpy`数组。 如您所见,在`numpy`阵列和 PyTorch 张量之间建立桥梁非常重要。 +NumPy 是标准的 Python 库,用于处理数字数据。 Python 中许多著名的 ML/DS 库,例如 pandas(用于从许多来源读取数据的库)和 scikit-learn(用于读取和写入图像的最重要的 ML 库之一)都使用 NumPy 引擎盖。 例如,在处理表格数据,使用`pandas`库加载表格数据并将`numpy`数组移出数据框时,您将处理很多`numpy`。 读取图像,许多现有库都具有内置的 API,可以将它们读取为`numpy`数组; 并将`numpy`数组转换为图像以及文本和其他形式的数据。 同样,它们都使用`scikit-learn`(机器学习库)支持`numpy`数组。 如您所见,在`numpy`数组和 PyTorch 张量之间建立桥梁非常重要。 # 操作步骤 diff --git a/new/pt-dl-handson/2.md b/new/pt-dl-handson/2.md index 0d8a79df287253cd8a51db2996107da71e24fe58..c687ac110d303e30557ab2b7e3063398d4960618 100644 --- a/new/pt-dl-handson/2.md +++ b/new/pt-dl-handson/2.md @@ -129,7 +129,7 @@ b2 = torch.zeros(1, output_size, requires_grad=True, device=device, dtype=dtype) 这是反向模式自动微分的关键特征之一。 这有助于 PyTorch 动态化,因为无论用户在向前传递中作为操作编写的内容都可以写入磁带,并且在反向传播开始时,Autograd 可以在磁带上向后移动并随梯度一起移动,直到到达最外层 父母 -磁带或内存的写操作可忽略不计,PyTorch 通过将操作写到磁带上并在向后遍历后销毁磁带来利用每次正向遍历中的行为。 尽管我会在本书中尽量避免使用尽可能多的数学方法,但是有关 Autograd 如何工作的数学示例绝对可以为您提供帮助。 在下面的两个图中,说明了反向传播算法和使用链规则的 Autograd 的方法。 下图中我们有一个小型网络,其中有一个乘法节点和一个加法节点。 乘法节点获取输入张量和权重张量,将其传递到加法节点以进行加法运算。 +磁带或内存的写操作可忽略不计,PyTorch 通过将操作写到磁带上并在向后遍历后销毁磁带来利用每次正向遍历中的行为。 尽管我会在本书中尽量避免使用尽可能多的数学方法,但是有关 Autograd 如何工作的数学示例绝对可以为您提供帮助。 在下面的两个图中,说明了反向传播算法和使用链式规则的 Autograd 的方法。 下图中我们有一个小型网络,其中有一个乘法节点和一个加法节点。 乘法节点获取输入张量和权重张量,将其传递到加法节点以进行加法运算。 ```py output = X * W + B @@ -143,7 +143,7 @@ output = X * W + B ![Autograd](img/B09475_02_04.jpg) -图 2.4:Autograd 使用的链规则 +图 2.4:Autograd 使用的链式规则 前面的图可以使用以下代码转换为 PyTorch 图: diff --git a/new/pt-dl-handson/5.md b/new/pt-dl-handson/5.md index 97bebfa890038eb95bfc2ffc430541da74153bb6..147979d96c9c0eec82aca46c3013b3f997018c95 100644 --- a/new/pt-dl-handson/5.md +++ b/new/pt-dl-handson/5.md @@ -96,7 +96,7 @@ array([[O., 0., 0., 1., 0., 0., 0., 0., 0., 0.], 使用自然语言(或由离散的单个单元组成的任何序列)的标准方法是将每个单词转换为一个热编码向量,并将其用于网络的后期。 这种方法的明显缺点是,随着词汇量的增加,输入层的大小也会增加。 -词嵌入是减少阵列或张量维数的数十年历史的想法。 **潜在迪利克雷分配**(**LDA**)和**潜在语义分析**(**LSA**)是我们用来进行嵌入的两个此类示例。 但是,在 Facebook 研究科学家 Tomas Mikolov 和他的团队于 2013 年实现 word2vec 之后,就开始将嵌入视为前提。 +词嵌入是减少数组或张量维数的数十年历史的想法。 **潜在迪利克雷分配**(**LDA**)和**潜在语义分析**(**LSA**)是我们用来进行嵌入的两个此类示例。 但是,在 Facebook 研究科学家 Tomas Mikolov 和他的团队于 2013 年实现 word2vec 之后,就开始将嵌入视为前提。 Word2vec 是一种无监督的学习算法,在这种算法中,网络未经训练就进行嵌入。 这意味着您可以在一个英语数据集上训练 word2vec 模型,并使用它为另一模型生成嵌入。 diff --git a/new/pt-dl-handson/7.md b/new/pt-dl-handson/7.md index e413e42d705862d43b43069b3b905e732aa64774..81b34e7ee07f1360c744eaf58987450d7550d1cc 100644 --- a/new/pt-dl-handson/7.md +++ b/new/pt-dl-handson/7.md @@ -273,7 +273,7 @@ def get_screen(): return resize(screen).unsqueeze(0).to(device) # Resize, and add a batch dimension (BCHW) ``` -在这里,我们定义了`get_screen`函数。 柱状环境渲染并返回一个屏幕(3D 像素阵列)。 我们将要剪裁一个正方形的图像,其中心是小刀。 我们从`env.state[0]`获得了位置。 根据文档,第一个参数是购物车位置。 然后我们去掉顶部,底部,左侧和右侧,以使小柱位于中心。 接下来,我们将其转换为张量,进行一些转换,添加另一个尺寸,然后返回图像。 +在这里,我们定义了`get_screen`函数。 柱状环境渲染并返回一个屏幕(3D 像素数组)。 我们将要剪裁一个正方形的图像,其中心是小刀。 我们从`env.state[0]`获得了位置。 根据文档,第一个参数是购物车位置。 然后我们去掉顶部,底部,左侧和右侧,以使小柱位于中心。 接下来,我们将其转换为张量,进行一些转换,添加另一个尺寸,然后返回图像。 ```py class DQN(nn.Module): diff --git a/new/pt-tut-17/03.md b/new/pt-tut-17/03.md index da51f1067ea48b9aea9739bd4abb377a003a8148..71ea97feb83ab8fd9c5319048fe9bbe9a602c75e 100644 --- a/new/pt-tut-17/03.md +++ b/new/pt-tut-17/03.md @@ -258,7 +258,7 @@ tensor([[6., 5., 6., 6.], ## 与 NumPy 桥接 -CPU 和 NumPy 阵列上的张量可以共享其基础内存位置,更改一个将更改另一个。 +CPU 和 NumPy 数组上的张量可以共享其基础内存位置,更改一个将更改另一个。 ### 张量到 NumPy 数组 diff --git a/new/pt-tut-17/04.md b/new/pt-tut-17/04.md index fa367c1c87d552242d7be1f577d0e928ca0b4c58..3122f2836ac0c9660b793f0d125dbb04ef592623 100644 --- a/new/pt-tut-17/04.md +++ b/new/pt-tut-17/04.md @@ -137,7 +137,7 @@ tensor([True, True]) ## 计算图 -从概念上讲,Autograd 在由[函数](https://pytorch.org/docs/stable/autograd.html#torch.autograd.Function)对象组成的有向无环图(DAG)中记录数据(张量)和所有已执行的操作(以及由此产生的新张量)。 在此 DAG 中,叶子是输入张量,根是输出张量。 通过从根到叶跟踪此图,可以使用链规则自动计算梯度。 +从概念上讲,Autograd 在由[函数](https://pytorch.org/docs/stable/autograd.html#torch.autograd.Function)对象组成的有向无环图(DAG)中记录数据(张量)和所有已执行的操作(以及由此产生的新张量)。 在此 DAG 中,叶子是输入张量,根是输出张量。 通过从根到叶跟踪此图,可以使用链式规则自动计算梯度。 在正向传播中,Autograd 同时执行两项操作: @@ -148,7 +148,7 @@ tensor([True, True]) * 从每个`.grad_fn`计算梯度, * 将它们累积在各自的张量的`.grad`属性中,然后 -* 使用链规则,一直传播到叶张量。 +* 使用链式规则,一直传播到叶子张量。 下面是我们示例中 DAG 的直观表示。 在图中,箭头指向前进的方向。 节点代表正向传播中每个操作的反向功能。 蓝色的叶节点代表我们的叶张量`a`和`b`。 diff --git a/new/pt-tut-17/07.md b/new/pt-tut-17/07.md index 9b6aa005a738d95b6bf064a256cc095d433563a8..29bb80175c3a78d1b9d8df902c3565bc1ad7cbb3 100644 --- a/new/pt-tut-17/07.md +++ b/new/pt-tut-17/07.md @@ -9,7 +9,7 @@ PyTorch 的核心是提供两个主要功能: * n 维张量,类似于 NumPy,但可以在 GPU 上运行 -* 自动区分以构建和训练神经网络 +* 用于构建和训练神经网络的自动微分 我们将使用将三阶多项式拟合`y = sin(x)`的问题作为运行示例。 该网络将具有四个参数,并且将通过使网络输出与实际输出之间的欧几里德距离最小化来进行梯度下降训练,以适应随机数据。 diff --git a/new/pt-tut-17/22.md b/new/pt-tut-17/22.md index 7f848f5a14beae77eda9a6863714480a992b8481..d0b59f9f32e4f92aa64d90fee3ef0e6f6ac00e41 100644 --- a/new/pt-tut-17/22.md +++ b/new/pt-tut-17/22.md @@ -723,7 +723,7 @@ plt.show() * 训练更长的时间,看看效果如何 * 修改此模型以采用其他数据集,并可能更改图像的大小和模型架构 -* 在处查看其他一些不错的 GAN 项目 +* 查看其他一些不错的 GAN 项目 * [创建可生成音乐的 GAN](https://deepmind.com/blog/wavenet-generative-model-raw-audio/) **脚本的总运行时间**:(29 分钟 17.480 秒) diff --git a/new/pt-tut-17/24.md b/new/pt-tut-17/24.md index 538ccf4a2ac1be12076ec1bd43e5179bdb598c4a..8ee6461acb0ba915bfe4cf3b86f24fb92ea34831 100644 --- a/new/pt-tut-17/24.md +++ b/new/pt-tut-17/24.md @@ -237,7 +237,7 @@ Median relative difference between original and MuLaw reconstucted signals: 1.28 上面看到的转换依赖于较低级别的无状态函数进行计算。 这些功能在`torchaudio.functional`下可用。 完整列表在[此处](https://pytorch.org/audio/functional.html),包括: -* `istft`:短时傅立叶逆变换。 +* `istft`:短期傅立叶逆变换。 * `gain`:对整个波形进行放大或衰减。 * `dither`:增加以特定位深度存储的音频的动态范围。 * `compute_deltas`:计算张量的增量系数。 diff --git a/new/pt-tut-17/28.md b/new/pt-tut-17/28.md index ae1a15fc6e75c3a1f945b5184879ef2062566eaf..8c42bba415a0e209c923f1c8ba49d761b6ef35ac 100644 --- a/new/pt-tut-17/28.md +++ b/new/pt-tut-17/28.md @@ -305,8 +305,8 @@ criterion = nn.NLLLoss() * 创建输入和目标张量 * 创建归零的初始隐藏状态 -* 阅读和中的每个字母 - * 保持下一个字母的隐藏状态 +* 阅读每个字母 + * 保存下一个字母的隐藏状态 * 比较最终输出与目标 * 反向传播 * 返回输出和损失 diff --git a/new/pt-tut-17/29.md b/new/pt-tut-17/29.md index 5e96936d47401ba81f2fd59b6ae4581db65f115a..e9388b38dd0d7d69b9298c616e2fbfd5905db325 100644 --- a/new/pt-tut-17/29.md +++ b/new/pt-tut-17/29.md @@ -338,7 +338,7 @@ plt.plot(all_losses) * 为输入类别,起始字母和空隐藏状态创建张量 * 用起始字母创建一个字符串`output_name` * 直到最大输出长度, - * 将当前信件输入网络 + * 将当前字母输入网络 * 从最高输出中获取下一个字母,以及下一个隐藏状态 * 如果字母是`EOS`,请在此处停止 * 如果是普通字母,请添加到`output_name`并继续 @@ -409,7 +409,7 @@ Iun ## 练习 * 尝试使用类别 -> 行的其他数据集,例如: - * 虚构系列 -> 角色名称 + * 虚构序列 -> 角色名称 * 词性 -> 词 * 国家 -> 城市 * 使用“句子开头”标记,以便无需选择开始字母即可进行采样 diff --git a/new/pt-tut-17/30.md b/new/pt-tut-17/30.md index 14f7c863604ab06724a577763e20eea821990a7f..542ca703f43b5987c8a1c6352ceb903e86583593 100644 --- a/new/pt-tut-17/30.md +++ b/new/pt-tut-17/30.md @@ -204,7 +204,7 @@ def filterPairs(pairs): 准备数据的完整过程是: -* 读取文本文件并拆分为行,将行拆分为成对 +* 读取文本文件并拆分为行,将行拆分为偶对 * 规范文本,按长度和内容过滤 * 成对建立句子中的单词列表 @@ -487,7 +487,7 @@ def timeSince(since, percent): * 启动计时器 * 初始化优化器和标准 * 创建一组训练对 -* 启动空损失阵列进行绘图 +* 启动空损失数组进行绘图 然后,我们多次调用`train`,并偶尔打印进度(示例的百分比,到目前为止的时间,估计的时间)和平均损失。 diff --git a/new/rl-tf/01.md b/new/rl-tf/01.md index d0293ee3e9ffb04495c7d428455d1c47ed8e3d9f..037403bda559a5762d0a6bf0c47c6643a6c5d18f 100644 --- a/new/rl-tf/01.md +++ b/new/rl-tf/01.md @@ -283,7 +283,7 @@ ReLU 的导数图,对于`x <= 0`,`f'(x) = 1`,对于`x > 0`,`f'(x) = 0` # 计算图 -基本的神经网络由前向传播和后向传播组成。 结果,它由一系列步骤组成,这些步骤包括不同节点,权重和偏差的值,以及所有权重和偏差的成本函数导数。 为了跟踪这些过程,图片中出现了**计算图**。 无论神经网络的深度如何,计算图还可以跟踪链规则的区分。 +基本的神经网络由前向传播和后向传播组成。 结果,它由一系列步骤组成,这些步骤包括不同节点,权重和偏差的值,以及所有权重和偏差的成本函数导数。 为了跟踪这些过程,图片中出现了**计算图**。 无论神经网络的深度如何,计算图还可以跟踪链式规则的区分。 # 使用梯度下降法解决逻辑回归的步骤