卷积神经网络之ONNX格式储存与读取

目录

一.常见的卷积神经网络模型

二.CNN常见的储存格式

三.CNN模型保存为ONNX文件

四.可视化ONNX文件

4.1 python代码调用netron库可视化

4.2 网页直接打开模型文件


一.常见的卷积神经网络模型

卷积神经网络(Convolutional Neural Networks, CNN)以及常见的网络模型具体介绍可移步下面链接了解。

卷积神经网络超详细介绍


二.CNN常见的储存格式


三.CNN模型保存为ONNX文件

如果只是自己测试或训练一些小模型需要用到ONNX文件,可以直接去GitHub搜索"模型.onnx"(比如lenet.onnx),一般可以直接找到对应的文件,下载使用即可。下图是我自己之前在GitHub上搜索到的一些模型。

下面提供可以实现将特定的CNN模型存储为ONNX文件的方法,以VGGNet-16为例

import torchvision
import torch

data = torch.rand(1, 3, 224, 224)
net=torchvision.models.vgg16()
output = net(data)
onnx_path = "vgg16.onnx"

input_names = ["input data"]
output_names = ["output Prediction"]


torch.onnx.export(net, data, onnx_path,input_names=input_names, output_names=output_names)


四.可视化ONNX文件

4.1 python代码调用netron库可视化

netron 是一个用于深度学习模型可视化的工具,有助于直观地查看、分析和理解CNN模型的结构和参数。netron支持下面格式的模型可视化

①命令行直接调用

pip install netron
netron name.onnx

②pycharm中代码调用

#pip install netron
import netron
netron.start("name.onnx")

运行后同样会在localhost:8080界面中显示可视化模型结构图。

4.2 网页直接打开模型文件

Netron 该网站支持上传模型文件,可直接转换为对应的模型结构图,与代码调用显示结果相同。

除在线网站外,netron也有桌面应用程序,如有需要可以自行搜索下载使用。


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1.环境配置: ubantu(16.04) python(3.5) tensorflow(0.12.0) export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.10.0-cp35-cp35m-linux_x86_64.whl sudo pip3 install --upgrade $TF_BINARY_URL 2.模型介绍: https://www.tensorflow.org/versions/r0.12/tutorials/seq2seq/ 本项目基于seq2seq模型: 问答对: 问题:你是谁?-->转为向量(20,9,10) 答案:我是你的机器人。-->转为向量(30,9,20,1,3,4,5) 将以上向量放入模型进行训练。 3.模型优化: layer_size = 256 # 每层大小 num_layers = 3 # 层数 增大layer_size的大小以扩大特征矩阵,调整隐层数量,调整学习率函数,提高训练次数。 4.模型使用: (1)首先在data文件夹里放置训练集文件,并命名为dgk_shooter_min.conv,数据格式请参考我发给你的实例文件,编码请使用utf-8 (2)运行read_data.py将初始数据转化为问答对,并分割数据成训练集和测试集,保存为: train_encode_file = 'data/train.enc' train_decode_file = 'data/train.dec' test_encode_file = 'data/test.enc' test_decode_file = 'data/test.dec' 然后程序会以测试集以及训练集中的问答对为输入生成词汇表(类似搜索引擎的索引库),接着基于以上生成的词汇表,把问答对转化为向量矩阵,以方便在模型中训练。 (3)运行cnnbrain_model.py读取训练集并且训练模型,注意如果不停止模型会一直不停的自动训练下去。并且模型会自动调整学习率。如果人为终止程序,在下次运行时程序会接着上次的模型继续进行训练。 (4)运行test.py进行模型测试
神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源 神经网络相关资源
以下是一个简单的使用卷积神经网络恢复segy格式地震数据的Matlab代码: ``` %% 加载数据 data = readSegy('data.segy'); [ntr,ns] = size(data); %% 数据预处理 data = (data-mean(data(:))) ./ std(data(:)); data = reshape(data,[ntr,1,ns]); %% 定义卷积神经网络模型 inputSize = [ntr 1 ns]; numFilters = 32; layers = [imageInputLayer(inputSize) convolution2dLayer([1,5],numFilters) reluLayer maxPooling2dLayer([1,2],'Stride',[1,2]) convolution2dLayer([1,5],numFilters*2) reluLayer maxPooling2dLayer([1,2],'Stride',[1,2]) convolution2dLayer([1,5],numFilters*4) reluLayer transposedConv2dLayer([1,4],numFilters*2,'Stride',[1,2],'Cropping',[0,1,0,1]) convolution2dLayer([1,5],numFilters*2) reluLayer transposedConv2dLayer([1,4],numFilters,'Stride',[1,2],'Cropping',[0,1,0,1]) convolution2dLayer([1,5],1) regressionLayer]; %% 训练模型 options = trainingOptions('sgdm','MaxEpochs',10,'InitialLearnRate',0.01); net = trainNetwork(data,data,layers,options); %% 使用模型恢复数据 recon = predict(net,data); recon = reshape(recon,[ntr,ns]); recon = (recon.*std(data(:))) + mean(data(:)); %% 显示恢复的数据 figure;imagesc(data(:,:,1));colormap(gray);title('原始数据'); figure;imagesc(recon(:,:,1));colormap(gray);title('恢复数据'); ``` 其中 `readSegy` 函数可以从segy格式文件读取地震数据,需要自己实现或者从网络上下载。这个代码使用一个简单的卷积神经网络模型来恢复数据,可以根据具体情况进行调整和改进。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值