摘要:圖神經網絡是近年發(fā)展起來的一個很有前景的深度學習方向,也是一種強大的圖點云和流形表示學習方法。地址基于的幾何深度學習擴展庫是一個基于的幾何深度學習擴展庫,用于不規(guī)則結構輸入數據,例如圖點云和流形。與相比,訓練模型的速度快了倍。
過去十年來,深度學習方法(例如卷積神經網絡和遞歸神經網絡)在許多領域取得了前所未有的成就,例如計算機視覺和語音識別。
研究者主要將深度學習方法應用于歐氏結構數據 (Euclidean domains),但在許多重要的應用領域,如生物學、物理學、網絡科學、推薦系統和計算機圖形學,可能不得不處理非歐式結構的數據,比如圖和流形。
直到最近,深度學習在這些特定領域的采用一直很滯后,主要是因為數據的非歐氏結構性質使得基本操作(例如卷積)的定義相當困難。在這個意義上,幾何深度學習將深度學習技術擴展到了圖/流形結構數據。
圖神經網絡 (GNN)是近年發(fā)展起來的一個很有前景的深度學習方向,也是一種強大的圖、點云和流形表示學習方法。
然而,實現 GNN 具有挑戰(zhàn)性,因為需要在高度稀疏且不規(guī)則、不同大小的數據上實現高 GPU 吞吐量。
近日,德國多特蒙德工業(yè)大學的研究者兩位 Matthias Fey 和 Jan E. Lenssen,提出了一個基于 PyTorch 的幾何深度學習擴展庫 PyTorch Geometric (PyG),為 GNN 的研究和應用再添利器。
論文:
https://arxiv.org/pdf/1903.02428.pdf
Yann Lecun 也熱情推薦了這個工作,稱贊它是一個快速、美觀的 PyTorch 庫,用于幾何深度學習 (圖和其他不規(guī)則結構的神經網絡)。
作者聲稱,PyG 甚至比幾個月前 NYU、AWS 聯合開發(fā)的圖神經網絡庫 DGL(Deep Graph Library) 快了 15 倍!
作者在論文中寫道:“這是一個 PyTorch 的幾何深度學習擴展庫,它利用專用的 CUDA 內核實現了高性能。它遵循一個簡單的消息傳遞 API,將最近提出的大多數卷積和池化層捆綁到一個統一的框架中。所有實現的方法都支持 CPU 和 GPU 計算,并遵循一個不可變的數據流范式,該范式支持圖結構隨時間的動態(tài)變化。”
PyG 已經在 MIT 許可下發(fā)布,可以在 GitHub 上獲取。里面有完整的文檔說明,并提供了作為起點的教程和示例。
地址:
https://github.com/rusty1s/pytorch_geometric
PyTorch Geometry:基于 PyTorch 的幾何深度學習擴展庫
PyTorch Geometry 是一個基于 PyTorch 的幾何深度學習擴展庫,用于不規(guī)則結構輸入數據,例如圖 (graphs)、點云 (point clouds) 和流形 (manifolds)。
PyTorch Geometry 包含了各種針對圖形和其他不規(guī)則結構的深度學習方法,也稱為幾何深度學習,來自于許多已發(fā)表的論文。
此外,它還包含一個易于使用的 mini-batch 加載器、多 GPU 支持、大量通用基準數據集和有用的轉換,既可以學習任意圖形,也可以學習 3D 網格或點云。
所有面向用戶的 API,據加載例程、多 GPU 支持、數據增強或模型實例化都很大程度上受到 PyTorch 的啟發(fā),以便使它們盡可能保持熟悉。
Neighborhood Aggregation:將卷積算子推廣到不規(guī)則域通常表示為一個鄰域聚合(neighborhood aggregation),或 message passing scheme (Gilmer et al., 2017)。
圖 1
幾乎所有最近提出的鄰域聚合函數可以利用這個接口,已經集成到 PyG 的方法包括 (但不限于):
對于任意圖形學習,我們已經實現了:
GCN (Kipf & Welling, 2017) 和它的簡化版本 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)
對于學習具有多維邊緣特征的點云,流形和圖,我們提供了:
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).
實驗評估
我們通過對同類評估場景進行綜合比較研究,評估了利用 PyG 所實現方法的正確性。所有使用過的數據集的描述和統計可以在論文附錄中找到。
對于所有的實驗,我們都盡可能地遵循各自原始論文的超參數設置,GitHub 存儲庫中提供了復制所有實驗的代碼。
表 2:圖分類的結果
表 3:點云分類的結果
我們對多個數據模型對進行了多次實驗,并報告了在單個 NVIDIA GTX 1080 Ti 上獲得的整個訓練過程的運行情況 (表 4)。與 Deep Graph Library (DGL)(Wang et al., 2018a) 相比,PyG 訓練模型的速度快了 15 倍。
表 4:訓練 runtime 比較
安裝、教程&示例
PyTorch Geometric 使實現圖卷積網絡變得非常容易 (請參閱 GitHub 上的教程)。
例如,這就是實現一個邊緣卷積層 (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]
此外,與其他深度圖神經網絡庫相比,PyTorch Geometric 的速度更快:
表:在一塊 NVIDIA GTX 1080Ti 上的訓練 runtime
安裝
確保至少安裝了 PyTorch 1.0.0,并驗證 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:...
然后運行:
$ 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
運行示例
cd examples
python cora.py
paper:
https://arxiv.org/pdf/1903.02428.pdf
GitHub:
https://github.com/rusty1s/pytorch_geometric
聲明:本文版權歸原作者所有,文章收集于網絡,為傳播信息而發(fā),如有侵權,請聯系小編及時處理,謝謝!歡迎加入本站公開興趣群商業(yè)智能與數據分析群
興趣范圍包括各種讓數據產生價值的辦法,實際應用案例分享與討論,分析工具,ETL工具,數據倉庫,數據挖掘工具,報表系統等全方位知識
QQ群:81035754
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/4874.html
摘要:截止到今天,已公開發(fā)行一周年。一年以來,社區(qū)中的用戶不斷做出貢獻和優(yōu)化,在此深表感謝。所以與衡量它的指標包括在機器學習研究論文中的使用。來自香港科技大學的在上推出了面向普通觀眾的在線課程。 Yann LeCun Twitter截止到今天,PyTorch 已公開發(fā)行一周年。一年以來,我們致力于打造一個靈活的深度學習研究平臺。一年以來,PyTorch 社區(qū)中的用戶不斷做出貢獻和優(yōu)化,在此深表感謝...
摘要:我們對種用于數據科學的開源深度學習庫作了排名。于年月發(fā)布了第名,已經躋身于深度學習庫的上半部分。是最流行的深度學習前端第位是排名較高的非框架庫。頗受對數據集使用深度學習的數據科學家的青睞。深度學習庫的完整列表來自幾個來源。 我們對23種用于數據科學的開源深度學習庫作了排名。這番排名基于權重一樣大小的三個指標:Github上的活動、Stack Overflow上的活動以及谷歌搜索結果。排名結果...
摘要:深度學習是一個對算力要求很高的領域。這一早期優(yōu)勢與英偉達強大的社區(qū)支持相結合,迅速增加了社區(qū)的規(guī)模。對他們的深度學習軟件投入很少,因此不能指望英偉達和之間的軟件差距將在未來縮小。 深度學習是一個對算力要求很高的領域。GPU的選擇將從根本上決定你的深度學習體驗。一個好的GPU可以讓你快速獲得實踐經驗,而這些經驗是正是建立專業(yè)知識的關鍵。如果沒有這種快速的反饋,你會花費過多時間,從錯誤中吸取教訓...
摘要:幸運的是,這些正是深度學習所需的計算類型。幾乎可以肯定,英偉達是目前執(zhí)行深度學習任務較好的選擇。今年夏天,發(fā)布了平臺提供深度學習支持。該工具適用于主流深度學習庫如和。因為的簡潔和強大的軟件包擴展體系,它目前是深度學習中最常見的語言。 深度學習初學者經常會問到這些問題:開發(fā)深度學習系統,我們需要什么樣的計算機?為什么絕大多數人會推薦英偉達 GPU?對于初學者而言哪種深度學習框架是較好的?如何將...
摘要:在本節(jié)中,我們將看到一些最流行和最常用的庫,用于機器學習和深度學習是用于數據挖掘,分析和機器學習的最流行的庫。愿碼提示網址是一個基于的框架,用于使用多個或進行有效的機器學習和深度學習。 showImg(https://segmentfault.com/img/remote/1460000018961827?w=999&h=562); 來源 | 愿碼(ChainDesk.CN)內容編輯...
閱讀 2027·2021-11-08 13:14
閱讀 2935·2021-10-18 13:34
閱讀 2021·2021-09-23 11:21
閱讀 3581·2019-08-30 15:54
閱讀 1752·2019-08-30 15:54
閱讀 2918·2019-08-29 15:33
閱讀 2569·2019-08-29 14:01
閱讀 1940·2019-08-29 13:52