Он состоит из различных методов глубокого обучения на графах и других нерегулярных структурах, также известных как геометрическое глубокое обучение, из различных опубликованных работ. Кроме того, он состоит из простого в использовании мини-пакетного загрузчика для многих небольших и одиночных гигантских графиков, поддержки нескольких графических процессоров, большого количества общих эталонных наборов данных (основанных на простых интерфейсах для создания собственных) и полезных преобразований, как для обучения на произвольных графах, так и на 3D-сетках или облаках точек. Нажмите здесь, чтобы присоединиться к нашему сообществу Slack!
PyTorch Geometric делает реализацию графовых нейронных сетей легким делом (см. здесь сопроводительный учебник). Например, это все, что требуется для реализации краевого сверточного слоя:
import torch from torch.nn import Sequential as Seq, Linear as Lin, ReLU from torch_geometric.nn import MessagePassing class EdgeConv(MessagePassing): def __init__(self, F_in, F_out): super(EdgeConv, self).__init__(aggr='max') # "Max" aggregation. self.mlp = Seq(Lin(2 * F_in, F_out), ReLU(), Lin(F_out, F_out)) def forward(self, x, edge_index): # x has shape [N, F_in] # edge_index has shape [2, E] return self.propagate(edge_index, x=x) # shape [N, F_out] def message(self, x_i, x_j): # x_i has shape [E, F_in] # x_j has shape [E, F_in] edge_features = torch.cat([x_i, x_j - x_i], dim=1) # shape [E, 2 * F_in] return self.mlp(edge_features) # shape [E, F_out]
В настоящее время подробно реализуются следующие методы:
Ознакомьтесь с нашей документацией, чтобы узнать больше об установке, обработке данных, создании наборов данных и полном списке реализованных методов, преобразований и наборов данных. Для быстрого начала ознакомьтесь с нашими примерами в examples/справочнике.
Если вы заметили что-то неожиданное, пожалуйста, откройте проблему и сообщите нам об этом. Если вам не хватает определенного метода, не стесняйтесь открывать запрос на функцию. Мы мотивированы постоянно делать PyTorch геометрическим еще лучше.
Установка
Мы предоставляем pip-диски для всех основных комбинаций OS/PyTorch / CUDA, см. здесь.
PyTorch 1.7.0
Чтобы установить двоичные файлы для PyTorch 1.7.0, просто запустите
$ pip install torch-scatter= = latest+${CUDA} - f https://pytorch-geometric.com/whl/torch-1.7.0.html $ pip install torch-sparse==latest+${CUDA} - f https://pytorch-geometric.com/whl/torch-1.7.0.html $ pip install torch-cluster= = latest+${CUDA} - f https://pytorch-geometric.com/whl/torch-1.7.0.html $ pip install torch-spline-conv==latest+${CUDA} - f https://pytorch-geometric.com/whl/torch-1.7.0.html $ pip install torch-геометрический
где ${CUDA}следует заменить либо cpu, cu92, cu101, cu102, либо cu110в зависимости от вашей установки PyTorch.
cpu
cu92
cu101
cu102
cu110
Линукс
?
?
?
?
?
Windows
?
?
?
?
?
МАКО
?
PyTorch 1.6.0
Чтобы установить двоичные файлы для PyTorch 1.6.0, просто запустите
$ pip install torch-scatter= = latest+${CUDA} - f https://pytorch-geometric.com/whl/torch-1.6.0.html $ pip install torch-sparse==latest+${CUDA} - f https://pytorch-geometric.com/whl/torch-1.6.0.html $ pip install torch-cluster= = latest+${CUDA} - f https://pytorch-geometric.com/whl/torch-1.6.0.html $ pip install torch-spline-conv==latest+${CUDA} - f https://pytorch-geometric.com/whl/torch-1.6.0.html $ pip install torch-геометрический
где ${CUDA}следует заменить либо cpu, cu92, cu101, либо cu102в зависимости от вашей установки PyTorch.
cpu
cu92
cu101
cu102
Линукс
?
?
?
?
Windows
?
?
?
?
МАКО
?
Примечание: двоичные файлы более старых версий также предоставляются для PyTorch 1.4.0 и PyTorch 1.5.0/1.5.1 (следуя той же процедуре).
От мастера
Если вы хотите поэкспериментировать с последними функциями PyG, которые еще не были выпущены, вы можете установить PyG из master via
Пожалуйста, цитируйте нашу статью (и соответствующие статьи об используемых методах), Если вы используете этот код в своей собственной работе:
@inproceedings{Fey/Lenssen/2019, title={Fast Graph Representation Learning with {PyTorch Geometric}}, author={Fey, Matthias and Lenssen, Jan E.}, booktitle={ICLR Workshop on Representation Learning on Graphs and Manifolds}, year={2019}, }
Не стесняйтесь обращаться к нам по электронной почте, если вы хотите, чтобы ваша работа была указана во внешних ресурсах.