如何将图像从filepath格式化到与python中的mnist.data()相同的方式



如何将图像从文件路径到与mnist.load_data()相同的方式格式化?我目前正在从Driectory/File路径中获取图像,如何以与mnist使用mnist.load_data()使用相同的方式格式化这些图像?

keras.datasets.mnist.load_data实际上只是加载了预处理的咸菜文件。如果您检查X_train&的数据类型X_test它们只是代表图像像素值(0-255)的float的numpy 2D阵列。而y_train&y_test只是代表类/标签的numpy 1D数组(0-9)。

因此,模仿该功能的第一种方法是使用图像处理库(例如OPENCV)读取您的图像中的图像&最终使用Sklearn将它们分开:

import numpy as np
import cv2
from sklearn.model_selection import train_test_split
X = []
y = []
# convert color image to 2D array (grayscale) & rescale
data = cv2.imread('zero.jpg',0) / 255.0
label = 0 # label/class of the image
X.append(data)
y.append(label)
# loop trough all images ...
# split for training & testing
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33)

您可以尝试的另一种方法是使用keras imagedatagenerator.flow_from_directory(color_mode ='grayscale')。输出是ImageDataGenerator对象,可以传递给KERAS model.fit_generator()函数。为了使用此功能,您应该将数据集安排到train&测试目录其中每个都包含代表其中图像类的子目录。请在此处找到详细的说明。

最新更新