У меня есть серия изображений (тензор 4d / массив с размерами "размер пакета x каналы x высота x ширина"), и я хотел бы нарисовать горизонтальные полосы нулей размера s на каждом изображении, но в разных строках для каждого изображения. Я могу сделать это тривиально с помощью цикла for, но я не смог выяснить векторизованную реализацию.
В идеале я бы сгенерировал 1-D тензор r "пакетных" случайных начальных точек и сделал бычто-то вроде t[:,:,r:r+s,:] = 0
. Если я попробую это, я получу TypeError: only integer scalar arrays can be converted to a scalar index
Если я делаю игрушечный пример и просто пытаюсь вытащить две разные секции пакета только с двумя изображениями, делая что-то вроде t[:,:,torch.tensor(([1,2],[2,3])),:]
Я получаю 5D-тензор, потому что он вытягивает оба этих разделов из обоих изображений в пакете. Как получить эти различные разделы, но только один для каждого изображения? В этом случаеесли бы вход был 2xCxHxW, я бы хотел 2xCx2xW, где первый элемент соответствует строкам 1 и 2 первого изображения, а второй элемент соответствует строкам 2 и 3 второгод изображение. Спасибо.