gpt4 book ai didi

python - Python导入图像的高效方法

转载 作者:行者123 更新时间:2023-12-01 02:20:49 24 4
gpt4 key购买 nike

我有一个包含大约 22,000 张图像的数据集(整个数据集大约 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 个图像需要大约 16 GB 的 RAM(我的机器只有 16 GB,所以我最终使用交换内存,我想这会让速度更慢)。

图像尺寸均为 640 × 480。

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

谢谢。

最佳答案

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

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

关于python - Python导入图像的高效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47961104/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com