the error info:
the DGLGraph has 505243 nodes and has 0 edge.
when I assign features to the nodes(num=505243),
# sth like this
g.readonly(False)
g.remove_edges(np.arange(g.number_of_edges()))
# g = dgl.transform.add_self_loop(g)
g.readonly()
g.ndata['h'] = torch.rand(g.number_of_nodes(),5)
it reported error bellow.
Traceback (most recent call last):
... ... # local py scripts
File "/usr/local/lib/python3.6/dist-packages/dgl/view.py", line 65, in __setitem__
self._graph.set_n_repr({key : val}, self._nodes)
File "/usr/local/lib/python3.6/dist-packages/dgl/graph.py", line 2285, in set_n_repr
self._node_frame[key] = val
File "/usr/local/lib/python3.6/dist-packages/dgl/frame.py", line 671, in __setitem__
self.update_data(key, val, inplace=False)
File "/usr/local/lib/python3.6/dist-packages/dgl/frame.py", line 698, in update_data
self.update_column(key, val, inplace=inplace)
File "/usr/local/lib/python3.6/dist-packages/dgl/frame.py", line 729, in update_column
self._frame[name] = data
File "/usr/local/lib/python3.6/dist-packages/dgl/frame.py", line 328, in __setitem__
self.update_column(name, data)
File "/usr/local/lib/python3.6/dist-packages/dgl/frame.py", line 415, in update_column
(self.num_rows, len(col)))
dgl._ffi.base.DGLError: Expected data to have 0 rows, got 505243.
however, when I did g = dgl.transform.add_self_loop(g)
, everything became ok.
I have tried following scrip for comparision, it worked well too, so why?
g = dgl.DGLGraph()
g.add_nodes(5)
g.ndata['h'] = torch.rand(5,4)