NNIE开发RuyiStudio软件 mobilefacenet.cfg参数配置
之后随笔将更多笔墨着重于NNIE开发系列,下文是关于Hi3559AV100 NNIE开发(3)RuyiStudio软件 .wk文件生成过程-mobilefacenet.cfg的参数配置,目前项目需要对mobilefacenet网络进行.wk的开发,通过RuyiStudio创建工程(关于软件RuyiStudio的安装与配置看后期是否有时间,有时间就会出一篇随笔供大家参考),在工程下配置mobilefacenet.cfg文件,加载训练好的mobilefacenet.caffemodel与mobilefacenet.prototxt并进行mobilefacenet.wk的生成,其中重要的一环为mobilefacenet.cfg参数的配置,下面随笔将给出具体操作,首先给出整体需要配置的参数表:
1 [prototxt_file]2 [caffemodel_file]
3 [batch_num]
4 [net_type]
5 [sparse_rate]
6 [compile_mode]
7 [is_simulation]
8 [log_level]
9 [instruction_name]
10 [RGB_order]
11 [data_scale]
12 [internal_stride]
13 [image_list]
14 [image_type]
15 [mean_file]
16 [norm_type]
下面给出一一说明:
(1)prototxt_file
为网络描述文件,NNIE mapper 对 prototxt 的输入层格式、layer 格式、激活层、Scale、Bias 层、RNN、LSTM 层及特殊的中间层上报、高精度配置、指定支持层有 CPU 执行等特定的规范约束。这里我对中间层、高精度配置、CPU执行进行一个具体的叙述:
1 layer {2 name: "conv5 "
3 type: "Convolution"
4 bottom: "conv4"
5 top: "conv5_report"
6 convolution_param {
7 num_output: 256
8 kernel_size: 3
9 pad: 1
10 stride: 1
11 }
12 }
②用户指定自定义计算精度(compile_mode=2)时,在对应层的层名后加上高精度 “_hp”(16比特)标记,可实现指定任意层为高精度输入,格式如下所示。
1 layer {2 name: "conv5_hp"
3 type: "Convolution"
4 bottom: "conv4"
5 top: "conv5"
6 convolution_param {
7 num_output: 256
8 kernel_size: 3
9 pad: 1
10 stride: 1
11 }
12 }
1 layer {2 bottom: "rpn_cls_score"
3 top: "rpn_cls_score_reshape"
4 name: "rpn_cls_score_reshape_cpu"
5 type: "Reshape"
6 reshape_param {
7 shape {
8 dim: 0
9 dim: 2
10 dim: -1
11 dim: 0
12 }
13 }
14 }
(2)caffemodel_file:
网络模型数据文件。
(3)[batch_num]
(4) [net_type]:
网络的类型。
(5) [sparse_rate] --->(取值0到1,默认0)
NNIE引擎采用了参数压缩技术以减少带宽占用,为了提高压缩率,可通对FC参数进稀疏处理。
用户通过sparse_rate数值指定多少比例的FC参数稀疏为0,例如配0.5,则FC参数有50%将被稀疏为0,由于数据变的稀疏,压缩模块会获得更好的压缩率。稀疏值越高,计算FC时所需参数带宽越低,但精度会有所下降。
(6) [compile_mode]
(7) [is_simulation]
(8) [log_level]
(9) [instruction_name]
(10) [RGB_order] --->取值范围:{RGB,BGR} default:BGR
(11) [data_scale]
(12) [internal_stride]
(13) [image_list]
NNIE mapper 用于数据量化的参考图像 list 文件或feature map 文件。该配置跟 image_type 相关。如果网络的数据输入是灰度或者 RGB 图像输入,即image_type 配置不为 0,image_list 配置为所参考图片的list,内容示意图如下图图示,图片的格式支持以下几种:
(14) [image_type]
表示网络实际执行时输入给网络的数据类型,该配置跟 image list 相关。
0∶表示网络数据输入为 SVP BLOB_TYPE_S32(参考《HiSVP API参考》)或者向量的类型(VEC_S32和 SEQ S32);此时要求 image list 配 置为 feature map 文件;
1∶ 表示网络数据输入为 SVP BLOB TYPE U8(普通的灰度图和 RGB 图)类型; 此时要求 image_list 配置是 RGB 图或者灰度图片的 list 文件;
3∶ 网络数据输入为 SVP_ BLOB_TYPE YUV420SP类型;
5∶ 网络数据输入为SVP_BLOB_TYPE YUV422SP类型;
当配置为3或者5时,image_list配置为 RGB图片的 list 文件。
(15) [mean_file]
(16)[norm_type]
表示对网络数据输入的预处理方法。注意image_type配置为0时,norm_type只能配置为0;image_type配置为3或者5时,网络输入数据为YUV图像,但是NNIE硬件会根据RGB_order配置项自动转为RGB或者BGR图像,此时norm_type配置方法跟image_type为1时一致。
1 [prototxt_file] ./mark_prototxt/mobilefacenet_mark_nnie_20210205133124.prototxt2 [caffemodel_file] ./data/mobilefacenet.prototxt.caffemodel
3 [batch_num] 256
4 [net_type] 0
5 [sparse_rate] 0
6 [compile_mode] 0
7 [is_simulation] 1
8 [log_level] 3
9 [instruction_name] ./mobileface_func
10 [RGB_order] BGR
11 [data_scale] 0.0078125
12 [internal_stride] 16
13 [image_list] ./data/images/imageList.txt
14 [image_type] 1
15 [mean_file] ./data/pixel_mean.txt
16 [norm_type] 5
后面随笔将给出mobilefacenet网络的NNIE实现具体过程。
以上是 NNIE开发RuyiStudio软件 mobilefacenet.cfg参数配置 的全部内容, 来源链接: utcz.com/a/121354.html