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

程式設計師龍一發表於2021-06-13
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處理器;

我所使用的CPU執行,最初是批量256張圖片資料,同時使用4執行緒進行讀取,此時會報錯!

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

  • cuda 虛擬環境的共享記憶體不足,解決辦法是,要麼改成更小的batchsize,
  • 將numworkers = 4註釋掉,不用多程式

 

解決過程:


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

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

 

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

後續我又試著將batchsize改回256,依舊可以執行,但是有時候多執行幾次就會報錯,估計是快取記憶體不夠的緣故,我只要重新啟動核心,執行一次,就可以了。

相關文章