def get_adj_matrix(dataset: InMemoryDataset) -> np.ndarray:
    num_nodes = dataset.data.x.shape[0]
    adj_matrix = np.zeros(shape=(num_nodes, num_nodes))
    for (i, j) in zip(dataset.data.edge_index[0], dataset.data.edge_index[1]):
        adj_matrix[(i, j)] = 1.0
    return adj_matrix
def get_adj_matrix(dataset: InMemoryDataset) -> np.ndarray:
    num_nodes = dataset.data.x.shape[0]
    adj_matrix = np.zeros(shape=(num_nodes, num_nodes))
    for (i, j) in zip(dataset.data.edge_index[0], dataset.data.edge_index[1]):
        adj_matrix[(i, j)] = 1.0
    return adj_matrix