เอกสาร
แพ็คเกจนี้ประกอบด้วยไลบรารีส่วนขยายขนาดเล็กของการอัพเดทแบบเบาบางที่มีประสิทธิภาพสูง (กระจายและเซ็กเมนต์) สำหรับการใช้งานใน Pytorch ซึ่งหายไปในแพ็คเกจหลัก การดำเนินการกระจายและเซ็กเมนต์สามารถอธิบายได้ว่าเป็นการลดการดำเนินงานตามเทนเซอร์ "ดัชนีกลุ่ม" ที่กำหนด การดำเนินการเซ็กเมนต์จำเป็นต้องมีการจัดเรียงเทนเซอร์ "กลุ่ม-ดัชนี" ในขณะที่การดำเนินการกระจายไม่อยู่ภายใต้ข้อกำหนดเหล่านี้
แพ็คเกจประกอบด้วยการดำเนินการต่อไปนี้ด้วยประเภทการลด "sum"|"mean"|"min"|"max" :
นอกจากนี้เรายังมี ฟังก์ชั่นคอมโพสิต ต่อไปนี้ซึ่งใช้ประโยชน์จากการดำเนินการ scatter_* ภายใต้ฮูด: scatter_std , scatter_logsumexp , scatter_softmax และ scatter_log_softmax
การดำเนินการทั้งหมดที่รวมอยู่นั้นสามารถถ่ายทอดได้ทำงานเกี่ยวกับประเภทข้อมูลที่แตกต่างกันถูกนำมาใช้ทั้งสำหรับ CPU และ GPU ที่มีการใช้งานย้อนหลังที่สอดคล้องกันและสามารถตรวจสอบย้อนกลับได้อย่างสมบูรณ์
อัปเดต: ตอนนี้คุณสามารถติดตั้ง pytorch-scatter ผ่าน Anaconda สำหรับชุดที่สำคัญทั้งหมด/pytorch/cuda? ระบุว่าคุณติดตั้ง pytorch >= 1.8.0 ติดตั้งเพียงแค่เรียกใช้
conda install pytorch-scatter -c pyg
เราหรือให้ล้อ PIP สำหรับชุดค่าผสม OS/Pytorch/Cuda ที่สำคัญทั้งหมดดูที่นี่
ในการติดตั้งไบนารีสำหรับ Pytorch 2.5.0 เพียงแค่เรียกใช้
pip install torch-scatter -f https://data.pyg.org/whl/torch-2.5.0+${CUDA}.html
โดยที่ ${CUDA} ควรถูกแทนที่ด้วย cpu , cu118 , cu121 หรือ cu124 ขึ้นอยู่กับการติดตั้ง Pytorch ของคุณ
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} ควรถูกแทนที่ด้วย cpu , cu118 , cu121 หรือ cu124 ขึ้นอยู่กับการติดตั้ง Pytorch ของคุณ
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 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 สำหรับรุ่นเก่าคุณต้องระบุหมายเลขเวอร์ชันล่าสุดที่รองรับล่าสุดหรือติดตั้งผ่าน 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
เมื่อทำงานในคอนเทนเนอร์ Docker ที่ไม่มีไดรเวอร์ Nvidia 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 ยังมี C ++ API ที่มี C ++ เทียบเท่ากับรุ่น Python สำหรับสิ่งนี้เราจำเป็นต้องเพิ่ม TorchLib ลงใน -DCMAKE_PREFIX_PATH ( เช่น มันอาจมีอยู่ใน {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