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

Класс Linear

Класс Linear применяется для создания полносвязного слоя нейронной сети. Он выполняет линейное преобразование входных данных: y = xA^T + b. Первым параметром передаётся количество входных признаков in_features, вторым - количество выходных признаков out_features. Третьим параметром можно передать bias, который управляет использованием смещения (по умолчанию True).

Синтаксис

torch.nn.Linear(in_features, out_features, bias=True)

Пример

Давайте создадим линейный слой, преобразующий вектор из 5 признаков в вектор из 3 признаков, и применим его к случайному тензору:

import torch torch.manual_seed(0) layer = torch.nn.Linear(5, 3) t = torch.randn(2, 5) res = layer(t) print(res)

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

tensor([ [-0.2091, 0.4138, 0.3181], [ 0.6639, -0.2638, -0.6696], ], grad_fn=<AddmmBackward0>)

Пример

Создадим линейный слой без смещения и применим его к пакету из трёх образцов:

import torch torch.manual_seed(1) layer = torch.nn.Linear(4, 2, bias=False) t = torch.randn(3, 4) res = layer(t) print(res)

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

tensor([ [ 0.4427, -0.3547], [-0.3235, 0.3190], [ 0.2401, -0.0513], ], grad_fn=<MmBackward0>)

Пример

Покажем, как получить доступ к весам и смещению слоя, а также изменить их значения:

import torch torch.manual_seed(2) layer = torch.nn.Linear(3, 2) print("Weights shape:", layer.weight.shape) print("Bias shape:", layer.bias.shape) layer.weight.data.fill_(0.1) layer.bias.data.fill_(0.0) t = torch.tensor([[1.0, 2.0, 3.0]]) res = layer(t) print(res)

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

Weights shape: torch.Size([2, 3]) Bias shape: torch.Size([2]) tensor([[0.6000, 0.6000]], grad_fn=<AddmmBackward0>)

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

  • класс LazyLinear,
    который создаёт линейный слой с отложенным определением размера входных признаков
  • класс Bilinear,
    который выполняет билинейное преобразование двух входных тензоров
  • класс Identity,
    который возвращает входной тензор без изменений
  • класс Flatten,
    который преобразует многомерный тензор в плоский вектор
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить