当前位置 :首页 >> 时尚

来得图神经网络PyTorch Geometric 与 Deep Graph Library

2025-01-04   来源 : 时尚

该仿真对核糖体构造预报总冠军仿真 - AlphaFold有很大影响。Baker 实验室受 DeepMind 工作启发,将DGL使用DebianRosettaFold的核糖体构造预报。

PyTorch Geometric是一个相当流行起来的坎,它在GitHub 上有 13,000 多颗星,为所有有 PyTorch 科学知识的人包括了方便看重的 API。我们将介绍每个API,并对Zitnik 和 Leskovec 2017 年篇文章里核糖体与核糖体强子 (protein-protein interaction, PPI) 近据资料集里的等效 GNN 核心进行时基准测试。

PPI 近据资料集显现了一个多类近据流界定任务,每个近据流代表一个由 50 个不同之处都由的核糖体,都会用 121 个非排他标签进行时记号。

如果你常用广度自学仿真已为一段时长,只不过也鲜为人知了 Python 坎的兴衰。在谷歌2015 年发布Debian坎TensorFlow后,TensorFlow得到了尤其运用于。当年,广度自学坎的布局是由 Theano、AutoGrad、Caffe、Lasagne、Keras、Chainer 等前提都由的多元事务。

在此期间,广度自学的坎都是自主研发的。如果想要 GPU的 全力支持,就必须了解 CUDA。PyTorch 于 2016 年推出,虽然的演进,但无疑将成为了广度自学的首选坎,同时TensorFlow 兼并了 Keras,依旧受到制成品的青睐。

到 TensorFlow 发布 2.0 版时,只不过就成了 PyTorch 和 TensorFlow “两个坎”之间的游戏。它们之间的差异日益小,TensorFlow 趋于像 PyTorch 一样颇为加特性,PyTorch 通过第一时间校对和Torchscript趋于颇为快。

也许是因为两大类坎逐渐相异,自然科学重大项目 Autograd 近期的 JAX 为具备能力、功能性和可组合性为自诩的广度自学找到了一个开放的定位,DeepMind 等主要实验室也正保持对 JAX 的高度重视。

Jraph 是DeepMind 对基于左图广度自学的基于 JAX 的解决疑问提案,尽管该提案与TensorFlow重大项目Graph Nets有诸多不同之处相似之处(在撰写本文时,Graph Nets重大项目一年多未颇为新了)。

在下一节里,我们将了解如何加装和设立 DGL 和 PyTorch Geometric,以及如何常用每个坎框架兼具 6 个隐匿层的左图时域在线。还将在 PPI 近据资料集上的近据流界定建立一个专业训练周而复始,并研讨每个人常用的左贴图近据资料构造 API 的差异。最后,我们在单个 NVIDIA GPU 上执行 10,000 个 epoch 专业训练并来得每个 GPU 的平均速度。

三、PyTorch Geometric

PyTorch Geometric (PyG) 是一个简单的坎,很像规格的 PyTorch。近据资料集和近据资料加载金属制有赞同的 API,因此不须针对不尽不尽相同任务手动调整仿真核心。

1.加装

请注意,我们基于 pip、PyTorch 1.10、Python 3.6 和 CUDA 10.2 的种系统设立加装了 PyTorch Geometric。

2.仿真和编码

我们将常用基准测试坎的核心,该核心是基于 Kipf 和 Welling 在其 2016 年篇文章里详细描述的左图时域层(PyTorch Geometric 里的 GCNConv 和 DGL 里的 GraphConv)。

PyTorch Geometric 的左贴图层常用的 API 与 PyTorch 的颇为相似,但将常用 PyTorch Geometric Batch 类的 edge_index 里的左贴图边作为读写。坎里的同型将一个或多个左图的聚集地详细描述为一个有内部间隙的大左图。

对于左图时域,这些同型常用乘积乘法和组合的邻接乘积来充分借助加权分享,但 Batch 单纯还在一个专指同型的变量里近据流与左图的对照亲密关系。

我们将常用的左图时域仿真如下左图附注:

使用对 DGL 和 PyTorch Geometric 进行时基准测试的左图时域在线左图

在编码里,我们的仿真是通过继承 PyTorch 的 torch.nn.Module 仿真类框架的。

请注意,这个仿真未将向量作为读写,而是运用于一个名为“batch”的变量,有时在类似的样式约定里专指“data”。该同型举例来说界定近据流与左图的对应亲密关系以及这些近据流如何连结的额外信息。

除了这种差异之外,该仿真读书起来很像规格时域在线,常用 GCNConv 或类似基于左图的层则不是规格时域。

PyTorch 其他用户也颇为看重专业训练周而复始,但它是将整个同型引导给仿真,而不是单独的读写向量。但在进入专业训练周而复始之前,我们不须下载核糖体与核糖体强子 (PPI) 近据资料集并设立专业训练和测试近据资料加载器。

直到现在我们准备好界定专业训练周而复始了,此外还每个epoch的时长和巨大损失。

如此, 该编码已准备好在 PPI 近据资料集上对 PyTorch Geometric 进行时基准测试。有了这些,在 Deep Graph Library 里框架等效仿真都会容易得多,这与我们下一节里研讨的编码都会有一些差异。

四、广度左图坎Deep Graph Library, DGL

Deep Graph Library 是一个灵活的坎,可以借助 PyTorch 或 TensorFlow 作为后上端。我们将常用 PyTorch 进行时此演示,但如果你常用 TensorFlow 并希望将其使用左贴图的广度自学,你可以通过将“TensorFlow”导出到名为 DGLBACKEND 的自然现象环境变量来充分借助。

