Домашнее задание №2
Попробуйте адаптировать код из семинара для решения задачи перевода текстов с немецкого на английский язык. В качестве данных для обучения можно использовать датасет Multi30k. Скачать его можно с помощью следующего кода:
from torchtext.datasets import TranslationDataset, Multi30k
spacy_de = spacy.load('de')
spacy_en = spacy.load('en')
def tokenize_de(text):
return [tok.text for tok in spacy_de.tokenizer(text)][::-1]
def tokenize_en(text):
return [tok.text for tok in spacy_en.tokenizer(text)]
SRC = Field(tokenize = tokenize_de,
init_token = '',
eos_token = '',
lower = True)
TRG = Field(tokenize = tokenize_en,
init_token = '',
eos_token = '',
lower = True)
train_data, valid_data, test_data = Multi30k.splits(
exts = ('.de', '.en'),
fields = (SRC, TRG)
)
Обратите внимание, что здесь при создании SRC и TRG отсутствует параметр include_lengths. Для корректной работы с этим примером, Вам нужно будет немного изменить метод forward класса Encoder из кода семинара.
Успехов! :)

К сожалению, у нас пока нет статистики ответов на данный вопрос, но мы работаем над этим.