RuntimeError: Cannot re-initialize CUDA in forked subprocess. To use CUDA with multiprocessing, you must use the 'spawn' start method.

分析:在Python3中使用 spawn 或 forkseverver 启动方法才支持在进程之间共享CUDA张量。而multiprocessing 是使用 fork 创建子进程,不被 CUDA 运行时所支持。

解决方案:

1、设置工作模式:

if __name__=='__main__':
    torch.multiprocessing.set_start_method('spawn')

2、直接设置num_workers=0

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