num_workers通過影響數據加載速度,從而影響訓練速度
在調整num_workers的過程中,發現訓練速度並沒有變化
原因在於:
num_workers是加載數據(batch)的線程數目
當加載batch的時間 < 數據訓練的時間
GPU每次訓練完都可以直接從CPU中取到next batch的數據
無需額外的等待,因此也不需要多余的worker,即使增加worker也不會影響訓練速度
當加載batch的時間 > 數據訓練的時間
GPU每次訓練完都需要等待CPU完成數據的載入
若增加worker,即使worker_1還未就緒,GPU也可以取worker_2的數據來訓練
僅限單線程訓練情況
Reference: