如何将文件路径中的图像格式化为与 mnist.load_data()
相同的方式?
我目前正在从目录/文件路径获取图像,如何以与 mnist
用于 mnist.load_data()
相同的方式格式化这些图像?
最佳答案
keras.datasets.mnist.load_data
实际上只是 loads a preprocessed pickle file 。如果您检查 X_train
和 X_test
的数据类型,它们只是表示图像像素值 (0-255) 的 float numpy
2D 数组。而 y_train
和 y_test
只是表示类/标签 (0-9) 的 numpy
一维数组。
因此,模仿该功能的第一种方法是使用图像处理库(例如 opencv )将图像读取到 numpy 中。数组并最终使用 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() 函数。为了使用此功能,您应该将数据集安排到训练和测试目录中,其中每个目录都包含代表其中图像类别的子目录。详细说明请见here .
关于python - 如何将文件路径中的图像格式化为与 python 中的 mnist.load_data() 相同的方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42609069/