Преобразовать 2D в 4D массив - PullRequest
       1

Преобразовать 2D в 4D массив

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

Здравствуйте, вопрос относительно изменения формы массива.

У меня есть массив train_x (2D), содержимое которого (103,784)

В данном случае количество примеров составляет 103.

784 - это вход моей нейронной сети.

Теперь я хочу изменить форму с 2D на 4D

Я использую следующую команду:

train_x = np.reshape(train_x, (103, 28, 28, 1))

Это правильно?что в этом случае 103 - это все еще количество обучающих примеров, и что в этом случае мой вход 784 делится на матрицу 28x28?1 в этом случае мой канал не использует RGB (в противном случае канал должен быть 3).

Если мое предположение неверно, пожалуйста, кто-нибудь может посоветовать, как изменить форму с 2D на 4D, чтобы заархивировать вышеприведенное?Тпй

1 Ответ

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

Ваше предположение верно.Документ NumPy о reshape гласит:

Вы можете подумать о том, чтобы изменить форму как сначала упорядочить массив (используя заданный порядок индексов), а затем вставить элементы из упорядоченного массива вновый массив, использующий тот же вид индексации, что и при разборе.

train_x с формой (103, 784) будет равняться:

[img_0[0], ..., img_0[783], img_1[0], ..., img_1[783], ..., img_102[0], img_102[783]]

Что затем преобразуется в 103 изображения размером 28x28x1 с помощью команды изменения формы из вашего вопроса, как и предполагалось.

Вы должны убедиться, что плоские значения 784 были равны в том же порядке, в котором вы используетеразгадать их, майор строки или майор столбца.Если вы не уверены, быстрой проверкой работоспособности будет наложение одного из изображений после изменения формы.

...