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

Функция F.conv1d

Функция F.conv1d из модуля torch.nn.functional выполняет одномерную свертку входного тензора с заданными весами свертки (фильтрами). Она широко используется в обработке сигналов, временных рядов и текстовых данных. Функция принимает входной тензор, тензор весов и смещение (необязательно), а также параметры шага, паддинга и расширения (дилатации).

Синтаксис

torch.nn.functional.conv1d( input, weight, bias=None, stride=1, padding=0, dilation=1, groups=1 )

Параметры

Функция принимает следующие параметры:

  • input - входной тензор формы (N, C_in, L), где N - размер батча, C_in - количество входных каналов, L - длина сигнала.
  • weight - тензор весов формы (C_out, C_in//groups, kernel_size), где C_out - количество выходных каналов, kernel_size - размер ядра свертки.
  • bias - необязательное смещение формы (C_out,) (по умолчанию None).
  • stride - шаг свертки (по умолчанию 1).
  • padding - паддинг (дополнение нулями) для сохранения размерности (по умолчанию 0).
  • dilation - расстояние между элементами ядра (по умолчанию 1).
  • groups - количество групп для групповой свертки (по умолчанию 1).

Пример

Выполним простую одномерную свертку с ядром размера 3 на входном сигнале длины 10:

import torch import torch.nn.functional as F # Входной сигнал: батч 1, 1 канал, длина 10 input = torch.tensor([ [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0] ]).unsqueeze(0) # Ядро свертки: 1 выходной канал, 1 входной канал, размер 3 weight = torch.tensor([ [1.0, 0.0, -1.0] ]).unsqueeze(0).unsqueeze(0) res = F.conv1d(input, weight) print(res)

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

tensor([[[-2., -2., -2., -2., -2., -2., -2., -2.]]])

Пример

Используем свертку с шагом 2 и паддингом 1 для сохранения размерности:

import torch import torch.nn.functional as F torch.manual_seed(0) input = torch.randn(1, 3, 10) weight = torch.randn(5, 3, 4) bias = torch.randn(5) res = F.conv1d( input, weight, bias=bias, stride=2, padding=1 ) print(res.shape)

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

torch.Size([1, 5, 5])

Пример

Применим свертку с расширением (дилатацией) для увеличения рецептивного поля без увеличения размера ядра:

import torch import torch.nn.functional as F input = torch.ones(1, 1, 10) weight = torch.ones(1, 1, 3) res = F.conv1d( input, weight, dilation=2 ) print(res)

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

tensor([[[3., 3., 3., 3., 3., 3.]]])

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

  • функцию F.conv2d,
    которая выполняет двумерную свертку для изображений
  • функцию F.conv3d,
    которая выполняет трехмерную свертку для объемных данных
  • функцию F.conv_transpose2d,
    которая выполняет операцию, обратную свертке (транспонированная свертка)
  • функцию F.pad,
    которая добавляет паддинг к тензору перед сверткой
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить