Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
weixin_49771401
apachecn-dl-zh
提交
6ae00503
A
apachecn-dl-zh
项目概览
weixin_49771401
/
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,发现更多精彩内容 >>
提交
6ae00503
编写于
1月 18, 2021
作者:
W
wizardforcel
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
2021-01-18 17:37:37
上级
22b26079
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
5 addition
and
5 deletion
+5
-5
new/pt-dl-handson/5.md
new/pt-dl-handson/5.md
+5
-5
未找到文件。
new/pt-dl-handson/5.md
浏览文件 @
6ae00503
...
...
@@ -12,7 +12,7 @@
几次迭代和多年的研究得出了 RNN 架构设计的几种不同方法。 最新的模型现在使用
**长短期记忆**
(
**LSTM**
)实现或
**门控循环单元**
(
**GRU**
)。 这两种实现都将 RNN 单元内的门用于不同目的,例如遗忘门,它使网络忘记不必要的信息。 这些架构具有香草 RNN 所存在的长期依赖性问题,因此使用门不仅要忘记不必要的信息,而且要记住在长距离移动到最后一个单元时所必需的信息。
注意是下一个重大发明,它可以帮助网络将注意力集中在输入的重要部分上,而不是搜索整个输入并试图找到答案。 实际上,来自 Google Brain 和多伦多大学的一个团队证明,注意力可以击败 LSTM 和 GRU 网络[1]。 但是,大多数实现都同时使用 LSTM
/
GRU 和注意力。
注意是下一个重大发明,它可以帮助网络将注意力集中在输入的重要部分上,而不是搜索整个输入并试图找到答案。 实际上,来自 Google Brain 和多伦多大学的一个团队证明,注意力可以击败 LSTM 和 GRU 网络[1]。 但是,大多数实现都同时使用 LSTM
/
GRU 和注意力。
嵌入是通过比较单词在单词簇中的分布来找到单词的概念含义的另一种革命性思想。 嵌入保持单词之间的关系,并将这种关系(它从单词簇中的单词分布中找到)转换为一组浮点数。 嵌入大大减少了输入大小,并极大地提高了性能和准确率。 我们将使用 word2vec 进行实验。
...
...
@@ -333,7 +333,7 @@ class RNNClassifier(nn.Module):
##### 辍学
辍学是 Apple 的机器学习工程师 Nitish Srivastava 提出的革命性想法。 它消除了对通常的正则化技术的需要,该技术在引入辍学之前一直很普遍。 借助
dropout
,我们丢弃了网络中神经元之间的随机连接,因此网络必须泛化并且不能偏向任何类型的外部因素。 要删除神经元,只需将其输出设置为零即可。 丢弃随机神经元可防止网络共同适应,因此在很大程度上减少了过拟合。
辍学是 Apple 的机器学习工程师 Nitish Srivastava 提出的革命性想法。 它消除了对通常的正则化技术的需要,该技术在引入辍学之前一直很普遍。 借助
丢弃
,我们丢弃了网络中神经元之间的随机连接,因此网络必须泛化并且不能偏向任何类型的外部因素。 要删除神经元,只需将其输出设置为零即可。 丢弃随机神经元可防止网络共同适应,因此在很大程度上减少了过拟合。
![
Dropout
](
img/B09475_05_05.jpg
)
...
...
@@ -407,7 +407,7 @@ class Encoder(nn.Module):
##### LSTMCell 和 GRUCell
`LSTMCell`
和
`GRUCell`
的函数式 API 绝对相似,这也正是定制
`RNNCell`
的方式。 它们接受输入大小和初始化程序的隐藏大小。
`forward`
调用接受具有输入大小的微型输入批量,并为该实例创建单元状态和隐藏状态,然后将其传递给下一个执行输入。 在静态图框架中实现这种的实现非常困难,因为该图在整个执行期间都是预先编译的并且是静态的。 循环语句也应作为图节点作为图的一部分。 这需要用户学习那些额外的
op
节点或其他在内部处理循环的函数式 API。
`LSTMCell`
和
`GRUCell`
的函数式 API 绝对相似,这也正是定制
`RNNCell`
的方式。 它们接受输入大小和初始化程序的隐藏大小。
`forward`
调用接受具有输入大小的微型输入批量,并为该实例创建单元状态和隐藏状态,然后将其传递给下一个执行输入。 在静态图框架中实现这种的实现非常困难,因为该图在整个执行期间都是预先编译的并且是静态的。 循环语句也应作为图节点作为图的一部分。 这需要用户学习那些额外的
操作
节点或其他在内部处理循环的函数式 API。
#### LSTM 和 GRU
...
...
@@ -467,7 +467,7 @@ RNN 实现通常是单向的,这就是到目前为止我们已经实现的。
高级
`RNNClassifier`
与简单
`RNNClassifier`
完全相同,唯一的例外是 RNN 编码器已被 LSTM 或 GRU 编码器替代。 但是,高级分类器由于使用了高度优化的 cuDNN 后端,因此可以显着提高网络性能,尤其是在 GPU 上。
我们为高级 RNN 开发的模型是多层双向 LSTM
/
GRU 网络。 增加对配方的关注可大大提高性能。 但这不会改变分类器,因为所有这些组件都将使用
`Encoder`
方法包装,并且分类器仅担心
`Encoder`
的功能 API 不会改变。
我们为高级 RNN 开发的模型是多层双向 LSTM
/
GRU 网络。 增加对配方的关注可大大提高性能。 但这不会改变分类器,因为所有这些组件都将使用
`Encoder`
方法包装,并且分类器仅担心
`Encoder`
的功能 API 不会改变。
##### 注意
...
...
@@ -566,7 +566,7 @@ class SPINN(nn.Module):
self
.
tracker
=
Tracker
(
config
.
d_hidden
,
config
.
d_tracker
,
predict
=
config
.
predict
)
```
`forward`
调用的主要部分是对
`Tracker`
的
`forward`
方法的调用,该方法将处于循环中。 我们遍历输入序列,并为转换序列中的每个单词调用
`Tracker`
的
`forward`
方法,然后根据转换实例将输出保存到上下文向量列表中。 如果转换是
“ shift”,则堆栈将在后面附加当前单词;如果转换是“ reduce”
,则将调用
`Reduce`
并创建跟踪,并在最左边和最右边的单词, 这将从左侧和右侧列表中弹出。
`forward`
调用的主要部分是对
`Tracker`
的
`forward`
方法的调用,该方法将处于循环中。 我们遍历输入序列,并为转换序列中的每个单词调用
`Tracker`
的
`forward`
方法,然后根据转换实例将输出保存到上下文向量列表中。 如果转换是
`shift`
,则堆栈将在后面附加当前单词;如果转换是
`reduce`
,则将调用
`Reduce`
并创建跟踪,并在最左边和最右边的单词, 这将从左侧和右侧列表中弹出。
```
py
def
forward
(
self
,
buffers
,
transitions
):
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录