Dokumentasi
Paket ini terdiri dari perpustakaan ekstensi kecil dari operasi pembaruan jarang (pencar dan segmen) yang sangat dioptimalkan untuk penggunaan di Pytorch, yang hilang dalam paket utama. Operasi pencar dan segmen dapat secara kasar digambarkan sebagai mengurangi operasi berdasarkan tensor "indeks kelompok" yang diberikan. Operasi segmen membutuhkan tensor "grup-index" untuk diurutkan, sedangkan operasi pencar tidak tunduk pada persyaratan ini.
Paket ini terdiri dari operasi berikut dengan tipe reduksi "sum"|"mean"|"min"|"max" :
Selain itu, kami menyediakan fungsi komposit berikut yang memanfaatkan operasi scatter_* di bawah kap: scatter_std , scatter_logsumexp , scatter_softmax dan scatter_log_softmax .
Semua operasi yang disertakan dapat disiarkan, bekerja pada berbagai jenis data, diimplementasikan baik untuk CPU dan GPU dengan implementasi mundur yang sesuai, dan sepenuhnya dapat dilacak.
UPDATE: Anda sekarang dapat menginstal pytorch-scatter melalui Anaconda untuk semua kombinasi OS/Pytorch/CUDA utama? Mengingat bahwa Anda memiliki pytorch >= 1.8.0 diinstal, cukup jalankan
conda install pytorch-scatter -c pyg
Kami alternatif menyediakan roda PIP untuk semua kombinasi OS/Pytorch/CUDA utama, lihat di sini.
Untuk menginstal binari untuk Pytorch 2.5.0, cukup jalankan
pip install torch-scatter -f https://data.pyg.org/whl/torch-2.5.0+${CUDA}.html
Di mana ${CUDA} harus diganti dengan cpu , cu118 , cu121 , atau cu124 tergantung pada instalasi Pytorch Anda.
cpu | cu118 | cu121 | cu124 | |
|---|---|---|---|---|
| Linux | ✅ | ✅ | ✅ | ✅ |
| Windows | ✅ | ✅ | ✅ | ✅ |
| MacOS | ✅ |
Untuk menginstal binari untuk Pytorch 2.4.0, cukup jalankan
pip install torch-scatter -f https://data.pyg.org/whl/torch-2.4.0+${CUDA}.html
Di mana ${CUDA} harus diganti dengan cpu , cu118 , cu121 , atau cu124 tergantung pada instalasi Pytorch Anda.
cpu | cu118 | cu121 | cu124 | |
|---|---|---|---|---|
| Linux | ✅ | ✅ | ✅ | ✅ |
| Windows | ✅ | ✅ | ✅ | ✅ |
| MacOS | ✅ |
Catatan: Binari versi yang lebih lama juga disediakan untuk 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.10.10.11.110.110.110.110.11.110.11.11.11.11, pyorch 1.10.10.10.110.11.110.11.110.11.110.11.11/1.10.11. 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, dan Pytorch 2.3.0/2.3.1 (mengikuti PROSIS yang sama). Untuk versi yang lebih lama, Anda perlu secara eksplisit menentukan nomor versi yang didukung terbaru atau menginstal melalui pip install --no-index untuk mencegah instalasi manual dari sumber. Anda dapat mencari nomor versi terbaru yang didukung di sini.
Pastikan bahwa setidaknya Pytorch 1.4.0 diinstal dan verifikasi bahwa cuda/bin dan cuda/include ada di $PATH Anda dan $CPATH masing -masing, misalnya :
$ python -c "import torch; print(torch.__version__)"
>>> 1.4.0
$ echo $PATH
>>> /usr/local/cuda/bin:...
$ echo $CPATH
>>> /usr/local/cuda/include:...
Kemudian jalankan:
pip install torch-scatter
Saat berjalan dalam wadah Docker tanpa driver NVIDIA, Pytorch perlu mengevaluasi kemampuan komputasi dan mungkin gagal. Dalam hal ini, pastikan bahwa kemampuan komputasi diatur melalui TORCH_CUDA_ARCH_LIST , misalnya :
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 juga menawarkan C ++ API yang berisi C ++ yang setara dengan model Python. Untuk ini, kita perlu menambahkan TorchLib ke -DCMAKE_PREFIX_PATH ( misalnya , itu mungkin ada di {CONDA}/lib/python{XX}/site-packages/torch jika diinstal melalui conda ):
mkdir build
cd build
# Add -DWITH_CUDA=on support for CUDA support
cmake -DCMAKE_PREFIX_PATH="..." ..
make
make install