将图像文件夹转换为 numpy 数组正在消耗整个 RAM

我正在尝试将 celebA 数据集(https://www.kaggle.com/jessicali9530/celeba-dataset)图像文件夹转换为 numpy 数组,以便稍后转换为 .pkl 文件(用于像 mnist 一样简单地使用数据或西法尔)。


我愿意找到一种更好的转换方法,因为这种方法绝对会消耗整个 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 作者自己是如何做到这一点的,但任何可行的方法都是受欢迎的。


莫回无
浏览 172回答 1
1回答

函数式编程

您可以在 Keras 中动态转换任何类型的数据,并在训练期间一次将一批数据加载到内存中。请参阅文档,搜索“使用 .flow_from_directory(directory) 的示例”。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python