From 94ce0d91f365915ee00f5acef8ca44f81da28b15 Mon Sep 17 00:00:00 2001 From: wizardforcel <562826179@qq.com> Date: Mon, 18 Jan 2021 16:52:24 +0800 Subject: [PATCH] 2021-01-18 16:52:24 --- new/pt-ai-fund/4.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/new/pt-ai-fund/4.md b/new/pt-ai-fund/4.md index 48bbd517..45ddf791 100644 --- a/new/pt-ai-fund/4.md +++ b/new/pt-ai-fund/4.md @@ -59,7 +59,7 @@ 在本章中,我们需要设置 PyTorch。 我们将使用 TorchText,它是一个专门的库,用于处理与 PyTorch 联合工作的语言任务。 -我们可以使用以下 pip 命令安装`torchtext`: +我们可以使用以下`pip`命令安装`torchtext`: ```py pip install torchtext @@ -92,7 +92,7 @@ pip install torchtext # 这个怎么运作... -在此食谱中,我们编写了一个简单的 tokenizer lambda 函数,该函数可用于英语和类似英语的语言。 我们使用单词之间的空格来标记句子。 然后,我们通过将句子传递给`tokenizer()`函数来测试标记器。 我们将在下一个配方中使用此标记生成器来创建字段。 +在此食谱中,我们编写了一个简单的分词器 lambda 函数,该函数可用于英语和类似英语的语言。 我们使用单词之间的空格来标记句子。 然后,我们通过将句子传递给`tokenizer()`函数来测试标记器。 我们将在下一个配方中使用此标记生成器来创建字段。 # 还有更多... @@ -114,7 +114,7 @@ pip install torchtext 在本食谱中,我们将探索字段,这些字段与 TorchVision 中可用的实用程序一样,使处理自然语言数据变得容易。 字段让我们定义数据类型,并通过指定要对数据执行的一组操作来帮助我们从文本数据中创建张量。 `Field`类使我们可以执行常见的文本处理任务,并掌握手边的数据词汇。 -在本食谱中,我们将研究如何使用 fields 类定义各种文本处理任务。 +在本食谱中,我们将研究如何使用`Field`类定义各种文本处理任务。 # 怎么做... @@ -168,7 +168,7 @@ pip install torchtext 在此食谱中,我们根据手头的特定任务,使用`field`类对给定的输入文本执行了各种文本处理任务。 在审阅分类的示例中,在`review`字段中,我们将`sequential`参数设置为`True`,因为它是顺序数据。 对于标签字段,我们将其设置为`False`,因为它们不是顺序的。 我们可以将文本设置为小写,这样就不会根据标记的大小写为相同的单词分配单独的标记 ID。 在评论分类的情况下,这不会影响含义; 这可以通过将`lower`设置为`True`来实现。 -对于数字字段,我们将`use_vocab`设置为`False`,这是我们为审阅标签所做的,因为我们假设标签的负数值为`0`,正数的值为`1`。 我们从标记化部分传递了`tokenizer`函数作为`tokenize`参数; 我们甚至可以通过设置`tokenize="spacy"`使用 spacy 的标记器。 对于某些任务,例如,使用`Sequence`对模型进行排序,我们可能需要特殊的标记来指示序列的开始和结束。 可以通过设置`init_token`和`eos_token`参数轻松完成。 这对于序列到序列的模型是正确的,并且如果在模型评估期间用于训练模型的词汇表中不存在令牌(词汇表外),则可以使用自定义令牌来替换这些令牌, 设置`unk_token`参数。 +对于数字字段,我们将`use_vocab`设置为`False`,这是我们为审阅标签所做的,因为我们假设标签的负数值为`0`,正数的值为`1`。 我们从标记化部分传递了`tokenizer`函数作为`tokenize`参数; 我们甚至可以通过设置`tokenize="spacy"`使用`spacy`的标记器。 对于某些任务,例如,使用`Sequence`对模型进行排序,我们可能需要特殊的标记来指示序列的开始和结束。 可以通过设置`init_token`和`eos_token`参数轻松完成。 这对于序列到序列的模型是正确的,并且如果在模型评估期间用于训练模型的词汇表中不存在令牌(词汇表外),则可以使用自定义令牌来替换这些令牌, 设置`unk_token`参数。 然后,将`batch_first`设置为`True`,以使输出张量的第一维为批量维,如果`fix_length`参数设置为整​​数值,则将对输入设置固定长度 使用此字段。 @@ -182,7 +182,7 @@ pip install torchtext # 开发数据集 -在本食谱中,我们将研究读取文本数据并使用各种数据源。 TorchText 可以从文本文件,CSV / TSV 文件,JSON 文件和目录中读取数据,并将其转换为数据集。 数据集是已预处理的数据块,可读取到内存中,并可由其他数据结构使用。 +在本食谱中,我们将研究读取文本数据并使用各种数据源。 TorchText 可以从文本文件,CSV/TSV 文件,JSON 文件和目录中读取数据,并将其转换为数据集。 数据集是已预处理的数据块,可读取到内存中,并可由其他数据结构使用。 # 做好准备 @@ -357,7 +357,7 @@ pip install torchtext # 这个怎么运作... -TorchText 具有用于处理嵌入的`vocab`模块。 我们可以通过在此食谱中提及需要的嵌入名称来下载预训练的嵌入。 我们使用了预先训练的 GloVe(GloVe 是词向量技术)模型,该模型使用 60 亿个​​令牌和 100 个嵌入维向量 glove.6B.50d 进行训练。 +TorchText 具有用于处理嵌入的`vocab`模块。 我们可以通过在此食谱中提及需要的嵌入名称来下载预训练的嵌入。 我们使用了预先训练的 GloVe(GloVe 是词向量技术)模型,该模型使用 60 亿个​​令牌和 100 个嵌入维向量`glove.6B.50d`进行训练。 然后,我们从缓存位置加载向量。 如果所需的嵌入不在高速缓存中,那么它将自动从 URL 下载并作为嵌入向量传递。 然后,我们使用`Review`字段对象的`build_vocab`方法从这些预训练的嵌入中建立词汇表,然后将其添加到训练数据的词汇表中。 @@ -478,7 +478,7 @@ return self.fc(hidden) 您可以在[这个页面](https://pytorch.org/docs/stable/nn.html#lstm)上了解有关 LSTM 的更多信息。 -您可以在[上了解有关消失和梯度爆炸的更多信息 https://www.jefkine.com/general/2018/05/21/2018-05-21-vanishing-and-exploding-gradient-problems/](https://www.jefkine.com/general/2018/05/21/2018-05-21-vanishing-and-exploding-gradient-problems/) 。 +您可以在[这个页面](https://www.jefkine.com/general/2018/05/21/2018-05-21-vanishing-and-exploding-gradient-problems/)了解有关消失和梯度爆炸的更多信息。 # 多层 LSTM @@ -539,7 +539,7 @@ class MultiLSTMClassifier(nn.Module): # 还有更多... -在本配方中,我们仅考虑了最后一个 LSTM 层的隐藏状态。 但是,可能存在使用所有隐藏层的复杂架构。 有一个 dropout 参数,可用于在多层 LSTM 的各层之间施加 dropout。 +在本配方中,我们仅考虑了最后一个 LSTM 层的隐藏状态。 但是,可能存在使用所有隐藏层的复杂架构。 有一个`dropout`参数,可用于在多层 LSTM 的各层之间施加丢弃。 # 也可以看看 -- GitLab