PyTorch Geometric
2 minute read
PyTorch Geometric または PyG は、最も人気のある幾何学的ディープラーニングのためのライブラリの1つであり、W&B はそれと非常に良く連携し、グラフの可視化と実験の追跡を行うことができます。
PyTorch Geometric をインストールした後、以下の手順に従ってください。
サインアップとAPI キーの作成
APIキーは、あなたのマシンをW&Bに認証します。APIキーはユーザープロフィールから生成できます。
- 右上のユーザープロフィールアイコンをクリックします。
- ユーザー設定を選択し、API キーセクションまでスクロールします。
- Reveal をクリックします。表示された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")
# PyG グラフから PyVis ネットワークへのエッジを追加
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)
# PyVisの可視化をHTMLファイルに保存
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を使用することができます。トレーニングループに次の行を追加してください:
wandb.log({
‘train/loss’: training_loss,
‘train/acc’: training_acc,
‘val/loss’: validation_loss,
‘val/acc’: validation_acc
})

その他のリソース
- Recommending Amazon Products using Graph Neural Networks in PyTorch Geometric
- Point Cloud Classification using PyTorch Geometric
- Point Cloud Segmentation using PyTorch Geometric
[i18n] feedback_title
[i18n] feedback_question
Glad to hear it! If you have further feedback, please let us know.
Sorry to hear that. Please tell us how we can improve.