我是参照了这两个大佬的
1.dataloader合理设置num_works和batchsize
https://blog.csdn.net/qq_41917697/article/details/114663331
2.Pytorch之DataLoader的num_works参数设置
https://blog.csdn.net/qq_41196472/article/details/106393994?utm_source=app&app_version=4.7.1&code=app_1562916241&uLinkId=usr1mkqgl919blen
我的笔记本是CPU 6核12线程的,num_workers=8,设置这个数字是CPU利用率就达到100%了
GPU是6G显存
我的batch_size=16
这样不会爆内存,用第二个大佬的代码测试到最佳num_workers<12,等于12的时候就直接崩了,我的理解是最好不要直接多少线程填多少,其它数字可以自己边调代码边看利用率。
batch_size=16时我GPU显存也才用4G多点,GPU利用率也在50%左右,没有爆,理论上还可以往上加,但是听说GPU对2的幂次的batch可以发挥更佳的性能,因此设置成16、32、64、128…时往往要比设置为整10、整100的倍数时表现更优。具体是不是,我不知道,这有个文章,可以看看https://blog.csdn.net/wydbyxr/article/details/84855489