선적 서류 비치
이 패키지는 기본 패키지에 누락 된 Pytorch에서 사용하기위한 고도로 최적화 된 스파 스 업데이트 (산점 및 세그먼트) 작업의 소규모 확장 라이브러리로 구성됩니다. 산란 및 세그먼트 작업은 주어진 "Group-Index"텐서를 기반으로 한 작업을 감소시키는 것으로 대략 설명 할 수 있습니다. 세그먼트 작업에는 "Group-Index"텐서를 정렬 해야하는 반면 산란 작업에는 이러한 요구 사항이 적용되지 않습니다.
패키지는 "sum"|"mean"|"min"|"max" 가있는 다음 작업으로 구성됩니다.
또한 후드 아래에서 scatter_* 작업을 사용하는 다음 합성 기능을 제공합니다. scatter_std , scatter_logsumexp , scatter_softmax 및 scatter_log_softmax .
포함 된 모든 작업은 방송 가능하며 다양한 데이터 유형에 대한 작업은 해당 역 구현을 갖춘 CPU 및 GPU 모두에 구현되며 완전히 추적 할 수 있습니다.
업데이트 : 이제 모든 주요 OS/Pytorch/Cuda 조합에 대해 Anaconda를 통해 pytorch-scatter 설치할 수 있습니까? pytorch >= 1.8.0 설치되어 있으면 간단히 실행하십시오.
conda install pytorch-scatter -c pyg
대안으로 모든 주요 OS/Pytorch/CUDA 조합에 대한 PIP 휠을 제공합니다.
Pytorch 2.5.0 용 바이너리를 설치하려면 간단히 실행하십시오
pip install torch-scatter -f https://data.pyg.org/whl/torch-2.5.0+${CUDA}.html
여기서 ${CUDA} Pytorch 설치에 따라 cpu , cu118 , cu121 또는 cu124 로 대체해야합니다.
cpu | cu118 | cu121 | cu124 | |
|---|---|---|---|---|
| 리눅스 | ✅ | ✅ | ✅ | ✅ |
| 창 | ✅ | ✅ | ✅ | ✅ |
| 마코스 | ✅ |
Pytorch 2.4.0 용 바이너리를 설치하려면 간단히 실행하십시오
pip install torch-scatter -f https://data.pyg.org/whl/torch-2.4.0+${CUDA}.html
여기서 ${CUDA} Pytorch 설치에 따라 cpu , cu118 , cu121 또는 cu124 로 대체해야합니다.
cpu | cu118 | cu121 | cu124 | |
|---|---|---|---|---|
| 리눅스 | ✅ | ✅ | ✅ | ✅ |
| 창 | ✅ | ✅ | ✅ | ✅ |
| 마코스 | ✅ |
참고 : 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, Pytorch 1.12.0, Pytorch 1.12.12. 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는 컴퓨팅 기능을 평가해야하며 실패 할 수 있습니다. 이 경우 Compute 기능이 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 또한 C ++ API를 제공하는 C ++ API를 제공합니다. 이를 위해 -DCMAKE_PREFIX_PATH 에 TorchLib 추가해야합니다 ( 예 : {CONDA}/lib/python{XX}/site-packages/torch conda 존재할 수 있습니다.
mkdir build
cd build
# Add -DWITH_CUDA=on support for CUDA support
cmake -DCMAKE_PREFIX_PATH="..." ..
make
make install