前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >『debug心路』将 DGL.DGLGraph 对象放到 device 上

『debug心路』将 DGL.DGLGraph 对象放到 device 上

作者头像
Piper蛋窝
发布2021-02-08 22:31:37
1.4K0
发布2021-02-08 22:31:37
举报
文章被收录于专栏:Piper蛋窝Piper蛋窝

最近在用 dgl ,不是很顺手,常遇到些因为熟练度低而带来的问题。这是诸多问题中的一个。解决思路为看报错信息分析,最后在 github 的 iusse 中找到解决办法。

PyTorch 报错

dgl._ffi.base.DGLError: Cannot assign node feature "n_feat" on device cuda:0 to a graph on device cpu.

很显然,我们没有把向量同步到我们模型的所用的计算设备上。

一般,我们用 <你的dgl对象名称>.to(<你的设备>) 来解决。如下。

代码语言:javascript
复制
g.to(torch.device('cuda:0'))

但是发现无效。

后来搜索到了相关的资料:

•https://github.com/dmlc/dgl/issues/2171#issuecomment-691985268

如上,g.to(device) 仅仅是返回一个对象,并不改变其自身的属性。因此,我们要想改变 g ,还需要将 g.to(device) 返回的对象赋值到 g 上。

代码语言:javascript
复制
g = g.to(torch.device('cuda:0'))

如上,问题修复。

当然,也有可能是别的问题,要具体情况具体分析。记得从:原理出发原理出发原理出发原理出发原理出发原理出发原理出发原理出发原理出发原理出发原理出发原理出发原理出发原理出发原理出发原理出发原理出发原理出发原理出发原理出发原理出发原理出发原理出发原理出发原理出发原理出发原理出发。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-01-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Piper蛋窝 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 最近在用 dgl ,不是很顺手,常遇到些因为熟练度低而带来的问题。这是诸多问题中的一个。解决思路为看报错信息分析,最后在 github 的 iusse 中找到解决办法。
  • PyTorch 报错
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档