VSCode bug with PyTorch DataLoader?



以下代码示例在Python中有效,但在Linux中的VSCode中失败(但在Windows中不是VSCode(。我想知道我的代码是否有问题,或者Linux下的VSCode是否有问题?

#Test of PyTorch DataLoader and Visual Studio Code
from torch.utils.data import Dataset, DataLoader
class SimpleData(Dataset):
"""Very simple dataset"""
def __init__(self):
self.data = range(20)
def __len__(self):
return len(self.data)
def __getitem__(self, idx):
return self.data[idx]
if __name__ == '__main__':
#Initialize DataLoader with above Dataset:
dataloader = DataLoader(SimpleData(), batch_size=4, num_workers=1)
print('Using DataLoader to show data in batches: ')
for i, sample_batch in enumerate(dataloader):    #This fails in VSCode in Linux
print('batch ', i, ':', sample_batch)
print("--- Done ---")

预期输出为:

Using DataLoader to show data in batches:
batch  0 : tensor([0, 1, 2, 3])
batch  1 : tensor([4, 5, 6, 7])
batch  2 : tensor([ 8,  9, 10, 11])
batch  3 : tensor([12, 13, 14, 15])
batch  4 : tensor([16, 17, 18, 19])
--- Done ---

但是Linux中的VSCode在打印第一行之后就挂起了。

您尝试过num_workers=0?

可能是VS代码无法在linux上正确生成新进程。

最新更新