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

Функция F.linear

Функция F.linear применяет линейное преобразование к входным данным. Она вычисляет произведение входного тензора на матрицу весов и добавляет смещение. Функция принимает три обязательных параметра: входной тензор input, матрицу весов weight и тензор смещения bias (может быть None).

Входной тензор может иметь любую размерность, но последняя размерность должна соответствовать количеству входных признаков. Матрица весов имеет размерность (out_features, in_features), а смещение - (out_features). Результатом является тензор с той же размерностью, что и входной, но последняя размерность заменяется на out_features.

Синтаксис

torch.nn.functional.linear(input, weight, bias=None)

Пример

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

import torch import torch.nn.functional as F t = torch.tensor([1.0, 2.0, 3.0]) weight = torch.tensor([[0.5, 0.5, 0.5]]) bias = torch.tensor([1.0]) res = F.linear(t, weight, bias) print(res)

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

tensor([4.])

Пример

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

import torch import torch.nn.functional as F t = torch.tensor([ [1.0, 2.0, 3.0], [4.0, 5.0, 6.0], ]) weight = torch.tensor([ [0.1, 0.2, 0.3], [0.4, 0.5, 0.6], ]) bias = torch.tensor([1.0, -1.0]) res = F.linear(t, weight, bias) print(res)

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

tensor([ [ 2.4000, 1.8000], [ 5.7000, 6.0000], ])

Пример

Используем функцию без смещения:

import torch import torch.nn.functional as F t = torch.tensor([1.0, 2.0, 3.0]) weight = torch.tensor([ [0.1, 0.2, 0.3], [0.4, 0.5, 0.6], ]) res = F.linear(t, weight, bias=None) print(res)

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

tensor([1.4000, 3.2000])

Пример

Применим линейное преобразование к трехмерному тензору (пакет последовательностей):

import torch import torch.nn.functional as F t = torch.tensor([ [ [1.0, 2.0], [3.0, 4.0], ], [ [5.0, 6.0], [7.0, 8.0], ], ]) weight = torch.tensor([ [0.1, 0.2], [0.3, 0.4], [0.5, 0.6], ]) bias = torch.tensor([1.0, 2.0, 3.0]) res = F.linear(t, weight, bias) print(res)

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

tensor([ [ [ 1.5000, 2.5000, 3.5000], [ 2.1000, 4.1000, 6.1000], ], [ [ 2.7000, 5.7000, 8.7000], [ 3.3000, 7.3000, 11.3000], ], ])

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

  • модуль Linear,
    который реализует линейный слой в нейронной сети
  • функцию bilinear,
    которая применяет билинейное преобразование
  • функцию embedding,
    которая применяет встраивание к входным данным
  • функцию one_hot,
    которая преобразует индексы в one-hot векторы
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить