pytorch dataloader num_workers引數設定導致訓練阻塞
參考:https://blog.csdn.net/qian1122221/article/details/88579684
問題描述:
最近在用RFBnet (原始碼是pytorch的)訓練RSNA的比賽資料,除了要修改一點程式碼支援RSNA的資料集外(打算後續再寫個部落格),發現在使用dataloader讀取資料時,如果設定num_workers為0,也就是用主程式讀取資料,模型訓練程式執行正常。如果設定num_workers為其他任何一個大於0的整數,也就是使用子程式讀取資料時,訓練程式會卡住,卡在訓練之前,GPU使用率和視訊記憶體佔用率都為0。
解決過程:
由於是多程式就,用print除錯大法,定位到是一行opencv程式碼的問題,在dataloader子類的__getitem__方法裡面呼叫了
image_array = cv2.cvtColor(image_array, cv2.COLOR_GRAY2BGR)
所有子程式的程式碼都卡在這裡了。之前也有遇到過類似的問題,python多程式呼叫opencv的程式碼會出現問題。於是就用numpy的concate替代了這個方法
image_array = np.concatenate([image_array,image_array,image_array],axis=2)
繞過這個問題就可以正常訓練了。
問題探索:
其實這個問題,我在另外一臺機器上是沒有遇到了,該機器是python3.6+opencv3.4.2
遇到問題的環境是docker環境,python3.5+opencv3.2
我感覺跟opencv的版本可能有關係,等後續訓練完成之後把docker裡面opencv的版本升級到3.4.2再試一下
相關文章
- pytorch和tensorflow的愛恨情仇之定義可訓練的引數PyTorch
- Pytorch - DataloaderPyTorch
- 深度學習煉丹-超引數設定和網路訓練深度學習
- Pytorch入門-dataloaderPyTorch
- pytorch指定GPU訓練PyTorchGPU
- Pytorch分散式訓練PyTorch分散式
- STANDBY_FILE_MANAGEMENT引數未設定auto導致的ADG備庫異常
- PyTorch預訓練Bert模型PyTorch模型
- pytorch訓練GAN時的detach()PyTorch
- 【AI】Pytorch_預訓練模型AIPyTorch模型
- ANALYZE導致的阻塞問題分析
- PyTorch 模型訓練實⽤教程(程式碼訓練步驟講解)PyTorch模型
- 2、PyTorch訓練YOLOv11—訓練篇(detect)—Windows系統PyTorchYOLOv1Windows
- Pytorch入門上 —— Dataset、Tensorboard、Transforms、DataloaderPyTorchORBORM
- ENVI深度學習隨機引數訓練方法深度學習隨機
- [專案實戰]訓練retinanet(pytorch版)NaNPyTorch
- Pytorch:單卡多程式並行訓練PyTorch並行
- Pytorch:使用Tensorboard記錄訓練狀態PyTorchORB
- tomcat vm 引數設定Tomcat
- 【小白學PyTorch】3 淺談Dataset和DataloaderPyTorch
- pytorch dataloader和batch_size大小的理解PyTorchBAT
- Pytorch建模過程中的DataLoader與DatasetPyTorch
- 利用PyTorch訓練模型識別數字+英文圖片驗證碼PyTorch模型
- win10系統引導怎麼設定_win10設定系統引導的方法Win10
- 使用Pytorch訓練分類器詳解(附python演練)PyTorchPython
- jmeter引數化導致反斜槓(\)被轉義JMeter
- JVM常見引數設定JVM
- pandas引數設定小技巧
- Metasploit設定VERBOSE引數技巧
- Metasploit設定HttpTrace引數技巧HTTP
- Metasploit設定LHOST引數技巧
- JVM引數設定大氣JVM
- 連結伺服器查詢導致的阻塞伺服器
- 解決ajax請求引數過多導致引數被截斷的問題
- 雲原生的彈性 AI 訓練系列之二:PyTorch 1.9.0 彈性分散式訓練的設計與實現AIPyTorch分散式
- 物件導向綜合訓練物件
- 用SSD-Pytorch訓練自己的資料集PyTorch
- pytorch---之固定某些層權重再訓練PyTorch