温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何使用pytorchviz和Netron可视化pytorch网络结构

发布时间:2021-12-04 18:14:56 来源:亿速云 阅读:965 作者:柒染 栏目:大数据

今天就跟大家聊聊有关如何使用pytorchviz和Netron可视化pytorch网络结构,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

一 使用pytorchviz可视化

  • 安装依赖和pytorchviz

pip install graphviz
pip install tochviz (或pip install git+https://github.com/szagoruyko/pytorchviz)

Graphviz 是 AT&T 开发的一款开源的图形可视化软件,可以根据dot脚本语言中绘制的无向图(显示了对象间最简单的关系)画出直观的树形图。
Graphviz在Windows中的安装需要下载Release包,并配置环境变量,否则会报错:

graphviz.backend.ExecutableNotFound: failed to execute [‘dot’, ‘-Tpng’, ‘-O’, ‘tmp’], make sure the Graphviz executables are on your systems’ PATH

Graphviz下载地址 https://graphviz.gitlab.io/_pages/Download/Download_windows.html

如何使用pytorchviz和Netron可视化pytorch网络结构

下载之后解压出来是一个“release”文件夹,把“release\bin”目录添加到系统环境变量,之后在终端中输入“dot -V”,显示以下信息表示Graphviz配置成功:

  • torchviz可视化torch网络结构

 
  1.  

    # Created by 牧野 CSDN  

  2.  

    import torch  

  3.  

    from torch import nn  

  4.  

    from torchviz import make_dot, make_dot_from_trace  

  5.  

     

  6.  

    model = nn.Sequential()  

  7.  

    model.add_module('W0', nn.Linear(8, 16))  

  8.  

    model.add_module('tanh', nn.Tanh())  

  9.  

    model.add_module('W1', nn.Linear(16, 1))  

  10.  

     

  11.  

    x = torch.randn(1,8)  

  12.  

     

  13.  

    vis_graph = make_dot(model(x), params=dict(model.named_parameters()))  

  14.  

    vis_graph.view() # 会在当前目录下保存一个“Digraph.gv.pdf”文件,并在默认浏览器中打开  

  15.  

     

  16.  

    with torch.onnx.set_training(model, False):  

  17.  

    trace, _ = torch.jit.get_trace_graph(model, args=(x,))  

  18.  

    make_dot_from_trace(trace)  

调用“make_dot”方法创建一个dot对象,使用“view”方法显示出来。

pytorch2.2和1.3版本中使用“torch.jit.get_trace_graph”可能会报错,1.1版本ok。

AttributeError: 'torch._C.Value' object has no attribute 'uniqueName'

可视化结果:

如何使用pytorchviz和Netron可视化pytorch网络结构

二 使用Netron可视化

Netron开源地址: https://github.com/lutzroeder/Netron
Netron的开发者是Lutz Roeder,一位来自微软Visual Studio团队的帅哥:

Netron是一款支持离线查看“各种”神经网络框架的模型可视化神器,其中的“各种”包括:

  1. ONNX (.onnx, .pb, .pbtxt)

  2. Keras (.h6, .keras)

  3. Core ML (.mlmodel)

  4. Caffe (.caffemodel, .prototxt)

  5. Caffe2 (predict_net.pb, predict_net.pbtxt)

  6. MXNet (.model, -symbol.json)

  7. NCNN (.param)

  8. TensorFlow Lite (.tflite)

  9. TorchScript (.pt, .pth)

  10. PyTorch (.pt, .pth)

  11. Torch (.t7)

  12. Arm NN (.armnn)

  13. BigDL (.bigdl, .model)

  14. Chainer, (.npz, .h6)

  15. CNTK (.model, .cntk)

  16. Deeplearning4j (.zip)

  17. Darknet (.cfg)

  18. ML.NET (.zip)

  19. MNN (.mnn)

  20. OpenVINO (.xml)

  21. PaddlePaddle (.zip, __model__)

  22. scikit-learn (.pkl)

  23. TensorFlow.js (model.json, .pb)

  24. TensorFlow (.pb, .meta, .pbtxt)

嗯,够多了。

Netron使用很简单,作者提供了各个平台的安装包,安装之后打开,把保存的模型文件拖入就可以了。
还以上边的模型为例,先把pytorch模型保存出来:

 
  1.  

    import torch  

  2.  

    from torch import nn  

  3.  

    from torchviz import make_dot, make_dot_from_trace  

  4.  

     

  5.  

    model = nn.Sequential()  

  6.  

    model.add_module('W0', nn.Linear(8, 16))  

  7.  

    model.add_module('tanh', nn.Tanh())  

  8.  

    model.add_module('W1', nn.Linear(16, 1))  

  9.  

     

  10.  

    torch.save(model, 'model.pth')  # 保存模型  

之后用Netron打开保存的“model.pth”:

如何使用pytorchviz和Netron可视化pytorch网络结构

网络结构很清晰,一目了然,右侧还能显示操作的进一步信息。

看完上述内容,你们对如何使用pytorchviz和Netron可视化pytorch网络结构有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI