首页 > 技术文章 > 关于Dataloader中的num_workers

JunzhaoLiang 2019-11-15 20:00 原文

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

推荐阅读