最近在调一个语义分割模型,batch size从8加到16之后,发现显存占用比原来多了快一倍,但是模型参数量没变啊。我怀疑是DataLoader的num_workers设置问题,网上说num_workers>0时子进程会复制模型,但我的代码里模型是在训练循环外定义的,按理说子进程不应该持有模型参数吧?难道是collate_fn里做了GPU上的操作?我确实在那边做了个简单的tensor拼接和数据增强,但都是CPU上的。有没有大佬遇到过类似情况?另外,看到有些人推荐用prefetch_factor调小一点,这个和显存有什么具体关系吗?求指教,真的被这个问题卡了两天了。