颇为少,可以将编码调整为来自 tf.keras.Model 而不是 torch.nn.Module 的举例来说,并常用来自 keras 里API 的fit 方法。

1.加装

比方说,在常用 CUDA 10.2 的种系统上进行时加装,但如果你已升级到 CUDA 11 或仍停留在 CUDA 10.1 上,你可以从DGL 网站获取准确的 pip install 号令。

2.仿真和编码

在 DGL 里,Kipf 和 Welling 左图时域层专指“GraphConv”,而不是 PyTorch Geometric 里常用的“GCNConv”。除此之外,该仿真看起来基本不尽相同。

请注意,我们不是引导解释器作为读写,而是引导 g(DGL 左图单纯)和近据流不同之处。

在设立专业训练周而复始时,也大致不尽相同,但要特别注意引导给仿真的具体内容。

在这种情况下,近据流不同之处于 'batch.ndata["feat"]' 里找到,但我们发掘出使用近据流不同之处的特定键因近据资料集而异。'feat' 只不过是最类似的,但你也都会发掘出 'node_attr' 和其他具体内容,不赞同的 API 只不过有点令人困惑。

这显然是一个痛点,因为我们为此演示尝试了不尽不尽相同的外置近据资料集,并且重写编码位以适应不尽不尽相同的近据资料集显然都会减慢开发计划平均速度。我们自然现象颇为喜欢PyTorch Geometric 里常用的“解释器”(Batch) 单纯的赞同性。

在倡导里,赞同的内部样式在实际应用应用里并一定都会致使疑问,因为无论如何你都一定都会常用外置近据资料集。

3.结果

PPI 近据资料集上 DGL 和 PyTorch 球面左图时域在线的专业训练曲线

我们在 PPI 近据资料集上常用 PyTorch Geometric 和 DGL 进行时了 10,000 个 epoch 的专业训练,在单个 NVIDIA GTX 1060 GPU 上列车运行。

PyG 用了 2,984.34 秒进行时专业训练,而 DGL 只用不到一半,为 1,148.05 秒。

两次列车运行都以相似的耐用性过后,PyG 的测试准确度为 73.35%,DGL 的测试准确度为 77.38%,我们期望通过随机初始化的方式让每次列车运行发生一些偶然情况。

在 10,000 个 epochs 之后,巨大损失仍在减少,因此你可以预估此仿真核心最终都会连续函近到稍高的准确度(尽管我们未此实验的验证巨大损失)。

五、哪个 GNN 坎最适合自己

不尽不尽相同坎专业训练时长的巨大差异让人们惊讶。鉴于 DGL 和 PyG 都是基于 PyTorch 框架的,或者常用 PyTorch 作为量化后上端,预计它们都都会在10% 或 20%内进行时。

因为解释器 API 比 DGL 里的等效 API 颇为加简单和赞同,我们显然发掘出常用 PyTorch Geometric 设立专业训练周而复始比常用 DGL 颇为舒服一些。在明确 PPI 近据资料集之前,我们尝试了几个不尽不尽相同的近据资料集,只不过每个近据资料集都常用不尽不尽相同的键来使DGL 链接近据流不同之处。

话虽如此,在常用DGL里碰见的一些小麻烦只不过与坎的看重总体有关,却是我们常用 PyG 的时长比 DGL 要长。

不尽不尽相同核心和层并不一定的耐用性显然世人研究,但仅靠选取准确的坎根本无法将耐用性提升 2 倍。

尽管开发计划人员的时长比仿真量化时长颇为加缺少,但在此例的设立里 DGL 的平均速度快了近 2.6 倍,凭这个优势就世人专业训练,并切换仿真坎。同时,在DGL 生态种系统里碰见小疑问,也都会随着看重总体的降低而解决疑问。

虽然从 GitHub 星近和分支近就能看出来(13,700/2,400 DGL vs 8,800/2,000 PyTorch),DGL只不过不如 PyTorch Geometric那么流行起来,但大量小区全力支持和丰沛的文档可以保障DGL坎的六经性,同时也可以努力解决疑问消失的疑问。

无论选哪个,任何可以在在线生存近据资料的自然现象环境下,通过自学左图里编码的构造信息都能包括诸多自学具体内容,而显卡和软件对细小乘积较慢量化的全力支持与改进也都会让GNN 坎的投资趋于颇为宝贵。

译者链接:

译者介绍

崔皓,51CTO小区主笔,资深核心师,仅有18年的编程计划和核心科学知识,10年分布式核心科学知识。曾任惠普系统设计专家。有心分享,撰写了很多热门系统设计文章,书本书量超过60万。《分布式核心法则与倡导》作者。

三维可视化应用
镇江看妇科去哪里
成都看妇科去哪好
南京好的妇科专科医院
常州男科医院挂号
什么牌的血糖仪好
测血糖仪什么牌子的最准确
哪种家用血糖仪比较好
什么血糖仪准确度高
什么牌子的血糖仪好
不会包粽子,端午就吃它,10分钟做一盘,外酥里糯好咀嚼!

会包被豆腐,中秋节就吃饱它,10分钟希望到一盘,外酥内都糯好消化! 没法希望到豆腐。在元宵节吃饱。10分钟内希望到一个水桶。外头外皮,内都面腺体。很不易消化! 未必无...

友情链接