gpt4 book ai didi

python - cPickle 数据量非常大

转载 作者:太空宇宙 更新时间:2023-11-03 14:19:22 26 4
gpt4 key购买 nike

我有大约 80 万张 256x256 RGB 图像,总计超过 7GB。

我想将它们用作卷积神经网络中的训练数据,并想将它们连同它们的标签一起放入 cPickle 文件中。

现在,这占用了大量内存,以至于它需要与我的硬盘内存进行交换,并且几乎耗尽了所有内存。

这是个坏主意吗?

在不引起太多内存问题的情况下加载到 CNN 或 pickle 它们的更智能/更实用的方法是什么?

代码是这样的

import numpy as np
import cPickle
from PIL import Image
import sys,os

pixels = []
labels = []
traindata = []
data=[]


for subdir, dirs, files in os.walk('images'):
curdir=''
for file in files:
if file.endswith(".jpg"):
floc=str(subdir)+'/'+str(file)
im= Image.open(floc)
pix=np.array(im.getdata())
pixels.append(pix)
labels.append(1)
pixels=np.array(pixels)
labels=np.array(labels)
traindata.append(pixels)
traindata.append(labels)
traindata=np.array(traindata)
.....# do the same for validation and test data
.....# put all data and labels into 'data' array
cPickle.dump(data,open('data.pkl','wb'))

最佳答案

Is this is a bad idea?

是的,的确如此。

您正在尝试一次将 7GB 的压缩图像数据加载到内存中(对于 800k 256*256 RGB 文件,大约需要 195GB)。这是行不通的。您必须找到一种方法来逐个图像地更新 CNN,并在进行过程中保存状态。

还要考虑您的 CCN 参数集有多大。 Pickle 不适用于大量数据。如果您需要存储 GB 的神经网络数据,最好使用数据库。不过,如果神经网络参数集只有几 MB,pickle 就可以了。

您可能还想查看 pickle.HIGHEST_PROTOCOL 的文档,所以你不会被旧的和未优化的 pickle 文件格式所困扰。

关于python - cPickle 数据量非常大,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29781976/

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