Использование np.tile для укладки 10 изображений каждого изображения в пакет изображений - PullRequest
0 голосов
/ 19 октября 2018

Возьмите массив: arr = [0, 1, 2]

np.tile(arr,[10,1])
array([[0, 1, 2],
       [0, 1, 2],
       [0, 1, 2],
       [0, 1, 2],
       [0, 1, 2],
       [0, 1, 2],
       [0, 1, 2],
       [0, 1, 2],
       [0, 1, 2],
       [0, 1, 2]])
>>> np.tile(arr,[10,2])
array([[0, 1, 2, 0, 1, 2],
       [0, 1, 2, 0, 1, 2],
       [0, 1, 2, 0, 1, 2],
       [0, 1, 2, 0, 1, 2],
       [0, 1, 2, 0, 1, 2],
       [0, 1, 2, 0, 1, 2],
       [0, 1, 2, 0, 1, 2],
       [0, 1, 2, 0, 1, 2],
       [0, 1, 2, 0, 1, 2],
       [0, 1, 2, 0, 1, 2]])

Аналогично этому, я хочу использовать функцию плитки для создания 10 копий пакета изображений размером 10x227x227x3 (пакет уже имеет 10 изображений))Для каждого изображения я хочу создать плитку.Поэтому я должен получить 100x227x227x3

Однако, когда я делаю это M = 10):

    images = np.tile(img_batch, [M, 1])

Вместо этого я получаю 10x227x2270x3, images = np.tile (img_batch, [M]) нетработать также и приносит значение размером 10x227x227x30

Я не могу понять, как получить нужные мне плитки.Любые рекомендации приветствуются.

1 Ответ

0 голосов
/ 19 октября 2018

Ваш img_batch имеет 4 размера.Сделайте повторений размера 4:

np.tile(img_batch, [M, 1, 1, 1])

В противном случае оно будет эквивалентно np.tile(img_batch, [1, 1, M, 1] в вашем первом случае в соответствии с документами :

Если A.ndim> d, количество повторений повышается до A.ndim, предварительно ожидая 1.Таким образом, для формы A (2, 3, 4, 5) повторения (2, 2) рассматриваются как (1, 1, 2, 2).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...