hiddenstateresearch/visualtorch
VisualTorch aims to help visualize Torch-based neural network architectures.
VisualTorch – 快速概览
它是什么 – VisualTorch 是一个 Python 库,可将 PyTorch 模型转换为可读的图表。它通过运行一次虚拟前向传播、追踪操作,然后以三种样式之一绘制架构:
- 流程样式 – 层从左到右堆叠,类似于数据流图。
- 图样式 – 更传统的节点-边图,显示连接关系。
- LeNet 样式 – 紧凑的教科书式布局。
该库还可以导出动画 GIF,逐层展示模型。
为什么对 AI 从业者重要
当你构建或分享神经网络时,清晰的视觉表示有助于:
- 沟通 – 向协作者或审阅者解释模型结构。
- 调试 – 发现缺失的连接或意外的分支。
- 文档 – 在论文、笔记本或 README 中嵌入图表。
VisualTorch 填补了简单文本摘要(torchsummary)和重型图工具(torchviz)之间的空白。它添加了统一的追踪后端,适用于 nn.Sequential 和任意自定义模块。
核心功能(根据 README 描述)
| 功能 | 你获得的内容 |
|---|---|
| 三种渲染样式 | flow、graph 和 lenet 布局,每种都有可配置的颜色和字体。 |
| 动画 GIF 导出 | visualtorch.animate(model, input_shape, style=…) 创建架构的逐步展示。 |
| 维度标注 | 选项 show_dimension=True 将每个输出张量的形状添加到节点标签中。 |
| MCP 服务器集成 | 可选的 visualtorch[mcp] 安装一个基于 stdio 的通用服务器,可从任何客户端调用以生成 PNG 或 GIF,而无需嵌入库。 |
| 研究就绪的引用 | 提供 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)。对于需要在论文、演示或文档中传达模型架构而无需编写自定义绘图代码的研究人员和工程师来说,它特别有用。
相关
- 项目
- 项目
- 项目
- 项目