我想在我的8gb ram中以numpy数组的形式加载超过10000个图像。到目前为止,我已经尝试了cv2.imread,keras.preprocessing.image.load_image,pil,imageio,scipy。我想这样做最快的方式,但我无法弄清楚它是什么。
答案 0 :(得分:1)
如果您正在使用keras
库来创建deep learning
模型,建议您使用image
包中的keras.preprocessing
类。
image
类提供了一个方法img_to_array
,它返回了一个numpy
数组。
此外,它在内部使用NumPy - Numpy
进行所有array
操作/计算。
train_image = image.load_img(path, target_size = (height, width))
train_image = image.img_to_array(train_image)
答案 1 :(得分:0)
最快的方法之一就是让你的多处理器在并行工作中要求并行化你想要的工作,它会让多个处理器同时处理你的任务,因为并发运行不是问题。这种并行处理使您可以快速完成任务。现在,下面的示例只是一个简单的草图,它可以看起来很简单,您可以使用小函数进行练习,然后将它与您自己的代码集成:
from multiprocessing import Process
#this is the function to be parallelised
def image_load_here(image_path):
pass
if __name__ == '__main__':
#Start the multiprocesses and provide your dataset.
p = Process(target=image_load_here,['img1', 'img2', 'img3', 'img4'])
p.start()
p.join()
随意写作,尽力帮助。
答案 2 :(得分:0)
Using = locator