pytorch 网络可视化(六):hiddenlayer

基本情况

pytorch == 1.1.0
torchvision == 0.3.0
hiddenlayer == 0.2
提前说:做好版本之间的匹配能避免很多错误,少走很多弯路。

安装 hiddenlayer

打开 Anaconda Prompt 进入自己的 pytorch 环境,运行代码安装 hiddenlayer0.2:

pip install hiddenlayer==0.2

检查是否安装成功

运行 python 进入交互式环境,导入 hiddenlayer 包如果不报错则表示安装成功。

在这里插入图片描述

查看网络结构

进入自己的 python 编辑器,解释器选择自己 pytorch 环境下的 python.exe,运行代码:

import torch
import hiddenlayer as h
from torchvision.models import resnet18  # 以 resnet18 为例

myNet = resnet18()  # 实例化 resnet18
x = torch.randn(16, 3, 64, 64)  # 随机生成一个输入
myNetGraph = h.build_graph(myNet, x)  # 建立网络模型图
# myNetGraph.theme = h.graph.THEMES['blue']  # blue 和 basic 两种颜色,可以不要
myNetGraph.save(path='./demoModel.png', format='png')  # 保存网络模型图,可以设置 png 和 pdf 等

运行代码后会在当前工程路径下生成一个文件,本例会生成一张名为 demoModel.png 的图片,打开图片可以看到网络的结构如图(为方便展示只截取一部分)。

在这里插入图片描述
可以看到在输出的图片中不仅有当前网络结构,还包括输入数据的流向和变化情况,简单实用。

可能遇到的问题

错误 ①:AttributeError: module ‘torch.jit’ has no attribute ‘get_trace_graph’.
错误 ②:AttributeError: ‘torch._C.Value’ object has no attribute ‘uniqueName’.

解决办法: 以上两个错误都是版本不适配问题,改变 pytorch 和 hiddenlayer 版本,可以搭配的版本为 pytorch1.1.0 + hiddenlayer0.2。

警告 ③:Pango-WARNING **: couldn’t load font “Times Not-Rotated 10”, falling back to “Sans Not-Rotated 10”, expect ugly output.

解决办法: Times 字体没办法加载,考虑是系统没有这个字体,有兴趣的可以装个 Times 系统字体看看,我的解决办法是选中 THMES 属性,右击打开 graph.py 文件。

在这里插入图片描述
直接修改 graph.py 文件中 THEMES 里 basic 分支选项中的 font_name对应的 Times 为 Times-Roman 即可,当然改成其他可行的字体也是可以的,觉得没必要的也可以忽视这个警告。

在这里插入图片描述

其实仔细看原代码的话可以发现,原来只提供了 basic 和 blue 两种主题,我们完全可以根据自己需要再设计一种主题,比如在 blue 后再加上一个 red,如下:

"red": {
    "background_color": "#FFFFFF",  # 背景色
    "fill_color": "#DC143C",  # 填充色
    "outline_color": "#0000FF",  # 边框色
    "font_color": "#000000",  # 字体颜色
    "font_name": "SimHei",  # 字体
    "font_size": "10",  # 字体大小
    "margin": "0,0",
    "padding":  "1.0,0.5",
},

输出的网络结果图是这样的(净整些没用的,哈哈):

在这里插入图片描述

  • 39
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 40
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 40
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

听 风、

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值