Pytorch报错:
RuntimeError: Cannot re-initialize CUDA in forked subprocess. To use CUDA with multiprocessing, you must use the ‘spawn’ start method
问题背景:
在dataloader中,使用了多线程处理数据,并且自定义了collate_func
解决方案:
如果不是特别大的消耗,可以取消调用该函数的cuda方法
如果一定要使用,Python 3 支持进程之间共享 CUDA 张量,我们可以使用 spawn 或forkserver 启动此类方法
使用数据并行化方法是目前pytorch官方比较推荐的方法

本文解决PyTorch在使用多线程数据加载时遇到的CUDA初始化错误问题。介绍了错误产生的背景及原因,并提供了两种解决方案:一是取消不必要的CUDA调用;二是使用spawn或forkserver启动方法。
3016





