当前位置: 首页 > news >正文

PyTorchviz 和 Graphviz:可视化 PyTorch 模型的利器

文章目录

    • 工具简介:PyTorchviz+Graphviz
  • Windows Anaconda环境下的安装指南
    • 1. 安装 Graphviz
    • 2. 安装 PyTorchviz
  • 使用示例
    • 基本用法
    • 高级用法
    • 常见问题解决

工具简介:PyTorchviz+Graphviz

  • 在深度学习模型开发过程中,理解模型的结构和数据流动对于调试和优化至关重要。PyTorchviz 和 Graphviz 是两个强大的工具,可以帮助我们可视化 PyTorch 模型的计算图。

  • PyTorchviz 是一个基于 Graphviz 的 Python 包,专门用于可视化 PyTorch 计算图。它能够:显示模型的前向和后向计算图、展示张量的形状和操作类型、帮助理解复杂的模型架构

  • Graphviz 是一个开源的图形可视化软件,它使用 DOT 语言来描述图形,能够自动生成各种复杂的图形布局。PyTorchviz 依赖 Graphviz 来渲染计算图。

Windows Anaconda环境下的安装指南

1. 安装 Graphviz

  1. 打开https://graphviz.org/download/,选择本平台的安装包。
    在这里插入图片描述
  2. 注意安装过程中使用默认路径安装和配置环境变量
    在这里插入图片描述
  3. 使用命令验证环境变量配置
dot --version
dot - graphviz version 12.2.1 (20241206.2353)

2. 安装 PyTorchviz

  • 在Anaconda Python 环境中安装grahpviz和PyTorchviz:
pip install grahpviz
pip install torchviz

使用示例

基本用法

import torch
from torch import nn
from torchviz import make_dot
import os
os.environ["PATH"] += os.pathsep + 'C:/Program Files/Graphviz/bin'
from torch.onnx import TrainingMode # 导出 ONNX 模型时设置模式为 EVAL# 生成一个形状为1*8的随机张量
x = torch.randn(1,8)
# 创建输入和模型
model = nn.Sequential(nn.Linear(8, 16),nn.Tanh(),nn.Linear(16, 1)
)# 使用make_dot函数针对x生成过程计算图
vis_graph = make_dot(model(x), params=dict(model.named_parameters()))
# 查看生成的图
vis_graph.view()
#  生成ONNX文件
with torch.onnx.select_model_mode_for_export(model, TrainingMode.EVAL):# 使用torch.jit.trace记录模型的计算过程trace= torch.jit.trace(model, (x,))output = trace(x)
print(output)
# 在 Jupyter Notebook 中直接显示
display(vis_graph)

在这里插入图片描述

高级用法

# 自定义节点外观
dot = make_dot(y, params=dict(model.named_parameters()),show_attrs=True, show_saved=True)# 保存为PDF (更清晰的矢量图)
dot.render('model_graph', format='pdf')# 只显示特定部分
dot = make_dot(y, params=dict(list(model.named_parameters())[:1]))  # 只显示第一层

常见问题解决

  1. Graphviz 可执行文件未找到
    Error: failed to execute ['dot', '-Tpng'], make sure the Graphviz executables are on your systems' PATH
    
  • 解决方法:在代码中指定路径:
    import os
    os.environ["PATH"] += os.pathsep + 'C:/Program Files/Graphviz/bin/'
    
  1. Jupyter Notebook 中不显示图像:确保安装 ipython,尝试使用 display(dot) 而不是直接输出。

相关文章:

  • 【MySQL】07.内置函数
  • 电路笔记(元器件):CAN 收发器 SN65HVD233 具有待机模式和环回功能的 3.3V CAN 收发器
  • 科技初创企业创新推动商业未来
  • 不使用SOAP,从PDF表单连接数据库
  • AbMole| MG132(133407-82-6,M1902,蛋白酶体抑制剂)
  • Redis 8.0 新增数据结构深度解析:从核心功能到生态重构
  • c++ constexpr关键字
  • 打破传统范式,线上 3D 画展彰显多元亮点
  • GPU训练和call方法
  • el-select中自定义 两组el-option,但是key不一样,并且点击需获取当前整个项的所有属性
  • LLM多轮对话效果优化之道
  • Vue3 对象转换
  • 谷歌浏览器调试python pygui程序
  • 《Cesium全生态解析:从入门到精通的3D地理空间开发指南》
  • 无人机桥梁检测如何通过数据存储、边缘AI、无线通讯等技术路线,提升检测效率
  • 算法备案:规范互联网信息服务,破除 “信息茧房”
  • 无人机飞行间隔安全智能评估、安全风险评估
  • .jsx文件和.tsx文件有什么区别
  • 对比Java、Python和C++的数据库操作生态
  • 11.5 Python+LangGraph智能代理开发:节点设计与业务流实战全解析
  • 做那种的视频网站有哪些/网站建设seo优化培训
  • 网站建设能用手机制作吗/搜索引擎营销sem包括
  • wordpress分类页首页调用分类描述/seo优化及推广如何运营
  • 天元建设集团有限公司股份/沈阳seo排名公司
  • 中山市网站建站公司/南宁关键词优化软件
  • 江苏网站关键词优化优化/网站建设报价方案