Как рассчитать встраивание слов и предложений с помощью GPT-2? ⇐ Python
Как рассчитать встраивание слов и предложений с помощью GPT-2?
Я работаю над программой, которая вычисляет встраивание слов и предложений с использованием GPT-2, в частности, над классом GPT2Model. Для встраивания слов я извлекаю последнее скрытое состояние outputs[0] после пересылки input_ids, которое имеет форму размер пакета x длина последовательности , в класс GPT2Model. Что касается встраивания предложений, я извлекаю скрытое состояние слова в конце последовательности. Это код, который я пробовал:
из трансформеров импортировать GPT2Tokenizer, GPT2Model импортный фонарь токенизатор = GPT2Tokenizer.from_pretrained('gpt2') модель = GPT2Model.from_pretrained('gpt2') captions = ["пример подписи", "пример птицы", "желтая птица с красными крыльями", "привет", "очень хорошо"] encoded_captions = [tokenizer.encode(caption) для подписи в подписях] # Дополнить последовательности одинаковой длины нулями max_len = max(len(seq) для seq в encoded_captions) Padded_captions = [seq + [0] * (max_len - len(seq)) для последовательности в encoded_captions] # Преобразование в тензор PyTorch с размером пакета 5 input_ids = torch.tensor(padded_captions) выходные данные = модель (input_ids) word_embedding = выходные данные[0].contigious() предложение_вложение = слово_вложение[ :, -1, : ].contigious() Я не уверен, что мои расчеты по встраиванию слов и предложений верны. Может ли кто-нибудь помочь мне это подтвердить?
Я работаю над программой, которая вычисляет встраивание слов и предложений с использованием GPT-2, в частности, над классом GPT2Model. Для встраивания слов я извлекаю последнее скрытое состояние outputs[0] после пересылки input_ids, которое имеет форму размер пакета x длина последовательности , в класс GPT2Model. Что касается встраивания предложений, я извлекаю скрытое состояние слова в конце последовательности. Это код, который я пробовал:
из трансформеров импортировать GPT2Tokenizer, GPT2Model импортный фонарь токенизатор = GPT2Tokenizer.from_pretrained('gpt2') модель = GPT2Model.from_pretrained('gpt2') captions = ["пример подписи", "пример птицы", "желтая птица с красными крыльями", "привет", "очень хорошо"] encoded_captions = [tokenizer.encode(caption) для подписи в подписях] # Дополнить последовательности одинаковой длины нулями max_len = max(len(seq) для seq в encoded_captions) Padded_captions = [seq + [0] * (max_len - len(seq)) для последовательности в encoded_captions] # Преобразование в тензор PyTorch с размером пакета 5 input_ids = torch.tensor(padded_captions) выходные данные = модель (input_ids) word_embedding = выходные данные[0].contigious() предложение_вложение = слово_вложение[ :, -1, : ].contigious() Я не уверен, что мои расчеты по встраиванию слов и предложений верны. Может ли кто-нибудь помочь мне это подтвердить?
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение