本文为利用seq2seq实现单词序列转换的代码,开发环境为jupyter,tensorflow版本为1.2.1
实验数据和程序文件见链接:https://pan.baidu.com/s/1YDkaQFvWuKN8KAT1aQ4Z0A
一、预处理
1、引入必要的包
打开source和target两个txt文件,并打印前十个数据

2、数据预处理
这个阶段主要对每个字母映射为唯一不同的数字
查看转换后的结果,可见每个字母都被映射为唯一的数字。

3、获取输入

4、定义Encoder层

5、定义decoder层输入

6、定义decoder层
'''
这里注意:如果tensorflow版本低于1.2.1,需要将 training_decoder_output, _,_ 和predicting_decoder_output, _,_分别改成training_decoder_output, _和predicting_decoder_output, _,_
原因是因为1.2.1版本中 tf.contrib.seq2seq.dynamic_decode()函数返回三个参数。而低于1.2.1版本则只返回两个参数。
'''

二、定义seq2seq模型
7、模型定义

8、定义超参数

9、构造graph

10、对batch中的序列进行补全

11、定义生成器,用来获取batch

12、训练并保存模型

13、训练过程如下图所示:

三、测试
14、对源数据进行转换

15、测试图片:

16、最终的输出结果为:

本文介绍使用Seq2Seq模型实现单词序列转换的过程,包括数据预处理、模型定义及训练等关键步骤。通过实例演示了如何搭建Seq2Seq模型,并展示了训练效果。
2165

被折叠的 条评论
为什么被折叠?



