Python中导入图像的有效方法

2024-03-29 04:49:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个大约22000个图像的数据集(整个过程大约900 Mb),我想把它导入Python来训练CNN。你知道吗

我使用以下代码将其导入并保存在一个名为X的数组中:

import scipy.misc as sm

for i in range (start, end):

    imageLink = "./dataSet/" + str(dataSet[i, 0]) + "/" + str(dataSet[i, 1])
    image = sm.imread(imageLink)
    X = np.append(X, image, axis = 0)

这里面有一些问题

  1. 它非常慢。大约30分钟只将大约1000个图像导入到python中,并且随着图像数量的增加,导入速度会变慢。

  2. 它占用了很多内存。导入大约2000个图像需要大约16GB的RAM(我的机器只有16GB,所以我最终使用了交换内存,我想这会使它更慢)。

图片大小均为640××480。你知道吗

我做错什么了还是这很正常?有没有更好/更快的方法导入图像?你知道吗

谢谢你。你知道吗


Tags: 数据内存代码图像imageimport过程mb
1条回答
网友
1楼 · 发布于 2024-03-29 04:49:39

以下是针对这类任务的一些一般性建议:

  1. 如果尚未升级到快速SSD,请升级到快速SSD。无论处理做什么,快速的硬件是至关重要的。你知道吗
  2. 不要将整个数据集加载到内存中。建立一个批处理机制,一次加载100个文件,处理它们,并为下一批释放内存。你知道吗
  3. 在处理第一个批时,使用第二个线程生成下一个批。你知道吗
  4. 引入一个单独的预处理步骤,将通过imread读取的JPEG图像转换为Numpy数据结构,并执行所有必需的规范化步骤。将Numpy对象存储到磁盘,这样您的主要训练过程只需要使用numpy.fromfile()读取它们。你知道吗

相关问题 更多 >