From 2592128d359175618c835ed7c99359aad9a1284a Mon Sep 17 00:00:00 2001 From: OlegPlatonov Date: Tue, 28 Mar 2023 15:55:34 +0300 Subject: [PATCH 1/4] convert heterophilous graphs to undirected --- torch_geometric/datasets/heterophilous_graph_dataset.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/torch_geometric/datasets/heterophilous_graph_dataset.py b/torch_geometric/datasets/heterophilous_graph_dataset.py index c3063fe97e8c..0c9cd00444d2 100644 --- a/torch_geometric/datasets/heterophilous_graph_dataset.py +++ b/torch_geometric/datasets/heterophilous_graph_dataset.py @@ -5,6 +5,7 @@ import torch from torch_geometric.data import Data, InMemoryDataset, download_url +from torch_geometric.transforms import ToUndirected class HeterophilousGraphDataset(InMemoryDataset): @@ -118,6 +119,8 @@ def process(self): data = Data(x=x, y=y, edge_index=edge_index, train_mask=train_mask, val_mask=val_mask, test_mask=test_mask) + data = ToUndirected()(data) + if self.pre_transform is not None: data = self.pre_transform(data) From 7f5d45e37e208defa56dad2177d41c2e3cfb2486 Mon Sep 17 00:00:00 2001 From: Matthias Fey Date: Wed, 29 Mar 2023 09:17:53 +0200 Subject: [PATCH 2/4] Update torch_geometric/datasets/heterophilous_graph_dataset.py Co-authored-by: Jintang Li --- torch_geometric/datasets/heterophilous_graph_dataset.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/torch_geometric/datasets/heterophilous_graph_dataset.py b/torch_geometric/datasets/heterophilous_graph_dataset.py index 0c9cd00444d2..ca52c38961e3 100644 --- a/torch_geometric/datasets/heterophilous_graph_dataset.py +++ b/torch_geometric/datasets/heterophilous_graph_dataset.py @@ -5,7 +5,7 @@ import torch from torch_geometric.data import Data, InMemoryDataset, download_url -from torch_geometric.transforms import ToUndirected +from torch_geometric.utils import to_undirected class HeterophilousGraphDataset(InMemoryDataset): From 21917db55846428a7767d3b52896c1351e8cea63 Mon Sep 17 00:00:00 2001 From: Matthias Fey Date: Wed, 29 Mar 2023 09:17:58 +0200 Subject: [PATCH 3/4] Update torch_geometric/datasets/heterophilous_graph_dataset.py Co-authored-by: Jintang Li --- torch_geometric/datasets/heterophilous_graph_dataset.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/torch_geometric/datasets/heterophilous_graph_dataset.py b/torch_geometric/datasets/heterophilous_graph_dataset.py index ca52c38961e3..47acf6047e72 100644 --- a/torch_geometric/datasets/heterophilous_graph_dataset.py +++ b/torch_geometric/datasets/heterophilous_graph_dataset.py @@ -119,7 +119,7 @@ def process(self): data = Data(x=x, y=y, edge_index=edge_index, train_mask=train_mask, val_mask=val_mask, test_mask=test_mask) - data = ToUndirected()(data) + data.edge_index = to_undirected(data.edge_index) if self.pre_transform is not None: data = self.pre_transform(data) From 3dfcc48c9ea656411137bd48f0c5ca259c76fd8a Mon Sep 17 00:00:00 2001 From: rusty1s Date: Wed, 29 Mar 2023 07:19:28 +0000 Subject: [PATCH 4/4] update --- CHANGELOG.md | 1 + torch_geometric/datasets/heterophilous_graph_dataset.py | 3 +-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d8bf4ab8e8dd..86e8766ac03e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/). ### Changed +- Edges in `HeterophilousGraphDataset` are now undirected by default ([#7065](https://github.com/pyg-team/pytorch_geometric/pull/7065)) - Fixed a bug in `FastHGTConv` that computed values via parameters used to compute the keys ([#7050](https://github.com/pyg-team/pytorch_geometric/pull/7050)) - Accelerated sparse tensor conversion routines ([#7042](https://github.com/pyg-team/pytorch_geometric/pull/7042), [#7043](https://github.com/pyg-team/pytorch_geometric/pull/7043)) - Change `torch_sparse.SparseTensor` logic to utilize `torch.sparse_csr` instead ([#7041](https://github.com/pyg-team/pytorch_geometric/pull/7041)) diff --git a/torch_geometric/datasets/heterophilous_graph_dataset.py b/torch_geometric/datasets/heterophilous_graph_dataset.py index 47acf6047e72..d63fb806536d 100644 --- a/torch_geometric/datasets/heterophilous_graph_dataset.py +++ b/torch_geometric/datasets/heterophilous_graph_dataset.py @@ -112,6 +112,7 @@ def process(self): x = torch.from_numpy(raw['node_features']) y = torch.from_numpy(raw['node_labels']) edge_index = torch.from_numpy(raw['edges']).t().contiguous() + edge_index = to_undirected(edge_index, num_nodes=x.size(0)) train_mask = torch.from_numpy(raw['train_masks']).t().contiguous() val_mask = torch.from_numpy(raw['val_masks']).t().contiguous() test_mask = torch.from_numpy(raw['test_masks']).t().contiguous() @@ -119,8 +120,6 @@ def process(self): data = Data(x=x, y=y, edge_index=edge_index, train_mask=train_mask, val_mask=val_mask, test_mask=test_mask) - data.edge_index = to_undirected(data.edge_index) - if self.pre_transform is not None: data = self.pre_transform(data)