seq2seq主要实现步骤和源码

本文详细介绍了Seq2Seq模型的工作原理及其构建过程。包括数据预处理阶段如何利用特殊字符进行序列标识,编码器与解码器的具体实现方式,以及如何通过TrainingHelper与GreedyEmbeddingHelper来提高模型准确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

注意点:

1 数据预处理阶段(添加特殊字符)

<PAD>主要用来进行字符补全,<EOS>和<GO>都是用在Decoder端的序列中,告诉解码器句子的起始与结束

<UNK>则用来替代一些未出现过的词或者低频词

2 encoder

直接lstm或者其他模型

3 decoder

  • 对target数据进行处理
  • 构造Decoder

     在训练过程中,我们需要将我们的target序列作为输入传给Decoder端RNN的每个阶段,而不是使用前一阶段预测输出,这样会使得模型更加准确。TrainingHelper用于训练阶段,GreedyEmbeddingHelper用于测试阶段

    • Embedding
    • 构造Decoder层
    • 构造输出层,输出层会告诉我们每个时间序列的RNN输出结果
    • Training Decoder
    • Predicting Decoder

4 构建好了Encoder层与Decoder以后,我们需要将它们连接起来build我们的Seq2Seq模型

参考https://zhuanlan.zhihu.com/p/27608348

源码 https://github.com/lbda1/base_seq2seq

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值