【Python報錯】RuntimeError: DataLoader worker (pid(s) 9764, 15128) exited unexpectedly


batch_size = 2# 256
def get_dataloader_workers():  #@save
    """使用4個進程來讀取數據。"""
    return 4

train_iter = data.DataLoader(mnist_train, batch_size, shuffle=True, num_workers=get_dataloader_workers())

timer = d2l.Timer()
for X, y in train_iter:
    continue
f'{timer.stop():.2f} sec'

問題:動手學深度學習2.0,softmax回歸,讀取小批量數據是出現超時報錯。具體如下:

 

 我的環境是:Anaconda 的虛擬環境,使用jupyter notebook進行編譯,電腦是聯想拯救者R720,i5處理器,2g獨顯;

我所使用的CPU運行,最初是批量256張圖片數據,同時使用4線程進行讀取,此時會報錯!

查閱網上的回答,說最可能的原因是;

  • cuda 虛擬環境的共享內存不足,解決辦法是,要么改成更小的batchsize,
  • 將numworkers = 4注釋掉,不用多進程

 

解決過程:


1、只將batchsize改小,變為2,依舊報錯

2、將進程num_workers=get_dataloader_workers()改為0、1、2可以使用

 

估計還是電腦太差了不太行的緣故,畢竟用了快四年了。

3、后續我又試着將batchsize改回256,依舊可以運行,但是有時候多運行幾次就會報錯,估計是緩存內存,不夠的緣故,我只要重新啟動內核,運行一次,就可以了。

 

4、我將進程改為4,重啟內核,重新運行,還是會報錯,具體原因不得而知,先繼續學習吧。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM