Netron研究

神经网络可视化工具Netron 1. 下载安装Netron 下载链接:https://github.com/lutzroeder/netron/releases/tag/v3.5.4 安装命令: sudodpkg-inetron_3.5.4_amd64.deb 2. 使用Netron进行网络可视化 首先在终端输入netron命令 接着打开基于pytorch的.p... 阅读详情

Netron研究

一、简介

  Netron是微软lutzroeder开源的一款软件,是一种神经网络,深度学习和机器学习模型的可视化工具。

  Netron支持部分主流深度学习框架的模型,如下所示:

  • ONNX (.onnx, .pb, .pbtxt)
  • Keras (.h5, .keras)
  • Core ML (.mlmodel)
  • Caffe (.caffemodel, .prototxt)
  • Caffe2 (predict_net.pb)
  • Darknet (.cfg)
  • MXNet (.model, -symbol.json)
  • Barracuda (.nn)
  • ncnn (.param)
  • Tengine (.tmfile)
  • TNN (.tnnproto)
  • UFF (.uff)
  • TensorFlow Lite (.tflite)

  实验性支持以下模型:

  • TorchScript (.pt, .pth)
  • PyTorch (.pt, .pth)
  • Torch (.t7)
  • Arm NN (.armnn)
  • BigDL (.bigdl, .model)
  • Chainer (.npz, .h5)
  • CNTK (.model, .cntk)
  • Deeplearning4j (.zip)
  • MediaPipe (.pbtxt)
  • ML.NET (.zip)
  • MNN (.mnn)
  • PaddlePaddle (.zip, model)
  • OpenVINO (.xml)
  • scikit-learn (.pkl)
  • TensorFlow.js (model.json, .pb)
  • TensorFlow (.pb, .meta, .pbtxt, .ckpt, .index)

二、问题和研究方向

  本文以Pytroch框架的模型FeatherNet为例。
  直接加载的FeatherNetB模型(模型文件中保存了模型结构和模型参数)可视化结果如图1,未展示出详细的模型结构。
在这里插入图片描述
图1
  针对上述问题,我们从两个方向进行研究:1)在python代码中对Pytorch模型的可视化;2)通过Netron应用程序可视化Pytorch模型。

三、方向一:代码实现pytorch模型可视化

  Netron代码可视化端口:http://localhost:8080。首先安装Netron:

pip install netron

3.1 直接加载模型

  直接加载FeatherNetB模型,在就会得到上述图1的结果,加载代码如下:

import netron

model_path = './FeatherNetB_total.pth'
netron.start(file=model_path, log=False, browse=True, port=8080, host='localhost')

3.2 先转ONNX模型,再可视化

  由于Netron支持ONNX模型,先将模型转为ONNX框架的模型,再进行可视化。如下是具体代码:

import torch
model = FeatherNetB()
d = torch.rand(1, 3, 224, 224)
o = model(d)
onnx_path = "./onnx_FeatherNetB.onnx"
torch.onnx.export(model, d, onnx_path)

import netron
netron.start(file=onnx_path, log=False, browse=True, port=8080, host='localhost')

  运行结果如图2所示:

在这里插入图片描述

  使用以上代码展示Pytorch模型时,注意避开torch.nn.DataParallel等操作(转换成ONNX模型时会报错,如下错误代码)。

ValueError: torch.nn.DataParallel is not supported by ONNX exporter, please use 'attribute' module to unwrap model from torch.nn.DataParallel. Try torch.onnx.export

四、方向二:研究Netron应用程序的源码可视化Pytorch模型

在这里插入图片描述
图3

4.1 Netron程序对Pytorch的解析支持较少

  在一个神经网络中可能出现的操作有上百种,Netron中对Pytorch模型只简单的解析几种(如下代码),导致出现如图1的结果。

