torch.multiprocessing 子进程接收的是零向量,而不是实际数据
作者: dfarhi创建于 2022年6月16日更新于 2026年2月28日
标签bugdistributed
你的问题可能已经上报了 请在创建 [issue tracker] (https://GitHub.com/pytorch/ serve/examples) 之前搜索.
□ 内容 {\fn华文仿宋\fs16\1cHD1D1D1} <! 这个问题对你有什么影响? 你想完成什么? -- -- " Th. 多重处理似乎没有 发送热量数据 产入我设置的过程。
" ! -- -- 提供环境有助于我们找到在现实世界最有用的解决办法 -- -- "
- Pytorch 版本 :
torch:
(原始内容存档于2019-01-0+cu113) (中文(简体) ).
(原始内容存档于2019-01-0+cu113) (中文(简体) ).*操作系统和版本:Windows 10版本21H1
- 库达 11.7
□你的环境 <! -- -- 包含尽可能多的关于您在 -- > 中体验到错误的环境的相关细节
- 使用源安装? [是/否]:否
- 你打算使用Docker容器部署它吗?
- 是CPU还是GPU环境? 常规
- 您使用哪个示例 : mnist hogwild
- 链接到代码或数据以重现[如果]:
□ 预期行为 {\fn华文仿宋\fs16\1cHD1D1D1} <! 如果你在描述一个虫子,告诉我们应该发生什么——" 在列车开行时插入打印. 检查参数的列已正确复制到子进程 :
print(f"Norm was: {model.fc1. cight. rorm (). item()}) 的缩写上面的打印应该打印一些随机数字. 我跑不动的时候,它会这样做:
>Python 主机.py
标准是:4.082266807556152
标准为:4.081115245819092
[训练开始]□ 当前的行为 {\fn华文仿宋\fs16\1cHD1D1D1} <! 如果描述一个错误,请告诉我们会发生什么,而不是预期的行为 -- > 我和Cuda一起跑的时候 呼声是0:
> Python 主干线.py --cuda
标准为: 0.0
标准为: 0.0
[训练开始]□ 重现 我认为,这不是一个例子的问题,而是基地`torch.multi processing'的问题,或是我安装的问题。 问题似乎是,发送到子进程的任何对数器都用零来替换数据.
我在`mnist hogwild'的例子中将这个问题复制到上面的步骤(这些步骤只是"在我的设备上运行cuda").
作为更微小的重写,对我来说也是失败的:
导入火炬为 t
导入火炬。多处理为 mp
如果... 名字... "... main...":
参数=th.randn(1,设备='cuda:0')
print(参数) # 这里的参数是一个带有随机数的 1x1 个计数器
mp. set start 方法( “发芽” )
p= mp. (中文(简体) ). 进程(目标=打印,args=(参数))#这里的参数是一个1x1的零拉伸.
p. start( ) ()
p. join () (中文(简体) ).[为简化再pro码而编辑]
内容来源: pytorch/examples