我只是想检索在另一个进程中放入队列的张量,但每次检索时都会出现"连接被拒绝"错误。请向我介绍任何可能有帮助的文档或给我一些建议。
import torch
import torch.multiprocessing as mp
def test(q):
x = torch.normal(mean=0.0, std=1.0, size=(2, 3))
x.share_memory_()
q.put(x)
if __name__ == "__main__":
mp.set_start_method("spawn")
q = mp.Queue()
p = mp.Process(target=test, args=(q,))
p.start()
p.join()
print(q.get())
您应该使用Manager((来消除此错误。所以工作代码示例应该如下所示
import torch
import torch.multiprocessing as mp
def test(q):
x = torch.normal(mean=0.0, std=1.0, size=(2, 3))
x.share_memory_()
q.put(x)
if __name__ == "__main__":
#mp.set_start_method("spawn")
manager = mp.Manager()
q = manager.Queue()
p = mp.Process(target=test, args=(q,))
p.start()
p.join()
print(q.get())