Documentation
Ce package se compose d'une petite bibliothèque d'extension des opérations de mise à jour clairsemées (dispersion et segment) hautement optimisées pour l'utilisation dans Pytorch, qui manquent dans le package principal. Les opérations de diffusion et de segment peuvent être décrites à peu près comme réduisent les opérations en fonction d'un tenseur "d'indice de groupe" donné. Les opérations du segment nécessitent le tri du tenseur "Group-Index", tandis que les opérations de diffusion ne sont pas soumises à ces exigences.
Le package se compose des opérations suivantes avec des types de réduction "sum"|"mean"|"min"|"max" :
De plus, nous fournissons les fonctions composites suivantes qui utilisent des opérations scatter_* sous le capot: scatter_std , scatter_logsumexp , scatter_softmax et scatter_log_softmax .
Toutes les opérations incluses sont diffusables, les travaux sur différents types de données, sont implémentés à la fois pour le CPU et le GPU avec des implémentations arrière correspondantes et sont entièrement traçables.
MISE À JOUR: Vous pouvez maintenant installer pytorch-scatter via Anaconda pour toutes les principales combinaisons OS / Pytorch / Cuda? Étant donné que vous avez installé pytorch >= 1.8.0 , exécutez simplement
conda install pytorch-scatter -c pyg
Nous fournissons également des roues PIP pour toutes les principales combinaisons OS / Pytorch / Cuda, voir ici.
Pour installer les binaires pour Pytorch 2.5.0, exécutez simplement
pip install torch-scatter -f https://data.pyg.org/whl/torch-2.5.0+${CUDA}.html
où ${CUDA} doit être remplacé par cpu , cu118 , cu121 ou cu124 en fonction de votre installation Pytorch.
cpu | cu118 | cu121 | cu124 | |
|---|---|---|---|---|
| Linux | ✅ | ✅ | ✅ | ✅ |
| Fenêtre | ✅ | ✅ | ✅ | ✅ |
| macos | ✅ |
Pour installer les binaires pour Pytorch 2.4.0, exécutez simplement
pip install torch-scatter -f https://data.pyg.org/whl/torch-2.4.0+${CUDA}.html
où ${CUDA} doit être remplacé par cpu , cu118 , cu121 ou cu124 en fonction de votre installation Pytorch.
cpu | cu118 | cu121 | cu124 | |
|---|---|---|---|---|
| Linux | ✅ | ✅ | ✅ | ✅ |
| Fenêtre | ✅ | ✅ | ✅ | ✅ |
| macos | ✅ |
Remarque: Des binaires des versions plus anciennes sont également fournies pour Pytorch 1.4.0, Pytorch 1.5.0, Pytorch 1.6.0, Pytorch 1.7.0 / 1.7.1, Pytorch 1.8.0 / 1.8.1, pytorch 1.9.0, pytorch 1.10.0 / 1.10.1 / 1.10.2, pytorch 1.11.0, pyTTOR 1.12.0 / 1.12.1, Pytorch 1.13.0 / 1.13.1, Pytorch 2.0.0 / 2.0.1, Pytorch 2.1.0 / 2.1.1 / 2.1.2, Pytorch 2.2.0 / 2.2.1 / 2.2.2, et Pytorch 2.3.0 / 2.3.1 (suivant la même procédure). Pour les anciennes versions, vous devez spécifier explicitement le dernier numéro de version pris en charge ou installer via pip install --no-index afin d'empêcher une installation manuelle de Source. Vous pouvez rechercher le dernier numéro de version pris en charge ici.
Assurez-vous qu'au moins Pytorch 1.4.0 est installé et vérifiez que cuda/bin et cuda/include sont respectivement dans votre $PATH et $CPATH , par exemple :
$ python -c "import torch; print(torch.__version__)"
>>> 1.4.0
$ echo $PATH
>>> /usr/local/cuda/bin:...
$ echo $CPATH
>>> /usr/local/cuda/include:...
Puis courez:
pip install torch-scatter
Lors de l'exécution dans un conteneur Docker sans pilote nvidia, Pytorch doit évaluer les capacités de calcul et peut échouer. Dans ce cas, assurez-vous que les capacités de calcul sont définies via TORCH_CUDA_ARCH_LIST , par exemple :
export TORCH_CUDA_ARCH_LIST = "6.0 6.1 7.2+PTX 7.5+PTX"
import torch
from torch_scatter import scatter_max
src = torch . tensor ([[ 2 , 0 , 1 , 4 , 3 ], [ 0 , 2 , 1 , 3 , 4 ]])
index = torch . tensor ([[ 4 , 5 , 4 , 2 , 3 ], [ 0 , 0 , 2 , 2 , 1 ]])
out , argmax = scatter_max ( src , index , dim = - 1 ) print(out)
tensor([[0, 0, 4, 3, 2, 0],
[2, 4, 3, 0, 0, 0]])
print(argmax)
tensor([[5, 5, 3, 4, 0, 1]
[1, 4, 3, 5, 5, 5]])
pytest
torch-scatter propose également une API C ++ qui contient l'équivalent C ++ des modèles Python. Pour cela, nous devons ajouter TorchLib au -DCMAKE_PREFIX_PATH ( par exemple , il peut exister dans {CONDA}/lib/python{XX}/site-packages/torch si installé via conda ):
mkdir build
cd build
# Add -DWITH_CUDA=on support for CUDA support
cmake -DCMAKE_PREFIX_PATH="..." ..
make
make install