Spec-Zone.ru › PyTorch 2.14

MaxUnpool3d

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

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

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

Примечание

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

Примечание

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

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

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

    или как указано в output_size в операторе вызова

Пример:

>>> # pool of square window of size=3, stride=2
>>> pool = nn.MaxPool3d(3, stride=2, return_indices=True)
>>> unpool = nn.MaxUnpool3d(3, stride=2)
>>> output, indices = pool(torch.randn(20, 16, 51, 33, 15))
>>> unpooled_output = unpool(output, indices)
>>> unpooled_output.size()
torch.Size([20, 16, 51, 33, 15])
forward(input, indices, output_size=None) [источник]

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

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

Тензор

© 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.MaxUnpool3d.html

Spec-Zone.ru

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