打开图像时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列表无关