tensorRT DOC

本文档详细介绍了如何使用TensorRT的Python API进行操作,包括导入TensorRT库、创建网络定义、从不同框架导入模型、构建引擎、序列化和反序列化模型,以及在Python中执行推理。内容涵盖从头创建网络、使用Caffe、TensorFlow、ONNX等框架的模型导入,并提供了相关示例代码。
摘要由CSDN通过智能技术生成

 

1. Using The Python API

以下部分重点介绍了可以使用Python API执行的TensorRT用户目标和任务。这些部分专注于使用Python API而不使用任何框架。 “样品支持指南”中提供了更多详细信息,并在适当情况下链接到下面。 假设您从训练有素的模型开始。本章将介绍使用TensorRT的以下必要步骤:

  • 从模型中创建TensorRT网络定义
  • 调用TensorRT构建器以从网络创建优化的运行时引擎
  • 序列化和反序列化引擎,以便在运行时快速重新创建
  • 使用数据为引擎提供执行推理

 

Python API vs C++ API

从本质上讲,C ++ API和Python API在支持您的需求方面应该完全相同。 Python API的主要优点是数据预处理和后处理易于使用,因为您可以使用各种库,如NumPy和SciPy。

C ++ API应该用于安全性很重要的情况,例如汽车行业。有关C ++ API的更多信息,请参阅使用C ++ API使用TensorRT。

有关如何使用Python优化性能的更多信息,请参阅如何优化我的Python性能?来自TensorRT最佳实践指南。

1.1. Importing TensorRT Into Python

  1. Import TensorRT:
    import tensorrt as trt
  2. 实现日志记录界面,TensorRT通过该界面报告错误,警告和信息性消息。以下代码显示了如何实现日志记录界面。在这种情况下,我们已经抑制了信息性消息,并仅报告警告和错误。 TensorRT Python绑定中包含一个简单的记录器。
    TRT_LOGGER = trt.Logger(trt.Logger.WARNING)

1.2. Creating A Network Definition In Python

使用TensorRT进行推理的第一步是从您的模型创建TensorRT网络。实现这一目标的最简单方法是使用TensorRT解析器库导入模型(请参阅使用Python在Parser中导入模型,使用Python从Caffe导入,使用Python从TensorFlow导入,以及使用Python从ONNX导入),这支持以下格式的序列化模型:

  • Caffe (both BVLC and NVCaffe)
  • ONNX 1.0 and 1.1, and
  • UFF (used for TensorFlow)

另一种方法是使用TensorRT网络API直接定义模型(请参阅使用Python API从头开始创建网络定义)。这要求您进行少量API调用以定

注意:TensorRT Python API并非适用于所有平台。有关更多信息,请参阅TensorRT支持列表

1.2.1. Creating A Network Definition From Scratch Using The Python API

创建网络时,必须首先定义引擎并为推理创建构建器对象。 Python API用于从Network API创建网络和引擎。网络定义参考用于向网络添加各种层。有关使用Python API创建网络和引擎的更多信息,请参阅使用PyTorch和Python示例的TensorRT的“Hello World”。

以下代码说明了如何使用Input,Convolution,Pooling,FullyConnected,Activation和SoftMax层创建简单网络。

# Create the builder and network
with trt.Builder(TRT_LOGGER) as builder, builder.create_network() as network:
	# Configure the network layers based on the weights provided. In this case, the weights are imported 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值