我正在尝试将celebA数据集(https://www.kaggle.com/jessicali9530/celeba-dataset)图像文件夹转换为numpy数组,以供以后转换为.pkl文件(以便将数据用作mnist或cifar)。
我愿意找到一种更好的转换方法,因为这种方法绝对消耗了整个RAM。
from PIL import Image
import pickle
from glob import glob
import numpy as np
TARGET_IMAGES = "img_align_celeba/*.jpg"
def generate_dataset(glob_files):
dataset = []
for _, file_name in enumerate(sorted(glob(glob_files))):
img = Image.open(file_name)
pixels = list(img.getdata())
dataset.append(pixels)
return np.array(dataset)
celebAdata = generate_dataset(TARGET_IMAGES)
我很想知道mnist作者是如何做到这一点的,但是任何可行的方法都是受欢迎的。
答案 0 :(得分:0)
您可以在Keras中即时转换任何类型的数据,并在训练期间一次将其加载到内存中。 请参见documentation,搜索“使用.flow_from_directory(directory)的示例”。