Github GitHub - benedekrozemberczki/pytorch_geometric_temporal: A Temporal Exten...
source link: https://github.com/benedekrozemberczki/pytorch_geometric_temporal
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
README.md
Documentation | External Resources | Datasets
PyTorch Geometric Temporal is a temporal (dynamic) extension library for PyTorch Geometric.
The library consists of various dynamic and temporal geometric deep learning, embedding, and spatio-temporal regression methods from a variety of published research papers. Moreover, it comes with an easy-to-use dataset loader, train-test splitter and temporal snaphot iterator for dynamic and temporal graphs. The framework naturally provides GPU support. It also comes with a number of benchmark datasets from the epidemological forecasting, sharing economy, energy production and web traffic management domains. Finally, you can also create your own datasets.
Citing
If you find PyTorch Geometric Temporal and the new datasets useful in your research, please consider adding the following citation:
@misc{pytorch_geometric_temporal, author = {Benedek, Rozemberczki and Paul, Scherer and Yixuan, He and George, Panagopoulos and Maria, Astefanoaei and Oliver, Kiss and Ferenc, Beres and Nicolas, Collignon}, title = {{PyTorch Geometric Temporal}}, year = {2020}, publisher = {GitHub}, journal = {GitHub repository}, howpublished = {\url{https://github.com/benedekrozemberczki/pytorch_geometric_temporal}}, }
A simple example
PyTorch Geometric Temporal makes implementing Dynamic and Temporal Graph Neural Networks quite easy - see the accompanying tutorial. For example, this is all it takes to implement a recurrent graph convolutional network with two consecutive graph convolutional GRU cells and a linear layer:
import torch import torch.nn.functional as F from torch_geometric_temporal.nn.recurrent import GConvGRU class RecurrentGCN(torch.nn.Module): def __init__(self, node_features, num_classes): super(RecurrentGCN, self).__init__() self.recurrent_1 = GConvGRU(node_features, 32, 5) self.recurrent_2 = GConvGRU(32, 16, 5) self.linear = torch.nn.Linear(16, num_classes) def forward(self, x, edge_index, edge_weight): x = self.recurrent_1(x, edge_index, edge_weight) x = F.relu(x) x = F.dropout(x, training=self.training) x = self.recurrent_2(x, edge_index, edge_weight) x = F.relu(x) x = F.dropout(x, training=self.training) x = self.linear(x) return F.log_softmax(x, dim=1)
Methods Included
In detail, the following temporal graph neural networks were implemented.
Recurrent Graph Convolutions
Temporal Graph Convolutions
Auxiliary Graph Convolutions
Head over to our documentation to find out more about installation, creation of datasets and a full list of implemented methods and available datasets.
For a quick start, check out the examples in the examples/
directory.
If you notice anything unexpected, please open an issue. If you are missing a specific method, feel free to open a feature request.
Installation
PyTorch 1.8.0
To install the binaries for PyTorch 1.8.0, simply run
$ pip install torch-scatter -f https://pytorch-geometric.com/whl/torch-1.8.0+${CUDA}.html $ pip install torch-sparse -f https://pytorch-geometric.com/whl/torch-1.8.0+${CUDA}.html $ pip install torch-cluster -f https://pytorch-geometric.com/whl/torch-1.8.0+${CUDA}.html $ pip install torch-spline-conv -f https://pytorch-geometric.com/whl/torch-1.8.0+${CUDA}.html $ pip install torch-geometric $ pip install torch-geometric-temporal
where ${CUDA}
should be replaced by either cpu
, cu101
, cu102
, or cu111
depending on your PyTorch installation.
cpu
cu101
cu102
cu111
Linux
Windows
macOS
PyTorch 1.7.0
To install the binaries for PyTorch 1.7.0, simply run
$ pip install torch-scatter==latest+${CUDA} -f https://pytorch-geometric.com/whl/torch-1.7.0.html $ pip install torch-sparse==latest+${CUDA} -f https://pytorch-geometric.com/whl/torch-1.7.0.html $ pip install torch-cluster==latest+${CUDA} -f https://pytorch-geometric.com/whl/torch-1.7.0.html $ pip install torch-spline-conv==latest+${CUDA} -f https://pytorch-geometric.com/whl/torch-1.7.0.html $ pip install torch-geometric $ pip install torch-geometric-temporal
where ${CUDA}
should be replaced by either cpu
, cu92
, cu101
, cu102
or cu110
depending on your PyTorch installation.
cpu
cu92
cu101
cu102
cu110
Linux
Windows
macOS
PyTorch 1.6.0
To install the binaries for PyTorch 1.6.0, simply run
$ pip install torch-scatter==latest+${CUDA} -f https://pytorch-geometric.com/whl/torch-1.6.0.html $ pip install torch-sparse==latest+${CUDA} -f https://pytorch-geometric.com/whl/torch-1.6.0.html $ pip install torch-cluster==latest+${CUDA} -f https://pytorch-geometric.com/whl/torch-1.6.0.html $ pip install torch-spline-conv==latest+${CUDA} -f https://pytorch-geometric.com/whl/torch-1.6.0.html $ pip install torch-geometric $ pip install torch-geometric-temporal
where ${CUDA}
should be replaced by either cpu
, cu92
, cu101
or cu102
depending on your PyTorch installation.
cpu
cu92
cu101
cu102
Linux
Windows
macOS
Running tests
$ python setup.py test
License
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK