调试代码遇到的解决方法诡异的问题

问题

调试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