上一篇我们介绍了 Transformer 的原理,今天我们来根据论文动手编写一个 Transformer,并将其应用在我们前面讲过的机器翻译的例子上,大家感兴趣也可以进行对比学习。
这里的数据部分和前面机器翻译那篇是一样的,使用 ManyThings.org 的英语—法语的数据集,同样为了简化只选取 20 句。因为例子比较小,我们也会对论文中设置的一些参数进行简化。
准备数据
import tensorflow as tf
import numpy as np
import unicodedata
import re
import time
import matplotlib.pyplot as plt
raw_data = (
('What a ridiculous concept!', 'Quel concept ridicule !'),
('Your idea is not entirely crazy.', "Votre idée n'est pas complètement folle."),
("A man's worth lies in what he is.", "La valeur d'un homme réside dans ce qu'il est."),
('What he did is very wrong.', "Ce qu'il a fait est très mal."),
("All three of you need to do that.", "Vous avez besoin de faire cela, tous les trois."),
("Are you giving me ano