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

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部署推理(十)

十&#xff1a;Paddle Inference推理 &#xff08;python&#xff09;API详解 9. 启用内存优化 API定义如下&#xff1a; # 开启内存 / 显存复用&#xff0c;具体降低内存效果取决于模型结构 # 参数&#xff1a;None # 返回&#xff1a;None paddle.inference.Config.enable…...

万能门店小程序管理系统 doPageGetFormList SQL注入漏洞复现

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

全面+彻底解决VMware安装后没有VMnet1和VMnet8的问题

目录 1、摘要 &#xff08;1&#xff09;问题 &#xff08;2&#xff09;所用工具 ① Everything软件 ② CCleaner软件 2、问题的检查与确认 3、解决过程 &#xff08;1&#xff09;卸载已经安装的VMware &#xff08;2&#xff09;设置services.mcs&#xff1a;服务自…...

什么是堆?

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

微距动物和植物摄影后期森系风格Lr调色教程,手机滤镜PS+Lightroom预设下载!

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

Qt6.8安卓Android开发环境配置

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

RK3568部署yolo8记录

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

数据可视化复习2-绘制折线图+条形图(叠加条形图,并列条形图,水平条形图)+ 饼状图 + 直方图

目录 目录 一、绘制折线图 1.使用pyplot 2.使用numpy ​编辑 3.使用DataFrame ​编辑 二、绘制条形图&#xff08;柱状图&#xff09; 1.简单条形图 2.绘制叠加条形图 3.绘制并列条形图 4.水平条形图 ​编辑 三、绘制饼状图 四、绘制散点图和直方图 1.散点图 2…...

JavaScript原生深拷贝方法 structuredClone使用

structuredClone 简介 structuredClone 是现代浏览器提供的原生 JavaScript 方法&#xff0c;用于深拷贝对象。它可以处理各种复杂数据结构&#xff0c;包括嵌套对象、数组、Date、Map、Set 等&#xff0c;且支持循环引用。 语法 const clone structuredClone(value);value:…...

SpringBoot无法使用jkd8问题

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

使用 Jina Embeddings v2 在 Elasticsearch 中进行后期分块

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

QT简易项目 数据库可视化界面 数据库编程SQLITE QT5.12.3环境 C++实现

案例需求&#xff1a; 完成数据库插入&#xff0c;删除&#xff0c;修改&#xff0c;查看操作。 分为 插入&#xff0c;删除&#xff0c;修改&#xff0c;查看&#xff0c;查询 几个模块。 代码&#xff1a; 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…...

网络流学习笔记

注&#xff1a;笔者是蒟蒻&#xff0c;所以本文几乎是干货&#xff0c;枯燥无味甚至可能会引人不适&#xff0c;请读者谨慎阅读。 为了笔者快爆掉的肝点个赞好吗&#xff1f;&#xff1f;&#xff1f; 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版本&#xff1a;3.5.7 注意&#xff1a;版本3.1.2及以下是需要return的 因当前为高版本&#xff0c;代码中已将 return 注释。 2、代码 QueryWrapper<Object> queryWrapper new Que…...

Debezium日常分享系列之:Debezium Engine

Debezium日常分享系列之&#xff1a;Debezium Engine 依赖打包项目在代码中输出消息格式消息转换消息转换谓词高级记录使用引擎属性异步引擎属性数据库模式历史属性处理故障 Debezium连接器通常通过部署到Kafka Connect服务来运行&#xff0c;并配置一个或多个连接器来监视上游…...

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简介&#xf…...

【R安装】VSCODE安装及R语言环境配置

目录 VSCODE下载及安装VSCODE上配置R语言环境参考 Visual Studio Code&#xff08;简称“VSCode” &#xff09;是Microsoft在2015年4月30日Build开发者大会上正式宣布一个运行于 Mac OS X、Windows和 Linux 之上的&#xff0c;针对于编写现代Web和云应用的跨平台源代码编辑器&…...

ES更新问题 Failed to close the XContentBuilder异常

问题描述 使用RestHighLevelClient对文档进行局部更新的时候报错如下&#xff1a; Suppressed: java.lang.IllegalStateException: Failed to close the XContentBuilderat org.elasticsearch.common.xcontent.XContentBuilder.close(XContentBuilder.java:1011)at org.elast…...

