关于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