Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio code PyTorch数据加载程序的VSCode错误?_Visual Studio Code_Pytorch - Fatal编程技术网

Visual studio code PyTorch数据加载程序的VSCode错误?

Visual studio code PyTorch数据加载程序的VSCode错误?,visual-studio-code,pytorch,Visual Studio Code,Pytorch,下面的代码示例在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"""

下面的代码示例在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\u workers=0?


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

您是否尝试过使用num\u workers=0?可能是VS代码无法在linux上正确生成新进程。@MohanaRao,就是这样!它适用于
num\u workers=0
!这是一个困扰我好几天的问题!非常感谢。欢迎您@Daniel Morris!很高兴这有帮助。