当前位置: 首页 > news >正文

深圳专业网站建设公司苏州设计公司排行榜

深圳专业网站建设公司,苏州设计公司排行榜,成都建设监理协会网站,推广方案万能模板rv1109/1126是瑞芯微出的嵌入式AI芯片#xff0c;带有npu, 可以用于嵌入式人工智能应用。算法工程师训练出的算法要部署到芯片上#xff0c;需要经过模型转换和量化#xff0c;下面记录一下整个过程。 量化环境 模型量化需要安装rk的工具包#xff1a; rockchip-linux/rk…rv1109/1126是瑞芯微出的嵌入式AI芯片带有npu, 可以用于嵌入式人工智能应用。算法工程师训练出的算法要部署到芯片上需要经过模型转换和量化下面记录一下整个过程。 量化环境 模型量化需要安装rk的工具包 rockchip-linux/rknn-toolkit (github.com) 版本要根据开发板的固件支持程度来如果二者不匹配可能转出来的模型无法运行或者结果不对。 模型量化 rknn支持caffe,tensorflow,tflite,onnx,mxnet,pytorch等模型量化下面以onnx为例其他格式基本类似。即可以使用量化包带的可视化界面也可以自行写代码更推荐自己写代码复用性和灵活性更强对可视化界面一笔带过。 可视化量化工具 执行 python -m rknn.bin.visualization 选择对应格式然后设置模型参数进行量化。 写代码量化 基础量化 最简单的量化方式如下只需设置模型的均值、方差载入原始模型调用rknn.build接口然后export_rknn即可。 from rknn.api import RKNNif __name__ __main__:rknnRKNN()# pre-process configprint(-- config model)rknn.config(channel_mean_value0 0 0 255,reorder_channel0 1 2,target_platform[rv1109],#quantized_dtypedynamic_fixed_point-i16)print(done)# Load mxnet modelonnx_model yolov8n.onnxprint(-- Loading model)ret rknn.load_onnx(onnx_model)if ret ! 0:print(Load onnx_model model failed!)exit(ret)print(done)# Build modelprint(-- Building model)ret rknn.build(do_quantizationTrue, dataset../coco_resize.txt, pre_compileFalse) # 若要在PC端仿真pre_compile 为Falseif ret ! 0:print(Build model failed!)exit(ret)print(done)print(-- Export RKNN model)ret rknn.export_rknn(yolov8n_nohead.rknn)if ret ! 0:print(Export RKNN model failed!)exit(ret)print(done)rknn.release()模型量化需要提供量化图片的列表格式为每行是一张图片的路径, 一般需要几百张如 images/0.jpg images/1.jpg模型推理验证 有两种方式验证模型的结果一种是连接开发板在开发板上运行可以实际测试模型的推理速度需要USB连接开发板一种是在PC端仿真速度较慢适合在没有开发板的情况下验证模型结果是否正确。两种方式使用的代码大部分一样区别是在PC端仿真时模型要以pre_compileFalse模式进行量化init_runtime参数为targeNone。 import os import sys from rknn.api import RKNN import cv2 import numpy as npif __name____main__:# Create RKNN objectrknn RKNN()print(-- Loading RKNN model)ret rknn.load_rknn(yolov8.rknn)if ret ! 0:print(Load failed!)exit(ret)print(load done)# Init Runtimerknn.init_runtime(targetrv1109)#第二个参数device_id为开发板的设备id不用填, targeNone时代表PC仿真image cv2.imread(1.jpg)outputs rknn.inference(inputs[image]) rknn.release()量化精度评估逐层 有些时候量化损失可能过大这时我们希望能够逐层比对量化后模型与原始模型这时需要使用accuracy_analysis接口这个接口第一个参数是图片列表文件里面是测试图片的路径第二个参数是比对结果保存路径 from rknn.api import RKNNif __name__ __main__:rknnRKNN()# pre-process configprint(-- config model)rknn.config(channel_mean_value0 0 0 255,reorder_channel0 1 2,target_platform[rv1109],#quantized_dtypedynamic_fixed_point-i16)print(done)# Load mxnet modelonnx_model yolov8n.onnxprint(-- Loading model)ret rknn.load_onnx(onnx_model)if ret ! 0:print(Load onnx_model model failed!)exit(ret)print(done)# Build modelprint(-- Building model)ret rknn.build(do_quantizationTrue, dataset../coco_resize.txt, pre_compileFalse) # 若要在PC端仿真pre_compile 为Falseif ret ! 0:print(Build model failed!)exit(ret)print(done)rknn.accuracy_analysis(test_list.txt, output_dir./snapshot5)     print(-- Export RKNN model)ret rknn.export_rknn(yolov8n_nohead.rknn)if ret ! 0:print(Export RKNN model failed!)exit(ret)print(done)rknn.release()比对文件如下 Conv__model.0_conv_Conv_214_out0_nhwc_1_320_320_16.tensor eculidean_norm0.030792 cosine_norm0.999525 eculidean202.926056 cosine0.999526 Sigmoid__model.0_act_Sigmoid_213_Mul__model.0_act_Mul_212_out0_nhwc_1_320_320_16.tensor eculidean_norm0.049676 cosine_norm0.998766 eculidean178.751434 cosine0.998767 Conv__model.1_conv_Conv_210_out0_nhwc_1_160_160_32.tensor eculidean_norm0.103382 cosine_norm0.994656 eculidean521.709229 cosine0.994656 Sigmoid__model.1_act_Sigmoid_211_Mul__model.1_act_Mul_209_out0_nhwc_1_160_160_32.tensor eculidean_norm0.113702 cosine_norm0.993536 eculidean436.044495 cosine0.993536 Conv__model.2_cv1_conv_Conv_208_out0_nhwc_1_160_160_32.tensor eculidean_norm0.120058 cosine_norm0.992793 eculidean351.808380 cosine0.992794 Sigmoid__model.2_cv1_act_Sigmoid_207_Mul__model.2_cv1_act_Mul_205_out0_nhwc_1_160_160_32.tensor eculidean_norm0.169184 cosine_norm0.985688 eculidean262.819550 cosine0.985688 混合量化 有些时候使用默认量化方法模型精度损失较大我们通过逐层分析也知道了那些层的损失较大这时就需要控制一些层不量化或以更高精度模式量化这种方式就是混合量化。 与基础量化相比混合量化分为两步 第一步是通过rknn.hybrid_quantization_step1(替换基础量化中的rknn.build)获得模型的量化配置文件 rknn.hybrid_quantization_step1(dataset../coco_resize.txt)该接口会生成3个文件 xx.data xx.json xx.quantization.cfg其中.cfg文件时量化配置文件用于控制每一层的量化 %YAML 1.2 --- # add layer name and corresponding quantized_dtype to customized_quantize_layers, e.g conv2_3: float32 customized_quantize_layers: {} quantize_parameters:attach_Concat_/model.22/Concat_5/out0_0:out0:dtype: asymmetric_affinemethod: layermax_value:- 647.7965087890625min_value:- 0.0zero_point:- 0scale:- 2.5403785705566406qtype: u8Concat_/model.22/Concat_5_1:out0:dtype: asymmetric_affinemethod: layermax_value:- 647.7965087890625min_value:- 0.0zero_point:- 0scale:- 2.5403785705566406qtype: u8对于不量化或者以其他精度模式量化的层以字典形式写在customized_quantize_layers中rv1109支持asymmetric_quantized-u8dynamic_fixed_point-i8和dynamic_fixed_point-i16默认情况下以asymmetric_quantized-u8方式量化在需要更高精度时可用dynamic_fixed_point-i16但速度会更慢。对于损失较大的层我们可以尝试设置dynamic_fixed_point-i16量化(若float32则不量化) customized_quantize_layers: {Split_/model.22/Split_21: dynamic_fixed_point-i16,Reshape_/model.22/dfl/Reshape_20: float32 }设置完成量化配置后使用rknn.hybrid_quantization_step2进行量化 from rknn.api import RKNNif __name__ __main__:rknnRKNN()# pre-process configprint(-- config model)rknn.config(channel_mean_value0 0 0 255,reorder_channel0 1 2,target_platform[rv1109],#quantized_dtypedynamic_fixed_point-i16)print(done)# Load mxnet modelonnx_model yolov8n.onnxprint(-- Loading model)ret rknn.load_onnx(onnx_model)if ret ! 0:print(Load onnx_model model failed!)exit(ret)print(done)# Build modelprint(-- Building model)rknn.hybrid_quantization_step2(dataset../coco_resize.txt, model_inputtorch_jit.json,data_inputtorch_jit.data,model_quantization_cfgtorch_jit.quantization.cfg,pre_compileFalse)if ret ! 0:print(Build model failed!)exit(ret)print(done)rknn.accuracy_analysis(test_list.txt, output_dir./snapshot5)     print(-- Export RKNN model)ret rknn.export_rknn(yolov8n_nohead.rknn)if ret ! 0:print(Export RKNN model failed!)exit(ret)print(done)rknn.release()
http://www.zqtcl.cn/news/18468/

