支持异构图、集成GraphGym,超好用的图神经网络库PyG更新2.0版本
机器之心报道
编辑:陈萍、杜伟当前最流行和广泛使用的GNN库PyG(PyTorchGeometric)现在出2.0版本了 , 新版本提供了全面的异构图支持、GraphGam以及很多其他特性 , 这一系列改进 , 为使用者带来了更好的用户体验 。
PyTorchGeometric(PyG)是一个构建于PyTorch之上的库 , 用来为一系列与结构化数据相关的应用编写和训练图神经网络(GNN) 。 PyG对机器学习研究者以及机器学习工具包的首次使用者都很友好 。
文章图片
就其特征和功能而言 , PyG具有易用和统一的API , 用户花费更少的时间在实现和运行图神经网络的底层机制上 , 只需要10至20行代码就可以训练自定义GNN模型 。 PyG涵盖了大量的SOTAGNN架构以及训练和可扩展流程 , 并且易于扩展以匹配用户自己的特定用例或进行自己的GNN研究 。
【支持异构图、集成GraphGym,超好用的图神经网络库PyG更新2.0版本】此外 , PyG中的全新GraphGym使得用户可以轻松地复现GNN实验 , 执行和分析数千个GNN实验 , 并将自定义模块嵌入到GNN学习pipeline中 。
近日 , PyG核心领导者(Corelead)MatthiasFey宣布PyG2.0版本来了!新版本提供了全面的异构图支持、GraphGam以及很多其他特性 。
文章图片
PyG2.0详情地址:https://github.com/pyg-team/pytorch_geometric/releases/tag/2.0.0
PyG2.0新特性
PyG2.0是一个新的版本 , 提供了复杂的异构图支持、GraphGym集成以及其他新特性 。
PyG2.0中提供了完全的异构图支持 。 异构图支持包括数据存储层的完整重写(同时保持向后兼容性)、异构图转换、通过邻采样的关系型数据加载例程 , 以及一整套异构GNN模型/示例 。
突出亮点
异构图存储:异构图现在可以存储在它们自己的专用data.HeteroData类中 。
fromtorch_geometric.dataimportHeteroData
data=https://pcff.toutiao.jxnews.com.cn/p/20210914/HeteroData()
#Createtwonodetypes"paper"and"author"holdingasinglefeaturematrix:
data['paper'].x=torch.randn(num_papers,num_paper_features)
data['author'].x=torch.randn(num_authors,num_authors_features)
#Createanedgetype("paper","written_by","author")holdingitsgraphconnectivity:
data['paper','written_by','author'].edge_index=...#[2,num_edges]
异构Mini-Batch加载:异构图可以分别通过loader.DataLoader和loader.NextorLoader对许多小的、单个的巨大图进行转化 , 转换成mini-batches 。 这些loaders现在可以处理同构图和异构图:
fromtorch_geometric.loaderimportDataLoader
loader=DataLoader(heterogeneous_graph_dataset,batch_size=32,shuffle=True)
fromtorch_geometric.loaderimportNeighborLoader
loader=NeighborLoader(heterogeneous_graph,num_neighbors=[30,30],batch_size=128,
input_nodes=('paper',data['paper'].train_mask),shuffle=True)
异构图神经网络:异构GNN现在可以通过nn.to_hetero、nn.to_hetero_with_bases从同构GNN轻松创建 。 这些进程采用现有的GNN模型并复制其消息功能 , 以考虑不同的节点和边缘类型:
fromtorch_geometric.nnimportSAGEConv,to_hetero
classGNN(torch.nn.Module):
def__init__(hidden_channels,out_channels):
super().__init__()
self.conv1=SAGEConv((-1,-1),hidden_channels)
self.conv2=SAGEConv((-1,-1),out_channels)
defforward(self,x,edge_index):
x=self.conv1(x,edge_index).relu()
x=self.conv2(x,edge_index)
returnx
model=GNN(hidden_channels=64,out_channels=dataset.num_classes)
model=to_hetero(model,data.metadata(),aggr='sum')
文章图片
使用GraphGym管理实验
PyG2.0现在通过torch_geometric.graphgym正式支持GraphGym 。 总的来说 , GraphGym是一个平台 , 用于通过高度模块化的pipeline从配置文件中设计和评估图神经网络:GraphGym是开始学习标准化GNN实现和评估的最佳平台;GraphGym提供了一个简单的接口来并行尝试数千个GNN架构 , 以找到适合特定任务的最佳设计;GraphGym可轻松进行超参数搜索并可视化哪些设计选择更好 。
- 苹果|iPhone 14普及高刷:全系支持120Hz
- m都是大片!微软 Skype 支持将必应 Bing 图片设为通话虚拟背景
- 苹果|国内首款支持苹果HomeKit的智能门锁发布:iPhone一碰即开门
- 央视公开“支持”倪光南?柳传志该醒悟了
- PSVR|Resolution Games将大力支持开发PSVR 2游戏
- 魅族|魅族发布iPhone 13系列黑化独角兽手机壳:支持磁吸充电
- iPhoneSE|都是情怀!iPhone SE3外观毫无改变:A15处理器、支持5G
- Aqara 智能门锁 A100 Pro 发布:支持苹果“家庭钥匙”解锁
- 联想Yoga|国产手机支持国产手机产业链的发展?苹果揭开了它们的遮羞布
- ubuntu|Ubuntu 22.04 降低硬件门槛,支持在 2GB 内存的树莓派 4 上运行