ドキュメント
このパッケージは、メインパッケージに欠落しているPytorchで使用するための高度に最適化されたスパースアップデート(散布およびセグメント)操作の小さな拡張ライブラリで構成されています。散布およびセグメントの操作は、特定の「グループインデックス」テンソルに基づいて操作を減らすものとして大まかに説明できます。セグメント操作では、「グループインデックス」テンソルをソートする必要がありますが、散布操作はこれらの要件の対象ではありません。
パッケージは、削減タイプの"sum"|"mean"|"min"|"max"で次の操作で構成されています。
さらに、フードの下でscatter_* scatter_std 、 scatter_logsumexp 、 scatter_softmax 、およびscatter_log_softmax下でscatter_*操作を使用する次の複合関数を提供します。
含まれるすべての操作は放送可能であり、さまざまなデータ型に関する作業は、対応する後方実装を備えたCPUとGPUの両方に実装され、完全に追跡可能です。
更新:すべての主要なOS/Pytorch/Cudaの組み合わせについて、Anaconda経由でpytorch-scatterをインストールできるようになりましたか? pytorch >= 1.8.0インストールされていることを考えると、単に実行する
conda install pytorch-scatter -c pyg
代わりに、すべての主要なOS/Pytorch/Cudaの組み合わせにピップホイールを提供しています。こちらをご覧ください。
Pytorch 2.5.0のバイナリをインストールするには、単に実行します
pip install torch-scatter -f https://data.pyg.org/whl/torch-2.5.0+${CUDA}.html
Pytorchのインストールに応じて、 ${CUDA} cpu 、 cu118 、 cu121 、またはcu124のいずれかに置き換える必要があります。
cpu | cu118 | cu121 | cu124 | |
|---|---|---|---|---|
| Linux | ✅ | ✅ | ✅ | ✅ |
| Windows | ✅ | ✅ | ✅ | ✅ |
| macos | ✅ |
Pytorch 2.4.0のバイナリをインストールするには、単に実行します
pip install torch-scatter -f https://data.pyg.org/whl/torch-2.4.0+${CUDA}.html
Pytorchのインストールに応じて、 ${CUDA} cpu 、 cu118 、 cu121 、またはcu124のいずれかに置き換える必要があります。
cpu | cu118 | cu121 | cu124 | |
|---|---|---|---|---|
| Linux | ✅ | ✅ | ✅ | ✅ |
| Windows | ✅ | ✅ | ✅ | ✅ |
| macos | ✅ |
注:古いバージョンのバイナリは、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、Pytthch 1.10.0にも提供されています。 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、およびPytorch 2.3.0/2.3.1(同じ手順)。古いバージョンの場合、ソースからの手動インストールを防ぐために、最新のサポートされているバージョン番号を明示的に指定するか、 pip install --no-indexを介してインストールする必要があります。ここで最新のサポートバージョン番号を調べることができます。
少なくともPytorch 1.4.0がインストールされていることを確認し、 cuda/binとcuda/includeそれぞれ$PATHと$CPATHにあることを確認してください。
$ python -c "import torch; print(torch.__version__)"
>>> 1.4.0
$ echo $PATH
>>> /usr/local/cuda/bin:...
$ echo $CPATH
>>> /usr/local/cuda/include:...
その後、実行:
pip install torch-scatter
NvidiaドライバーなしでDockerコンテナで走るとき、Pytorchは計算機能を評価する必要があり、故障する可能性があります。この場合、計算機能がTORCH_CUDA_ARCH_LISTを介して設定されていることを確認してください。
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 Pythonモデルに相当するC ++を含むC ++ APIも提供しています。このcondaに、 -DCMAKE_PREFIX_PATHにTorchLibを追加する必要があります(たとえば、 {CONDA}/lib/python{XX}/site-packages/torchに存在する可能性があります):
mkdir build
cd build
# Add -DWITH_CUDA=on support for CUDA support
cmake -DCMAKE_PREFIX_PATH="..." ..
make
make install