svn-git下载

windows&#xff1a; svn 客户端&#xff1a;-------------- TortoiseSVN 安装 下载地址&#xff1a;https://tortoisesvn.net/downloads.html, 页面里有语言包补丁的下载链接。 目前最新版为 1.11.0 下载地址&#xff1a; https://osdn.net/projects/tortoisesvn/storage/1.…...

PyTorch数据集加载进阶:深入torchvision源码,定制你的CIFAR10本地路径

PyTorch数据集加载进阶&#xff1a;深入torchvision源码&#xff0c;定制你的CIFAR10本地路径 当你在PyTorch项目中反复下载CIFAR10数据集时&#xff0c;是否曾想过——为什么每次都要从远程服务器拉取数据&#xff1f;那些隐藏在torchvision.datasets模块背后的加载逻辑&#…...

为什么电路中的阻抗需要引入复数?

1、方便计算说法▼无他&#xff0c;就是图个方便计算而已。请看下题&#xff0c;求如图所示电路中电流的大小。电流的频率与电压频率相同&#xff0c;无非就是求解幅值的变化和相位的变化。▼引用一下以前我的一个知乎回答&#xff0c;数学中的数先是从一维数轴开始。▼因电路的…...

AI API智能调度中继服务:多账号管理与高可用架构实践

1. 项目概述&#xff1a;一个高性能的AI API智能调度中转站如果你手头有多个Claude、Gemini或者OpenAI的账号&#xff0c;并且经常在不同的开发工具&#xff08;比如Claude Code CLI、各种SDK&#xff09;之间切换使用&#xff0c;那你肯定体会过那种管理上的繁琐。每次调用都得…...

CSS 渐变高级技巧完全指南

CSS 渐变高级技巧完全指南 引言 CSS 渐变是现代 Web 设计中不可或缺的视觉效果&#xff0c;它可以创建平滑的颜色过渡&#xff0c;为网页增添丰富的视觉层次。本文将深入探讨 CSS 渐变的各种类型和高级技巧。 基础语法回顾 线性渐变 .linear-gradient {background: linear-grad…...

Flutter 状态管理架构设计完全指南

Flutter 状态管理架构设计完全指南 引言 状态管理是 Flutter 应用开发的核心问题之一。一个好的状态管理架构能够使代码更加清晰、可维护和可测试。本文将深入探讨 Flutter 状态管理的各种架构模式和最佳实践。 状态管理概述 Flutter 中的状态可以分为以下几类&#xff1a; 局部…...

RPGMZ 万能通用钩子代码 插入自己的代码逻辑

const prevUpdate SceneManager._scene.update; SceneManager._scene.update function() {prevUpdate.call(this); // 保留原版// 你的任意代码SceneManager._scene.update prevUpdate; // 用完归还 };例子1 消息框对话 如何插入自己的对话内容const prevUpdate SceneMan…...

Taotoken用量看板如何帮助团队精细化管控API成本

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 Taotoken用量看板如何帮助团队精细化管控API成本 对于依赖大模型API进行开发的团队而言&#xff0c;成本控制是一个持续存在的挑战…...

高速接口EMI抑制:共模扼流圈选型与设计实战

1. 高速数据接口中的EMI挑战与共模扼流圈原理在USB3.1 Gen2、HDMI2.1等高速数据接口设计中&#xff0c;信号完整性工程师最头疼的问题莫过于电磁干扰&#xff08;EMI&#xff09;。当数据传输速率突破10Gbps时&#xff0c;电缆会变成高效的天线&#xff0c;将共模噪声辐射到周围…...

终极Word转LaTeX神器:5分钟搞定专业文档格式转换

终极Word转LaTeX神器&#xff1a;5分钟搞定专业文档格式转换 【免费下载链接】docx2tex Converts Microsoft Word docx to LaTeX 项目地址: https://gitcode.com/gh_mirrors/do/docx2tex 还在为Word文档转换为LaTeX格式而烦恼吗&#xff1f;每次手动调整公式、表格和图片…...

在Node.js服务中集成Taotoken实现稳定的大模型调用方案

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 在Node.js服务中集成Taotoken实现稳定的大模型调用方案 应用场景类&#xff0c;针对需要构建AI功能的后端开发者&#xff0c;阐述如…...