新しい PyTorch グラフ ニューラル ネットワーク ライブラリ、14 倍高速化: LeCun が賞賛、GitHub が 2000 個のスターを獲得

新しい PyTorch グラフ ニューラル ネットワーク ライブラリ、14 倍高速化: LeCun が賞賛、GitHub が 2000 個のスターを獲得

[[259612]]

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載しています。転載の際は出典元にご連絡ください。

「CNNは古い、GNNを確立すべきだ!」

科学者たちは、グラフ ニューラル ネットワーク(GNN) が従来の CNN では処理できない非ユークリッド データを処理できることを発見し、これまでディープラーニングでは解決できなかった多くの問題の鍵を見つけました。

現在、グラフ ネットワークの PyTorch ライブラリがあり、これは GitHub で2,000 を超えるスターを獲得し、CNN の父であるYann LeCun氏にも採用されています。

これはPyTorch Geometric 、略して PyG と呼ばれ、 26 のグラフ ネットワーク スタディのコード実装をまとめたものです。

このライブラリも非常に高速です。前身の DGL グラフ ネットワーク ライブラリと比較すると、PyG*** は最大 15 倍高速です。

包括的なライブラリ

不規則に構造化されたデータを実行する場合は、PyG を使用します。グラフ群、多様体など。

△ 右側は不規則な非ユークリッド空間

これは豊富なライブラリです: 多くのモデルのPyTorch 実装、さまざまな便利な変換、および多数の一般的なベンチマーク データセット

実装といえば、ここでは、Kipf らによる Graph Convolutional Networks ( GCN ) や Bengio Lab による Graph Attention Networks ( GAT ) など、2017 年から 2019 年までの主要なカンファレンスで発表された (少なくとも) 26 のグラフ ネットワーク研究の簡単な実装を見つけることができます。

どれくらい速くなるのでしょうか? PyG の 2 人の著者は、NVIDIA GTX 1080Ti を使用して実験を実施しました。

対抗するDGLもグラフ ネットワーク ライブラリです。

4 つのデータセットすべてにおいて、PyG は DGL よりも高速に実行されます。最も差が大きかったのは、Cora データセットで GAT モデルを実行したときです。200 エポックを実行するのに、対戦相手は33.4 秒かかりましたが、PyG は2.2 秒しかかからず、これは対戦相手の 15 倍の速度です。

各アルゴリズムの実装は、CPU および GPU コンピューティングをサポートします。

食べ方

このライブラリの作者は、ドルトムント工科大学の 2 人のドイツ人ティーンエイジャーです。

[[259614]]

△そのうちの1つ

PyG を使用すると、グラフ ネットワークの構築は簡単だと言われています。

エッジ畳み込み層の実装は次のようになります。

  1.   1.トーチをインポートする
  2. 2torch.nnからSequentialをSeqとして、LinearをLinとして、ReLUをインポートします
  3. 3torch_geometric.nnからMessagePassingをインポート
  4. 4  
  5. 5クラスEdgeConv(メッセージパッシング):
  6. 6   def __init__( self 、 F_in 、 F_out ):
  7. 7スーパー(EdgeConv, self ).__init__()
  8. 8  自己.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 の形状は [N, F_in] です 
  12. 12   # edge_indexの形状は[2, E]です 
  13. 13  戻る  self .propagate(aggr= 'max' , edge_index=edge_index, x=x) # 形状 [N, F_out]  
  14. 14  
  15. 15  メッセージの定義(自分自身、x_i、x_j):
  16. 16   # x_i の形状は [E, F_in] です 
  17. 17   # x_j の形状は [E, F_in] です 
  18. 18 edge_features = torch.cat([x_i, x_j - x_i], dim= 1 ) # 形状 [E, 2 * F_in]  
  19. 19  戻る  self .mlp(edge_features) # 形状 [E, F_out]  

インストールする前に、少なくとも PyTorch 1.0.0 がインストールされていることを確認してください。cuda/bin が $PATH にあり、cuda/include が $CPATH にあることを確認してください。

  1. 1 $ python -c "torch をインポートします。print(torch.__version__)"  
  2. 2 >>> 1.0 . 0  
  3. 3  
  4. 4 $ echo $PATH
  5. 5 >>> /usr/local/cuda/bin:...
  6. 6  
  7. 7 $ エコー $CPATH
  8. 8 >>> /usr/local/cuda/include:...

次に、さまざまな pip インストールを開始します。

PyG プロジェクト ポータル:

https://github.com/rusty1s/pytorch_geometric

PyGホームページポータル:

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

PyG 論文ポータル:

出典: http://arxiv.org/pdf/1903.02428.pdf

<<:  AIカンファレンスは数多くあるが、私たちは違う

>>:  2019年にロボット分野で注目すべき5つのトレンド

ブログ    

推薦する

Google は、DQN と同等で、より優れた一般化パフォーマンスを備えた 2 つの新しい強化学習アルゴリズムを実装しました。

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

21 歳の SpaceX インターンが AI を使って大規模な考古学的事件を解決し、4 万ドルを獲得しました。

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

人工知能の3つの柱:アルゴリズム、計算能力、データ

AlphaGoとイ・セドルの世紀のマンマシン対決で、ついにAlphaGoが勝利した。では、人工知能の...

機械学習が自動車産業を次のレベルに引き上げる方法

機械学習は、ユーザーエクスペリエンスを向上させ、ビッグデータの力を活用することで、自動車業界を次のレ...

...

...

Weibo での PageRank アルゴリズムの適用

このアイデアは、かなり早い段階で思いつきました。私は検索エンジンの経験があるため、検索エンジンにおけ...

「機械」が他より賢く、「技術」が他より劣っているという観察と思考

[[277716]] 9月21日、CCTV-1の「スーパースマート」番組では、杭州の霊隠寺に毎日訪れ...

機械学習アルゴリズムの実践: 決定木

序文最近、欲張りになりすぎないように、機械学習の基本的なアルゴリズムを体系的に勉強しようと思っていま...

チューリングマシン: コンピューターが存在しないときに計算についてどのように話せばいいのでしょうか?

1950 年 10 月に、「機械は考えることができるか?」と題する論文が発表されました。この論文で...

マルチモーダル生体認証の利点は何ですか?

マルチモーダル生体認証とは何ですか? マルチモーダル生体認証は、さまざまなシナリオやセキュリティ レ...

Google Cloud の共有: AI を活用して企業価値を生み出す方法

今月、Google Cloud は、顧客やパートナーと人工知能の最新の進歩について議論するエグゼクテ...

...

Python 自然言語処理 (NLP) を使用して要約を作成する方法

たくさんのレポートを読まなければならないときに、それぞれのレポートを簡単に要約したいという状況に遭遇...