加载DeepLearnig模型的数据集

时间:2018-04-06 17:25:27

标签: python tensorflow neural-network large-data

我是deepLearning和tensorflow的新手。我正在尝试使用tensorflow和places365标准数据集创建一个神经网络。

我在tensorFlow的MNIST示例中看到,在开始时你必须加载所有数据。如果您有一个小数据集,那很好,但事实并非如此。 Places365数据集每个类有5000个图像。我正在尝试只加载10个类,但我的RAM内存无法处理所有这些。这不是必要的,因为每次迭代(epoch)我将只使用128个图像。

这不是分批分割数据集的方法,而是在训练它们之前加载图像吗?

这是一些代码,我认为批量假设imageTrain是一个np.arrays列表,我已经加载了所有照片:

while(fin != (len(imageTrain)-1)):
    ini = counter*BATCH_SIZE
    fin = (counter + 1)*BATCH_SIZE

    if fin > len(imageTrain):
        fin = len(imageTrain) - 1

    batch_imageTrain = np.reshape(imageTrain[ini:fin],[(fin-ini),256,256,1])
    batch_labelTrain = labelTrain[ini:fin]
    counter = counter + 1

任何人都可以帮助我吗? 提前谢谢。

1 个答案:

答案 0 :(得分:0)

我想我已经找到了解决方案。正如它在这个链接中所说:

https://www.quora.com/How-do-I-load-images-efficiently-for-training-a-deep-neural-network-CNNs-My-images-are-too-big-to-load-all-of-them-into-memory

我可以保存在列表中,所有照片的名称,然后加载它们,然后仅加载我需要进行培训的照片。 我提到的变量(imageTrain)将是一个字符串列表,其中每个字符串是每个图像的路径。

希望很清楚!