Как обучить встраиванию слов с помощью Pytorch - PullRequest
0 голосов
/ 20 мая 2018

Я пытаюсь научиться и практиковаться в обучении встраиванию словарного набора с использованием pytorch.

https://pytorch.org/tutorials/beginner/nlp/word_embeddings_tutorial.html

loss = loss_function(log_probs, torch.tensor([word_to_ix[target]], dtype=torch.long))

В приведенном выше примере учебного пособия потери вычислялись между log_probsэто тензор 4 x 10 (4 для слова контекста number и 10 для embedding_dimension), а индекс слова цели, который является целым числом, варьируется от 0 до 49.

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

Я думаю, что нужно вернуться к параметру встраивания, затем вызвать его и сравнить ся думаю, его контекст.

Это только потому, что это только для учебника, или я неправильно истолковываю какой-то пункт?

Спасибо за вашу помощь заранее.

1 Ответ

0 голосов
/ 24 мая 2018

Встраивание - это побочный продукт обучения вашей модели.Сама модель обучается с контролируемым обучением, чтобы предсказать следующее слово дать контекст слова.Обычно это делается (также в этом уроке) в виде одноклавишного кодера.log_probs - это выходные данные модели, представляющие собой вероятности в логарифмической форме, которые затем сравниваются с целевым объектом горячего энкодера.Более высокие вероятности для правильного целевого слова соответствуют меньшим потерям, и, наоборот, более низкие вероятности для правильных целевых слов будут вызывать большие сигналы потери, распространяющиеся по сети и изменяющие веса.Вот почему log_probs сравниваются с целью.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...