我有一个大型的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)。有任何想法吗?