Pytorch学习记录-使用RNN encoder-decode

2019-04-22  本文已影响0人  我的昵称违规了

Pytorch学习记录-torchtext和Pytorch的实例2

0. PyTorch Seq2Seq项目介绍

在完成基本的torchtext之后,找到了这个教程,《基于Pytorch和torchtext来理解和实现seq2seq模型》。
这个项目主要包括了6个子项目

  1. 使用神经网络训练Seq2Seq
  2. 使用RNN encoder-decoder训练短语表示用于统计机器翻译
  3. 使用共同学习完成NMT的堆砌和翻译
  4. 打包填充序列、掩码和推理
  5. 卷积Seq2Seq
  6. Transformer

2. 使用RNN encoder-decoder训练短语表示用于统计机器翻译

现在我们已经涵盖了基本的工作流程,这节教程将重点关注改进我们的结果。基于我们从前一个教程中获得的PyTorch和TorchText的知识,我们将介绍第二个第二个模型,它有助于Encoder-Decoder模型面临的信息压缩问题。该模型将基于使用用于统计机器翻译的RNN Encoder-Decoder的学习短语表示的实现,其使用GRU。
本节教程源自《Learning Phrase Representations using RNN Encoder-Decoder for Statistical Machine Translation》

2.1 介绍

这里回顾了上一节的通用Encoder-Decoder模型。

image.png

我们在源序列上使用Encoder(绿色)来创建上下文向量(红色)。然后,我们将该上下文向量与Decoder(蓝色)和线性层(紫色)一起使用以生成目标句子。
在这个模型的基础上,改进,搞出来一个多层LSTM模型。

image.png

前一个模型的一个缺点是Decoder试图将大量信息塞入隐藏状态。在解码时,隐藏状态将需要包含关于整个源序列的信息,以及到目前为止已经解码的所有token。通过减轻一些信息压缩,我们可以创建一个更好的模型!
同时这里将使用LSTM的进化版GRU。

上一篇下一篇

猜你喜欢

热点阅读