الوثائق
تتكون هذه الحزمة من مكتبة تمديد صغيرة من عمليات التحديث المتفرق للغاية (مبعثر وجزء) للاستخدام في Pytorch ، والتي تكون مفقودة في الحزمة الرئيسية. يمكن وصف عمليات الانتثار والقطعة تقريبًا على أنها تقليل عمليات استناد إلى موتر "مؤشر جماعي" معين. تتطلب عمليات القطاع أن يتم فرز الموتر "المؤشر الجماعي" ، في حين أن عمليات الانتثار لا تخضع لهذه المتطلبات.
تتكون الحزمة من العمليات التالية مع أنواع التخفيض "sum"|"mean"|"min"|"max" :
بالإضافة إلى ذلك ، نحن نقدم الوظائف المركب التالية التي تستخدم عمليات scatter_* تحت الغطاء: scatter_std ، scatter_logsumexp ، scatter_softmax و scatter_log_softmax .
يتم بث جميع العمليات المشمولة قابلة للبث ، والعمل على أنواع البيانات المختلفة ، ويتم تنفيذ كل من وحدة المعالجة المركزية ووحدة معالجة الرسومات مع التطبيقات المتخلفة المقابلة ، ويمكن تتبعها بالكامل.
تحديث: يمكنك الآن تثبيت pytorch-scatter عبر Anaconda لجميع مجموعات OS/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 | |
|---|---|---|---|---|
| Linux | ✅ | ✅ | ✅ | ✅ |
| النوافذ | ✅ | ✅ | ✅ | ✅ |
| ماكوس | ✅ |
لتثبيت الثنائيات لـ 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 | |
|---|---|---|---|---|
| Linux | ✅ | ✅ | ✅ | ✅ |
| النوافذ | ✅ | ✅ | ✅ | ✅ |
| ماكوس | ✅ |
ملاحظة: يتم توفير ثنائيات الإصدارات القديمة أيضًا لـ 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 ، Pytor 1.11.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.2/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
عند التشغيل في حاوية 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 ++ التي تحتوي على 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