调试代码遇到的解决方法诡异的问题
问题
调试E2E_BirdsEyeView的main.py时,遇到一个加载数据的for循环,每次都进不去,只停在tqdm(enumerate(train_loader))中,跳转到内部函数dataloader里出不来,停在w.start位置一直加载不动。也不报错
跳入dataloader.py的
转到
当运行到w.start()后就一直是加载中,长时间不结束。
后来发现跟线程有关,代码里设置nworkers=8,但是内部函数的num_workers=0,貌似是冲突的。
解决
参考这篇文章
http://www.luyixian.cn/news_show_294409.aspx
把pytorch下dataloader的其中一个num_workers参数注释掉。可能是win10只有一个thread的原因。
引用以下文章,侵删
pytorch: RuntimeError: DataLoader worker (pid(s) 27292) exited unexpectedly:http://www.luyixian.cn/news_show_294409.aspx