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

Функция F.bilinear

Функция F.bilinear применяется для билинейного преобразования двух входных тензоров. Она вычисляет результат по формуле: x1^T * weight * x2 + bias, где weight - это трёхмерный тензор весов размера (out_features, in1_features, in2_features). Первым параметром передаётся первый входной тензор x1 формы (batch_size, in1_features), вторым - второй входной тензор x2 формы (batch_size, in2_features). Обязательным параметром является weight - матрица весов. Дополнительно можно передать смещение bias.

Синтаксис

torch.nn.functional.bilinear(x1, x2, weight, bias=None)

Пример

Давайте выполним билинейное преобразование двух векторов:

import torch import torch.nn.functional as F torch.manual_seed(0) x1 = torch.tensor([1.0, 2.0]) x2 = torch.tensor([3.0, 4.0]) weight = torch.tensor([ [[1.0, 2.0], [3.0, 4.0]], [[5.0, 6.0], [7.0, 8.0]] ]) bias = torch.tensor([0.1, 0.2]) res = F.bilinear(x1, x2, weight, bias) print(res)

Результат выполнения кода:

tensor([25.1000, 65.2000])

Пример

Рассмотрим билинейное преобразование с пакетной обработкой:

import torch import torch.nn.functional as F torch.manual_seed(0) x1 = torch.tensor([ [1.0, 2.0], [3.0, 4.0] ]) x2 = torch.tensor([ [5.0, 6.0], [7.0, 8.0] ]) weight = torch.tensor([ [[0.1, 0.2], [0.3, 0.4]], [[0.5, 0.6], [0.7, 0.8]] ]) bias = torch.tensor([0.5, 1.0]) res = F.bilinear(x1, x2, weight, bias) print(res)

Результат выполнения кода:

tensor([ [1.7000, 5.7000], [5.7000, 17.7000] ])

Пример

Используем билинейное преобразование без смещения:

import torch import torch.nn.functional as F torch.manual_seed(0) x1 = torch.tensor([2.0, 3.0]) x2 = torch.tensor([4.0, 5.0]) weight = torch.tensor([ [[1.0, 0.5], [0.2, 0.8]], [[0.3, 0.7], [1.5, 0.4]] ]) res = F.bilinear(x1, x2, weight) print(res)

Результат выполнения кода:

tensor([17.2000, 25.7000])

Смотрите также

  • функцию linear,
    которая выполняет линейное преобразование входных данных
  • функцию embedding,
    которая создаёт встраивания для категориальных признаков
  • функцию normalize,
    которая выполняет нормализацию входного тензора
  • функцию cosine_similarity,
    которая вычисляет косинусное сходство между двумя тензорами
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить