在Python TFLearn中提供大型csv

时间:2017-08-08 13:44:59

标签: python large-files tflearn

我在互联网上搜索了这个答案,但我似乎无法找到它!

我有一个大型的csv文件(大约14gb,并将在后期使用更大的文件),我想用TFLearn训练模型。我有一个文件准备功能,将测试数据并删除所有不需要的字段。它还将创建两个文件(一个用于培训,一个用于预测:

import tflearn
from tflearn.data_utils import load_csv

train_file, test_file = prep('data/large.csv', remove=[0, 1], test=.2)

data, labels = load_csv(train_file, has_header=False, n_classes=2)

model.fit(data, labels, batch_size=20, validation_set=.1, n_epoch=20)

问题是load_csv - 我遇到了内存问题。 prep部分以块的形式读取large.csv文件并将其附加到train_file,因此这里的内存不是问题。我还尝试将large.csv转换为H5格式并批量保存,以便批量检索数据(在循环中):

with h5py.File('large.h5, 'a') as hf:
    hf.create_dataset('batch%d' % (n_batch), data=chunk)

在训练期间:

for n in number_of_batches:
    with open h5py.File('large.h5','r') as hf:
        b = hf['batch%d' % (n)][:]
        # Then I have some code to write the small batch to small.csv.
        data, labels = load_csv('small.csv', ...)
        model.fit(data, labels, ...)

后一个选项适用于内存,但我在训练模型时表现不佳(每个循环训练1000行)。

我应该使用TensorFlow占位符吗?我不知道如何用TFLearn实现它们。 TFLearn也有一个ImagePreloader,但我没有分类图像。我的数据是在1000多列(长度相等)的csv中。

0 个答案:

没有答案