dgl._ffi.base.DGLError: Cannot assign node feature "n_feat" on device cuda:0 to a graph on device cpu.
很显然,我们没有把向量同步到我们模型的所用的计算设备上。
一般,我们用 <你的dgl对象名称>.to(<你的设备>)
来解决。如下。
g.to(torch.device('cuda:0'))
但是发现无效。
后来搜索到了相关的资料:
•https://github.com/dmlc/dgl/issues/2171#issuecomment-691985268
如上,g.to(device)
仅仅是返回一个对象,并不改变其自身的属性。因此,我们要想改变 g
,还需要将 g.to(device)
返回的对象赋值到 g
上。
g = g.to(torch.device('cuda:0'))
如上,问题修复。
当然,也有可能是别的问题,要具体情况具体分析。记得从:原理出发原理出发原理出发原理出发原理出发原理出发原理出发原理出发原理出发原理出发原理出发原理出发原理出发原理出发原理出发原理出发原理出发原理出发原理出发原理出发原理出发原理出发原理出发原理出发原理出发原理出发原理出发。