如何确定最佳的num_workers, 请看代码:
nw = min([os.cpu_count(), args.batch_size if args.batch_size > 1 else 0, 8]) # number of workers
亲测,num_workers这样设置可以节省很多训练时间。本人的cpu是i9-13900k, 按理可以将num_workers拉到20以上,但是通过实验证明,num_workers的设置不是越大越好。设置的大反而会拖慢训练,我按照上面的设置,一个epoch跑59s,如果设置为20,反而训练了90s,这相差还是蛮大的!我觉得应该是因为我的batchsize比较小,设置那么多进程数反而是加大开销!