摘要:圖神經(jīng)網(wǎng)絡(luò)是近年發(fā)展起來(lái)的一個(gè)很有前景的深度學(xué)習(xí)方向,也是一種強(qiáng)大的圖點(diǎn)云和流形表示學(xué)習(xí)方法。地址基于的幾何深度學(xué)習(xí)擴(kuò)展庫(kù)是一個(gè)基于的幾何深度學(xué)習(xí)擴(kuò)展庫(kù),用于不規(guī)則結(jié)構(gòu)輸入數(shù)據(jù),例如圖點(diǎn)云和流形。與相比,訓(xùn)練模型的速度快了倍。
過去十年來(lái),深度學(xué)習(xí)方法(例如卷積神經(jīng)網(wǎng)絡(luò)和遞歸神經(jīng)網(wǎng)絡(luò))在許多領(lǐng)域取得了前所未有的成就,例如計(jì)算機(jī)視覺和語(yǔ)音識(shí)別。
研究者主要將深度學(xué)習(xí)方法應(yīng)用于歐氏結(jié)構(gòu)數(shù)據(jù) (Euclidean domains),但在許多重要的應(yīng)用領(lǐng)域,如生物學(xué)、物理學(xué)、網(wǎng)絡(luò)科學(xué)、推薦系統(tǒng)和計(jì)算機(jī)圖形學(xué),可能不得不處理非歐式結(jié)構(gòu)的數(shù)據(jù),比如圖和流形。
直到最近,深度學(xué)習(xí)在這些特定領(lǐng)域的采用一直很滯后,主要是因?yàn)閿?shù)據(jù)的非歐氏結(jié)構(gòu)性質(zhì)使得基本操作(例如卷積)的定義相當(dāng)困難。在這個(gè)意義上,幾何深度學(xué)習(xí)將深度學(xué)習(xí)技術(shù)擴(kuò)展到了圖/流形結(jié)構(gòu)數(shù)據(jù)。
圖神經(jīng)網(wǎng)絡(luò) (GNN)是近年發(fā)展起來(lái)的一個(gè)很有前景的深度學(xué)習(xí)方向,也是一種強(qiáng)大的圖、點(diǎn)云和流形表示學(xué)習(xí)方法。
然而,實(shí)現(xiàn) GNN 具有挑戰(zhàn)性,因?yàn)樾枰诟叨认∈枨也灰?guī)則、不同大小的數(shù)據(jù)上實(shí)現(xiàn)高 GPU 吞吐量。
近日,德國(guó)多特蒙德工業(yè)大學(xué)的研究者兩位 Matthias Fey 和 Jan E. Lenssen,提出了一個(gè)基于 PyTorch 的幾何深度學(xué)習(xí)擴(kuò)展庫(kù) PyTorch Geometric (PyG),為 GNN 的研究和應(yīng)用再添利器。
論文:
https://arxiv.org/pdf/1903.02428.pdf
Yann Lecun 也熱情推薦了這個(gè)工作,稱贊它是一個(gè)快速、美觀的 PyTorch 庫(kù),用于幾何深度學(xué)習(xí) (圖和其他不規(guī)則結(jié)構(gòu)的神經(jīng)網(wǎng)絡(luò))。
作者聲稱,PyG 甚至比幾個(gè)月前 NYU、AWS 聯(lián)合開發(fā)的圖神經(jīng)網(wǎng)絡(luò)庫(kù) DGL(Deep Graph Library) 快了 15 倍!
作者在論文中寫道:“這是一個(gè) PyTorch 的幾何深度學(xué)習(xí)擴(kuò)展庫(kù),它利用專用的 CUDA 內(nèi)核實(shí)現(xiàn)了高性能。它遵循一個(gè)簡(jiǎn)單的消息傳遞 API,將最近提出的大多數(shù)卷積和池化層捆綁到一個(gè)統(tǒng)一的框架中。所有實(shí)現(xiàn)的方法都支持 CPU 和 GPU 計(jì)算,并遵循一個(gè)不可變的數(shù)據(jù)流范式,該范式支持圖結(jié)構(gòu)隨時(shí)間的動(dòng)態(tài)變化?!?/p>
PyG 已經(jīng)在 MIT 許可下發(fā)布,可以在 GitHub 上獲取。里面有完整的文檔說(shuō)明,并提供了作為起點(diǎn)的教程和示例。
地址:
https://github.com/rusty1s/pytorch_geometric
PyTorch Geometry:基于 PyTorch 的幾何深度學(xué)習(xí)擴(kuò)展庫(kù)
PyTorch Geometry 是一個(gè)基于 PyTorch 的幾何深度學(xué)習(xí)擴(kuò)展庫(kù),用于不規(guī)則結(jié)構(gòu)輸入數(shù)據(jù),例如圖 (graphs)、點(diǎn)云 (point clouds) 和流形 (manifolds)。
PyTorch Geometry 包含了各種針對(duì)圖形和其他不規(guī)則結(jié)構(gòu)的深度學(xué)習(xí)方法,也稱為幾何深度學(xué)習(xí),來(lái)自于許多已發(fā)表的論文。
此外,它還包含一個(gè)易于使用的 mini-batch 加載器、多 GPU 支持、大量通用基準(zhǔn)數(shù)據(jù)集和有用的轉(zhuǎn)換,既可以學(xué)習(xí)任意圖形,也可以學(xué)習(xí) 3D 網(wǎng)格或點(diǎn)云。
所有面向用戶的 API,據(jù)加載例程、多 GPU 支持、數(shù)據(jù)增強(qiáng)或模型實(shí)例化都很大程度上受到 PyTorch 的啟發(fā),以便使它們盡可能保持熟悉。
Neighborhood Aggregation:將卷積算子推廣到不規(guī)則域通常表示為一個(gè)鄰域聚合(neighborhood aggregation),或 message passing scheme (Gilmer et al., 2017)。
圖 1
幾乎所有最近提出的鄰域聚合函數(shù)可以利用這個(gè)接口,已經(jīng)集成到 PyG 的方法包括 (但不限于):
對(duì)于任意圖形學(xué)習(xí),我們已經(jīng)實(shí)現(xiàn)了:
GCN (Kipf & Welling, 2017) 和它的簡(jiǎn)化版本 SGC (Wu et al., 2019)
spectral chebyshev 和 ARMA filter convolutionss (Defferrard et al., 2016; Bianchi et al., 2019)
GraphSAGE (Hamilton et al., 2017)
attention-based operators GAT (Veli?kovi? et al., 2018) 及 AGNN (Thekumparampil et al., 2018),
Graph Isomorphism Network (GIN) from Xu et al. (2019)
Approximate Personalized Propagation of Neural Predictions (APPNP) operator (Klicpera et al., 2019)
對(duì)于學(xué)習(xí)具有多維邊緣特征的點(diǎn)云,流形和圖,我們提供了:
Schlichtkrull et al. (2018) 的 relational GCN operator
PointNet++ (Qi et al., 2017)
PointCNN (Li et al., 2018)
kernel-based methods MPNN (Gilmer et al., 2017),
MoNet (Monti et al., 2017)
SplineCNN (Fey et al., 2018)
以及邊緣卷積算子 EdgeCNN (Wang et al., 2018b).
實(shí)驗(yàn)評(píng)估
我們通過對(duì)同類評(píng)估場(chǎng)景進(jìn)行綜合比較研究,評(píng)估了利用 PyG 所實(shí)現(xiàn)方法的正確性。所有使用過的數(shù)據(jù)集的描述和統(tǒng)計(jì)可以在論文附錄中找到。
對(duì)于所有的實(shí)驗(yàn),我們都盡可能地遵循各自原始論文的超參數(shù)設(shè)置,GitHub 存儲(chǔ)庫(kù)中提供了復(fù)制所有實(shí)驗(yàn)的代碼。
表 2:圖分類的結(jié)果
表 3:點(diǎn)云分類的結(jié)果
我們對(duì)多個(gè)數(shù)據(jù)模型對(duì)進(jìn)行了多次實(shí)驗(yàn),并報(bào)告了在單個(gè) NVIDIA GTX 1080 Ti 上獲得的整個(gè)訓(xùn)練過程的運(yùn)行情況 (表 4)。與 Deep Graph Library (DGL)(Wang et al., 2018a) 相比,PyG 訓(xùn)練模型的速度快了 15 倍。
表 4:訓(xùn)練 runtime 比較
安裝、教程&示例
PyTorch Geometric 使實(shí)現(xiàn)圖卷積網(wǎng)絡(luò)變得非常容易 (請(qǐng)參閱 GitHub 上的教程)。
例如,這就是實(shí)現(xiàn)一個(gè)邊緣卷積層 (edge convolution layer) 所需的全部代碼:
import torch
from torch.nn import Sequential as Seq, Linear as Lin, ReLU
from torch_geometric.nn import MessagePassing
class EdgeConv(MessagePassing):
? ? def __init__(self, F_in, F_out):
? ? ? ? super(EdgeConv, self).__init__()
? ? ? ? self.mlp = Seq(Lin(2 * F_in, F_out), ReLU(), Lin(F_out, F_out))
? ? def forward(self, x, edge_index):
? ? ? ? # x has shape [N, F_in]
? ? ? ? # edge_index has shape [2, E]
? ? ? ? return self.propagate(aggr="max", edge_index=edge_index, x=x) ?# shape [N, F_out]
? ? def message(self, x_i, x_j):
? ? ? ? # x_i has shape [E, F_in]
? ? ? ? # x_j has shape [E, F_in]
? ? ? ? edge_features = torch.cat([x_i, x_j - x_i], dim=1) ?# shape [E, 2 * F_in]
? ? ? ? return self.mlp(edge_features) ?# shape [E, F_out]
此外,與其他深度圖神經(jīng)網(wǎng)絡(luò)庫(kù)相比,PyTorch Geometric 的速度更快:
表:在一塊 NVIDIA GTX 1080Ti 上的訓(xùn)練 runtime
安裝
確保至少安裝了 PyTorch 1.0.0,并驗(yàn)證 cuda/bin 和 cuda/include 分別位于 $PATH 和$cpathrespecific,例如:
$ python -c "import torch; print(torch.__version__)"
>>> 1.0.0
$ echo $PATH
>>> /usr/local/cuda/bin:...
$ echo $CPATH
>>> /usr/local/cuda/include:...
然后運(yùn)行:
$ pip install --upgrade torch-scatter
$ pip install --upgrade torch-sparse
$ pip install --upgrade torch-cluster
$ pip install --upgrade torch-spline-conv (optional)
$ pip install torch-geometric
運(yùn)行示例
cd examples
python cora.py
paper:
https://arxiv.org/pdf/1903.02428.pdf
GitHub:
https://github.com/rusty1s/pytorch_geometric
聲明:本文版權(quán)歸原作者所有,文章收集于網(wǎng)絡(luò),為傳播信息而發(fā),如有侵權(quán),請(qǐng)聯(lián)系小編及時(shí)處理,謝謝!歡迎加入本站公開興趣群商業(yè)智能與數(shù)據(jù)分析群
興趣范圍包括各種讓數(shù)據(jù)產(chǎn)生價(jià)值的辦法,實(shí)際應(yīng)用案例分享與討論,分析工具,ETL工具,數(shù)據(jù)倉(cāng)庫(kù),數(shù)據(jù)挖掘工具,報(bào)表系統(tǒng)等全方位知識(shí)
QQ群:81035754
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/4874.html
摘要:截止到今天,已公開發(fā)行一周年。一年以來(lái),社區(qū)中的用戶不斷做出貢獻(xiàn)和優(yōu)化,在此深表感謝。所以與衡量它的指標(biāo)包括在機(jī)器學(xué)習(xí)研究論文中的使用。來(lái)自香港科技大學(xué)的在上推出了面向普通觀眾的在線課程。 Yann LeCun Twitter截止到今天,PyTorch 已公開發(fā)行一周年。一年以來(lái),我們致力于打造一個(gè)靈活的深度學(xué)習(xí)研究平臺(tái)。一年以來(lái),PyTorch 社區(qū)中的用戶不斷做出貢獻(xiàn)和優(yōu)化,在此深表感謝...
摘要:我們對(duì)種用于數(shù)據(jù)科學(xué)的開源深度學(xué)習(xí)庫(kù)作了排名。于年月發(fā)布了第名,已經(jīng)躋身于深度學(xué)習(xí)庫(kù)的上半部分。是最流行的深度學(xué)習(xí)前端第位是排名較高的非框架庫(kù)。頗受對(duì)數(shù)據(jù)集使用深度學(xué)習(xí)的數(shù)據(jù)科學(xué)家的青睞。深度學(xué)習(xí)庫(kù)的完整列表來(lái)自幾個(gè)來(lái)源。 我們對(duì)23種用于數(shù)據(jù)科學(xué)的開源深度學(xué)習(xí)庫(kù)作了排名。這番排名基于權(quán)重一樣大小的三個(gè)指標(biāo):Github上的活動(dòng)、Stack Overflow上的活動(dòng)以及谷歌搜索結(jié)果。排名結(jié)果...
摘要:深度學(xué)習(xí)是一個(gè)對(duì)算力要求很高的領(lǐng)域。這一早期優(yōu)勢(shì)與英偉達(dá)強(qiáng)大的社區(qū)支持相結(jié)合,迅速增加了社區(qū)的規(guī)模。對(duì)他們的深度學(xué)習(xí)軟件投入很少,因此不能指望英偉達(dá)和之間的軟件差距將在未來(lái)縮小。 深度學(xué)習(xí)是一個(gè)對(duì)算力要求很高的領(lǐng)域。GPU的選擇將從根本上決定你的深度學(xué)習(xí)體驗(yàn)。一個(gè)好的GPU可以讓你快速獲得實(shí)踐經(jīng)驗(yàn),而這些經(jīng)驗(yàn)是正是建立專業(yè)知識(shí)的關(guān)鍵。如果沒有這種快速的反饋,你會(huì)花費(fèi)過多時(shí)間,從錯(cuò)誤中吸取教訓(xùn)...
摘要:幸運(yùn)的是,這些正是深度學(xué)習(xí)所需的計(jì)算類型。幾乎可以肯定,英偉達(dá)是目前執(zhí)行深度學(xué)習(xí)任務(wù)較好的選擇。今年夏天,發(fā)布了平臺(tái)提供深度學(xué)習(xí)支持。該工具適用于主流深度學(xué)習(xí)庫(kù)如和。因?yàn)榈暮?jiǎn)潔和強(qiáng)大的軟件包擴(kuò)展體系,它目前是深度學(xué)習(xí)中最常見的語(yǔ)言。 深度學(xué)習(xí)初學(xué)者經(jīng)常會(huì)問到這些問題:開發(fā)深度學(xué)習(xí)系統(tǒng),我們需要什么樣的計(jì)算機(jī)?為什么絕大多數(shù)人會(huì)推薦英偉達(dá) GPU?對(duì)于初學(xué)者而言哪種深度學(xué)習(xí)框架是較好的?如何將...
摘要:在本節(jié)中,我們將看到一些最流行和最常用的庫(kù),用于機(jī)器學(xué)習(xí)和深度學(xué)習(xí)是用于數(shù)據(jù)挖掘,分析和機(jī)器學(xué)習(xí)的最流行的庫(kù)。愿碼提示網(wǎng)址是一個(gè)基于的框架,用于使用多個(gè)或進(jìn)行有效的機(jī)器學(xué)習(xí)和深度學(xué)習(xí)。 showImg(https://segmentfault.com/img/remote/1460000018961827?w=999&h=562); 來(lái)源 | 愿碼(ChainDesk.CN)內(nèi)容編輯...
閱讀 2092·2021-11-08 13:14
閱讀 2992·2021-10-18 13:34
閱讀 2091·2021-09-23 11:21
閱讀 3648·2019-08-30 15:54
閱讀 1827·2019-08-30 15:54
閱讀 2989·2019-08-29 15:33
閱讀 2659·2019-08-29 14:01
閱讀 2014·2019-08-29 13:52