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

猜你喜欢

转载自www.cnblogs.com/JunzhaoLiang/p/11869268.html
num
今日推荐