- 問題描述:使用PyTorch的DataLoader,講num_workers改爲非零數字後, 運行程序報錯
RuntimeError: CUDA error: initialization error
- 解決方法:不可在DataLoader或DataSet內將任何數據放到CUDA上,而是等到程序運行出DataLoader之後(也就是到了train裏的時候)將數據放到CUDA上。
原因猜測:
DataLoader使用num_workers時將數據load到“緩衝區”,如果在還未成功將數據load到“緩衝區”的時候把數據放到CUDA上(該操作相比於load數據更爲費時),此時load數據進程轉向load下一組數據,從而導致CUDA initialization error
(如果猜測與事實有出入,還希望有識之士能夠在評論區指正)