本文爲利用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、訓練並保存模型