最近在跑一个图像分类的小项目,用的PyTorch 2.0,数据就是几千张图片,不算大。但发现训练时CPU利用率一直上不去,GPU经常在等数据,epoch时间明显比在Linux上长。我按网上说的把num_workers从0调到4、8甚至12,结果不但没变快,有时候还更卡了,甚至会报BrokenPipeError。查了一下发现好像Windows下DataLoader的worker机制和Linux不一样,是spawn而不是fork?那是不是意味着我的预处理代码(比如albumentations)有内存拷贝开销?还是说应该用别的方式加载数据?有经验的前辈能分享一下Windows下的最佳实践吗?