dgl.DGLGraph.long

DGLGraph.long()[source]

Cast the graph to one with idtype int64

If the graph already has idtype int64, the function directly returns it. Otherwise, it returns a cloned graph of idtype int64 with features copied (shallow copy).

Returns:

The graph of idtype int64.

Return type:

DGLGraph

Examples

The following example uses PyTorch backend.

>>> import dgl
>>> import torch

Create a graph of idtype int32.

>>> # (0, 1), (0, 2), (1, 2)
>>> g = dgl.graph((torch.tensor([0, 0, 1]).int(), torch.tensor([1, 2, 2]).int()))
>>> g.ndata['feat'] = torch.ones(3, 1)
>>> g.idtype
torch.int32

Cast the graph to one of idtype int64.

>>> # A cloned graph with an idtype of int64
>>> g_long = g.long()
>>> g_long.idtype
torch.int64
>>> # The idtype of the original graph does not change.
>>> g.idtype
torch.int32
>>> g_long.edges()
(tensor([0, 0, 1]), tensor([1, 2, 2]))
>>> g_long.ndata
{'feat': tensor([[1.],
                 [1.],
                 [1.]])}

See also

int, idtype