PyTorch DataLoader加载失败怎么办?教你一招避坑
博客主页瑕疵的CSDN主页 Gitee主页瑕疵的gitee主页⏩ 文章专栏《热点资讯》被PyTorch DataLoader卡住一整晚终于搞定了这破坑目录昨晚写模型DataLoader直接报错RuntimeError: DataLoader worker exited unexpectedly (PID 12345)我试了三遍路径没错数据集也正常。最后发现是num_workers在Windows上坑死我。核心根源PyTorch的DataLoader用多进程加载数据。Windows对多进程支持烂透了num_workers0时子进程常崩溃。尤其当路径含中文或空格时直接报错。Linux下能调高但Windows默认设0最稳妥。错误示范我踩过三次的坑fromtorch.utils.dataimportDataLoader# 我的错误设num_workers4以为能提速train_loaderDataLoader(train_dataset,batch_size64,shuffleTrue,num_workers4# 在Windows上这行代码能让你失眠到天亮)正确姿势直接解决fromtorch.utils.dataimportDataLoader# 修复设num_workers0避免多进程问题train_loaderDataLoader(train_dataset,batch_size64,shuffleTrue,num_workers0# 重点Windows下必须设0)我测试过在Windows 10Python 3.9上num_workers0时加载秒通。Linux下可以设2-4但Windows别瞎调。避坑总结Windows用户永远先设num_workers0跑通再调。数据集路径用绝对路径如rC:/data别用中文或空格。如果报错带PID大概率是多进程问题。别信网上“调高num_workers能加速”的鬼话——Windows下纯浪费时间。省下时间去打游戏吧。这破坑我踩了三次下次直接设0。