У меня есть набор из 20000 изображений, которые я импортирую с диска, как показано ниже.
imgs_dict={}
path="Documents/data/img"
os.listdir(path)
valid_images =[".png"]
for f in os.listdir(path):
ext= os.path.splitext(f)[1]
if ext.lower() not in valid_images:
continue
img_name=os.path.basename(f)
img_name=os.path.splitext(img_name)[0]
img=np.asarray(Image.open(os.path.join(path,f)))
imgs_dict.update([(img_name,img)])
Причина, по которой я конвертирую это в словарь в конце, заключается в том, что у меня также есть два других словаря, определяющих идентификатор изображения, классификация и то, является ли оно частью набора для обучения или проверки. Один из этих словарей соответствует всем данным, которые должны быть частью обучающих данных, а другой определяет те, которые должны быть частью данных проверки. После того, как я их разделю, мне нужно вернуть их в стандартный формат массива для изображений (высота, ширина, каналы). Как мне взять словарь изображений и преобразовать его обратно в формат, который мне нужен? Когда я делаю следующее, он создает массив с формой (8500,), что является количеством изображений в моем обучающем наборе, но, очевидно, не отражает высоту, ширину и каналы.
x_train=np.array(list(training_images.values()))
np.shape(x_train)
(8500,)
Или, во-вторых, я все неправильно говорю? Есть ли более простой способ обработки изображений, чем этот? Казалось бы, намного лучше просто сохранить изображения в массиве numpy с самого начала, но, насколько я могу судить, нет способа, чтобы массивы имели значение ключа / метку любого типа, поэтому я не могу вытащить специфику c изображений.
Редактировать: в качестве дополнительного контекста я, по сути, пытаюсь преобразовать свои данные в формат, подобный описанному в следующей ссылке.
https://elitedatascience.com/keras-tutorial-deep-learning-in-python
Специфическая часть c, с которой у меня возникли проблемы, заключается в следующем:
from keras.datasets import mnist
# Load pre-shuffled MNIST data into train and test sets
(X_train, y_train), (X_test, y_test) = mnist.load_data()
Когда мы загружаем данные MNIST, какова связь между X_train и y_train определяется? Как я могу воспроизвести это с моими данными?