我有一个大约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)
这有一些问题,
非常慢。大约30分钟,仅将大约1000张图像导入python,随着图像数量的增加,速度会变慢。
它占用大量RAM。导入大约2000张图像大约需要16 GB的RAM(我的机器只有16GB,所以我最终使用了交换内存,这使它的运行速度变慢了)。
图像尺寸均为640×480。
我是在做错事还是正常现象?有没有更好/更快的导入图像的方法?
谢谢。
以下是针对此类任务的一些一般建议:
imread
使用所有必需的规范化步骤将读取的JPEG图像转换为Numpy数据结构。将Numpy对象存储到磁盘,以便您的主要培训过程只需使用即可读取它们numpy.fromfile()
。本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句