switch (type) {
    case 'torch.nn.modules.container.Sequential':
        groups.push(key);
        inputs = this._loadModule(metadata, value, groups, inputs);
        groups.pop(key);
        break;
    case 'torchvision.models.densenet._Transition':
    case 'torchvision.models.resnet.Bottleneck':
    case 'torchvision.models.densenet._DenseBlock':
    case 'torchvision.models.densenet._DenseLayer':
    case 'torchvision.models.inception.BasicConv2d':
    case 'torchvision.models.inception.InceptionAux':
    case 'torchvision.models.inception.InceptionA':
    case 'torchvision.models.inception.InceptionB':
    case 'torchvision.models.inception.InceptionC':
    case 'torchvision.models.inception.InceptionD':
    case 'torchvision.models.inception.InceptionE': {
        groups.push(key);
        const node = this._createNode(metadata, groups, key, value, inputs, this._littleEndian);
        inputs = [ node.name ];
        groups.pop(key);
        break;
        }
        default: {
            const node = this._createNode(metadata, groups, key, value, inputs);
            inputs = [ node.name ];
            break;
            }

  如图4是MobileNet_V1的直接导入可视化的部分结果。
在这里插入图片描述
图4

4.2 Pytorch模型文件难以解析

  如下代码是FeatherNet模型文件中模型结构的部分内容,很难以键值的方式解析,这给Netron的解析带来很大的干扰。

FeatherNet
qXg   D:/宸插畬鎴愰」鐩?韬唤璇佹枃鏈柟鍚戞娴?浠g爜/Face_Spoofing_FeatherNet_0114/OCR_Angle_deploy.pyqX?  class FeatherNet(nn.Module):
    def __init__(self, n_class=2, input_size=224, se=False, avgdown=False, width_mult=1.):
        super(FeatherNet, self).__init__()
        block = InvertedResidual
        input_channel = 32
        last_channel = 1024
        self.se = se
        self.avgdown = avgdown
        interverted_residual_setting = [
            # t, c, n, s
            [1, 16, 1, 2],
            [6, 32, 2, 2],  # 56x56
            [6, 48, 6, 2],  # 14x14
            [6, 64, 3, 2],  # 7x7
        ]

        # building first layer
        assert input_size % 32 == 0
        input_channel = int(input_channel * width_mult)
        self.last_channel = int(last_channel * width_mult) if width_mult > 1.0 else last_channel
        self.features = [conv_bn(3, input_channel, 2)]
        # building inverted residual blocks
        for t, c, n, s in interverted_residual_setting:
            output_channel = int(c * width_mult)

  如下为Caffe等的模型部分内容,键值内容清晰明了,方便解析。

name: "ResNet-50"
input: "data"
input_dim: 1
input_dim: 3
input_dim: 224
input_dim: 224
layer {
	bottom: "data"
	top: "conv1"
	name: "conv1"
	type: "Convolution"
	convolution_param {
		num_output: 64
		kernel_size: 7
		pad: 3
		stride: 2
	}
}

4.3 解决方案

  使用以下代码把Pytorch模型结构转化为ONNX模型结构,并保存:

model = FeatherNetB()
d = torch.rand(1, 3, 224, 224)
o = model(d)
onnx_path = "./onnx_FeatherNetB.onnx"
torch.onnx.export(model, d, onnx_path)

  接着使用Netron应用程序直接打开保存的ONNX模型,如图5是mobileNet_V1的通过此方法可视化部分结果。
在这里插入图片描述
图5

五、总结以及ailab上如何展示

  针对Netron直接可视化Pytroch模型的问题,将Pytorch模型转为ONNX模型,接着使用代码或Netron程序直接可视化即可。

  ailab上可视化需先安装Netron(pip install netron),方法:指定转换成的ONNX模型路径,直接使用如下代码可视化即可。实际使用情况需安装验证。

netron.start(file=model_path, log=False, browse=True, port=8080, host='localhost')

六、拓展

  目前Caffe、tensorflow框架应用广泛,进行相关实验:
1)Caffe模型可直接可视化,方便好用
2)Netron直接可视化tensorflow模型文件时,花费的时间较长,可尝试将tensorflow转为ONNX、Caffe、ncnn等框架。

