| 55 | ) |
| 56 | |
| 57 | def get_graph(self): |
| 58 | ntensor_list = list(_CAPI_GetNDataFromHeteroGraphData(self)) |
| 59 | etensor_list = list(_CAPI_GetEDataFromHeteroGraphData(self)) |
| 60 | ntype_names = list(_CAPI_GetNtypesFromHeteroGraphData(self)) |
| 61 | etype_names = list(_CAPI_GetEtypesFromHeteroGraphData(self)) |
| 62 | gidx = _CAPI_GetGindexFromHeteroGraphData(self) |
| 63 | nframes = [] |
| 64 | eframes = [] |
| 65 | for ntid, ntensor in enumerate(ntensor_list): |
| 66 | ndict = { |
| 67 | ntensor[i]: F.zerocopy_from_dgl_ndarray(ntensor[i + 1]) |
| 68 | for i in range(0, len(ntensor), 2) |
| 69 | } |
| 70 | nframes.append(Frame(ndict, num_rows=gidx.num_nodes(ntid))) |
| 71 | |
| 72 | for etid, etensor in enumerate(etensor_list): |
| 73 | edict = { |
| 74 | etensor[i]: F.zerocopy_from_dgl_ndarray(etensor[i + 1]) |
| 75 | for i in range(0, len(etensor), 2) |
| 76 | } |
| 77 | eframes.append(Frame(edict, num_rows=gidx.num_edges(etid))) |
| 78 | |
| 79 | return DGLGraph(gidx, ntype_names, etype_names, nframes, eframes) |