相关文章:

  • 关于校园网站升级建设的报告电脑制作ppt的软件
  • 网站做友链wordpress首页显示摘要插件
  • 网站制作完成后首先要对网站进行新闻热点事件摘抄及评论
  • 阿里巴巴网站的营销策略保定网站制作费用
  • 做网站的困难宁波网络建站
  • 宁波网站优化建站公司php做网站需要学的东西
  • 网站建设怎么弄如何搭建网站服务器
  • 查找网站后台入口100个创意营销广告语
  • 网站抠图怎么做的啥是深圳网站定制开发
  • 阳泉住房和城乡建设厅网站做远程培训网站用什么系统
  • 购物网站订单状态模板旅游网站建设那家好
  • 大连智能模板建站做网站很累
  • 查权重网站jquery特效的网站
  • wordpress站点很慢百seo排名优化
  • 岫岩洋河网站建设广州市城乡和建设局网站首页
  • 温州平阳县营销型网站建设好搜网站提交入口
  • 吉安律师网站建设app找什么公司
  • 空调网站模板赣州金图网络科技有限公司
  • 深圳网站建设ejiew淘宝网页版登录入口官方
  • 贵南县网站建设公司seo案例分析方案
  • 内蒙古建设厅网站在线设计平台的用户群分析
  • php建站软件哪个好傻瓜式php网站开发
  • 新公司网站建设费用怎么入账wordpress价钱
  • 新站整站排名优化火速公司wordpress require_once
  • 郑州网站建设修改seo优化百度自然排名
  • 网站建设 美词公司网站建设合同要交印花税吗
  • 网站logo如何做链接上海公司起名
  • 网站轮播图制作网站模板论坛
  • 做网站设计需要多少钱开发公司工作总结
  • 阿里巴巴 网站 建设如何完整地备份wordpress