Paddle Inference部署推理(十)
十:Paddle Inference推理 (python)API详解
9. 启用内存优化
API定义如下:
# 开启内存 / 显存复用,具体降低内存效果取决于模型结构
# 参数:None
# 返回:None
paddle.inference.Config.enable_memory_optim()
代码示例:
# 引用 paddle inference 预测库
import paddle.inference as paddle_infer# 创建 config
config = paddle_infer.Config("./mobilenet_v1.pdmodel", "./mobilenet_v1.pdiparams")# 开启 CPU 显存优化
config.enable_memory_optim()# 启用 GPU 进行预测
config.enable_use_gpu(100, 0)# 开启 GPU 显存优化
config.enable_memory_optim()
10. 设置缓存路径
注意: 如果当前使用的为 TensorRT INT8 且设置从内存中加载模型,则必须通过 set_optim_cache_dir 来设置缓存路径。
API定义如下:
# 设置缓存路径
# 参数:opt_cache_dir - 缓存路径
# 返回:None
paddle.inference.Config.set_optim_cache_dir(opt_cache_dir: str)
代码示例:
# 引用 paddle inference 预测库
import paddle.inference as paddle_infer# 创建 config
config = paddle_infer.Config("./mobilenet_v1.pdmodel", "./mobilenet_v1.pdiparams")# 设置缓存路径
config.set_optim_cache_dir("./OptimCacheDir")
11. Profile 设置
API定义如下:
# 打开 Profile,运行结束后会打印所有 OP 的耗时占比
# 参数:None
# 返回:None
paddle.inference.Config.enable_profile()
代码示例:
# 引用 paddle inference 预测库
import paddle.inference as paddle_infer# 创建 config
config = paddle_infer.Config("./mobilenet_v1.pdmodel", "./mobilenet_v1.pdiparams")# 打开 Profile
config.enable_profile()
执行预测之后输出的 Profile 的结果如下:
-------------------------> Profiling Report <-------------------------Place: CPU
Time unit: ms
Sorted by total time in descending order in the same thread------------------------- Overhead Summary -------------------------Total time: 1085.33Computation time Total: 1066.24 Ratio: 98.2411%Framework overhead Total: 19.0902 Ratio: 1.75893%------------------------- GpuMemCpy Summary -------------------------GpuMemcpy Calls: 0 Total: 0 Ratio: 0%------------------------- Event Summary -------------------------Event Calls Total Min. Max. Ave. Ratio.
thread0::conv2d 210 319.734 0.815591 6.51648 1.52254 0.294595
thread0::load 137 284.596 0.114216 258.715 2.07735 0.26222
thread0::depthwise_conv2d 195 266.241 0.955945 2.47858 1.36534 0.245308
thread0::elementwise_add 210 122.969 0.133106 2.15806 0.585568 0.113301
thread0::relu 405 56.1807 0.021081 0.585079 0.138718 0.0517635
thread0::batch_norm 195 25.8073 0.044304 0.33896 0.132345 0.0237783
thread0::fc 15 7.13856 0.451674 0.714895 0.475904 0.0065773
thread0::pool2d 15 1.48296 0.09054 0.145702 0.0988637 0.00136636
thread0::softmax 15 0.941837 0.032175 0.460156 0.0627891 0.000867786
thread0::scale 15 0.240771 0.013394 0.030727 0.0160514 0.000221841
12. Log 设置
API定义如下:
# 去除 Paddle Inference 运行中的 LOG
# 参数:None
# 返回:None
paddle.inference.Config.disable_glog_info()# 判断是否禁用 LOG
# 参数:None
# 返回:bool - 是否禁用 LOG
paddle.inference.Config.glog_info_disabled()
代码示例:
# 引用 paddle inference 预测库
import paddle.inference as paddle_infer# 创建 config
config = paddle_infer.Config("./mobilenet_v1.pdmodel", "./mobilenet_v1.pdiparams")# 去除 Paddle Inference 运行中的 LOG
config.disable_glog_info()# 判断是否禁用 LOG - true
print("GLOG INFO is: {}".format(config.glog_info_disabled()))
13. 查看config配置
API定义如下:
# 返回 config 的配置信息
# 参数:None
# 返回:string - config 配置信息
paddle.inference.Config.summary()
调用summary()的输出如下所示:
+-------------------------------+----------------------------------+
| Option | Value |
+-------------------------------+----------------------------------+
| model_dir | ./inference_pass/TRTFlattenTest/ |
+-------------------------------+----------------------------------+
| cpu_math_thread | 1 |
| enable_mkldnn | false |
| mkldnn_cache_capacity | 10 |
+-------------------------------+----------------------------------+
| use_gpu | true |
| gpu_device_id | 0 |
| memory_pool_init_size | 100MB |
| thread_local_stream | false |
| use_tensorrt | true |
| tensorrt_precision_mode | fp32 |
| tensorrt_workspace_size | 1073741824 |
| tensorrt_max_batch_size | 32 |
| tensorrt_min_subgraph_size | 0 |
| tensorrt_use_static_engine | false |
| tensorrt_use_calib_mode | false |
| tensorrt_enable_dynamic_shape | false |
| tensorrt_use_oss | true |
| tensorrt_use_dla | false |
+-------------------------------+----------------------------------+
| use_xpu | false |
+-------------------------------+----------------------------------+
| ir_optim | true |
| ir_debug | false |
| memory_optim | false |
| enable_profile | false |
| enable_log | true |
+-------------------------------+----------------------------------+
相关文章:
Paddle Inference部署推理(十)
十:Paddle Inference推理 (python)API详解 9. 启用内存优化 API定义如下: # 开启内存 / 显存复用,具体降低内存效果取决于模型结构 # 参数:None # 返回:None paddle.inference.Config.enable…...

