hiddenstateresearch/visualtorch

VisualTorch aims to help visualize Torch-based neural network architectures.

VisualTorch – クイック概要

概要 – VisualTorch は、PyTorch モデルを読みやすい図に変換する Python ライブラリです。ダミーのフォワードパスを実行し、操作をトレースして、次の 3 つのスタイルのいずれかでアーキテクチャを描画します。

  • フロースタイル – レイヤーを左から右に積み重ねた、データフローチャートに似たスタイル。
  • グラフスタイル – 接続を示す、より伝統的なノードエッジグラフ。
  • LeNet スタイル – コンパクトで教科書的なレイアウト。

ライブラリは、モデルをレイヤーごとに表示するアニメーション GIF をエクスポートすることもできます。


AI 実践者にとっての重要性

ニューラルネットワークを構築または共有するとき、明確な視覚的表現は次の点で役立ちます。

  • コミュニケーション – 共同作業者やレビュアーにモデル構造を説明します。
  • デバッグ – 欠落した接続や予期しないブランチを発見します。
  • ドキュメント – 論文、ノートブック、README に図を埋め込みます。

VisualTorch は、単純なテキスト要約(torchsummary)と高機能なグラフツール(torchviz)の間のニッチを埋めます。nn.Sequential と任意のカスタムモジュールの両方で機能する統一トレースバックエンドを追加します。


コア機能(README に記載)

機能 内容
3 つのレンダリングスタイル flow、graph、lenet レイアウト。それぞれ色とフォントを設定可能。
アニメーション GIF エクスポート visualtorch.animate(model, input_shape, style=…) でアーキテクチャの段階的な表示を作成。
次元ラベル オプション show_dimension=True で、各出力テンソルの形状をノードラベルに追加。
MCP サーバー統合 オプションの visualtorch[mcp] で、ライブラリを埋め込まずに任意のクライアントから呼び出して PNG または GIF を生成できる汎用 stdio ベースのサーバーをインストール。
研究対応の引用 学術利用のための DOI と BibTeX エントリを提供。
充実したドキュメントと例 オンラインドキュメントには、使用例、API リファレンス、このツールを使用した論文の紹介があります。
PyPI 配布 pip install visualtorch でインストール(または [mcp] エクストラを使用)。

はじめに(README より)

# 基本インストール
pip install visualtorch

# オプションの MCP サーバーをインストール
pip install "visualtorch[mcp]"
import torch, visualtorch as vt

# サンプルモデル(任意の nn.Module で動作)
class Net(torch.nn.Module):
    def __init__(self):
        super().__init__()
        self.conv = torch.nn.Conv2d(1, 16, 3)
        self.fc   = torch.nn.Linear(16*26*26, 10)
    def forward(self, x):
        x = torch.relu(self.conv(x))
        return self.fc(x.view(x.size(0), -1))

model = Net()
# フロースタイルで静的 PNG を生成
vt.plot(model, input_shape=(1, 1, 28, 28), style="flow", show_dimension=True)

# モデルを段階的に表示するアニメーション GIF を作成
vt.animate(model, input_shape=(1, 1, 28, 28), style="graph")

既知の制限(明示的に記載)

  • トレースのみ – VisualTorch はダミー入力で実際のフォワードパスを実行します。データ依存の制御フローは、そのダミー入力で取られたブランチのみを表示します。
  • 複数出力レイヤー – ノードサイズは最初の出力テンソルに基づきます。ただし、show_dimension=True はすべての出力の形状をリストし、接続は正しいままです。
  • シンボリック実行なし – ライブラリは、実行時のテンソル値に依存するブランチの形状を推測できません。

エコシステムとの適合と関連ツール

VisualTorch は以下のツールのアイデアに基づいています。

  • visualkeras – スタイルと API の初期のインスピレーション。
  • pytorchviz、torchview、pytorch‑summary – 初期のトレース/要約ユーティリティ。

複数の既製のビジュアルスタイル、アニメーション表示、および任意の言語やツールチェーンから呼び出せるクライアント中立の MCP サーバーを提供することで差別化しています。


コミュニティとメンテナンス

  • オープンソース MIT ライセンス – 商用および学術利用は無料。
  • 引用推奨 – JOSS 論文(2024)が学術引用用の DOI を提供。
  • 貢献歓迎 – ガイドラインと CONTRIBUTING.md が提供されています。
  • リリースプロセス – GOVERNANCE.md ファイルで管理。バージョン 1.0+ では破壊的な API 変更が導入されましたが、より豊富な機能が追加されています。
  • 発表済み研究での使用 – README には VisualTorch を使用した Nature、IEEE、MDPI の論文がリストされています。

結論

VisualTorch は、PyTorch モデルをクリーンでカスタマイズ可能な図(静的 PNG またはアニメーション GIF)に変換するための、目的に特化したドキュメント化されたライブラリです。カスタムプロットコードを書かずに、論文、プレゼンテーション、ドキュメントでモデルアーキテクチャを伝える必要がある研究者やエンジニアに特に役立ちます。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト