pyG学习笔记

pyG学习笔记

  • 零、pyG学习笔记
    • 学习资料汇总
    • 例子介绍
      • data handling of graphs
  • 一、Mac M1安装pyG 系统版本 Ventura 13.5= 13.5(22G74)
    • 方案一运行时报错:OMP: Error #15: Initializing libomp.dylib, but found libomp.dylib already in
    • vscode运行代码报错
    • ERROR: CONDA_BUILD_SYSROOT or SDKROOT has to be set for cross-compiling
  • 二、VSCODE使用教程
    • 远程连接服务器
    • 超参数代码调试
    • vscode修改终端字体
  • 读代码遇到的知识点积累
    • dropout的作用

工欲善其事,必先利其器!

零、pyG学习笔记

pyg:PyG 核心团队共有 6 位成员,包括多特蒙德工业大学四年级图机器学习博士生 Matthias Fey、多特蒙德工业大学博士生 Jan Eric Lenssen(核心贡献者)和图网络领域大牛 & 斯坦福计算机科学副教授 Jure Leskovec(担任顾问)。另外,还有三名斯坦福大学的博士。
pyG介绍连接地址:
dgl:纽约大学和亚马逊联合发布
pgl:百度paddle的图学习库
codgl:清华大学推出的图算法库

学习资料汇总

官方稳定版本文档
CS224W同济子豪兄精讲视频资料

例子介绍

Introduction by Example
PyG provides the following main features: (pygG具有以下特性:)

  • Data Handling of Graphs (图数据处理)
  • Common Benchmark Datasets (提供通用基准数据集)
  • Mini-batches (minibatch加速训练)
  • Data Transforms (数据转换)
  • Learning Methods on Graphs (提供图上的学习方法/模型)
  • Exercises (练习)

data handling of graphs

一张图用来建模一些节点和他们之间的边。在pyG中,一张图用torch_geometric.data.Data表示,它默认拥有下面这些属性。
data.x :节点的特征,是一个矩阵 [节点编号,节点特征维度] ,dype常用torch.float
data.edge_index :是以coo格式存储的边[2,边的数目],从第一行的节点编号,指向第二行。格式是torch.long向下取整的长整型!
data.edge_attr :边的特征矩阵[边的数目,边的特征维度]
data.y: 要训练得到的目标结果,可以是任意形状,如节点级别的输出形状[节点数目,*]或者图级别的输出形状[1, *];
注意1:所有的属性都不是必须的,而且属性不限于这些。例如:我们可以通过data.face对其进行扩展,将三维网格中的三角形的连通性保存在形状为[3,num_faces]、类型为torch.long的张量当中。
Note:PyTorch 和 torchvision 将示例定义为图像和目标的元组。我们在 PyG 中省略了这个符号,以便以简洁易懂的方式使用各种数据结构。

我们举一个简单的例子,说明一个由三个节点和四条边的无权 and 无向图。

import torch
from torch_geometric.data import Data

edge_index = torch.tensor([[0, 1, 1, 2],
                           [1, 0, 2, 1]], dtype=torch.long)
x = torch.tensor([[-1], [0], [1]], dtype=torch.float)

data = Data(x=x, edge_index=edge_index)

Output : Data(edge_index=[2, 4], x=[3, 1])

一、Mac M1安装pyG 系统版本 Ventura 13.5= 13.5(22G74)

采用方案一成功
安装成功后的pip list列表:

torch 1.12.1
torch-geometric 2.3.1
torch-scatter 2.1.1
torch-sparse 0.6.17
torchaudio 0.12.1
torchvision 0.13.1
wheel 0.41.1

方案一运行时报错:OMP: Error #15: Initializing libomp.dylib, but found libomp.dylib already in

解决办法:
在文件最顶端加上

import os
os.environ['KMP_DUPLICATE_LIB_OK']='TRUE'

vscode运行代码报错

zsh: segmentation fault python XXX.py
解决方案如下:在顶端写上下面这两句话

import matplotlib as mpl
mpl.use('TkAgg') #必须要写在这两个import中间

ERROR: CONDA_BUILD_SYSROOT or SDKROOT has to be set for cross-compiling

环境错误,忽略,不影响代码运行
参考答案

参考2:未尝试

二、VSCODE使用教程

https://blog.csdn.net/qq_60782107/article/details/129830572

远程连接服务器

VSCode远程连接服务器

超参数代码调试

pyG学习笔记_第1张图片

vscode修改终端字体

code-settings-搜索integrated.font-填入字体即可
pyG学习笔记_第2张图片

读代码遇到的知识点积累

dropout的作用

Dropout叫作随机失活,简单来说就是在模型训练阶段的前向传播过程中,让某些神经元的激活值以一定的概率停止工作,如下图所示,这样可以使模型的泛化性更强。
https://baijiahao.baidu.com/s?id=1747562058954045563&wfr=spider&for=pc

你可能感兴趣的:(图神经网络/图表示学习,pyG)