Я хочу поместить данные изображения в массив numpy, но каждый раз, когда я получаю ошибку ValueError: all the input arrays must have same number of dimensions, but the array at index 0 has 2 dimension(s) and the array at index 1 has 4 dimension(s)
, или я получаю, что мой массив является нуль-мерным, и это тоже неправильно. Как я должен инициализировать мою переменную перед функцией? Вот некоторый код:
from extra_keras_datasets import emnist
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
from tensorflow.keras.layers import Dropout
from tensorflow.keras.layers import Flatten
from tensorflow.python.keras.layers.convolutional import Conv2D
from tensorflow.python.keras.layers.convolutional import MaxPooling2D
from tensorflow.keras.optimizers import Adam
from tensorflow.python.keras.utils import np_utils
from PIL import Image
import numpy as np
import os
#to load the own images to the program and reshape their data so it's fitting the CNN.
def load_images_to_data(image_label, image_directory, features_data, label_data):
list_of_files = os.listdir(image_directory)
for file in list_of_files:
image_file_name = os.path.join(image_directory, file)
if ".png" in image_file_name:
img = Image.open(image_file_name).convert("L")
img = np.resize(img, (28,28,1))
im2arr = np.array(img)
im2arr = im2arr.reshape(1,28,28,1)
features_data = np.append(features_data, im2arr, axis=0)
label_data = np.append(label_data, [image_label], axis=0)
return features_data, label_data
# load data
(X_train, y_train), (X_test, y_test) = emnist.load_data(type='letters')
X_test = np.empty((4,1), np.float32)
y_test = None
# Reshaping to format which CNN expects (batch, height, width, channels)
X_train = X_train.reshape(X_train.shape[0], X_train.shape[1], X_train.shape[2], 1).astype('float32')
X_test, y_test = load_images_to_data('a', 'Photos/1/a', X_test, y_test)
Я пробовал X_test = Нет, X_test = np.empty ((4,1), np.float32), X_test = np.empty ((1,4), np.float32), но это не сработает. Идея этой программы пришла от здесь , и я хочу протестировать мои собственные данные, а не тестовые данные из EMNIST.