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

RKNN模型评估-性能评估和内存评估

基于Python的模型评估

perf_debug:进行性能评估时是否开启debug 模式。在 debug 模式下,可以获取到每一层的运行时间,否则只能获取模型运行的总时间。默认值为 False。
eval_mem: 是否进入内存评估模式。进入内存评估模式后,可以调用 eval_memory 接口获取模型运行时的内存使用情况。默认值为 False。

性能评估的例子

读取yolov8n_relu.rknn模型,并连RK3566开发板,进行性能评估

from rknn.api import RKNNif __name__ == '__main__':rknn = RKNN()# 使用Load_rknn接口导入rknn模型rknn.load_rknn(path= './yolov8n_relu.rknn')# 使用init_runtime接口初始化运行时环境rknn.init_runtime(target = 'RK3566',perf_debug = True, # perf_debug是否开启性能评估的debug模式eval_mem = False,  # eval_mem是否开启内存评估模式)# 使用eval_perf接口进行性能评估rknn.eval_perf(inputs = ["bus.jpg"],   # inputs要测试的图片data_format = None,	# data_format要推理的数据模式,使用默认值is_print = True,	# is_print是否打印性能信息)rknn.release()

内存评估的例子

读取yolov8n_relu.rknn模型,并连RK3566开发板,进行内存评估

from rknn.api import RKNNif __name__ == '__main__':rknn = RKNN()# 使用Load_rknn接口导入rknn模型rknn.load_rknn(path= './yolov8n_relu.rknn')# 使用init_runtime接口初始化运行时环境rknn.init_runtime(target = 'RK3566',perf_debug = False, # perf_debug是否开启性能评估的debug模式eval_mem = True,  # eval_mem是否开启内存评估模式)# 使用eval_memory接口进行内存评估rknn.eval_memory(is_print = True,	# is_print是否打印性能信息)rknn.release()

备注:
基于Python的性能评估和内存评估可以同时运行rknn.init_runtime中的perf_debug和eval_mem都设置为True,并调用 rknn.eval_perf函数和rknn.eval_memory函数

基于C++的模型评估

查询网络各层运行时间
如果在rknn_init函数调用时有设置RKNN_FLAG_COLLECT_PERF_MASK标志,那么 在执行rknn_run完成之后,可以传入RKNN_QUERY_PERF_DETAIL命令来查询网络每层 运行时间。其中需要先创建rknn_perf_detail结构体对象。

ret = rknn_init(&ctx, model_data, model_data_size, RKNN_FLAG_COLLECT_PERF_MASK, NULL);//如果想打印逐层耗时,将第四个参数设为:RKNN_FLAG_COLLECT_PERF_MASK...// 查询模型逐层耗时,单位是微妙
rknn_perf_detail perf_detail;
ret = rknn_query(ctx,RKNN_QUERY_PERF_DETAIL,&perf_detail,sizeof(perf_detail));
printf("-->模型逐层耗时:%s\n",perf_detail.perf_data);

参考链接:
https://www.bilibili.com/video/BV1Kj411D78q?p=8
https://www.easy-eai.com/document_details/3/183

http://www.lryc.cn/news/164998.html

相关文章:

  • window mysql-8.0.34 zip解压包安装
  • Mysql判断某个数据库中是否包含某个表,与pymysql工具函数
  • 快速掌握正则表达式
  • git: ‘lfs‘ is not a git command unclear
  • 代码随想录--哈希--两个数组的交集
  • 基于腾讯文档进行应届生个人求职记录
  • 计算机视觉实战项目(图像分类+目标检测+目标跟踪+姿态识别+车道线识别+车牌识别)
  • (18)线程的实例认识:线程的控制,暂停,继续,停止,线程相互控制,协作
  • c#动态保留小数位数的数值格式化方法实例----从小数点后非零数字保留两位进行四舍五入
  • 大数据精准营销大数据平台应用场景有哪些,平台优势有哪些?
  • Pyspark案例综合(数据计算)
  • 电路电子技术1--关联参考方向及功率的计算
  • 【C++】AVL树的插入操作实现以及验证是否正确(带平衡因子)
  • 【Linux-Day10-信号量,共享内存,消息队列】
  • 使用IntelliJ IDEA本地启动调试Flink流计算工程的2个异常解决
  • 对象及日期对象
  • 鼠标滚轮编码器解析
  • 【PTA】攀拓(PAT)- 程序设计(甲级)2023年春季考试
  • Spring Cloud Gateway 实现原理
  • 嘉泰实业:真实低门槛,安全有保障
  • spring boot 2.7 -> 3.0升级指南
  • MQTT 连接优化指南
  • 算法和数据结构学习中的一些小的工具函数
  • 解决2K/4K高分屏下Vmware等虚拟机下Kail Linux界面显示问题
  • 【校招VIP】java语言考点之双亲委派模型
  • 2023年阿里云新用户云服务器价格表
  • 信号相关名词概念汇总-采样周期、泄露、窗函数等
  • 数字化新零售营销模式如何落地?数字化新零售营销功能推荐
  • 712. 两个字符串的最小ASCII删除和 -- 动规
  • python中的小tips