当前位置:   article > 正文

87.序列到序列学习(seq2seq)以及代码实现_seq2seq代码

seq2seq代码

1. 机器翻译

在这里插入图片描述

2. Seq2Seq

在这里插入图片描述

双向RNN可以做encoder,但不能做decoder。

3. 编码器-解码器细节

在这里插入图片描述

4. 训练

在这里插入图片描述

5. 衡量生成序列的好坏的BLEU

在这里插入图片描述

上面的公式既加入了段序列的惩罚项,又加入了更难出现的长序列的高权重。

6. 总结:

  • Seq2seq从一个句子生成另一个句子
  • 编码器和解码器都是RNN
  • 将编码器最后时间隐状态来初始解码器隐状态来完成信息传递
  • 常用BLEU来衡量生成序列的好坏

7. 代码实现

下面,我们动手构建 seq2seq的设计, 并将基于“英-法”数据集来训练这个机器翻译模型。

import collections
import math
import torch
from torch import nn
from d2l import torch as d2l
  • 1
  • 2
  • 3
  • 4
  • 5

7.1 编码器

现在,来实现循环神经网络编码器。 注意,我们使用了嵌入层(embedding layer) 来获得输入序列中每个词元的特征向量。 嵌入层的权重是一个矩阵, 其行数等于输入词表的大小(vocab_size), 其列数等于特征向量的维度(embed_size)。 对于任意输入词元的索引 声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/345847

推荐阅读
相关标签