万能门店小程序管理系统 doPageGetFormList SQL注入漏洞复现
0x01 产品简介 万能门店小程序管理系统是一款功能强大的工具,旨在为各行业商家提供线上线下融合的全方位解决方案。是一个集成了会员管理和会员营销两大核心功能的综合性平台。它支持多行业使用,通过后台一键切换版本,满足不同行业商家的个性化需求。该系统采用轻量后台,搭…...

全面+彻底解决VMware安装后没有VMnet1和VMnet8的问题
目录 1、摘要 (1)问题 (2)所用工具 ① Everything软件 ② CCleaner软件 2、问题的检查与确认 3、解决过程 (1)卸载已经安装的VMware (2)设置services.mcs:服务自…...

什么是堆?
堆(Heap):堆可以看做是一颗用数组实现的二叉树,所以它没有使用父指针或者子指针。堆根据“堆属性”来排序,“堆属性”决定了树中节点的位置。 堆的特性 1.堆是完全二叉树,除了树的最后一层节点不需要是满的…...

微距动物和植物摄影后期森系风格Lr调色教程,手机滤镜PS+Lightroom预设下载!
调色教程 微距动物和植物摄影后期采用森系风格的 Lightroom 调色,将微距下的动植物世界打造成充满自然气息和梦幻感的画面。这种调色风格旨在突出动植物的细腻之美,同时营造出宁静、清新的森林氛围。 预设信息 调色风格:森系风格预设适合类…...

Qt6.8安卓Android开发环境配置
时隔多年,重拾QtCreator下Android开发。发现Qt6下安卓开发环境配置变简单不少!只需三步即可在QtCreator下进行Android开发: 一、使用Qt Mantenance Tool进行Android模块的安装: 如果感觉安装网速较慢,可以查看本人另外…...

RK3568部署yolo8记录
本教程记录自己一下在RK3568上部署yolo8的步骤 板端驱动 在板端,首先查看rknpu驱动是否安装、存在。若键入下面的命令有返回则,证明驱动已安装。 dmesg | grep -i rknpu 瑞芯微官方说,驱动版本最好大于0.9.2。但是我看有的博主说ÿ…...

