PyTorch Geometric
2 minute read
PyTorch Geometric 、または PyG は、幾何学的ディープラーニングで最も人気のあるライブラリの 1 つであり、W&B はグラフの可視化と Experiments の追跡において非常にうまく機能します。
Pytorch Geometric をインストールしたら、以下の手順に従って開始してください。
サインアップして API キーを作成する
API キー は、お使いのマシンを W&B に対して認証します。API キーは、 ユーザー プロフィールから生成できます。
- 右上隅にある ユーザー プロフィール アイコンをクリックします。
- ユーザー 設定 を選択し、API キー セクションまでスクロールします。
- 表示 をクリックします。表示された API キーをコピーします。API キーを非表示にするには、ページをリロードしてください。
wandb
ライブラリをインストールしてログインする
ローカルに wandb
ライブラリをインストールしてログインするには:
-
WANDB_API_KEY
環境 変数 を API キー に設定します。export WANDB_API_KEY=<your_api_key>
-
wandb
ライブラリをインストールしてログインします。pip install wandb wandb login
pip install wandb
import wandb
wandb.login()
!pip install wandb
import wandb
wandb.login()
グラフを可視化する
エッジ数、ノード数など、入力グラフに関する詳細を保存できます。W&B は Plotly チャートと HTML パネル の ログ をサポートしているため、グラフ用に作成した 可視化 は W&B にも ログ できます。
PyVis を使用する
次のスニペットは、PyVis と HTML でそれを行う方法を示しています。
from pyvis.network import Network
Import wandb
wandb.init(project=’graph_vis’)
net = Network(height="750px", width="100%", bgcolor="#222222", font_color="white")
# Add the edges from the PyG graph to the PyVis network
for e in tqdm(g.edge_index.T):
src = e[0].item()
dst = e[1].item()
net.add_node(dst)
net.add_node(src)
net.add_edge(src, dst, value=0.1)
# Save the PyVis visualisation to a HTML file
net.show("graph.html")
wandb.log({"eda/graph": wandb.Html("graph.html")})
wandb.finish()

Plotly を使用する
Plotly を使用してグラフの 可視化 を作成するには、まず PyG グラフを networkx オブジェクトに変換する必要があります。次に、ノードとエッジの両方に対して Plotly 散布図を作成する必要があります。次のスニペットをこのタスクに使用できます。
def create_vis(graph):
G = to_networkx(graph)
pos = nx.spring_layout(G)
edge_x = []
edge_y = []
for edge in G.edges():
x0, y0 = pos[edge[0]]
x1, y1 = pos[edge[1]]
edge_x.append(x0)
edge_x.append(x1)
edge_x.append(None)
edge_y.append(y0)
edge_y.append(y1)
edge_y.append(None)
edge_trace = go.Scatter(
x=edge_x, y=edge_y,
line=dict(width=0.5, color='#888'),
hoverinfo='none',
mode='lines'
)
node_x = []
node_y = []
for node in G.nodes():
x, y = pos[node]
node_x.append(x)
node_y.append(y)
node_trace = go.Scatter(
x=node_x, y=node_y,
mode='markers',
hoverinfo='text',
line_width=2
)
fig = go.Figure(data=[edge_trace, node_trace], layout=go.Layout())
return fig
wandb.init(project=’visualize_graph’)
wandb.log({‘graph’: wandb.Plotly(create_vis(graph))})
wandb.finish()

メトリクス を ログ する
W&B を使用して、Experiments や、損失関数、精度などの関連 メトリクス を追跡できます。次の行を トレーニング ループに追加します。
wandb.log({
‘train/loss’: training_loss,
‘train/acc’: training_acc,
‘val/loss’: validation_loss,
‘val/acc’: validation_acc
})

その他のリソース
- PyTorch Geometric でグラフ ニューラルネットワーク を使用して Amazon 製品を推奨する
- PyTorch Geometric を使用した ポイント クラウド分類
- PyTorch Geometric を使用した ポイント クラウドセグメンテーション
[i18n] feedback_title
[i18n] feedback_question
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.