TensorRT创建Engine并推理engine

这篇具有很好参考价值的文章主要介绍了TensorRT创建Engine并推理engine。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

NVIDIA TensorRT是一个高性能的深度学习推理库,专为部署神经网络模型而设计。TensorRT通过优化和高效的内存管理来提高模型的推理速度,从而提高整体应用程序的性能。以下是使用TensorRT创建Engine并进行推理的步骤:

  1. 安装TensorRT库:

首先,确保您已经安装了TensorRT库。请访问NVIDIA TensorRT官方网站,并按照说明安装合适的版本。

  1. 导入所需库:
 

pythonCopy code

import numpy as np import pycuda.autoinit import pycuda.driver as cuda import tensorrt as trt

  1. 加载模型:

加载您要进行推理的模型。这通常包括从ONNX或其他格式转换为TensorRT支持的格式。以下示例假设您已将模型转换为ONNX格式:

 

pythonCopy code

import onnx def load_onnx_model(onnx_model_path): with open(onnx_model_path, "rb") as f: onnx_model = onnx.load_model(f) return onnx_model onnx_model_path = "your_model.onnx" onnx_model = load_onnx_model(onnx_model_path)

  1. 创建TensorRT推理引擎:

使用以下函数创建TensorRT引擎:

 

pythonCopy code

def create_engine(onnx_model, max_batch_size, fp16_mode=False): TRT_LOGGER = trt.Logger(trt.Logger.WARNING) builder = trt.Builder(TRT_LOGGER) network = builder.create_network(flags=1 << (int)(trt.NetworkDefinitionCreationFlag.EXPLICIT_BATCH)) parser = trt.OnnxParser(network, TRT_LOGGER) parser.parse(onnx_model.SerializeToString()) builder.max_batch_size = max_batch_size config = builder.create_builder_config() config.max_workspace_size = 1 << 30 if fp16_mode: config.set_flag(trt.BuilderFlag.FP16) engine = builder.build_engine(network, config) return engine max_batch_size = 1 fp16_mode = False engine = create_engine(onnx_model, max_batch_size, fp16_mode)

  1. 准备输入数据:

准备输入数据并将其复制到设备内存中。在这个例子中,我们使用一个随机生成的数据作为输入:

 

pythonCopy code

input_shape = (1, 3, 224, 224) input_data = np.random.random(input_shape).astype(np.float32) d_input = cuda.mem_alloc(1 * input_data.nbytes) cuda.memcpy_htod(d_input, input_data.ravel())

  1. 执行推理:
 

pythonCopy code

def infer(context, input_data, output_shape): output_data = np.empty(output_shape, dtype=np.float32) d_output = cuda.mem_alloc(1 * output_data.nbytes) bindings = [int(d_input), int(d_output)] stream = cuda.Stream() context.execute_async_v2(bindings=bindings, stream_handle=stream.handle) cuda.memcpy_dtoh(output_data, d_output) stream.synchronize() return output_data context = engine.create_execution_context() output_shape = (1, 1000) output_data = infer(context, input_data, output_shape)文章来源地址https://www.toymoban.com/news/detail-413379.html

