处理动态形状
7.处理Dynamic shapes
Dynamic shapes 是将某些或所有张量尺寸推迟到运行时的能力。 Dynamic shapes 可以通过C ++和Python接口使用。
以下各节提供了更详细的信息; 但是,这是构建具有动态形状的引擎的步骤的概述:
- 网络定义不得具有隐式批处理维度。
C++
通过调用创建INetworkDefinition
IBuilder::createNetworkV2(1U <<static_cast<int>(NetworkDefinitionCreationFlag::kEXPLICIT_BATCH))
Python
通过调用创建tensorrt.INetworkDefinition
create_network(1 <<int(tensorrt.NetworkDefinitionCreationFlag.EXPLICIT_BATCH))
这些调用要求网络不具有隐式批处理维度。
2. 通过使用-1作为该维度的占位符,指定输入张量的每个运行时维度。
3. 在构建时指定一个或多个优化配置文件,这些配置文件为具有运行时尺寸的输入指定允许的尺寸范围&#