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

Класс ReflectionPad2d

Класс ReflectionPad2d добавляет отражённые значения по краям двумерного тензора (изображения или карты признаков). Отражённое заполнение копирует значения с границы и зеркально отражает их, что позволяет сохранить структуру данных на краях. Первым параметром передаётся размер заполнения в виде кортежа (padding_left, padding_right, padding_top, padding_bottom) или целого числа padding, которое применяется ко всем четырём сторонам.

Синтаксис

torch.nn.ReflectionPad2d(padding)

Параметры:

  • padding - размер заполнения: целое число или кортеж из 2 или 4 элементов.

Пример

Давайте создадим двумерный тензор размером 3x3 и применим отражённое заполнение с отступом 1 по всем сторонам:

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

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

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

Как видно, значения на границах были отражены зеркально.

Пример

Давайте применим заполнение с разными отступами для каждой стороны с помощью кортежа из 4 элементов:

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

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

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

Пример

Давайте применим отражённое заполнение к пакету изображений с размерностью (батч, каналы, высота, ширина):

import torch from torch import nn t = torch.randn(2, 3, 4, 4) pad = nn.ReflectionPad2d(2) res = pad(t) print(res.shape)

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

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

Размерность тензора увеличилась с 4x4 до 8x8 за счёт добавления отражённых значений.

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

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