到了这里,关于TensorRT创建Engine并推理engine的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • unreal engine c++ 创建tcp server, tcp client

    TCP客户端 TcpConnect.h TcpConnect.cpp tcp server cpp FTcpServerReceive h cpp 在 GameInstance 使用

    2024年02月14日
    浏览(50)
  • Google Earth Engine(GEE)——快速建立一个10km的格网

    本文的主要目的是如何快速实现区域的一个网格的建立,主要过程是获取影像的经纬度,然后分别获取经纬度乘以一个数然后转化为整型,并将长宽相乘转化为一个矢量,然后对每一个歌王进行边界的坐标的获取与,最后返回一个多边形geometry,最后还要建立一个可以画图的

    2024年02月05日
    浏览(49)
  • 一个简单的tensorRT mnist推理案例,模型采用代码构建

    TensorRT是NVIDIA的一个深度神经网络推理引擎,可以对深度学习模型进行优化和部署。本程序中,使用了TensorRT来加载一个已经训练好的模型并进行推理。 TRTLogger是一个日志记录类,用于记录TensorRT的运行日志。 Matrix是一个矩阵结构体,用于存储模型权重和输入输出数据。Mode

    2023年04月10日
    浏览(40)
  • 游戏编程中的AI与物理模拟——用Unreal Engine创建惊艳的游戏世界

    作者:禅与计算机程序设计艺术 作为游戏开发者,我们经常需要在游戏中加入一些视觉、听觉或者触觉等交互性元素,并且给用户提供更具个性化的游戏体验。游戏制作人员也喜欢利用人工智能(AI)来辅助游戏制作过程,例如制作游戏中的怪物和敌人具有潜在的危险性,能

    2024年02月07日
    浏览(52)
  • Docker:使用Nvidia官方的pytorch、tensorflow、TensorRT镜像创建Container容器

    文章目录 前言 一、前期准备 二、具体步骤 1.启动容器 2.使用容器 补充 相信大家在学习新的知识前都遇到过开发环境安装不上,或者环境冲突和版本不匹配的情况,另外当我们想要安装多个版本的支持库时,在本地环境上直接安装往往会导致版本冲突的情况,如果我们使用

    2024年02月19日
    浏览(46)
  • ant design pro集成阿里低代码引擎lowcode-engine,并实现与数据库结合实现低代码模块的创建、设计、发布等功能

    阿里低代码引擎是一款为低代码平台开发者提供的,具备强大定制扩展能力的低代码设计器研发框架。 本文主要介绍如何在ant design pro项目中集成阿里低代码引擎lowcode-engine。 根据官方文档,已有项目要集成低代码引擎,至少需要三步,以下我们以ant desigin pro5项目为例,来集

    2024年02月22日
    浏览(54)
  • 【整活】Unreal Engine 3体验

    今天下了UDK,想在用虚幻5的年头体验一下\\\"上古时代\\\"的虚幻3,链接 安装 跟虚幻4对比,虚幻4可是比它大不少:      一般来说,编辑器程序在这个文件夹中 比如我的这个: 这个UDK.exe就是虚幻3编辑器程序 游戏 双击打开,却发现它默认运行自带的游戏       ......别说这画质还可以..

    2023年04月08日
    浏览(41)
  • openssl engine实现和原理

    OPENSSL ENGINE概述 能够使用户比较容易地将自己的硬件加入到openssl中去,替换其提供的软件算法。一个Engine提供了密码计算中各种计算方法的集合,它用于控制openssl的各种密码计算。 OPENSSL ENGINE实现: OPENSSL ENGINE替换第三方算法方法:OPENSSL算法库中每一个算法对应一个唯一的

    2024年02月12日
    浏览(29)
  • Flutter Engine编译环境安装

    根据设置引擎开发环境的描述,确保有以下可用依赖项: Linux、macOS 或 Windows。 Linux 支持 Android 和 Fuchsia 的交叉编译工件,但不支持 iOS。 macOS 支持 Android 和 iOS 的交叉编译工件。 Windows 不支持任何 Android、Fuchsia 或 iOS 的交叉编译工件。 git(用于源代码版本控制)。 一个IDE。

    2024年02月13日
    浏览(38)
  • Unreal Engine添加UGameInstanceSubsystem子类

    点击C++类文件夹,在右边的区域点击鼠标右键,在弹出的菜单中选择“新建C++类” 在弹出的菜单中选中“显示所有类”,选择GameInstanceSubsystem作为父类, 点击“下一步”按钮 输入子类名称“UVRVIUOnlineGameSubsystem”,选择插件作为新类的目标模块,点击“公共”选择器 打开C++工

    2024年04月26日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包