加入收藏 | 设为首页 | 会员中心 | 我要投稿 河北网 (https://www.hebeiwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 移动互联 > 正文

新的PyTorch图神经收集库,快了14倍:LeCun盛赞,GitHub 2000星

发布时间:2019-03-16 06:34:57 所属栏目:移动互联 来源:方栗子
导读:本文经AI新媒体量子位(公家号ID:QbitAI)授权转载,转载请接洽出处。 CNN已老,GNN当立! 当科学家们发明,图神经收集(GNN) 能搞定传统CNN处理赏罚不了的非欧数据,以前深度进修解不开的很多题目都找到了钥匙。 现在,有个图收集PyTorch库,已在GitHub摘下200
副问题[/!--empirenews.page--]

 新的PyTorch图神经收集库,快了14倍:LeCun盛赞,GitHub 2000星

本文经AI新媒体量子位(公家号ID:QbitAI)授权转载,转载请接洽出处。

“CNN已老,GNN当立!”

当科学家们发明,图神经收集 (GNN) 能搞定传统CNN处理赏罚不了的非欧数据,以前深度进修解不开的很多题目都找到了钥匙。

现在,有个图收集PyTorch库,已在GitHub摘下2000多星,还被CNN的爸爸Yann LeCun翻了牌:

它叫PyTorch Geometric,简称PyG,,聚积了26项图收集研究的代码实现。

这个库还很快,比起先进DGL图收集库,PyG最高可以到达它的15倍速率。

一应俱全的库

要跑布局犯科则的数据,就用PyG吧。不管是图形 (Graphs),点云 (Point Clouds) 照旧流形(Manifolds) 。

△ 右边是犯科则的,非欧空间

这是一个丰厚的库:很多模子的PyTorch实现,各类有效的转换 (Transforms) ,以及大量常见的benchmark数据集,一应俱全。

说到实现,包罗Kipf等人的图卷积收集 (GCN) 和Bengio尝试室的图留意力收集 (GAT) 在内,2017-2019年各大顶会的 (至少) 26项图收集研究,这里都能找到快速实现。

到底能多快?PyG的两位作者用英伟达GTX 1080Ti做了尝试。

敌手DGL,也是图收集库:

在四个数据集里,PyG所有比DGL跑得快。最悬殊的一场角逐,是在Cora数据集上运行GAT模子:跑200个epoch,敌手耗时33.4秒,PyG只要2.2秒,相等于对方速率的15倍。

每个算法的实现,都支持了CPU计较和GPU计较。

食用要领

库的作者,是两位德国少年,来自多特蒙德家产大学。

△ 个中一位

他们说,有了PyG,做起图收集就像一阵轻风。

你看,实现一个边沿卷积层 (Edge Convolution Layer) 只要这样罢了:

  1.  1import torch 
  2.  2from torch.nn import Sequential as Seq, Linear as Lin, ReLU 
  3.  3from torch_geometric.nn import MessagePassing 
  4.  4 
  5.  5class EdgeConv(MessagePassing): 
  6.  6 def __init__(self, F_in, F_out): 
  7.  7 super(EdgeConv, self).__init__() 
  8.  8 self.mlp = Seq(Lin(2 * F_in, F_out), ReLU(), Lin(F_out, F_out)) 
  9.  9 
  10. 10 def forward(self, x, edge_index): 
  11. 11 # x has shape [N, F_in] 
  12. 12 # edge_index has shape [2, E] 
  13. 13 return self.propagate(aggr='max', edge_index=edge_index, x=x) # shape [N, F_out] 
  14. 14 
  15. 15 def message(self, x_i, x_j): 
  16. 16 # x_i has shape [E, F_in] 
  17. 17 # x_j has shape [E, F_in] 
  18. 18 edge_features = torch.cat([x_i, x_j - x_i], dim=1) # shape [E, 2 * F_in] 
  19. 19 return self.mlp(edge_features) # shape [E, F_out] 

安装之前确认一下,至少要有PyTorch 1.0.0;再确认一下cuda/bin在$PATH里,cuda/include在$CPATH里:

  1. 1$ python -c "import torch; print(torch.__version__)" 
  2. 2>>> 1.0.0 
  3. 4$ echo $PATH 
  4. 5>>> /usr/local/cuda/bin:... 
  5. 7$ echo $CPATH 
  6. 8>>> /usr/local/cuda/include:... 

然后,就开始各类pip install吧。

PyG项目传送门:

https://github.com/rusty1s/pytorch_geometric

PyG主页传送门:

https://rusty1s.github.io/pytorch_geometric/build/html/index.html

PyG论文传送门:

https://arxiv.org/pdf/1903.02428.pdf

(编辑:河北网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读