解决pytorch多线程共享全局变量问题:Cannot re-initialize CUDA in forked subprocess. To use CUDA with multiprocessing
原因:在Python3中使用 spawn
或 forkseverver
启动方法才支持在进程之间共享CUDA张量。而我是用的multiprocessing
是使用 fork
创建子进程,不被 CUDA 运行时所支持
在程序最开始的地方加上:
torch.multiprocessing.set_start_method(‘spawn’)