打开图像时Python IO PyTorch数据加载程序内存泄漏

打开图像时Python IO PyTorch数据加载程序内存泄漏,python,io,pytorch,Python,Io,Pytorch,我的代码大致如下所示: class MyDataset(torch.utils.data.Dataset): def __getitem__(self, idx): img = cv2.imread(file_paths[idx]) return img dataset = MyDataset() loader = torch.utils.data.DataLoader(dataset, pin_memory=True, shuffle=True, num_workers

我的代码大致如下所示:

class MyDataset(torch.utils.data.Dataset):
  def __getitem__(self, idx):
    img = cv2.imread(file_paths[idx])
    return img

dataset = MyDataset()

loader = torch.utils.data.DataLoader(dataset, pin_memory=True, shuffle=True, num_workers=4)

for data in loader:
  pass
在浏览整个数据集之前,我遇到了内存问题。记忆逐渐被消耗,直到达到极限。它大约是100000个512x512 RGB图像,但它们当然不应该在循环迭代之间停留在内存中

奇怪的是,如果我将
文件路径[idx]
替换为
存在的文件路径.jpg'
,我可以在整个数据集中运行,而不会逐渐耗尽内存。所以不知何故,内存似乎分配给了打开的唯一文件

请注意,这不是问题所在:这似乎与
num_workers
无关,与Python列表无关