Spec-Zone.ru › PyTorch 2

MaxUnpool1d

class torch.nn.MaxUnpool1d(kernel_size, stride=None, padding=0) [source]

Вычисляет частичное обратное преобразование к MaxPool1d.

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

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

Примечание

Данная операция может давать недетерминированные результаты, если входные индексы содержат повторяющиеся значения. См. https://github.com/pytorch/pytorch/issues/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.]]])

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

Spec-Zone.ru

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