РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗pytoSpAtEn 71 of 82 menu
◀ ▶

Слой энкодера в PyTorch

Для полного шага энкодера в PyTorch служит класс TransformerEncoderLayer. Он объединяет внимание, нормализацию и линейные преобразования в одном блоке.

При создании указывают размер модели - длину вектора на входе и внутри слоя, а также сколько голов участвует во внимании. Создадим один такой слой, подадим пакет последовательностей и выведем форму результата:

import torch import torch.nn as nn block = nn.TransformerEncoderLayer(d_model=8, nhead=2) seq = torch.randn(5, 3, 8) result = block(seq) print(result.shape) # выведет torch.Size([5, 3, 8])

Форма на выходе совпадает с формой входа: меняется содержимое векторов, а длина ряда, пакет и ширина остаются прежними.

import torch import torch.nn as nn block = nn.TransformerEncoderLayer(d_model=12, nhead=3) seq = torch.randn(6, 2, 12) result = block(seq) print(result.shape) # выведет torch.Size([6, 2, 12])

Соберите блок с размером модели 16 и 4 головами. Подайте ряд 3, пакет 2 и ширину 16 и выведите форму на выходе.

Возьмите размер модели 20 и 5 голов, прогоните тензор 4 на 1 на 20 и выведите форму ответа.

Опишите один блок на 8 и 2 головы. Передайте последовательность длиной 10 и пакет 4 и выведите форму получившегося тензора.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить