Pytorch Geometric(PyG)入门

PyG (PyTorch Geometric) 是建立在 PyTorch 基础上的一个库,用于轻松编写和训练图形神经网络 (GNN),适用于与结构化数据相关的各种应用。官方文档

Install PyG

PyG适用于python3.8-3.12

一般使用场景:pip install torch_geometricconda install pyg -c pyg

Get Started

PyG 具有以下主要功能:

  • Data Handling of Graphs
  • Common Benchmark Datasets
  • Mini-batches
  • Data Transforms
  • Learning Methods on Graphs
  • Exercises

Data Handling of Graphs

PyG 中的单个图由 torch_geometric.data.Data 的一个实例描述,默认情况下该实例拥有以下属性:

  • data.x: Node feature matrix with shape [num_nodes, num_node_features]
  • data.edge_index: Graph connectivity in COO format with shape [2, num_edges] and type torch.long
  • data.edge_attr: Edge feature matrix with shape [num_edges, num_edge_features]
  • data.y: Target to train against (may have arbitrary shape), e.g., node-level targets of shape [num_nodes, *] or graph-level targets of shape [1, *]
  • data.pos: Node position matrix with shape [num_nodes, num_dimensions]

Colab Notebooks and Video Tutorials

官方文档
Pytroch Geometric Tutorials

Tutorials 1

理解一个节点出发的计算图,理解多次计算图后可能节点信息就包含整个图数据信息了,反而没有用。
对应whl地址

安装torch版本对应的pyg,如下所示:

python 复制代码
import os
import torch
os.environ['TORCH'] = torch.__version__
print(torch.__version__)

!pip install -q torch-scatter -f https://data.pyg.org/whl/torch-${TORCH}.html
!pip install -q torch-sparse -f https://data.pyg.org/whl/torch-${TORCH}.html
!pip install -q git+https://github.com/pyg-team/pytorch_geometric.git

可视化网络的函数实现

python 复制代码
# 可视化函数
%matplotlib inline
import torch
import networkx as nx
import matplotlib.pyplot as plt

# visualization function for NX graph or Pytorch tensor
def visualize(h, color, epoch=None, loss=None):
  plt.figure(figsize=(7,7))
  plt.xticks([])
  plt.yticks([])
  if torch.is_tensor(h):
    # 可视化神经网络运行中间结果
    h = h.detach().cpu().numpy()
    plt.scatter(h[:, 0], h[:, 1], s=140, c=color, cmap="Set2")
    if epoch is not None and loss is not None:
      plt.xlabel(f'Epoch:{epoch}, Loss:{loss.item():.4f}', fontsize=16)
  else:
    nx.draw_networkx(G, pos=nx.spring_layout(G, seed=42), with_labels=False, node_color=color, cmap="Set2")
  plt.show()

例如:

python 复制代码
from torch_geometric.utils import to_networkx

G = to_networkx(data, to_undirected=True)
visualize(G, color=data.y)

如图所示:

参考:

PyTorch Geometric (PyG) 入门教程

相关推荐
人工智能培训18 分钟前
具身智能系统集成与计算效率优化路径探析
人工智能·深度学习·神经网络·机器学习·大模型
金融RPA机器人丨实在智能20 分钟前
ARC-AGI-3模型大血洗后的冷思考:企业如何利用“实在Agent”跨越AGI落地鸿沟?
人工智能·ai·agi
天上路人24 分钟前
A-59F 多功能语音处理模组在本地会议系统扩音啸叫处理中的技术应用与性能分析
人工智能·神经网络·算法·硬件架构·音视频·语音识别·实时音视频
这张生成的图像能检测吗36 分钟前
(论文速读)GINet:结合轴承语义的全局可解释卷积神经网络
人工智能·深度学习·故障诊断
kingcjh971 小时前
一、大模型视频生成实战:Wan2.1 本地部署全记录
深度学习·生成对抗网络·ai作画·音视频
努力的小白o(^▽^)o1 小时前
常见的优化器
人工智能
yang_B6211 小时前
噪声处理方法
大数据·人工智能·算法
Gideon_k_Marx1 小时前
读代码3:OLMo3全详解 - layer2--Data (上)
人工智能·深度学习·机器学习·语言模型·自然语言处理
春风化作秋雨1 小时前
Transformer:颠覆AI的注意力革命
人工智能·深度学习·transformer
无忧智库1 小时前
算力、算法、数据三位一体:构建城市级AI大模型算力池的全景式解构与未来展望(WORD)
大数据·人工智能·算法