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

Класс ReplicationPad2d

Класс ReplicationPad2d добавляет границы к двумерному тензору, повторяя значения на краях. Первым параметром передается размер дополнения: либо кортеж из четырех чисел (left, right, top, bottom), либо целое число для одинакового дополнения со всех сторон. В отличие от ZeroPad2d, заполнение нулями не используется, а граничные значения копируются.

Синтаксис

torch.nn.ReplicationPad2d(padding)

Параметры

Модуль принимает следующие параметры:

  • padding - размер дополнения. Может быть целым числом, тогда дополнение будет одинаковым со всех сторон, или кортежем (left, right, top, bottom), где каждое число - неотрицательное целое.

Пример с одинаковым дополнением

Давайте создадим тензор и дополним его одной строкой и столбцом со всех сторон методом повторения границ:

import torch t = torch.tensor([ [1, 2, 3], [4, 5, 6], [7, 8, 9], ]) pad = torch.nn.ReplicationPad2d(1) res = pad(t) print(res)

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

tensor([ [1, 1, 2, 3, 3], [1, 1, 2, 3, 3], [4, 4, 5, 6, 6], [7, 7, 8, 9, 9], [7, 7, 8, 9, 9], ])

Пример с разным дополнением

Теперь дополним тензор с разными размерами по сторонам: слева на 2, справа на 1, сверху на 2, снизу на 1:

import torch t = torch.tensor([ [1, 2, 3], [4, 5, 6], [7, 8, 9], ]) pad = torch.nn.ReplicationPad2d((2, 1, 2, 1)) res = pad(t) print(res)

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

tensor([ [1, 1, 1, 2, 3, 3], [1, 1, 1, 2, 3, 3], [1, 1, 1, 2, 3, 3], [4, 4, 4, 5, 6, 6], [7, 7, 7, 8, 9, 9], [7, 7, 7, 8, 9, 9], ])

Пример с четырехмерным тензором

В нейронных сетях чаще всего используются четырехмерные тензоры формата (batch, channels, height, width). Дополнение применяется только к последним двум измерениям:

import torch t = torch.tensor([ [ [1, 2, 3], [4, 5, 6], ] ]) pad = torch.nn.ReplicationPad2d(1) res = pad(t) print(res)

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

tensor([ [ [1, 1, 2, 3, 3], [1, 1, 2, 3, 3], [4, 4, 5, 6, 6], [4, 4, 5, 6, 6], ] ])

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

  • класс ZeroPad2d,
    который дополняет тензор нулями
  • класс ConstantPad2d,
    который дополняет тензор заданным значением
  • класс ReflectionPad2d,
    который дополняет тензор отражением значений
  • класс CircularPad2d,
    который дополняет тензор циклическим повторением
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить