当前位置: 首页 > 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.yutouwan.com/news/1066/

相关文章:

  • 网站开发前后端工具组合网站备案主体负责人
  • 建站之星做网站wordpress git
  • 网站文件夹结构北京市著名的网站制作公司
  • 汽车网站正在建设中模板长沙公司核名网站
  • 网站是做后台好还是做前台好怎么做论坛的网站吗
  • 网站规划和网站建设有必要 在线 网页 代理
  • 广州设计公司排行榜广州网站营销优化qq
  • 泸州网站建设公司重庆正云环保建设网站
  • 大丰有做网站的图片制作视频的app
  • 衡水网站联系电话怎样宣传自己的产品
  • 网站开发e r图网页设计代码的意思
  • 阜宁做网站哪家好wordpress 1.5.2
  • 怎么做淘宝链接网站长沙的科技公司
  • 如何浏览国外网站?广告行业怎么找客户
  • 网站如何做关键词引流网站大图做多大尺寸
  • 建设信用购物网站asp网站模板源码免费无限下载
  • 一个人可以做多少网站注册一个500万的公司需要多少钱
  • 淄博网站制作建设优化朝阳网络公司
  • 在国内做跨境电商怎么上外国网站企业官方网站建设费用
  • 网站推广的方式?做网站给菠菜引流
  • 网站建设名牌网站编程语言
  • 网站目录改版文化体育局网站建设
  • 公司网站布局嘉定网站设计制作报价
  • 淄博论坛网站建设中山软件开发项目管理
  • 福州做网站多少钱苏州新港建设集团有限公司网站
  • 高端大气网站源码关于自己公司的网站怎么做
  • 东莞微信网站建设动态儿童摄影网站模板
  • 专业的网站建设公司排名教务系统学生登录入口
  • 做钓鱼网站用哪种编程语言销售管理系统软件哪个好
  • 免费下载ps素材网站网站过度优化