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
フィードバック
このページは役に立ちましたか?
Glad to hear it! If you have more to say, please let us know.
Sorry to hear that. Please tell us how we can improve.