转换为onnx模型错误汇总 1、RuntimeError: Exporting the operator sparse_coo_tensor to ONNX opset version 9 is not supported. Please open a bug to request ONNX export support for the missing operator. RuntimeError: Exporting the operator sparse_coo_tensor to ONNX opset version 11 i 阅读详情

相关推荐

feathernet:用于网络的轻量级简约 C 库

羽网 用于网络的轻量级简约 C 库。 该库旨在为我自己学习网络以及提供一种在 C 程序中实现网络的快速方法。 支持 Feathernet 目前在 Linux 和 Windows 上运行 用法 要使用feathernet库,你首先需要像这样从github拉取它: git clone https://github.com/JuNijland/feathernet.git 现在您可以使用 make 编译库: cd feathernet && make build 这会将库文件feathernet.a放在构建文件夹中 您现在可以在文件中包含feathernet.h (位于headers 文件夹中)并使用该库。 但是,您确实需要在编译命令的末尾添加feathernet.a。 我用来编译测试的命令将如下所示: gcc -ansi -o build/http_client examples/h

Pytorch模型转成onnx并可视化

本文介绍 pth 模型转为 onnx 模型、使用 onnx 模型进行可视化以及过程中可能出现的问题。

小威的博客 2912

实战经验:Sensor Bringup中那些坑我都帮你踩过了(避坑指南)

本文是一份详尽的Sensor Bringup实战避坑指南,总结了从I2C通信、MCLK时钟、电源管理到图像异常等关键环节的常见问题与排查方法。文章提供了系统化的调试工作流,强调先硬件后软件的排查原则,旨在帮助硬件工程师快速定位并解决Sensor启动过程中的难题,提升开发效率。

weixin_29212429的博客 576

深度学习踩坑之路

看了这个标题,其实内容也没有太多的神秘,只是记录在做深度学习中遇到的一些bug以及对应的解决方案。 Issue1-模型部署 问题描述 使用Flask部署tensorflow+keras的建筑物识别Api的时候,模型加载成功,但是使用模型预测的时候会报错,提示:Tensor Tensor(“softmax_1/truediv:0”, shape=(?, ?, 2), dtype=float32) is not an element of this graph。具体代码如下: # 模型加载的代码: buildi

Fantastic 2162

英飞凌 AURIX Development Studio工程移植到Hightec的方法

1. 软件简介 AURIX™ Development Studio是英飞凌针对AURIX TC2XX/TC3XX系列单片机推出了一款免费的软件,集成了iLLD库,内置Tasking compiler和Tasking Debugger,但这两个模块只能用于非商业用途,可供学习和试用。iLLD库是英飞凌为TC2XX和TC3XX Tricore系列单片机提供的底层驱动库,有完善的使用手册,和较好的移植性。 Hightec是一款可以用来开发Aurix系列单片机的编译器,有免费版,可商用,集成GCC编译器,可用UDE

weixin_42967006的博客 7137

具身智能四大技术路线:VLA、大小脑、世界模型与强化学习

具身智能是机器人实现感知-决策-执行闭环的核心范式,其本质在于物理世界中的具身化交互能力。技术演进围绕如何高效建模环境、理解指令并生成鲁棒动作展开,衍生出四大主流路径:视觉-语言-动作(VLA)端到端学习、大小脑分层控制、世界模型驱动预测,以及强化学习原生策略优化。VLA强调多模态对齐与泛化能力,适合语义理解优先场景;大小脑架构兼顾实时性与可解释性,是工业落地的高可靠选择;世界模型追求内在物理模拟,代表长期认知跃迁方向;强化学习则扎根仿真试错,在力控、抓取等连续控制任务中展现强鲁棒性。本文聚焦这四大路线的技

weixin_32181267的博客 296

Pytorch使用nn.DataParallel失效:只能使用单GPU / 无法使用多GPU训练

