今天在使用pytorch加载数据时出现如下错误:
raise RuntimeError('DataLoader worker (pid(s) {}) exited unexpectedly'.format(pids_str))
RuntimeError: DataLoader worker (pid(s) 4252, 17184) exited unexpectedly
仔细分析了一下,原因定位在num_workers
dataloader = DataLoader(dataset,batch_size=2,num_workers=2,shuffle=True)
一般出现这种错误,是因为没有写在
if __name__ == "__main__":
解决方法:
1.不使用多线程,将num_workers设置为0
2.写在if __name__ =="__main__": 下面,因为调用子线程,必须要有一个主线程。