数据可视化复习2-绘制折线图+条形图(叠加条形图,并列条形图,水平条形图)+ 饼状图 + 直方图
目录 目录 一、绘制折线图 1.使用pyplot 2.使用numpy 编辑 3.使用DataFrame 编辑 二、绘制条形图(柱状图) 1.简单条形图 2.绘制叠加条形图 3.绘制并列条形图 4.水平条形图 编辑 三、绘制饼状图 四、绘制散点图和直方图 1.散点图 2…...
JavaScript原生深拷贝方法 structuredClone使用
structuredClone 简介 structuredClone 是现代浏览器提供的原生 JavaScript 方法,用于深拷贝对象。它可以处理各种复杂数据结构,包括嵌套对象、数组、Date、Map、Set 等,且支持循环引用。 语法 const clone structuredClone(value);value:…...

SpringBoot无法使用jkd8问题
1. 解决SpringBoot无法使用jdk8问题 创建一个高 jkd 版本,如 jkd21 在创建项目后,将 pom.xml中的 jdk 版本改为8,找到下图所在位置修改即可。 此外将 SpringBoot 的版本修改为 2 开头的 如2.7.4 ,然后 刷新 Maven 项目即可。 在 …...

使用 Jina Embeddings v2 在 Elasticsearch 中进行后期分块
作者:来自 Elastic Gustavo Llermaly 在 Elasticsearch 中使用 Jina Embeddings v2 模型并探索长上下文嵌入模型的优缺点。 在本文中,我们将配置和使用 jina-embeddings-v2,这是第一个开源 8K 上下文长度嵌入模型,首先使用 semant…...

