方法一
加入这两行代码试一下
import torch.multiprocessing
torch.multiprocessing.set_sharing_strategy('file_system')
方法二
把train放到main里面,例如
if __name__ == '__main__':
train()
方法三
设置dataloader的num_workers = 0,这个一般都能有效,但会使训练效率降低
参考
Pytorch dataloaders : OSError: [Errno 9] Bad file descriptor - data - PyTorch Forums
文章提供了三种解决PyTorch训练时遇到的OSError:[Errno9]Badfiledescriptor错误的方法。方法一是导入torch.multiprocessing并设置分享策略为file_system;方法二是将训练函数train放入主程序if__name__==__main__:中;方法三是将dataloader的num_workers设为0,尽管这会降低训练效率。
7147





