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,依舊可以執行,但是有時候多執行幾次就會報錯,估計是快取記憶體不夠的緣故,我只要重新啟動核心,執行一次,就可以了。