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

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) 而不是直接输出。
http://www.xdnf.cn/news/8370.html

相关文章:

  • 第九天的尝试
  • LNCS-2009《Adaptive Sampling for $k$-Means Clustering》
  • postgresql 常用参数配置
  • Pytorch中文文本分类
  • 科技化企业展厅需关注哪些前沿技术?互动设计如何提升用户体验?
  • wsl2 不能联网
  • 二次开发系列(二):从基础到进阶,用类定义实现自定义属性面板的高阶功能
  • 【MySQL】第6节|深入理解Mysql事务隔离级别与锁机制
  • 图形推理_
  • Kotlin协程优化Android ANR问题
  • AI-02a5a8.神经网络-与学习相关的技巧-超参数的验证
  • Linux中的tty与login之间的关系
  • Linux系统常用指令
  • CMake指令:option()
  • 代码讲解Java线程转换
  • 达梦数据库-学习-21-C 外部函数
  • 使用vscode MSVC CMake进行C++开发和Debug
  • 智能指针
  • 20250523在荣品的PRO-RK3566开发板的Android13下解决千兆网异常的问题【硬件部分】
  • 【算法系列】协同过滤算法
  • 通过vue-pdf和print-js实现PDF和图片在线预览
  • bi平台是什么意思?bi平台具体有什么作用?
  • Unreal渲染源码简读(一)RHI/Shader
  • MacOS Docker 启动 RustDesk Server OSS
  • 前端状态管理介绍(React状态管理)(通过管理状态来控制UI的呈现,确保数据的一致性和可维护性)(界面与数据分离、可预测性、组件化、响应式更新)
  • 高可用架构设计要点
  • 钉钉出口IP有哪些
  • linux strace调式定位系统问题
  • python学习day2:进制+码制+逻辑运算符
  • 云存储迁移遇瓶颈?大文件跨平台传输加速指南