Как я могу обрезать постоянное значение заполнения тензора (высота и ширина заполнения одинаковы) с неизвестным значение ⇐ Python

Программы на Python
Anonymous
Как я могу обрезать постоянное значение заполнения тензора (высота и ширина заполнения одинаковы) с неизвестным значение

Сообщение Anonymous »

Как я могу обрезать заполнение постоянным значением тензора (высота и ширина заполнения одинаковы) с неизвестным значением и размером?
Я думаю, что это потому, что заполнение, окружающее мой тензор имеет постоянное значение и одинаковую высоту/ширину, чтобы можно было знать, где обрезать тензор, чтобы удалить отступы.
import torch

# Test tensor with NCHW dimensions
a = torch.randn(1,4,5,5) # Can have any H & W size

# Create padding for testing
b = torch.nn.functional.pad(a, (2,2,2,2), 'constant', value=1.2) # Value can be any number

c = # equal to a, without being able to use the variables a or b (or their argument values)

Решения NumPy приемлемы, поскольку я могу легко преобразовать их в PyTorch.
Изменить:
pad = torch.where(b[0, 0] - b[0, 0, 0, 0] != 0)[0][0]

x_pad, y_pad = 0, 0
if (b.size(3) % 2) == 0:
x_pad = 1
if (b.size(2) % 2) == 0:
y_pad = 1
c = b[:, :, pad : -(pad + y_pad), pad : -(pad + x_pad)]

assert c == a


Подробнее здесь: https://stackoverflow.com/questions/653 ... -and-width

Вернуться в «Python»