Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
coolalex776
apachecn-dl-zh
提交
6e57b11b
A
apachecn-dl-zh
项目概览
coolalex776
/
apachecn-dl-zh
与 Fork 源项目一致
Fork自
OpenDocCN / apachecn-dl-zh
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
A
apachecn-dl-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
6e57b11b
编写于
1月 16, 2021
作者:
W
wizardforcel
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
2021-01-16 17:45:33
上级
9e2fcacf
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
9 addition
and
9 deletion
+9
-9
new/pt-ai-fund/4.md
new/pt-ai-fund/4.md
+9
-9
未找到文件。
new/pt-ai-fund/4.md
浏览文件 @
6e57b11b
...
...
@@ -23,7 +23,7 @@
在上图中,我们可以看到 RNN 中的输入,输出和循环本身。 RNN 是为信息的持久性而设计的,而循环组件则可以实现这一点。
这是
*图 1*
的扩展版本:
这是
“图 1”
的扩展版本:
![](
img/a503c507-a800-47b7-ba2a-8ed34c3c4a5e.png
)
...
...
@@ -73,7 +73,7 @@ pip install torchtext
# 怎么做...
在本食谱中,我们将编写一个标记器,将在本章的
*创建字段*
部分中使用:
在本食谱中,我们将编写一个标记器,将在本章的
“创建字段”
部分中使用:
1.
我们将首先编写一个简单的 lambda 函数:
...
...
@@ -269,7 +269,7 @@ pip install torchtext
# 开发迭代器
迭代器用于从数据集中加载一批数据。 它们提供了使加载数据和将数据移动到适当设备的方法更加容易。 我们可以使用这些迭代器对象遍历历元时对数据进行迭代。 在本食谱中,我们将从数据集中开发这些迭代器。 您将需要完成
*开发数据集*
配方中的步骤,因为我们将在此处使用该配方中的
`Dataset`
对象。
迭代器用于从数据集中加载一批数据。 它们提供了使加载数据和将数据移动到适当设备的方法更加容易。 我们可以使用这些迭代器对象遍历历元时对数据进行迭代。 在本食谱中,我们将从数据集中开发这些迭代器。 您将需要完成
“开发数据集”
配方中的步骤,因为我们将在此处使用该配方中的
`Dataset`
对象。
# 怎么做...
...
...
@@ -323,13 +323,13 @@ pip install torchtext
# 探索单词嵌入
单词嵌入是单词的学习表示。 它们是单词的密集表示,其中为每个单词分配一个向量,即预定义向量空间中的实值向量,而不是数字标识符。 例如,一个单词将表示为!
[](
img/e8ab6120-79d8-46fd-aa75-470d721ff4e5.png
)
`n`
维向量-例如,语料库中的单词
*图书*
可能表示为[0.22,0.242,...。 ..,1.234]而不是[0,0,1,....,0]
的单引号表示。
单词嵌入是单词的学习表示。 它们是单词的密集表示,其中为每个单词分配一个向量,即预定义向量空间中的实值向量,而不是数字标识符。 例如,一个单词将表示为!
[](
img/e8ab6120-79d8-46fd-aa75-470d721ff4e5.png
)
`n`
维向量-例如,语料库中的单词
`book`
可能表示为
`[0.22, 0.242, ..., ..., 1.234]`
而不是
`[0, 0, 1, ..., 0]`
的单引号表示。
数字表示只是单词的表示; 但是,单词嵌入是令牌的表示,其中该表示也包含令牌/单词的含义。 模型从单词出现的上下文中获悉了此含义。 在词嵌入中,具有相似含义的词具有相似的表示形式,我们可以对这些词向量执行向量算术,如下所示:
![](
img/c4fc9f6e-bc00-4e90-a9e6-00637c82c64d.png
)
在这里,我们能够从
*王*
向量中减去
*man*
向量,并将其与
*女人*
向量相加,所得向量将接近该向量
*Queen*
的表示形式。 我们将在本食谱中探讨此实现。
在这里,我们能够从
`king`
向量中减去
`man`
向量,并将其与
`woman`
向量相加,所得向量将接近该向量
`Queen`
的表示形式。 我们将在本食谱中探讨此实现。
# 怎么做...
...
...
@@ -482,7 +482,7 @@ return self.fc(hidden)
# 多层 LSTM
我们在先前的食谱中介绍了简单的 LSTM。 在本食谱中,我们将为多层 LSTM 升级该简单的 LSTM 定义。 您需要完成
*构建 LSTM 网络*
配方才能了解此配方。
我们在先前的食谱中介绍了简单的 LSTM。 在本食谱中,我们将为多层 LSTM 升级该简单的 LSTM 定义。 您需要完成
“构建 LSTM 网络”
配方才能了解此配方。
# 怎么做...
...
...
@@ -547,15 +547,15 @@ class MultiLSTMClassifier(nn.Module):
# 双向 LSTM
该配方以多层 LSTM 配方为基础。 在正常的 LSTM 中,LSTM 会从头到尾读取输入序列。 但是,在双向 LSTM 中,有第二个 LSTM 从最后到第一个读取序列,即反向 RNN。 当当前时间戳的预测取决于序列中进一步输入时,这种类型的 LSTM 可以提高模型性能。 考虑示例“我看过漫画”和“我昨天看过漫画”。 在这种情况下,基于将来出现的令牌,相同的令牌(即
*读取为*
)具有不同的含义。 我们将在本食谱中探讨其实现。
该配方以多层 LSTM 配方为基础。 在正常的 LSTM 中,LSTM 会从头到尾读取输入序列。 但是,在双向 LSTM 中,有第二个 LSTM 从最后到第一个读取序列,即反向 RNN。 当当前时间戳的预测取决于序列中进一步输入时,这种类型的 LSTM 可以提高模型性能。 考虑示例“我看过漫画”和“我昨天看过漫画”。 在这种情况下,基于将来出现的令牌,相同的令牌(即
`read`
)具有不同的含义。 我们将在本食谱中探讨其实现。
# 做好准备
该配方建立在
*多层 LSTM*
配方的基础上,因此在尝试该配方之前,请务必先完成该配方。
该配方建立在
“多层 LSTM”
配方的基础上,因此在尝试该配方之前,请务必先完成该配方。
# 怎么做...
在此配方中,我们将修改
*多层 LSTM*
配方中的类定义,使其成为双向 LSTM:
在此配方中,我们将修改
“多层 LSTM”
配方中的类定义,使其成为双向 LSTM:
1.
我们将
`bidirectional`
参数设置为
`True`
:
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录