官方文档: torch.nn.DataParallelDataParallel 在 Module 级别实现并行计算,关于使用了 DataParallel 而实际训练时不起作用(只能使用单 GPU)的可能原因:1. 设置的 Batch Size 小于可用的 GPU 数量,这一点在官方文档中也有说明: 需要保证大于使用的 GPU 数量。2. 未使用 nn.Module 的默认 forward() 方法执行前向传播。一般情况下,定义的 Model 继承自 ,在进行前向传播时,调用 函数,能够进行多 GPU 并行

学习 & 分享 ~ 7743

海康VM加密狗无法识别常见问题排查

海康VM加密狗无法识别常见问题排查

视觉人机器视觉的博客 2723

Pytorch中torch.nn.DataParallel负载均衡问题

1. 问题概述 现在Pytorc下进行多卡训练主流的是采用torch.nn.parallel.DistributedDataParallel()(DDP)方法,但是在一些特殊的情况下这样的方法就使用不了了,特别是在进行与GAN相关的训练的时候,假如使用的损失函数是 WGAN-GP(LP),DRAGAN,那么其中会用到基于梯度的惩罚,其使用到的函数为torch.autograd.grad(),但是很不幸的是在实验的过程中该函数使用DDP会报错: File "/home/work/anaconda3/envs/

m_buddy的博客 6766

【计算机视觉】pyrealsense2:Intel RealSense 深度相机的 Python 接口实战指南

pyrealsense2:Intel RealSense 深度相机的 Python 接口实战

weixin_43988131的博客 4352

用51单片机和LD3320语音模块DIY一个会说话的温度报警器(附完整代码)

本文详细介绍了如何使用51单片机和LD3320语音模块DIY一个智能温度报警器,包括硬件选型、电路设计、软件开发及核心功能实现。通过DS18B20温度传感器和语音模块的结合,实现温度超标时的语音报警功能,适合智能家居系统等应用场景。附完整代码,方便开发者快速复现。

weixin_42525632的博客 420

模型可视化工具-netron网页版

netron网页版 https://lutzroeder.github.io/netron/

JimmyGoong的博客 6062

GEE初学:谷歌地球引擎GEE入门指南(最新注册全流程)

本教程详细介绍了谷歌地球引擎(GEE)的注册与基础操作流程。主要内容包括:1)非商业账号注册步骤,需提供学术机构凭证和研究目的;2)Google Cloud项目创建与API激活;3)Shapefile文件上传方法及资源ID获取;4)JavaScript脚本编写与地图可视化实现。教程通过代码示例展示了两种多边形显示方式(填充和轮廓模式),并强调了GEE的云端处理优势,包括免费访问40多年卫星数据、无需本地高性能硬件等特点。整个流程从账号注册到首个地图可视化完成约需10-15分钟,适合遥感分析初学者快速入门。

此星光明博客 2143

可视化模型工具Netron

Netron可以直接看模型

sjy的博客 296

基于simulink的软开关技术的三相逆变器仿真

三相逆变器中的软开关技术(Soft Switching Techniques)旨在减少开关损耗,提高效率,并降低电磁干扰(EMI)。实现软开关通常涉及使用谐振电路或准谐振电路来确保开关器件在零电压(Zero Voltage Switching, ZVS)或零电流(Zero Current Switching, ZCS)条件下进行切换。下面将详细介绍如何在Simulink中进行基于软开关技术的三相逆变器仿真设计。

xiaoheshang_123的博客 162

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

[导入]Netron研究(一)----初识

最近一个项目,涉及到一个图形设计器.类似于Visio的设计器,可以直接在窗体上进行某些图形结构的设计,并支持窗体内的拖动,连线等等...于是开始研究一个开源项目Netron Graph Library,争取尽早摸清其实质,改造一个适合我们项目的图形设计器出来.(目前只研究Netron的light版本,因为对于我们设计器的要求,他已经足够强大,并且还算PP:) 先来看Netron Li...

weixin_30399155的博客 329

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

[导入]Netron研究(二)----"容器"登场

