ПочатиПочніть безкоштовно

Початок роботи з MultiHeadAttentionClass

Тепер, коли ви визначили класи для створення токен-вкладень і позиційних вкладень, час оголосити клас для багатоголової уваги. Спочатку налаштуйте параметри, що використовуються для обчислення уваги, а також лінійні шари для перетворення вхідних вкладень у матриці запиту (query), ключа (key) і значення (value), і ще один шар для проєкції об'єднаних ваг уваги назад у вкладення.

torch.nn імпортовано як nn.

Ця вправа є частиною курсу

Моделі Transformer з PyTorch

Переглянути курс

Інструкції до вправи

  • Обчисліть розмірність вкладень, яку опрацьовуватиме кожна голова уваги — head_dim.
  • Оголосіть три вхідні шари (для query, key і value) та один вихідний шар; приберіть параметр зміщення з вхідних шарів.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

class MultiHeadAttention(nn.Module):
    def __init__(self, d_model, num_heads):
        super().__init__()
        # Calculate the dimensions each head will process
        self.num_heads = num_heads
        self.d_model = d_model
        self.head_dim = ____
        # Define the three input layers and one output layer
        self.query_linear = nn.Linear(____, ____, bias=False)
        self.key_linear = nn.Linear(____)
        self.value_linear = ____
        self.output_linear = ____
Редагувати та запускати код