關於Dataloader中的num_workers


num_workers通過影響數據加載速度,從而影響訓練速度

在調整num_workers的過程中,發現訓練速度並沒有變化

原因在於:

num_workers是加載數據(batch)的線程數目

當加載batch的時間 < 數據訓練的時間

  GPU每次訓練完都可以直接從CPU中取到next batch的數據

  無需額外的等待,因此也不需要多余的worker,即使增加worker也不會影響訓練速度

當加載batch的時間 > 數據訓練的時間

  GPU每次訓練完都需要等待CPU完成數據的載入

  若增加worker,即使worker_1還未就緒,GPU也可以取worker_2的數據來訓練

僅限單線程訓練情況

 

Reference:

https://www.cnblogs.com/hesse-summer/p/11343870.html

https://blog.csdn.net/attackkk/article/details/101914509


免責聲明!

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



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