如何在多处理中从队列中检索PyTorch张量



我只是想检索在另一个进程中放入队列的张量,但每次检索时都会出现"连接被拒绝"错误。请向我介绍任何可能有帮助的文档或给我一些建议。

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())

相关内容

  • 没有找到相关文章

最新更新