From 63c73e039773c14f13560d23efe2c9bb2b61ad00 Mon Sep 17 00:00:00 2001 From: Aadit Gupta Date: Mon, 12 Jul 2021 19:55:00 -0700 Subject: [PATCH 1/3] laplacian error fix --- torchts/utils/graph.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/torchts/utils/graph.py b/torchts/utils/graph.py index efb4c160..0caa448d 100644 --- a/torchts/utils/graph.py +++ b/torchts/utils/graph.py @@ -31,8 +31,7 @@ def reverse_random_walk(adj_mx): def scaled_laplacian(adj_mx, lambda_max=2, undirected=True): if undirected: - adj_mx = np.maximum.reduce([adj_mx, adj_mx.T]) - + adj_mx = np.maximum.reduce([adj_mx.todense(), adj_mx.todense().T]) L = normalized_laplacian(adj_mx) if lambda_max is None: From 64bf1265ea47dd2c3fcf4656c38dd214f1d8468e Mon Sep 17 00:00:00 2001 From: Kevin Lane Date: Fri, 16 Jul 2021 09:15:52 -0700 Subject: [PATCH 2/3] Revert "laplacian error fix" This reverts commit 63c73e039773c14f13560d23efe2c9bb2b61ad00. --- torchts/utils/graph.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/torchts/utils/graph.py b/torchts/utils/graph.py index 0caa448d..efb4c160 100644 --- a/torchts/utils/graph.py +++ b/torchts/utils/graph.py @@ -31,7 +31,8 @@ def reverse_random_walk(adj_mx): def scaled_laplacian(adj_mx, lambda_max=2, undirected=True): if undirected: - adj_mx = np.maximum.reduce([adj_mx.todense(), adj_mx.todense().T]) + adj_mx = np.maximum.reduce([adj_mx, adj_mx.T]) + L = normalized_laplacian(adj_mx) if lambda_max is None: From 510d455d72e7e0fbaba81a236907c2ef2c8297e6 Mon Sep 17 00:00:00 2001 From: Kevin Lane Date: Fri, 16 Jul 2021 09:20:14 -0700 Subject: [PATCH 3/3] Convert sparse adjacency matrix to dense Prevents error when enforcing symmetry --- torchts/utils/graph.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/torchts/utils/graph.py b/torchts/utils/graph.py index efb4c160..7aac8338 100644 --- a/torchts/utils/graph.py +++ b/torchts/utils/graph.py @@ -30,6 +30,9 @@ def reverse_random_walk(adj_mx): def scaled_laplacian(adj_mx, lambda_max=2, undirected=True): + if sp.issparse(adj_mx): + adj_mx = adj_mx.todense() + if undirected: adj_mx = np.maximum.reduce([adj_mx, adj_mx.T])