pytorch 模型可视化的例子


Posted in Python onAugust 17, 2019

如下所示:

一. visualize.py

from graphviz import Digraph
import torch
from torch.autograd import Variable
 
 
def make_dot(var, params=None):
  """ Produces Graphviz representation of PyTorch autograd graph
  Blue nodes are the Variables that require grad, orange are Tensors
  saved for backward in torch.autograd.Function
  Args:
    var: output Variable
    params: dict of (name, Variable) to add names to node that
      require grad (TODO: make optional)
  """
  if params is not None:
    assert isinstance(params.values()[0], Variable)
    param_map = {id(v): k for k, v in params.items()}
 
  node_attr = dict(style='filled',
           shape='box',
           align='left',
           fontsize='12',
           ranksep='0.1',
           height='0.2')
  dot = Digraph(node_attr=node_attr, graph_attr=dict(size="12,12"))
  seen = set()
 
  def size_to_str(size):
    return '('+(', ').join(['%d' % v for v in size])+')'
 
  def add_nodes(var):
    if var not in seen:
      if torch.is_tensor(var):
        dot.node(str(id(var)), size_to_str(var.size()), fillcolor='orange')
      elif hasattr(var, 'variable'):
        u = var.variable
        name = param_map[id(u)] if params is not None else ''
        node_name = '%s\n %s' % (name, size_to_str(u.size()))
        dot.node(str(id(var)), node_name, fillcolor='lightblue')
      else:
        dot.node(str(id(var)), str(type(var).__name__))
      seen.add(var)
      if hasattr(var, 'next_functions'):
        for u in var.next_functions:
          if u[0] is not None:
            dot.edge(str(id(u[0])), str(id(var)))
            add_nodes(u[0])
      if hasattr(var, 'saved_tensors'):
        for t in var.saved_tensors:
          dot.edge(str(id(t)), str(id(var)))
          add_nodes(t)
  add_nodes(var.grad_fn)
  return dot

二. 使用步骤

import torch
from torch.autograd import Variable
from models import *
from visualize import make_dot
x = Variable(torch.rand(1, 3, 256, 256))
model = GeneratorUNet()
y = model(x)
g = make_dot(y)
g.view()

三. 效果展示

pytorch 模型可视化的例子

以上这篇pytorch 模型可视化的例子就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python求解数组中两个字符串的最小距离
Sep 27 Python
Python实现随机创建电话号码的方法示例
Dec 07 Python
python使用MQTT给硬件传输图片的实现方法
May 05 Python
python中的反斜杠问题深入讲解
Aug 12 Python
Python一键查找iOS项目中未使用的图片、音频、视频资源
Aug 12 Python
python连接、操作mongodb数据库的方法实例详解
Sep 11 Python
python反转列表的三种方式解析
Nov 08 Python
Python3 实现爬取网站下所有URL方式
Jan 16 Python
python实现ssh及sftp功能(实例代码)
Mar 16 Python
Selenium执行完毕未关闭chromedriver/geckodriver进程的解决办法(java版+python版)
Dec 07 Python
python字典与json转换的方法总结
Dec 28 Python
Pytorch GPU内存占用很高,但是利用率很低如何解决
Jun 01 Python
pytorch 输出中间层特征的实例
Aug 17 #Python
基于pytorch的保存和加载模型参数的方法
Aug 17 #Python
pytorch 固定部分参数训练的方法
Aug 17 #Python
python之PyQt按钮右键菜单功能的实现代码
Aug 17 #Python
pytorch 在网络中添加可训练参数,修改预训练权重文件的方法
Aug 17 #Python
python PyQt5/Pyside2 按钮右击菜单实例代码
Aug 17 #Python
Pytorch 实现自定义参数层的例子
Aug 17 #Python
You might like
ThinkPHP连接数据库及主从数据库的设置教程
2014/08/22 PHP
PHP5全版本绕过open_basedir读文件脚本漏洞详细介绍
2015/01/20 PHP
PHP7 安装event扩展的实现方法
2019/10/08 PHP
THINKPHP-Apache服务器中使用Alias虚拟目录URL重写 隐藏index.php
2021/03/09 PHP
javascript 构建一个xmlhttp对象池合理创建和使用xmlhttp对象
2010/01/15 Javascript
JavaScript性能优化 创建文档碎片(document.createDocumentFragment)
2010/07/13 Javascript
jQuery .attr()和.removeAttr()方法操作元素属性示例
2013/07/16 Javascript
jquery增加和删除元素的方法
2015/01/14 Javascript
精通JavaScript的this关键字
2020/05/28 Javascript
AngularJS基础 ng-csp 指令详解
2016/08/01 Javascript
js实现图片上传预览原理分析
2017/07/13 Javascript
详解如何使用webpack打包多页jquery项目
2019/02/01 jQuery
微信小程序引入模块中wxml、wxss、js的方法示例
2019/08/09 Javascript
解决layer 关闭当前弹窗 关闭遮罩层 input值获取不到的问题
2019/09/25 Javascript
Vue常用API、高级API的相关总结
2021/02/02 Vue.js
[05:20]卡尔工作室_DOTA2新手教学_DOTA2超强新手功能
2013/04/22 DOTA
Python脚本实现代码行数统计代码分享
2015/03/10 Python
在Mac OS上部署Nginx和FastCGI以及Flask框架的教程
2015/05/02 Python
Python删除windows垃圾文件的方法
2015/07/14 Python
使用Python发送各种形式的邮件的方法汇总
2015/11/09 Python
django 常用orm操作详解
2017/09/13 Python
用python一行代码得到数组中某个元素的个数方法
2019/01/28 Python
Python中的类与类型示例详解
2019/07/10 Python
Python高级特性——详解多维数组切片(Slice)
2019/11/26 Python
python3.6环境下安装freetype库和基本使用方法(推荐)
2020/05/10 Python
django 模型中的计算字段实例
2020/05/19 Python
浅谈移动端网页图片预加载方案
2018/11/05 HTML / CSS
S’well Bottle保温杯官网:绝缘不锈钢水瓶
2018/05/09 全球购物
美国在线家具网站:GDFStudio
2021/03/13 全球购物
大学学习个人的自我评价
2014/02/18 职场文书
歌唱比赛主持词
2014/03/18 职场文书
教师政风行风评议心得体会
2014/10/21 职场文书
运动会跳远广播稿
2015/08/19 职场文书
springboot集成springCloud中gateway时启动报错的解决
2021/07/16 Java/Android
python自动化测试通过日志3分钟定位bug
2021/11/20 Python
vue ant design 封装弹窗表单的使用
2022/06/01 Vue.js