在上一篇随笔中,写了一点对Netron的初步认识,简单分析了下Netron中的三个基本图形实体:ShapeBase,Connection,Connector.但是这个三个实体只是三个光棍司令.他们怎么显示在窗体上呢?OK.下面,Netron的下一个主角即将登场. Netron中,有一个继承自.net framework中的System.Windows.Forms.Scrollable...

weixin_30387663的博客 140

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

[导入]Netron研究(四)----"移动和联通"之联通篇

前一篇随笔谈到了Netron中有关图形移动方面的内容,下面谈谈Netron中关于图形间联系的相关内容. 在Netron Light中,和连接有关的两个核心类是:Connection和Connentor类,前面我提到了,他们两者同样是继承自Entity类,因此他们都重写了Entity类的抽象方法:Paint,Hit,Invalidate,Move,大部分的实现都和ShapeBase类的...

weixin_30752377的博客 179

[导入]Netron研究(三)----"移动和联通"之移动篇

序: 在这里,我可不是要讨论中国移动和中国联通谁的信号好,收费低,而是针对Netron中的两大重要操作:图形的移动和图形的联接进行分析.:) 移动篇对于图形设计器来讲,图形的移动应该是其中非常核心的一部分.接下来,就来分析下Netron是怎么实现这个核心功能的.关于这点,要首先回顾下前面随笔提到的一些东西.Netron中所有的具体图形对象(椭圆,矩行...)都继承自ShapeBase这...

weixin_30784945的博客 94

模型结构可视化神器——Netron(支持tf, caffe, keras,mxnet等多种框架)

很多时候,复现人家工程的时候,需要了解人家的网络结构。但不同框架之间可视化网络层方法不一样,这样给研究人员造成了很大的困扰。 前段时间,发现了一个可视化模型结构的神奇:Netron 目前的Netron支持主流各种框架的模型结构可视化工作,我直接给出gayhub链接: https://github.com/lutzroeder/Netron 支持windows,Linux,mac系统 ...

木盏 12万+

探索深度学习的视觉之旅:Netron 开源项目推荐

在人工智能和机器学习的快速发展中,理解和可视化复杂的神经网络模型变得越来越重要。今天,我们将介绍一个强大的开源工具——Netron,它不仅能够帮助开发者直观地查看和理解各种深度学习模型,还能极大地提升开发效率和模型调试的便捷性。 ## 项目介绍 Netron 是一个专为神经网络、深度学习和机器学习模型设计的可视化工具。它支持多种流行的模型格式,包括 ONNX、TensorFlow Lite、C...

gitblog_00204的博客 767

开源图形软件Netron2009实战录--开篇(一)

最近公司接到一个关于图形流程的项目,我有幸参与其中。这个项目采用开源图形软件Netron2009为底层,在此基础上对旧有的功能改造和新功能的添加。下载地址:http://www.rayfile.com/files/7cbc4ce6-a120-11df-9010-0015c55db73d/通过vs2008打开会出现如下工程项目:项...

weixin_30776273的博客 280

Netron-Setup-7.2.7.exe资源下载介绍:神经网络可视化工具,助您直观理解深度学习模型

Netron-Setup-7.2.7.exe资源下载介绍:神经网络可视化工具,助您直观理解深度学习模型 【下载地址】Netron-Setup-7.2.7.exe资源下载介绍 Netron-Setup-7.2.7.exe 是一个专为开发者设计的神经网络可视化工具的安装程序。Netron 支持多种主流深度学习框架,如 Ten...

gitblog_06762的博客 838

Netron: 可视化深度学习模型的开源工具

![](https://raw.githubusercontent.com/lutzroeder/Netron/main/images/screenshot.png) **项目链接**: Netron 是一个开源的可视化工具,用于查看神经网络、卷积神经网络、循环神经网络和其他机器学习模型的结构和权重。它可以帮助开发者更好地理解和调试他们的模型,并为初学者提供了一个直观的方式来探索和理解这...

gitblog_00010的博客 776
上一篇: NLP民工的乐园: 几乎最全的中文NLP资源库
下一篇: Netron可视化PyTroch模型
confusingbird
博客等级 码龄13年 14粉丝 35原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值