本文为利用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、训练并保存模型