Spec-Zone.ru › PyTorch 2.14

MaxUnpool1d

class torch.nn.modules.pooling.MaxUnpool1d(kernel_size, stride=None, padding=0) [исходный код]

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

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

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

Примечание

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

Примечание

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

Параметры:
  • 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.modules.pooling.MaxUnpool1d.html

Spec-Zone.ru

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