从csv-line-generator生成批次

时间:2019-03-05 08:48:05

标签: python-3.x

我有一个大型的csv文件,其中包含数千行(2列)。我想批量加载行以将这些批次输入到分类器中。问题是我无法一次读取所有文件,因为这会造成内存问题。

我有一个生成器,它一次生成一条csv行,并且想创建一个新的生成器,该生成器从上述生成器获取输入,并输出一批(大小为32的)行。

这是我当前的代码:

def batch_maker(train_path, batch_size):
    idxs = []
    images = []
    for num, image_name in img_csv():    
        idxs.append(num)
        images.append(image_name)
        for i in range(0, len(idxs), batch_size):
            yield idxs[i:i+batch_size], images[i:i+batch_size]

我的img_csv()可以正确地生成行,而不会占用太多内存。目前,它似乎以正确的批​​次打印出整个集合,但是这样做的次数(batch_size)。有任何想法吗?

0 个答案:

没有答案