VisualTorch について
VisualTorch は、PyTorch ニューラルネットワークのアーキテクチャ図を flow、graph、LeNet の各スタイルで描画し、アニメーション GIF も生成するライブラリです。モデル構造を可視化したい研究者や開発者向けです。MIT ライセンスのオープンソースです。
主な機能
- 01Sequential および Custom の PyTorch モデルに対応
- 02flow、graph、lenet の図示スタイル
- 03層ごとに表示するアニメーション GIF
- 04クライアント非依存のオプション stdio MCP サーバー
- 05構造化メタデータ付きの PNG 静的画像出力
活用シーン
- 01論文やドキュメント用に PyTorch モデルの構造図を作成する
- 02MCP クライアントから信頼できるモデルソースで構成図を生成する
- 03層ごとのデータフローを示すアニメーションを作成する
MCP 対応
VisualTorch はオプションの stdio MCP サーバーを提供し、図の生成ツール、ドキュメントリソース、サブプロセスのタイムアウト制御を公開します。PyTorch ソースから PNG 図と GIF を生成できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
VisualTorch は、Torch ベースのニューラルネットワークアーキテクチャの可視化を支援することを目的としています。現在、PyTorch の Sequential モデルと Custom モデル向けに、フロー形式、グラフ形式、LeNet 形式のアーキテクチャを生成できます。元のビジュアルスタイルは、visualkeras、pytorchviz、pytorch-summary、torchview に着想を得ています。それ以来、独自の統合トレーシングバックエンドとアーキテクチャ処理ロジックを発展させ、当初の範囲を大きく超えています。
注意: 1.0+ は API に互換性のない変更を含むメジャーリリースですが、機能とアルゴリズムは大幅に改善されています。アップグレードをおすすめします。旧 API を使用する場合は、0.2.5 以前をご利用ください。
制限事項: VisualTorch は図を作成するために実際のフォワードパスをトレースします。このため、トレースベースのアプローチに共通する固有の制限があります(バグではなく、完全なシンボリック実行なしには解決できません)。データ依存の制御フローを持つモデル(たとえば、テンソル値があるしきい値を超えた場合にのみ実行される分岐)では、トレースに使われたダミー入力が通った分岐だけが表示されます。また、意味のある出力テンソルを複数返すレイヤー(たとえば、カスタムのマルチタスクヘッドや、nn.LSTM の (output, (h_n, c_n)))では、ノードのサイズは引き続き最初のテンソルだけに基づいて決まります。show_dimension=True を指定すると、最初のテンソルだけでなく、すべての出力テンソルの形状がラベルに表示されます。いずれの場合も、後続の接続は正しく表示されます。貢献を歓迎します!

アニメーションによる表示
すべてのスタイルで、モデルをレイヤーまたは列ごとに表示するアニメーション GIF も生成できます。visualtorch.animate(model, input_shape, style=...) を使用してください。動作例は、フロー、グラフ、lenet の各スタイルをご覧ください。

ドキュメント
オンラインドキュメントは visualtorch.readthedocs.io でご覧いただけます。
ドキュメントには、使用例、API リファレンス、その他の役立つ情報が掲載されています。
インストール
インストールページをご覧ください。
MCP 統合
VisualTorch には、PyTorch モデルのソースから静的 PNG 図とアニメーション GIF のリビールを生成する、オプションのクライアント非依存な stdio MCP サーバーが含まれています。機能の検出、構造化された出力メタデータ、ドキュメントリソース、サブプロセスのタイムアウト、3 つの標準スタイル(graph、flow、lenet)すべてを提供します。pip install "visualtorch[mcp]" でインストールし、ツールのスキーマ、汎用 stdio 設定、使用例、信頼済みコードのセキュリティ境界については、MCP 統合ガイドをご覧ください。
クライアント固有のプラグインや拡張機能は必要ありません。
研究での利用
VisualTorch は、Nature、IEEE、MDPI で発表されたものを含む、公開済みの研究で利用されています。
すべての一覧は研究ショーケースのページをご覧ください。
VisualTorch を研究で使用したり、VisualTorch を使って何かを作成したり、引用している論文を見つけたりしましたか?お知らせいただくか、プルリクエストを作成して直接追加してください。ぜひお聞かせください。
使用例
使用例のページをご覧ください。
貢献
ガイドラインに従ってプルリクエストを送信し、このプロジェクトに貢献してください。
リリース
リリースの方法と頻度については GOVERNANCE.mdをご覧ください。過去のリリースについては、PyPI のリリース履歴をご覧ください。
ライセンス
このプロジェクトは、MIT ライセンスの条件に基づくオープンソースとして提供されています。
当初、このプロジェクトは(MIT ライセンスの下で提供されている)visualkerasをベースとしており、さらにpytorchviz、pytorch-summary、torchviewに着想を得た変更が加えられています。これらもすべて MIT ライセンスの下で提供されています。
引用
研究に役立った場合は、出版物でこのプロジェクトを引用してください。
**注記:**以下の論文は、発表時点(2024 年)の VisualTorch について説明しています。それ以降、プロジェクトは大幅にリファクタリングされ、互換性を損なう API 変更も行われています(現在の API についてはドキュメントをご覧ください)。DOI からは、実際に査読・公開された内容を常に参照できます。
@article{Hendria2024,
doi = {10.21105/joss.06678},
url = {https://doi.org/10.21105/joss.06678},
year = {2024},
publisher = {The Open Journal},
volume = {9},
number = {102},
pages = {6678},
author = {Willy Fitra Hendria and Paul Gavrikov},
title = {VisualTorch: Streamlining Visualization for PyTorch Neural Network Architectures},
journal = {Journal of Open Source Software}
}
スター履歴
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。