精华内容
下载资源
问答
  • onnx模型可视化方法

    2021-05-14 20:48:06
    onnx(Open Neural Network Exchange,开放神经网络交换)格式,是一个用于表示深度学习模型的标准,可使模型在不同框架之间进行转移,在使用pytorch框架好模型后需要部署到边缘端,此时用c++直接

    onnx(Open Neural Network Exchange,开放神经网络交换)格式,是一个用于表示深度学习模型的标准,可使模型在不同框架之间进行转移,在使用pytorch框架好模型后需要部署到边缘端,.pth不大适合部署边缘端环境,最好需要转为onnx框架模型,在转换为.onnx后方便查看是否转换正确,可以通过可视化onnx模型来确认。

    可视化教程链接:https://github.com/onnx/tutorials/blob/master/tutorials/VisualizingAModel.md

    首先需要安装好onnx,然后安装以下步骤进行转换:

    1. 先安装两个库:

    pip install pydot
    pip install Graphviz

    2. 生成dot文件

    python onnx/tools/net_drawer.py --input <path to squeezenet.onnx> --output squeezenet.dot --embed_docstring

    3.生成可视化文件squeezenet.svg

    dot -Tsvg squeezenet.dot -o squeezenet.svg

    双击或者使用浏览器即可打开文件squeezenet.svg

    下图为转换好的yolov3-tiny的onnx格式文件。

    展开全文
  • pytorch模型转成onnx时会产生很多意想不到的错误,然而对onnx模型进行Debug是非常麻烦的事,往往采用可视化onnx模型然后找到报错节点之后确定报错节点在源码中的错误位置的方法进行Debug,然而将可视化的onnx图与源...

    pytorch模型转成onnx时会产生很多意想不到的错误,然而对onnx模型进行Debug是非常麻烦的事,往往采用可视化onnx模型然后找到报错节点之后确定报错节点在源码中的错误位置的方法进行Debug,然而将可视化的onnx图与源代码对应起来可不是一件简单的事,本文主要记录pytorch算子与可视化的onnx节点的对应关系以方便对onnx节点在源代码中进行溯源,本文中的onnx模型使用Netron软件进行可视化,一些普通的算子,如相加、相乘、矩阵乘法、softmax、卷积层等计算的onnx节点就是它们对应的名字因此不再记录,只记录比较复杂的算子。

    1.onnx中Gather节点对应pytorch中对tensor的索引操作,tensor[0]在onnx中可视化是:

    其中的indices就是索引值。

    2.torch.cat()对应

    3.torch.squeeze()对应下图(可能不包括Gather节点):

    4.RNN层,下图的节点我遇到的是显示rnn层的权重:

    5.矩阵切片操作,如下的节点是对矩阵进行切片操作如tensor[0:, :, 0:2]。

    6.cast节点对应更改tensor类型的操作,比如int型的tensor改为float型,tensor.float().

    7.torch.repeat()算子对应onnx节点结构如下:

    8.pytorch中tensor修改索引部分的值,代码举例:tensor[0:3] +=  torch.tensor([1]),或 tensor[0:3] = tensor[0:3] +  torch.tensor([1]),这行代码的onnx实现结构如下。

     

    目前觉得不好理解的onnx节点就这些,后续碰到会再补充,读者如果有不清楚的onnx节点欢迎在评论区评论。

    展开全文
  • 很多时候,复现人家工程的时候,需要了解人家的网络结构。但不同框架之间可视化网络层方法不一样,这样给研究人员造成了很大的困扰。前段时间,发现了一个可视化模型结构的shen:Netron

    很多时候,复现人家工程的时候,需要了解人家的网络结构。但不同框架之间可视化网络层方法不一样,这样给分析人员造成了很大的困扰。前段时间,发现了一个可视化模型结构的神器:Netron.

    目前的Netron支持主流各种框架的模型结构可视化工作,github链接:https://github.com/lutzroeder/Netron

    以下是简介来源于netron的官方仓库

    支持windows,Linux,mac系统

    Windows系统的安装方式:

    Linux(Ubuntu)系统的安装方式:

    snap install netron

    我们一mnist为例来说明整个过程,mnist是一个入门级的计算机视觉数据集,当我们学习编程的时候,第一件事往往是学习打印helloworld, 在机器学习入门的领域里,我们会用mnist数据集来试验各种模型。

    获取mnist.onnx.

    从xboot大神的libonnx项目中获取minist的onnx格式模型描述文件。

    用netron观察mnist.onnx的结构网络:

    用netron观察mnist.onnx的结构网络:

     图中,每个节点都是一个到算子的调用。


    结束!

    展开全文
  • 模型可视化:GraphViz,可以直接在jupyter中使用;Netron window版本 模型转化:在onnx/onnx-ecosystem容器中进行 2.代码 创建并训练模型 import matplotlib.pyplot as plt %matplotlib inline import...

    1.使用环境

    IDE:Jupyter Lab,使用Python2 kernel实现

    模型可视化:GraphViz,可以直接在jupyter中使用;Netron    window版本

    模型转化:在onnx/onnx-ecosystem容器中进行

    2.代码

    创建并训练模型

    import matplotlib.pyplot as plt
    %matplotlib inline
    import numpy as np
    import pandas as pd
    
    
    from sklearn.datasets import load_iris
    from sklearn import tree
    
    iris = load_iris()
    
    # 训练模型
    clf =  tree.DecisionTreeClassifier()
    clf = clf.fit(iris.data, iris.target)
    with open("iris.dot", 'w') as f:
        f = tree.export_graphviz(clf, out_file=f)
    
    
    from IPython.display import Image  
    import pydotplus
    
    dot_data = tree.export_graphviz(clf, out_file=None, 
                             feature_names=iris.feature_names,  
                             class_names=iris.target_names,  
                             filled=True, rounded=True,  
                             special_characters=True)
    
    
    graph = pydotplus.graph_from_dot_data(dot_data)
    
    # 模型可视化
    Image(graph.create_png())
    
    
    

     

    将图片保存为pdf

    #设置环境变量,解决调用graph时“InvocationException: GraphViz's executables not found”的错误。
    
    import os
    os.environ["PATH"] += os.pathsep + 'D:/Anaconda2/Library/bin/graphviz/' 
    
    dot_data = tree.export_graphviz(clf, out_file=None)
    graph = pydotplus.graph_from_dot_data(dot_data) 
    graph.write_pdf("iris.pdf")

    使用joblib保存模型为pkl格式,并读取pkl格式的模型文件进行预测

    from sklearn.externals import joblib
    joblib.dump(clf, "DecisionTreeClassifier.pkl")
    
    f1=joblib.load('DecisionTreeClassifier.pkl')
    
    f1.score(iris.data, iris.target)
    
    
    

    使用pickle保存模型为文本格式并读取通过pickle保存的模型文件进行预测

    import pickle
    s=pickle.dumps(clf)
    f=open('DecisionTreeClassifier.txt','w')
    f.write(s)
    f.close()
    
    f2=open('DecisionTreeClassifier.txt','r')
    s2=f2.read()
    clf2=pickle.loads(s2)
    clf2.score(iris.data, iris.target)

    模型格式转换

    在onnx/onnx-ecosystem容器执行如下代码:

    将pkl格式的模型文件转换为onnx:DecisionTreeClassifier.pkl  ----> model.onnx

    from sklearn.externals import joblib
    from skl2onnx import convert_sklearn
    from skl2onnx.common.data_types import *
    import onnxmltools
    
    # Update the input name and path for your sklearn model
    input_skl_model = 'DecisionTreeClassifier.pkl'
    
    # input data type for your sklearn model
    input_data_type = [('float_input', FloatTensorType([1, 4]))]
    
    # Change this path to the output name and path for the ONNX model
    output_onnx_model = 'model.onnx'
    
    # Load your sklearn model
    skl_model = joblib.load(input_skl_model)
    
    # Convert the sklearn model into ONNX
    onnx_model = onnxmltools.convert_sklearn(skl_model, initial_types=input_data_type)
    
    # Save as protobuf
    onnxmltools.utils.save_model(onnx_model, output_onnx_model)

    3.使用Netron查看pkl模型和onnx模型

    查看pkl格式的模型

     

    查看onnx格式的模型

     

    展开全文
  • 有时候为了更好的分析现有模型结构,可能需要对模型进行可视化。这里推荐一个在线的可视化图片生成工具 —— netron。通过网页端简单上传 模型就能生成对应模型
  • 模型网络结构可视化之 netron GitHub 链接如下 ... 网页版工具直接拖拽使用地址 https://netron.app/ ...支持客户端和网页操作 ...网页版ONNX模型可视化测试 https://netron.app/ 操作如下 可视化效果如下 ...
  • 可视化的方式比较简单,HBuilderX内置相关环境,开箱即用,无需配置nodejs。 开始之前,开发者需先下载安装如下工具: HBuilderX:官方IDE下载地址 HBuilderX是通用的前端开发工具,但为uni-app做了特别强化,请...
  • Netron 是神经网络、深度学习与机器学习模型可视化工具, 支持Caffe, tensorflow, onnx, mxnet。github上下载很慢
  • .pth转.onnx可视化

    2021-04-09 20:37:37
    因为centernet保存的模型中包含有dict_keys([‘epoch’, ‘state_dict’, ‘optimizer’]),其中epoch和optimizer是多余的信息,所以在load .pth文件之后应该过滤多余的两个key torch_model = torch.load(pthfile) ...
  • Paddle2.0:ONNX模型的导出和部署

    千次阅读 2021-01-09 18:15:55
    引入 除了动态图转静态图的方式导出推理模型之外 Paddle2.0中也正式内置了ONNX模型的导出功能 ...你可以在很多支持ONNX模型导出的框架上构建模型,然后导出ONNX模型进行预测部署 Paddle2ONNX 目前Paddle导出ONNX
  • pytorch模型可视化

    2021-01-24 17:28:45
    pytorch中model.save()保存的pth模型在Netron中不能画出结构与土,因此转化成onnx模型再画 from torch.autograd import Variable dummy_input = Variable(torch.randn(10, 3, 224, 224)).cuda()#randn(batch_size,...
  • 有一个.tflite的深度学习模型框架文件需要可视化展示,网上搜到一个好用的可视化工具Netron,分享一下。 在线直接打开:https://netron.app/ github地址:https://github.com/lutzroeder/netron Netron的介绍 ...
  • 一、使用netron工具可视化pytorch模型,tensorboard太丑了不直观。 项目地址:https://github.com/lutzroeder/Netro 参考:https://blog.csdn.net/jieleiping/article/details/102975939 1.安装netron pip ...
  • 模型可视化 netron

    2021-07-02 14:49:22
    depth_multiple: 0.33 # model depth multiple 控制模型的深度(BottleneckCSP个数) width_multiple: 0.50 # layer channel multiple 控制Conv通道channel个数(卷积核数量) # depth_multiple表示Bottlen
  • onnxsim-让导出的onnx模型更精简

    千次阅读 2021-02-22 21:31:53
    用torch导出的模型有时候参数过多,不利于查看。查找资料onnxsim可以简化模型,让显示更加自然。 如,reshap层的导出,红框中细节参数被显示出现。默认导出: 使用onnxsim 可以让结构更加简洁,具体执行方式如下...
  • 深度探索ONNX模型部署

    2021-06-23 19:03:43
    点击上方“计算机视觉工坊”,选择“星标”干货第一时间送达导读这篇文章从多个角度探索了ONNX,从ONNX的导出到ONNX和Caffe的对比,以及使用ONNX遭遇的困难以及一些解决办法,另...
  • pytorch借助tensorboard实现模型可视化

    千次阅读 2018-06-24 14:50:26
    补充 : 刚发现貌似sqrt操作是不支持的 python库: pytorch(&gt;=0.3) , onnx, tensorboardX 原理: ...Open Neural Network Exchange (ONNX)是开放生态系统的第一步...它定义了一个可以扩展的计算图模型,同时...
  • 模型可视化神器

    2019-05-24 09:57:22
    今天发现了一个模型可视化的神器-netron, 只需下载安装,即可用,目前支持supportsONNX(.onnx,.pb,.pbtxt),Keras(.h5,.keras),CoreML(.mlmodel),Caffe2(predict_net.pb,predict_net.pbtxt),MXNet(.model,-symbol....
  • 使用工具转pth模型到onnx模型:python tools/pytorch2onnx.py configs/top_down/hrnet/coco/hrnet_w48_coco_256x192.py checkpoints/hrnet_w48_coco_256x192-b9e0b3ab_20200708.pth --output-file hrnet_w48_coco_...
  • pytorch pth 模型转 onnx模型,并验证结果正确性

    千次阅读 热门讨论 2020-11-20 22:23:51
    pytorch 模型部署很重要的一步是转存pth模型ONNX,本文记录方法。 转存 onnx 建立自己的pytorch模型,并加载权重 model = create_model(num_classes=2) model.load_state_dict(load(model_path, map_location='...
  • 模型可视化工具netron

    2021-08-13 10:14:42
    目录netron:使用方法yolov5中的使用.pt模型模型转换 netron: 详情可见官方github:https://github.com/lutzroeder/netron 使用方法 为了方便使用,我们直接用它的网页版,进入网址:https://netron.app/,直接点击...
  • Netron支持主流各种框架的模型结构可视化工作,github地址:https://github.com/lutzroeder/netron Netron 支持的框架和对应文件如下: ONNX (.onnx, .pb, .pbtxt), Keras (.h5, .keras), CoreML (.mlmodel),...
  • 模型可视化-Netron

    2021-01-21 13:55:13
    参考:Netron Netron is a viewer for neural network, deep learning and machine learning models.
  • 在复现别人的模型的时候,有时我们要知道一个模型的输入与输出名,可是有时作者并没有告诉我们,要我们自己去查,有了这个工具可以清晰地看见网络的输入输出名,具体的网络结构。相比tensorboard它更加轻量,而且...
  • 轻量好用的神经网络模型可视化工具netron

    万次阅读 多人点赞 2019-01-08 08:43:22
    轻量好用的神经网络模型可视化工具netron简介支持的框架安装方法测试 简介 在复现别人的模型的时候,有时我们要知道一个模型的输入与输出,可是有时作者并没有告诉我们,要我们自己去查,有了这个工具可以清晰地...
  • 模型结构可视化神器Netron——免安装在线看网址:https://lutzroeder.github.io/netron/,直接导入本地.onnx模型即可。 网址:https://lutzroeder.github.io/netron/,直接导入本地.onnx模型即可。
  • 点击上方“3D视觉工坊”,选择“星标”干货第一时间送达本文给大家介绍一个模型转换格式ONNX可视化工具Netron。ONNX是微软设计的一种多平台的通用文件格式,帮助算法人员进行模型部署...
  • 神经网络模型可视化工具 Netron | 每日工具推荐

    千次阅读 多人点赞 2021-09-15 17:27:59
    今天要给大家介绍的是神经网络模型可视化工具 Netron,Netron 支持 ONNX, TensorFlow Lite, Keras, Caffe, Darknet, ncnn, MNN, PaddlePaddle, Core ML, MXNet, RKNN, MindSpore Lite, TNN, Barracuda, Tengine, ...
  • 模型可视化工具Netron(支持tf, caffe, keras,onnx等多种框架) netron工具的官网下载请参考:https://github.com/lutzroeder/Netron 但本人尝试下载windows版本,GitHub下载失败,所以搜索汇总以下两种解决方案: ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,017
精华内容 406
关键字:

onnx模型可视化