Как я могу развернуть и перезапустить матрицу в numpy о конкретной оси? - PullRequest
0 голосов
/ 11 апреля 2019

(относится к проекту, связанному с нейронными сетями). У меня есть 500 изображений в форме массива фигуры (500, 200, 200, 1), то есть 500 изображений в оттенках серого (200 200).Я хочу развернуть это в форму = (400, 500), где каждый столбец происходит от каждого из изображений.

В настоящее время я делаю это как:

 images.shape # (500,200,200,1)    
 images = images.transpose(1,2,3,0)
 images = images.reshape(200*200*1, 500)
 images.shape # (400, 500) -- each column is an un-rolled image

Затем в обратном распространении я хочу вернуться к исходной форме, которую я делаю как:

 D_images.shape # prints (400, 500)
 D_images = D_images.reshape(500, 200, 200, 1)

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

1 Ответ

0 голосов
/ 11 апреля 2019

Вам придется отменить оба действия снизу вверх с помощью соответствующих дополнительных операций:

D_images = D_images.reshape(200, 200, 1, 500)
D_images = D_images.transpose(3, 0, 1, 2)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...