QbitAI量子位

文章数:10350 被阅读:146647018

账号入驻

新的PyTorch图神经网络库,比前辈快14倍:LeCun盛赞,GitHub 2000星

最新更新时间:2019-03-11
    阅读数:
方栗子 发自 凹非寺
量子位 出品 | 公众号 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) 只要这样而已:

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

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

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

订阅AI内参,获取AI行业资讯

购买AI书籍

诚挚招聘

量子位正在招募编辑/记者,工作地点在北京中关村。期待有才气、有热情的同学加入我们!相关细节,请在量子位公众号(QbitAI)对话界面,回复“招聘”两个字。

量子位 QbitAI · 头条号签约作者

վ'ᴗ' ի 追踪AI技术和产品新动态

喜欢就点「好看」吧 !


最新有关QbitAI量子位的文章

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: TI培训

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved