4.使用自定义层扩展TensorRT
4.使用自定义层扩展TensorRT
NVIDIA®TensorRT™支持多种类型的图层,并且其功能不断扩展。 但是,在某些情况下,受支持的图层无法满足模型的特定需求。
在这种情况下,用户可以使用针对C ++和Python API的IPluginV2Ext类实现自定义层,从而扩展TensorRT功能。 自定义层(通常称为插件)由应用程序实现和实例化,并且它们的生存期必须跨越它们在TensorRT引擎中的使用。
TensorRT层(不包括TopK)可以在零工作空间的情况下工作,但是,如果没有使用零工作空间的实现,则可以忽略所要求的精度。 在后一种情况下,即使将精度设置为其他值,该层也将在FP32上运行。
4.1 使用C ++ API添加自定义层
通过扩展类IPluginCreator和TensorRT的插件基类之一来实现自定义层。
IPluginCreator是自定义图层的创建者类,用户可以使用该类来获取插件名称,版本和插件