2.0.3
PyG 2.0.3 π
A new minor PyG version release, including a variety of new features and bugfixes:
Features
GLNN
: Graph-less Neural Networks [Example] (#3572)LINKX
: Large Scale Learning on Non-Homophilous Graphs [Example] (#3654)- Added an example for heterogeneous link classification (#3350) - thanks to @anniekmyatt
HANConv
: The Heterogenous Graph Attention operator [Example] (#3444, #3577, #3581) - thanks to @rishubhkhurana and @wsad1LGConv
andLightGCN
: Simplifying and Powering Graph Convolution Network for Recommendation (#3685) - thanks to @LukasHaas and @KathyFeiyang- PyTorch Lightning
DataModule
wrappers for PyG+PL multi-GPU training/inference without replicating datasets across processes :torch_geometric.data.LightningDataset
for multi-GPU training via PL on graph-level tasks [Example] (#3596, #3634)torch_geometric.data.LightningNodeData
for multi-GPU training via PL on node-level tasks [Example] (#3613, #3634)
NeighborLoader
: Added CUDA support leading to major runtime improvements [Example] (#3736)MessagePassing
: Added theedge_updater
/edge_update
interface for updating edge features (#3450) - thanks to @PadarnGNNExplainer
: Added an example that reproduces the official BA-Shapes experiment (#3386) - thanks to @RBendiastorch_geometric.graphgym
: Support for heterogeneous graphs and lazy initialization (#3460) - thanks to @JiaxuanYouMLP
: Added a basic MLP implementation (#3553)PointTransformer
: Classification and segmentation examples (#3344) - thanks to @QuanticDisaster and @wsad1ShaDowKHopSampler
: Added an example (#3411) - thanks to @SubhajitDuttaChowdhuryData.subgraph(...)
implementation (#3521)
Datasets
HGBDataset
benchmark suite (#3454)MalNetTiny
dataset (#3472) - thanks to @rampasekOMDB
: Organic Materials Database (#3506)BAShapes
: The BA-Shapes dataset (#3386) - thanks to @RBendiasPolBlogs
andEmailEUCore
datasets (#3534) - thanks to @AlexDuvalinhoStochasticBlockModel
andRandomPartition
graph datasets (#3586) - thanks to @dongkwan-kimLINKXDataset
: A subset of the non-homophilous benchmark datasets fromLINKX
FakeDataset
andFakeHeteroDataset
for testing purposes (#3741) - thanks to @levulinh
Minor Changes
torch_geometric.nn.norm
: Improved the runtimes of normalization layers - thanks to @johnpeterflynnDataLoader
andNeighborLoader
: Output tensors are now written to shared memory to avoid an extra copy in casenum_workers > 0
(#3401 and #3734) - thanks to @johnpeterflynnGATv2Conv
: Support for edge features (#3421) - thanks to @Kenneth-SchroederBatch.from_data_list
: Runtime improvementsTransformerConv
: Runtime and memory consumption improvements (#3392) - thanks to @wsad1mean_iou
: Added IoU computation via omitting NaNs (#3464) - thanks to @GericoViDataLoader
:follow_batch
andexclude_keys
are now optional arguments- Improvements to the package metadata (#3445) - thanks to @cthoyt
- Updated the quick start widget to support PyTorch 1.10 (#3474) - thanks to @kathyfan
NeighborLoader
andHGTLoader
: Removed thepersistent_workers=True
defaultvoxel_grid
: Thebatch
argument is now optional (#3533) - thanks to @QuanticDisasterTransformerConv
: JIT support (#3538) - thanks to @RobMcH- Lazy modules can now correctly be saved and loaded via
state_dict()
andload_state_dict()
(#3651) - thanks to @shubham-gupta-iitr from_networkx
: Support fornx.MultiDiGraph
(#3646) - thanks to @max-zipfl-fziGATv2Conv
: Support for lazy initialization (#3678) - thanks to @richcmwangtorch_geometric.graphgym
:register_*
functions can now be used as decorators (#3684)AddSelfLoops
: Now supports the full argument set oftorch_geometric.utils.add_self_loops
(#3702) - thanks to @dongkwan-kim- Documentation: Added shape information to a variety of GNN operators, e.g.,
GATConv
orChebConv
(#3697) - thanks to @saiden89 GATv2Conv
andHEATConv
: Removed unnecessarysize
argument inforward
(#3744) - thanks to @saiden89
Bugfixes
GNNExplainer
: Fixed a bug in theGCN
example normalization coefficients were wrongly calculated (#3508) - thanks to @RBendiasHGTConv
: Fixed a bug in the residual connection formulation - thanks to @zzhnobugtorch_geometric.grapghym
: Fixed a bug in the creation ofMLP
(#3431) - thanks to @JiaxuanYoutorch_geometric.graphgym
: Fixed a bug in the dimensionality ofGeneralMultiLayer
(#3456) - thanks to @JiaxuanYouRandomLinkSplit
: Fixed a bug in negative edge sampling for undirected graphs (#3440) - thanks to @panissonadd_self_loops
: Fixed a bug in adding self-loops with scalar-valued weightsSchNet
: Fixed a bug in which abias
vector was not correctly initialized as zero - thanks to @nec4Batch.from_data_list
: Replaced thetorch.repeat_interleave
call due to errors in forked processes (#3566) - thanks to @EnolerobottiNeighborLoader
: Fixed a bug in conjunction with PyTorch Lightning (#3602) - thanks to @pbielakNeighborLoader
andToSparseTensor
: Fixed a bug in casenum_nodes == num_edges
(#3683) - thanks to @WuliangHuangToUndirected
: Fixed a bug in casenum_nodes == 2
(#3627) - thanks to @aur3l14noFiLMConv
: Fixed a bug in the backward pass due to the usage of in-place operations - thanks to @JokerenGDC
: Fixed a bug in caseK > num_nodes
- thanks to @Misterion777LabelPropagation
: Fixed a bug in the order of transformations (#3639) - thanks to @Riyer01negative_sampling
: Fixed execution for GPU input tensors - thanks to @Sticksword and @lmy86263HeteroData
: Fixed a bug in which node types were interpreted as edge types in case they were described by two characters (#3692)FastRGCNConv
: Fixed a bug in which weights were indexed on destination node index rather than source node index (#3690) - thanks to @JokerenWikipediaNetwork
: Fixed a bug in downloading due to a change in URLs - thanks to @csbobby and @Kousaka-Honoka