Spec-Zone.ru › PyTorch 2

torch.nn.functional.pad

torch.nn.functional.pad(input, pad, mode='constant', value=None) → Tensor

Заполнение тензора.

Размер заполнения:

Размер заполнения по некоторым измерениям input, описывается, начиная с последнего измерения и двигаясь вперед. ⌊len(pad)2⌋\left\lfloor\frac{\text{len(pad)}}{2}\right\rfloor измерений input будут заполнены. Например, чтобы заполнить только последнее измерение входного тензора, тогда pad имеет вид (padding_left,padding_right)(\text{padding\_left}, \text{padding\_right}); чтобы заполнить последние 2 измерения входного тензора, используйте (padding_left,padding_right,(\text{padding\_left}, \text{padding\_right}, padding_top,padding_bottom)\text{padding\_top}, \text{padding\_bottom}); чтобы заполнить последние 3 измерения, используйте (padding_left,padding_right,(\text{padding\_left}, \text{padding\_right}, padding_top,padding_bottom\text{padding\_top}, \text{padding\_bottom} padding_front,padding_back)\text{padding\_front}, \text{padding\_back}).

Режим заполнения:

См. torch.nn.CircularPad2d, torch.nn.ConstantPad2d, torch.nn.ReflectionPad2d и torch.nn.ReplicationPad2d для конкретных примеров работы каждого из режимов заполнения. Заполнение константами реализовано для произвольного числа измерений. Круговое, копирующее и отражающее заполнение реализованы для заполнения последних 3 измерений входного тензора 4D или 5D, последних 2 измерений входного тензора 3D или 4D или последнего измерения входного тензора 2D или 3D.

Примечание

При использовании CUDA-бекенда эта операция может вызвать недетерминированное поведение в обратном проходе, которое сложно отключить. Пожалуйста, обратитесь к заметкам о Воспроизводимости для получения дополнительной информации.

Параметры
  • input (Tensor) – N-мерный тензор
  • pad (кортеж) – кортеж из m элементов, где m2≤\frac{m}{2} \leq размерность входного тензора и mm — четное число.
  • mode – 'constant', 'reflect', 'replicate' или 'circular'. По умолчанию: 'constant'
  • value – значение заполнения для 'constant' заполнения. По умолчанию: 0

Примеры:

>>> t4d = torch.empty(3, 3, 4, 2)
>>> p1d = (1, 1) # pad last dim by 1 on each side
>>> out = F.pad(t4d, p1d, "constant", 0)  # effectively zero padding
>>> print(out.size())
torch.Size([3, 3, 4, 4])
>>> p2d = (1, 1, 2, 2) # pad last dim by (1, 1) and 2nd to last by (2, 2)
>>> out = F.pad(t4d, p2d, "constant", 0)
>>> print(out.size())
torch.Size([3, 3, 8, 4])
>>> t4d = torch.empty(3, 3, 4, 2)
>>> p3d = (0, 1, 2, 1, 3, 3) # pad by (0, 1), (2, 1), and (3, 3)
>>> out = F.pad(t4d, p3d, "constant", 0)
>>> print(out.size())
torch.Size([3, 9, 7, 3])

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

Spec-Zone.ru

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