Spec-Zone.ru › PyTorch 2.14

MaxUnpool1d

class torch.nn.MaxUnpool1d(kernel_size, stride=None, padding=0) [источник]

Вычисляет частичную обратную операцию для MaxPool1d.

MaxPool1d не является полностью обратимой, поскольку немаксимальные значения теряются.

MaxUnpool1d принимает на вход результат MaxPool1d, включая индексы максимальных значений, и вычисляет частичную обратную операцию, при которой все немаксимальные значения устанавливаются в ноль.

Примечание

Эта операция может выполняться недетерминированно, если входные индексы содержат повторяющиеся значения. Дополнительные сведения см. в pytorch/pytorch#80827 и разделе Воспроизводимость.

Примечание

MaxPool1d может отображать несколько размеров входных данных в один и тот же размер выходных данных. Поэтому процесс инверсии может быть неоднозначным. Чтобы решить эту проблему, можно указать требуемый размер выходных данных в качестве дополнительного аргумента output_size при прямом вызове. См. разделы «Входные данные» и «Пример» ниже.

Параметры:
  • kernel_size (int или tuple) – Размер окна максимальной пулинговой операции.
  • stride (int или tuple) – Шаг окна максимальной пулинговой операции. По умолчанию устанавливается значение kernel_size.
  • padding (int или tuple) – Дополнение, добавленное к входным данным
Входные данные:
  • input: входной тензор для обратного преобразования
  • indices: индексы, возвращённые MaxPool1d
  • output_size (необязательно): требуемый размер выходных данных
Форма:
  • Входные данные: (N,C,Hin)(N, C, H_{in}) или (C,Hin)(C, H_{in}).
  • Выходные данные: (N,C,Hout)(N, C, H_{out}) или (C,Hout)(C, H_{out}), где

    Hout=(Hin−1)×stride[0]−2×padding[0]+kernel_size[0]H_{out} = (H_{in} - 1) \times \text{stride}[0] - 2 \times \text{padding}[0] + \text{kernel\_size}[0]

    или в соответствии со значением output_size в операторе вызова

Пример:

>>> pool = nn.MaxPool1d(2, stride=2, return_indices=True)
>>> unpool = nn.MaxUnpool1d(2, stride=2)
>>> input = torch.tensor([[[1., 2, 3, 4, 5, 6, 7, 8]]])
>>> output, indices = pool(input)
>>> unpool(output, indices)
tensor([[[ 0.,  2.,  0.,  4.,  0.,  6.,  0., 8.]]])

>>> # Example showcasing the use of output_size
>>> input = torch.tensor([[[1., 2, 3, 4, 5, 6, 7, 8, 9]]])
>>> output, indices = pool(input)
>>> unpool(output, indices, output_size=input.size())
tensor([[[ 0.,  2.,  0.,  4.,  0.,  6.,  0., 8.,  0.]]])

>>> unpool(output, indices)
tensor([[[ 0.,  2.,  0.,  4.,  0.,  6.,  0., 8.]]])
forward(input, indices, output_size=None) [источник]

Выполняет прямой проход.

Тип возвращаемого значения:

Tensor

© 2026, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://docs.pytorch.org/docs/2.14/generated/torch.nn.MaxUnpool1d.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API