PyTorch Geometricのインストール【GNN入門】

PyTorch Geometricのインストール【GNN入門】 データ分析

「PyTorchでGNNを試してみたい」
「PythonでGraph Neural Networkを試したい」

このように思う方は、この記事をご覧ください。
この記事を読めば、早くて10分以内にはできるようになります。

本記事の内容

  • PyTorch Geometricとは?
  • PyTorch Geometricのシステム要件
  • PyTorch Geometricのインストール
  • PyTorch Geometricの動作確認

それでは、上記に沿って解説していきます。

PyTorch Geometricとは?

PyTorch Geometric(PyG)とは、PyTorchの幾何学的深層学習拡張ライブラリです。
簡単に言うと、PyTorchでグラフニューラルネットワークを行うためのライブラリとなります。

GNN(Graph Neural Network)という表記の方が、馴染があるかもしれません。
PyTorch Geometrichは、GNNをPythonで行うためのライブラリということです。

GNNに関する説明は、他の専門的な記事に任せます。
ここでは、GNNとネットワーク分析に関する説明をしておきます。
ネットワーク分析については、次の記事でまとめています。

ネットワーク分析で対象となっていたモノは、GNNの対象にもなるはずです。
もっと言うと、何らかの関連性を持つものなら、何でもGNNの対象になり得ます。

そう考えると、GNNの可能性はまだまだありそうです。
ただ、それを探し出して、データを収集するのが大変なんですけどね・・・

でも、GNNが個人でも簡単にできる環境が簡単に容易できます。
そして、それを可能にしているのがPyTorch Geometricということです。

以上、PyTorch Geometricについて説明しました。
次は、PyTorch Geometricのシステム要件を確認します。

PyTorch Geometricのシステム要件

現時点(2021年8月)でのPyTorch Geometricの最新バージョンは、1.7.2となります。
この最新バージョンは、2021年6月26日にリリースされています。

PyTorch Geometricのシステム要件は、次の3つに注意しましょう。

  • OS
  • Python
  • PyTorch

それぞれを下記で説明します。

OS

サポートOSに関しては、以下を含むクロスプラットフォーム対応です。

  • Windows
  • macOS
  • Linux

Python

PyTorch自体が、Python 3系のみのサポートとなります。
そのため、サポート対象となるPythonのバージョンは、Python 3系と考えておきましょう。

簡単に言うと、PyTorchがインストール可能なPythonバージョンということです。

PyTorch

PyTorch 1.4.0以降である必要があります。
要するに、古いPyTorchはダメということです。

現時点(2021年8月)では、PyTorch 1.9.0が最新バージョンとなります。
PyTorchのインストールについては、次の記事で解説しています。

まとめ

PyTorch Geometricのシステム要件は、PyTorch次第と言えます。
基本的には、PyTorchは仮想環境へのインストールをおススメします。

IDEにPyCharmを利用すれば、そこは特に意識する必要がありません。
プロジェクト毎に仮想環境となるからです。

また、以下のようにコマンドでも簡単に仮想環境を利用できます。

以上、PyTorch Geometricのシステム要件に関しての説明でした。
次は、PyTorch Geometricをインストールしていきます。

PyTorch Geometricのインストール

まずは、現状のインストール済みパッケージを確認しておきます。
PyTorchをインストールした状況です。

>pip list 
Package           Version 
----------------- ------------ 
numpy             1.21.1 
Pillow            8.3.1 
pip               21.2.3 
setuptools        57.4.0 
torch             1.9.0+cu111 
torchaudio        0.9.0 
torchvision       0.10.0+cu111 
typing-extensions 3.10.0.0

なお、PyTorchは次の条件でインストールしています。

GPU対応版PyTorch 1.9.0をインストールするコマンドが生成されています。
次のコマンドにより、インストール済みのPyTorchのバージョンを確認できます。

>python -c "import torch; print(torch.__version__)" 
1.9.0+cu111

では、PyTorch Geometricのインストールを行っていきます。
PyTorch Geometricのインストールは、補助ツールを使いましょう。

PyTorch Geometric公式
https://pytorch-geometric.readthedocs.io/en/latest/notes/installation.html

上記ページにアクセスします。
次のような表示を確認できます。

同じような機能が、PyTorch公式にも存在しています。
機能としては、インストールコマンドを生成するためのツールです。

今回は、次のように選択しました。
PyTorchのインストールとほぼ同じになるはずです。

生成されたコマンドを使ってインストールを行います。

その前に、pipとsetuptoolsの更新はしておきましょう。
pipコマンドを使う場合、常に以下のコマンドを実行するようにします。

python -m pip install --upgrade pip setuptools

では、生成されたコマンドを実行します。

pip install torch-scatter torch-sparse torch-cluster torch-spline-conv torch-geometric -f https://pytorch-geometric.com/whl/torch-1.9.0+cu111.html

インストールは、少し時間がかかります。
では、どんなパッケージがインストールされたのかを確認しましょう。

>pip list 
Package               Version 
--------------------- ------------ 
certifi               2021.5.30 
charset-normalizer    2.0.4 
colorama              0.4.4 
googledrivedownloader 0.4 
idna                  3.2 
isodate               0.6.0 
Jinja2                3.0.1 
joblib                1.0.1 
MarkupSafe            2.0.1 
networkx              2.6.2 
numpy                 1.21.1 
pandas                1.3.1 
Pillow                8.3.1 
pip                   21.2.3 
pyparsing             2.4.7 
python-dateutil       2.8.2 
python-louvain        0.15 
pytz                  2021.1 
rdflib                6.0.0 
requests              2.26.0 
scikit-learn          0.24.2 
scipy                 1.7.1 
setuptools            57.4.0 
six                   1.16.0 
threadpoolctl         2.2.0 
torch                 1.9.0+cu111 
torch-cluster         1.5.9 
torch-geometric       1.7.2 
torch-scatter         2.0.8 
torch-sparse          0.6.11 
torch-spline-conv     1.2.1 
torchaudio            0.9.0 
torchvision           0.10.0+cu111 
tqdm                  4.62.0 
typing-extensions     3.10.0.0 
urllib3               1.26.6

一気にインストール済みパッケージが、増えました。
PyTorch Geometricは、それだけ多くのパッケージに依存しているということです。
やはり、PyTorch Geometricは仮想環境にインストールすべきでしょうね。

以上、PyTorch Geometricのインストールを説明しました。
最後は、PyTorch Geometricの動作確認を行います。

PyTorch Geometricの動作確認

PyTorch Geometric公式にあるサンプルコードです。

import torch
from torch_geometric.data import Data
edge_index = torch.tensor([[0, 1, 1, 2],
                           [1, 0, 2, 1]], dtype=torch.long)
x = torch.tensor([[-1], [0], [1]], dtype=torch.float)
data = Data(x=x, edge_index=edge_index)
print(data)

3つのノードと4つのエッジを持つ、重みのない無方向グラフの例となります。
各ノードには、1つの特徴を含んでいます。

上記サンプルコードを実行すると、次のような結果が表示されます。

Data(edge_index=[2, 4], x=[3, 1])

この表示が確認できれば、PyTorch Geometricの動作確認はOKです。
なお、上記結果の意味は以下。

edge_index = [始点リストと終点リスト(2), 枝数(4=2×2)]
x = [頂点数(3), 特徴量次元(1)]
※枝数は両方向を考慮する

以上、PyTorch Geometricの動作確認についての説明でした。

タイトルとURLをコピーしました