Ошибка значения при конкатенации числовых массивов - PullRequest
0 голосов
/ 31 августа 2018

Я загружаю набор данных mnist следующим образом,

(X_train, y_train), (X_test, y_test) = mnist.load_data()

Однако, так как мне нужно загрузить и обучить свой собственный набор данных, я написал следующий небольшой сценарий, который даст точные значения тренинга и теста

def load_train(path):
X_train = []
y_train = []
print('Read train images')
for j in range(10):
    files = glob(path + "*.jpeg")
    for fl in files:
        img = get_im(fl)
        print(fl)
        X_train.append(img)
        y_train.append(j)

return np.asarray(X_train), np.asarray(y_train)

соответствующая модель генерирует массив значений (64, 28, 28, 1) во время тренировки. Я конкатенирую image_batch из сгенерированного изображения следующим образом,

    X = np.concatenate((image_batch, generated_images))

Однако я получаю следующую ошибку,

ValueError: все входные массивы должны иметь одинаковое количество измерений

Размер img_batch (64, 28, 28) Генерируемые изображения имеют размер (64, 28, 28, 1)

Как мне расширить размер img_batch в X_train, чтобы объединить с генерируемыми изображениями? или есть ли другие способы загрузки пользовательских изображений вместо loadmnist?

Ответы [ 2 ]

0 голосов
/ 31 августа 2018

В python есть функция с именем np.expand_dims(), которая может расширять измерение любого массива вдоль оси, указанной в аргументах. В вашем случае используйте, img_batch = np.expand_dims(img_batch, axis=3).

Еще один подход заключается в использовании функции reshape, как предложено @Ioannis Nasios. img_batch = img_batch.reshape(64,28,28,1)

0 голосов
/ 31 августа 2018
image_batch = image_batch.reshape(64, 28, 28, 1)
...