| 83 | |
| 84 | |
| 85 | def get_adj(g): |
| 86 | edges = list(g.edges) |
| 87 | edges = [(edges[i][0], edges[i][1]) for i in range(len(edges))] |
| 88 | # print(edges) |
| 89 | edges = np.array([np.array(i) for i in edges]) |
| 90 | min_node, max_node = edges.min(), edges.max() |
| 91 | if min_node == 0: |
| 92 | Node = max_node + 1 |
| 93 | else: |
| 94 | Node = max_node |
| 95 | |
| 96 | Adj = np.zeros([Node, Node], dtype=int) |
| 97 | for i in range(edges.shape[0]): |
| 98 | g.add_edge(edges[i][0], edges[i][1]) |
| 99 | if min_node == 0: |
| 100 | Adj[edges[i][0], edges[i][1]] = 1 |
| 101 | Adj[edges[i][1], edges[i][0]] = 1 |
| 102 | else: |
| 103 | Adj[edges[i][0] - 1, edges[i][1] - 1] = 1 |
| 104 | Adj[edges[i][1] - 1, edges[i][0] - 1] = 1 |
| 105 | Adj = torch.FloatTensor(Adj) |
| 106 | return Adj, Node |
| 107 | |
| 108 | |
| 109 | class SDNE(nn.Module): |