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

Класс ConstantPad2d

Класс ConstantPad2d предназначен для дополнения двумерных тензоров константными значениями по краям. Он принимает два основных параметра: кортеж с размерами отступов для левой, правой, верхней и нижней стороны, а также значение, которым будут заполнены новые ячейки. Это полезно, например, для сохранения пространственных размеров при обработке изображений.

Синтаксис

torch.nn.ConstantPad2d(padding, value)

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

Пример

Дополним тензор размером 2x3 нулями со всех сторон на 1 пиксель:

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

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

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

Пример

Используем разные отступы для каждой стороны: левый 2, правый 1, верхний 3, нижний 0 с заполнением значением -1:

import torch from torch import nn t = torch.tensor([ [1, 2], [3, 4], ]) pad = nn.ConstantPad2d((2, 1, 3, 0), -1) res = pad(t) print(res)

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

tensor([ [-1, -1, -1, -1, -1], [-1, -1, -1, -1, -1], [-1, -1, -1, -1, -1], [-1, -1, 1, 2, -1], [-1, -1, 3, 4, -1], ])

Пример

Применим слой к пакету двумерных карт признаков (формат batch x channels x height x width):

import torch from torch import nn t = torch.randn(2, 3, 2, 2) pad = nn.ConstantPad2d((1, 0, 1, 0), 0.5) res = pad(t) print(res.shape)

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

torch.Size([2, 3, 3, 3])

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

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