У меня есть 4D-массив: (#images, height, width, channel) изображений RGB.Точные размеры: (46, 224, 224, 3).
У меня также есть версии тех же изображений в оттенках серого.Точные размеры: (46, 224, 224, 1).
Я играю с Keras, пытаюсь сделать авто-кодер, чтобы узнать значения изображения из оттенков серого, но модель жалуется на размеры,поэтому я хотел бы добавить 2 дополнительных канала в массив градаций серого, но я не могу понять, как это сделать.
temp_gray_images = np.zeros(original_images.shape, dtype=np.float32)
temp_gray_images[:,:,:,0] = gray_images
ValueError: could not broadcast input array from shape (46,224,224,1) into shape (46,224,224)
Итак, я узнал о numpy.hstack и открыл новыйтерминал и попытался поиграть с некоторыми фиктивными данными и несколькими измерениями, которые я мог обработать, и смог получить ожидаемые результаты.Однако, похоже, что это не работает с 4 измерениями.
temp_gray_images = np.hstack([gray_images, np.zeros([original_images.shape[0], original_images.shape[1], original_images.shape[2], 2])])
ValueError: all the input array dimensions except for the concatenation axis must match exactly
Что не имеет смысла, потому что я сохранил первые 3 измерения одинакового размера.
Но в конечном итоге проверкаданные не совпадают с данными поезда из-за 2 дополнительных каналов в RGB и градациях серого.
x_train shape: (46, 224, 224, 3)
xtest_shape shape: (46, 224, 224, 1)
autoencoder.fit(x_train, x_train, epochs=50, batch_size=256, shuffle=True, validation_data=(x_test, x_test))
Спасибо.