Как я могу обрезать постоянное значение заполнения тензора (высота и ширина заполнения одинаковы) с неизвестным значение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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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