首页 > 其他分享 >ncnn param文件格式

ncnn param文件格式

时间:2023-03-28 22:34:11浏览次数:43  
标签:count layer param 文件格式 ncnn input blob

一、ncnn模型

可由ncnn库中的onnx2ncnn工具将onnx格式模型转换为ncnn格式的.param和.bin两个文件,其中param记录了各算子,param文件可直接由可视化工具Nerton打开查看,这里记录下param文件格式。ncnn模型的加载参考:ncnn加载模型的几种方式

二、param文件格式

1. magic number

文件第一行为:7767517,这个数据可以看作ncnn的一个版本号

2. [layer count] [blob count]

第二行包含网络的层数(layer count)以及 数据转换的次数(blob count),其中blob count通常大于layer count

3. layer line

后面的每一行表示每一层的信息,其格式如下:

[layer type] [layer name] [input count] [output count] [input blobs] [output blobs] [layer specific params]

其中

  • layer type
    当前层的类型名,比如Convolution,Softmax等
  • layer name
    当前层的名称, 该名称在所有层中必须唯一
  • input count
    当前层输入数据blob的个数
  • output count
    当前层输出数据blob的个数
  • input blobs
    输入层的名称,以空格隔开,个数和input count相同,所有名称都必须唯一
  • output blobs
    输出层的名称,以空格隔开,个数和output count相同,所有名称必须唯一
  • layer specific params
    每一层的特殊参数,以key=value或者key=list形式出现,以空格隔开, layer params可以参考operation-param-weight-table

三、例子

如下图为ResNet18前几层的param文件内容

7767517
78 86
Input            input                    0 1 input
Convolution      Conv_0                   1 1 input 123 0=64 1=7 11=7 2=1 12=1 3=2 13=2 4=3 14=3 15=3 16=3 5=0 6=9408
BatchNorm        BatchNormalization_1     1 1 123 124 0=64
ReLU             Relu_2                   1 1 124 125
Pooling          MaxPool_3                1 1 125 126 0=0 1=3 11=3 2=2 12=2 3=1 13=1 14=1 15=1 5=1
Split            splitncnn_0              1 2 126 126_splitncnn_0 126_splitncnn_1

对应的网络如下:

第二行表示该模型由78层,86次数据转换
第三行表示模型输入为名称为input
第四行表示该层为一个卷积层Convolution,该层名称为Conv_0, 该层输入blob为input,输出blob为123
参考operation-param-weight-table
可知:

0=64 表示输出通道数为64
1=7 11=7 表示卷积核的宽和高都为7
2=1 12=1 表示不为空洞卷积,如果大于1,则卷积核的感受野范围相应扩大
3=2 13=2 表示宽和高步长都为2
4=3 14=3 表示填充的宽和高都为3
5=0 表示偏置个数为0
6=9408 表示该卷积层参数个数为9408(N_i*k*K*N_o = 3*7*7*64)

参考链接

param和模型文件结构
各算子对应key_value

标签:count,layer,param,文件格式,ncnn,input,blob
From: https://www.cnblogs.com/xiaxuexiaoab/p/16420002.html

相关文章

  • NCNN 模型推理详解及实战
    一,依赖库知识速学aarch64OpenMPAVX512submoduleaptupgrade二,硬件基础知识速学2.1,内存2.2,CPU三,ncnn推理模型3.1,shufflenetv2模型推理解析3.2,网络推理......
  • =Required reguest parameter 'min' for method parameter type Integer is not prese
      出现这个错具体原因就是你前端的数据没有传到后端后端只要就看你的注解有没有写对controller层的get请求是@QequestParam 绝大部分就是前端的原因前端没有把数......
  • Caused by: java.sql.SQLException: Parameter index out of range (2 > number of pa
    一、问题背景在xml配置中自定义了sql语句二、报错截图如下三、我的项目配置如下四、分析问题五、问题原因在xml中自定义sql语句时,里面不能有注释过得sql六、解决......
  • out 和 ref + params 的理解
    out和ref在c#的底层经常可以看到用到out和ref这两个关键字但是之前没做深入了解,只是看了一下他怎么用之前理解到:(这只是out和ref的区别)ref和out是成对使用的,形参和......
  • .md文件格式详解,即markdown文件语法。记笔利器
    Markdown是一种轻量级的标记语言。Markdown虽然功能不是很强大,但是非常简单好用1、标题(#)标题(h1~h6标签)格式:#一级标题##二级标题###三级标题2、段落(空行)段落......
  • windows和linux文件格式互转
     #查看当前文件格式cat-Afilename每行结尾是^M$为windows每行结尾是$为linux方式一:dos2unixtest2.txt#把DOS格式的文本文件转变成UNIX下的文本文件方......
  • Mybatis配置映射文件中parameterType的用法小结
    原创:在mybatis映射接口的配置中,有select,insert,update,delete等元素都提到了parameterType的用法,parameterType为输入参数,在配置的时候,配置相应的输入参数类型即可。param......
  • Paramiko_Linux
    目录ParamikoSSH第一版第二版最终版SFTP第一版第二版ParamikoParamiko官网从官方的介绍当中我们起码得知以下几个信息:此模块用于python3.6以上,目前python3.11左右,完......
  • Params可变参数
    示例一:usingSystem;namespaceParams可变参数{classProgram{staticvoidMain(string[]args){Test("张三",99,100,100,......
  • dtb文件格式
    01固定值02文件大小03structureblock在dtb文件中的偏移地址(起始地址)04字符串块在dtb文件中的偏移地址(起始地址)05内存预留块在dtb文件中的偏移地址(起始地址)06设备......