Как создать пример «миниатюрной Эйфелевой башни» 3b1b с помощью pytorchPython

Программы на Python
Ответить
Anonymous
 Как создать пример «миниатюрной Эйфелевой башни» 3b1b с помощью pytorch

Сообщение Anonymous »

Чтобы лучше понять и проиллюстрировать поведение одного отдельного блока внимания трансформатора, я сейчас пытаюсь создать небольшой пример. Идея пришла мне из этой части серии видео 3b1b по этой теме.
Моя идея состоит в том, чтобы использовать заданное встраивание слов, чтобы проиллюстрировать, как через уровень внимания разные слова сообщают друг другу, обновляя направление вектора. во вложении.
Вот мой MWE:

Код: Выделить всё

import gensim.downloader
import torch
import torch.nn as nn

model = gensim.downloader.load("glove-wiki-gigaword-300")
embedding = nn.Embedding.from_pretrained(torch.FloatTensor(model.vectors))

word_index_miniature = model.index_to_key.index("miniature")
word_index_eiffel = model.index_to_key.index("eiffel")
word_index_tower = model.index_to_key.index("tower")

embed_dim = model.vectors.shape[1]
num_heads = 1

data = embedding(torch.tensor([word_index_miniature, word_index_eiffel, word_index_tower], dtype=torch.long))

multihead_attn = nn.MultiheadAttention(embed_dim, num_heads)
attn_output, attn_output_weights = multihead_attn(data, data, data)

print(model.similar_by_vector(attn_output.detach().numpy()[0,]))
но, к сожалению, этот пример с маленькой игрушкой на самом деле не работает, поскольку
  • Каждый раз, когда я запускаю код, он выдает другой результат, даже когда я установил фиксированное начальное значение с помощью: torch.manual_seed(0). Поэтому я предполагаю, что здесь задействована какая-то другая случайность, о которой я (довольно незнакомый с факелом) не знаю.
  • Полученные слова совсем не соответствуют «миниатюрной Эйфелевой башне», Я надеялся увидеть такие слова, как «сувенир», «Париж», «брелок».
Знаете ли вы, как я могу улучшить этот пример, чтобы лучше проиллюстрировать внутреннюю работу внимания, или построить аналогичный пример, который действительно работает?

Подробнее здесь: https://stackoverflow.com/questions/791 ... th-pytorch
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»