无监督机器翻译Facebook研究

时间:2018-10-09 21:33:16

标签: python machine-learning machine-translation natural-language-processing

我对来自Facebook研究https://github.com/facebookresearch/UnsupervisedMT的这种模型有疑问

我想修改培训程序,但是要做到这一点,我需要更好地理解代码。 特别是在文件UnsupervisedMT/NMT/src/trainer.py中 在def enc_dec_step内,在第472行

scores = self.decoder(encoded, sent2[:-1], lang2_id) 

我无法理解解码器函数到底在做什么,以及为什么它需要sent2作为参数。我的意思是,我假设self.decoder()是一个函数,该函数从语言1获取句子1的编码状态,以在语言2(lang2_id)的整个词汇表上输出激活的2D张量,并且执行的次数与它输出的句子的单词数,因此输出应为张量大小(输出句子的长度)x(词汇中的单词数)的张量,但我不明白为什么它甚至需要成对的句子(sent2)为此。

无论如何,这只是猜测,重点是我想详细了解此函数的确切功能,但是我对编码仍然不太满意,所以我找不到该函数的位置定义。

据我了解,它可能正在初始化一个TransformerDecoder实例(取决于设置),但是即使是这样,我也不知道如何理解实际发生的事情在我看来,这没有任何意义。

有人可以帮忙吗?

0 个答案:

没有答案
相关问题