QT简易项目 数据库可视化界面 数据库编程SQLITE QT5.12.3环境 C++实现
案例需求: 完成数据库插入,删除,修改,查看操作。 分为 插入,删除,修改,查看,查询 几个模块。 代码: widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget…...
python json.dump()和json.dumps()的区别
用人话总结一下 json.dump()是针对文件的json和python的转换 json.dumps()主要是针对内容数据 json.dumps(obj, skipkeysFalse, ensure_asciiTrue, check_circularTrue, allow_nanTrue, clsNone, indentNone, separatorsNone, encoding“utf-8”, defaultNone, sort_keysFalse…...

网络流学习笔记
注:笔者是蒟蒻,所以本文几乎是干货,枯燥无味甚至可能会引人不适,请读者谨慎阅读。 为了笔者快爆掉的肝点个赞好吗??? Part.1 网络流基础定义 一个有向带权图 G ( V , E ) G(V,E) G(V,E) 是…...
Mybatis PLUS查询对List使用OR模糊查询
Mybatis PLUS查询对List使用OR模糊查询 1、版本2、代码3、效果 1、版本 Mybatis PLUS版本:3.5.7 注意:版本3.1.2及以下是需要return的 因当前为高版本,代码中已将 return 注释。 2、代码 QueryWrapper<Object> queryWrapper new Que…...
Debezium日常分享系列之:Debezium Engine
Debezium日常分享系列之:Debezium Engine 依赖打包项目在代码中输出消息格式消息转换消息转换谓词高级记录使用引擎属性异步引擎属性数据库模式历史属性处理故障 Debezium连接器通常通过部署到Kafka Connect服务来运行,并配置一个或多个连接器来监视上游…...

I.MX6U 裸机开发20. DDR3 内存知识
I.MX6U 裸机开发20. DDR3 内存知识 一、DDR3内存简介1. DDR发展历程SRAMSDRAMDDR1DDR2DDR3DDR4DDR5 2. 开发板资源3. DDR3的时间参数1. 传输速率2. tRCD3. CL 参数作用取值范围工作原理4. tRC参数原理单位与取值5. tRAS重要性及作用 二、I.MX6U MMDC 控制器1. MMDC简介…...

【R安装】VSCODE安装及R语言环境配置
目录 VSCODE下载及安装VSCODE上配置R语言环境参考 Visual Studio Code(简称“VSCode” )是Microsoft在2015年4月30日Build开发者大会上正式宣布一个运行于 Mac OS X、Windows和 Linux 之上的,针对于编写现代Web和云应用的跨平台源代码编辑器&…...
ES更新问题 Failed to close the XContentBuilder异常
问题描述 使用RestHighLevelClient对文档进行局部更新的时候报错如下: Suppressed: java.lang.IllegalStateException: Failed to close the XContentBuilderat org.elasticsearch.common.xcontent.XContentBuilder.close(XContentBuilder.java:1011)at org.elast…...
svn-git下载
windows: svn 客户端:-------------- TortoiseSVN 安装 下载地址:https://tortoisesvn.net/downloads.html, 页面里有语言包补丁的下载链接。 目前最新版为 1.11.0 下载地址: https://osdn.net/projects/tortoisesvn/storage/1.…...

盘古信息PCB行业解决方案:以全域场景重构,激活智造新未来
一、破局:PCB行业的时代之问 在数字经济蓬勃发展的浪潮中,PCB(印制电路板)作为 “电子产品之母”,其重要性愈发凸显。随着 5G、人工智能等新兴技术的加速渗透,PCB行业面临着前所未有的挑战与机遇。产品迭代…...

《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》
引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...

Unity | AmplifyShaderEditor插件基础(第七集:平面波动shader)
目录 一、👋🏻前言 二、😈sinx波动的基本原理 三、😈波动起来 1.sinx节点介绍 2.vertexPosition 3.集成Vector3 a.节点Append b.连起来 4.波动起来 a.波动的原理 b.时间节点 c.sinx的处理 四、🌊波动优化…...
#Uniapp篇:chrome调试unapp适配
chrome调试设备----使用Android模拟机开发调试移动端页面 Chrome://inspect/#devices MuMu模拟器Edge浏览器:Android原生APP嵌入的H5页面元素定位 chrome://inspect/#devices uniapp单位适配 根路径下 postcss.config.js 需要装这些插件 “postcss”: “^8.5.…...

基于SpringBoot在线拍卖系统的设计和实现
摘 要 随着社会的发展,社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线拍卖系统,主要的模块包括管理员;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单…...
JavaScript基础-API 和 Web API
在学习JavaScript的过程中,理解API(应用程序接口)和Web API的概念及其应用是非常重要的。这些工具极大地扩展了JavaScript的功能,使得开发者能够创建出功能丰富、交互性强的Web应用程序。本文将深入探讨JavaScript中的API与Web AP…...

从“安全密码”到测试体系:Gitee Test 赋能关键领域软件质量保障
关键领域软件测试的"安全密码":Gitee Test如何破解行业痛点 在数字化浪潮席卷全球的今天,软件系统已成为国家关键领域的"神经中枢"。从国防军工到能源电力,从金融交易到交通管控,这些关乎国计民生的关键领域…...
适应性Java用于现代 API:REST、GraphQL 和事件驱动
在快速发展的软件开发领域,REST、GraphQL 和事件驱动架构等新的 API 标准对于构建可扩展、高效的系统至关重要。Java 在现代 API 方面以其在企业应用中的稳定性而闻名,不断适应这些现代范式的需求。随着不断发展的生态系统,Java 在现代 API 方…...

五子棋测试用例
一.项目背景 1.1 项目简介 传统棋类文化的推广 五子棋是一种古老的棋类游戏,有着深厚的文化底蕴。通过将五子棋制作成网页游戏,可以让更多的人了解和接触到这一传统棋类文化。无论是国内还是国外的玩家,都可以通过网页五子棋感受到东方棋类…...

解析两阶段提交与三阶段提交的核心差异及MySQL实现方案
引言 在分布式系统的事务处理中,如何保障跨节点数据操作的一致性始终是核心挑战。经典的两阶段提交协议(2PC)通过准备阶段与提交阶段的协调机制,以同步决策模式确保事务原子性。其改进版本三阶段提交协议(3PC…...