неконтролируемый машинный перевод исследование facebook - PullRequest
0 голосов
/ 10 октября 2018

У меня есть вопрос об этой модели из исследования в 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) и делает это столько раз, сколькоколичество слов в предложениях, которые оно выводит, так что результат должен быть тензорным по размеру (длина выходного предложения) x (количество слов в словаре), но я не понимаю, почему требуется даже парное предложение (sent2)чтобы сделать это.

В любом случае, это просто предположение, и дело в том, что я хотел бы увидеть подробно, что именно делает эта функция, но просто я все еще не очень хорош в кодировании, поэтому я могуне могу найти, где эта функция определена.

Из того, что я понял, может быть, что он инициализирует, например, экземпляр TransformerDecoder (это зависит от настроек), но даже если это так, у меня естьпонятия не имею, как понять, что на самом деле происходит, более того, мне кажется, что это не имеет смысла.

Кто-нибудь может помочь?

...