TensorRT  7.0.0.11
NvInferPlugin.h
Go to the documentation of this file.
1 /*
2  * Copyright 1993-2019 NVIDIA Corporation. All rights reserved.
3  *
4  * NOTICE TO LICENSEE:
5  *
6  * This source code and/or documentation ("Licensed Deliverables") are
7  * subject to NVIDIA intellectual property rights under U.S. and
8  * international Copyright laws.
9  *
10  * These Licensed Deliverables contained herein is PROPRIETARY and
11  * CONFIDENTIAL to NVIDIA and is being provided under the terms and
12  * conditions of a form of NVIDIA software license agreement by and
13  * between NVIDIA and Licensee ("License Agreement") or electronically
14  * accepted by Licensee. Notwithstanding any terms or conditions to
15  * the contrary in the License Agreement, reproduction or disclosure
16  * of the Licensed Deliverables to any third party without the express
17  * written consent of NVIDIA is prohibited.
18  *
19  * NOTWITHSTANDING ANY TERMS OR CONDITIONS TO THE CONTRARY IN THE
20  * LICENSE AGREEMENT, NVIDIA MAKES NO REPRESENTATION ABOUT THE
21  * SUITABILITY OF THESE LICENSED DELIVERABLES FOR ANY PURPOSE. IT IS
22  * PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY OF ANY KIND.
23  * NVIDIA DISCLAIMS ALL WARRANTIES WITH REGARD TO THESE LICENSED
24  * DELIVERABLES, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY,
25  * NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE.
26  * NOTWITHSTANDING ANY TERMS OR CONDITIONS TO THE CONTRARY IN THE
27  * LICENSE AGREEMENT, IN NO EVENT SHALL NVIDIA BE LIABLE FOR ANY
28  * SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, OR ANY
29  * DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
30  * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
31  * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
32  * OF THESE LICENSED DELIVERABLES.
33  *
34  * U.S. Government End Users. These Licensed Deliverables are a
35  * "commercial item" as that term is defined at 48 C.F.R. 2.101 (OCT
36  * 1995), consisting of "commercial computer software" and "commercial
37  * computer software documentation" as such terms are used in 48
38  * C.F.R. 12.212 (SEPT 1995) and is provided to the U.S. Government
39  * only as a commercial end item. Consistent with 48 C.F.R.12.212 and
40  * 48 C.F.R. 227.7202-1 through 227.7202-4 (JUNE 1995), all
41  * U.S. Government End Users acquire the Licensed Deliverables with
42  * only those rights set forth herein.
43  *
44  * Any use of the Licensed Deliverables in individual and commercial
45  * software must include, in the user documentation and internal
46  * comments to the code, the above Disclaimer and U.S. Government End
47  * Users Notice.
48  */
49 
50 #ifndef NV_INFER_PLUGIN_H
51 #define NV_INFER_PLUGIN_H
52 
53 #include "NvInfer.h"
54 #include "NvInferPluginUtils.h"
60 
61 namespace nvinfer1
62 {
63 
64 namespace plugin
65 {
76 class INvPlugin : public IPlugin
77 {
78 public:
84  virtual PluginType getPluginType() const TRTNOEXCEPT = 0;
85 
93  virtual const char* getName() const TRTNOEXCEPT = 0;
94 
100  virtual void destroy() TRTNOEXCEPT = 0;
101 
102 protected:
103  ~INvPlugin() TRTNOEXCEPT {}
104 }; // INvPlugin
105 
123 TRT_DEPRECATED_API INvPlugin* createFasterRCNNPlugin(int featureStride, int preNmsTop,
124  int nmsMaxOut, float iouThreshold, float minBoxSize,
125  float spatialScale, DimsHW pooling,
126  Weights anchorRatios, Weights anchorScales);
127 TRT_DEPRECATED_API INvPlugin* createFasterRCNNPlugin(const void* data, size_t length);
128 
137 TRT_DEPRECATED_API INvPlugin* createSSDNormalizePlugin(const Weights* scales, bool acrossSpatial, bool channelShared, float eps);
138 TRT_DEPRECATED_API INvPlugin* createSSDNormalizePlugin(const void* data, size_t length);
139 
140 
146 TRT_DEPRECATED_API INvPlugin* createSSDPermutePlugin(const void* data, size_t length);
147 
148 
154 TRT_DEPRECATED_API INvPlugin* createSSDPriorBoxPlugin(const void* data, size_t length);
155 
163 TRT_DEPRECATED_API INvPlugin* createSSDAnchorGeneratorPlugin(const void* data, size_t length);
164 
165 
171 TRT_DEPRECATED_API INvPlugin* createSSDDetectionOutputPlugin(const void* data, size_t length);
172 
181 TRT_DEPRECATED_API INvPlugin* createConcatPlugin(int concatAxis, bool ignoreBatch);
182 TRT_DEPRECATED_API INvPlugin* createConcatPlugin(const void* data, size_t length);
183 
191 TRT_DEPRECATED_API INvPlugin* createPReLUPlugin(const void* data, size_t length);
192 
199 TRT_DEPRECATED_API INvPlugin* createYOLOReorgPlugin(const void* data, size_t length);
200 
201 TRT_DEPRECATED_API INvPlugin* createYOLORegionPlugin(RegionParameters params);
202 TRT_DEPRECATED_API INvPlugin* createYOLORegionPlugin(const void* data, size_t length);
203 
204 
205 } // end plugin namespace
206 } // end nvinfer1 namespace
207 
208 extern "C"
209 {
225 TENSORRTAPI nvinfer1::IPluginV2* createRPNROIPlugin(int featureStride, int preNmsTop,
226  int nmsMaxOut, float iouThreshold, float minBoxSize,
227  float spatialScale, nvinfer1::DimsHW pooling,
228  nvinfer1::Weights anchorRatios, nvinfer1::Weights anchorScales);
229 
238 TENSORRTAPI nvinfer1::IPluginV2* createNormalizePlugin(const nvinfer1::Weights* scales, bool acrossSpatial, bool channelShared, float eps);
239 
246 
254 
261 
268 
275 TENSORRTAPI nvinfer1::IPluginV2* createReorgPlugin(int stride);
276 
285 
296 TRT_DEPRECATED_API nvinfer1::IPluginV2* createClipPlugin(const char* layerName, float clipMin, float clipMax);
297 
328 
337 TENSORRTAPI nvinfer1::IPluginV2* createSplitPlugin(int axis, int* output_lengths, int noutput);
338 
348 TENSORRTAPI nvinfer1::IPluginV2* createInstanceNormalizationPlugin(float epsilon, nvinfer1::Weights scale_weights, nvinfer1::Weights bias_weights);
349 
357 TENSORRTAPI bool initLibNvInferPlugins(void* logger, const char* libNamespace);
358 
359 } // extern "C"
360 
361 #endif // NV_INFER_PLUGIN_H
Plugin class for user-implemented layers.
Definition: NvInferRuntimeCommon.h:344
The Permute plugin layer permutes the input tensor by changing the memory order of the data...
Definition: NvInferPluginUtils.h:97
TRT_DEPRECATED_API INvPlugin * createPReLUPlugin(float negSlope)
The PReLu plugin layer performs leaky ReLU for 4D tensors. Give an input value x, the PReLU layer com...
nvinfer1::IPluginV2 * createAnchorGeneratorPlugin(nvinfer1::plugin::GridAnchorParameters *param, int numLayers)
The Grid Anchor Generator plugin layer generates the prior boxes of designated sizes and aspect ratio...
virtual const char * getName() const =0
Get the name of the plugin from the ID.
nvinfer1::IPluginV2 * createPriorBoxPlugin(nvinfer1::plugin::PriorBoxParameters param)
The PriorBox plugin layer generates the prior boxes of designated sizes and aspect ratios across all ...
PluginType
The type values for the various plugins.
Definition: NvInferPluginUtils.h:69
TRT_DEPRECATED_API nvinfer1::IPluginV2 * createClipPlugin(const char *layerName, float clipMin, float clipMax)
The Clip Plugin performs a clip operation on the input tensor. It clips the tensor values to a specif...
virtual PluginType getPluginType() const =0
Get the parameter plugin ID.
TRT_DEPRECATED_API INvPlugin * createSSDNormalizePlugin(const Weights *scales, bool acrossSpatial, bool channelShared, float eps)
The Normalize plugin layer normalizes the input to have L2 norm of 1 with scale learnable.
Plugin class for user-implemented layers.
Definition: NvInferRuntime.h:134
#define TRT_DEPRECATED_API
Defines which symbols are exported.
Definition: NvInferRuntimeCommon.h:86
Common interface for the Nvidia created plugins.
Definition: NvInferPlugin.h:76
nvinfer1::IPluginV2 * createReorgPlugin(int stride)
The Reorg plugin reshapes input of shape CxHxW into a (C*stride*stride)x(H/stride)x(W/stride) shape...
nvinfer1::IPluginV2 * createRPNROIPlugin(int featureStride, int preNmsTop, int nmsMaxOut, float iouThreshold, float minBoxSize, float spatialScale, nvinfer1::DimsHW pooling, nvinfer1::Weights anchorRatios, nvinfer1::Weights anchorScales)
Create a plugin layer that fuses the RPN and ROI pooling using user-defined parameters. Registered plugin type "RPROI_TRT". Registered plugin version "1".
nvinfer1::IPluginV2 * createInstanceNormalizationPlugin(float epsilon, nvinfer1::Weights scale_weights, nvinfer1::Weights bias_weights)
The Instance Normalization Plugin computes the instance normalization of an input tensor...
The TensorRT API version 1 namespace.
nvinfer1::IPluginV2 * createSplitPlugin(int axis, int *output_lengths, int noutput)
The Split Plugin performs a split operation on the input tensor. It splits the input tensor into seve...
TRT_DEPRECATED_API INvPlugin * createSSDAnchorGeneratorPlugin(GridAnchorParameters *param, int numLayers)
The Grid Anchor Generator plugin layer generates the prior boxes of designated sizes and aspect ratio...
nvinfer1::IPluginV2 * createNormalizePlugin(const nvinfer1::Weights *scales, bool acrossSpatial, bool channelShared, float eps)
The Normalize plugin layer normalizes the input to have L2 norm of 1 with scale learnable. Registered plugin type "Normalize_TRT". Registered plugin version "1".
TRT_DEPRECATED_API nvinfer1::IPluginV2 * createLReLUPlugin(float negSlope)
The LReLu plugin layer performs leaky ReLU for 4D tensors. Give an input value x, the PReLU layer com...
The PriorBox plugin layer generates the prior boxes of designated sizes and aspect ratios across all ...
Definition: NvInferPluginUtils.h:122
TRT_DEPRECATED_API INvPlugin * createConcatPlugin(int concatAxis, bool ignoreBatch)
The Concat plugin layer basically performs the concatention for 4D tensors. Unlike the Concatenation ...
bool initLibNvInferPlugins(void *logger, const char *libNamespace)
Initialize and register all the existing TensorRT plugins to the Plugin Registry with an optional nam...
The NMSParameters are used by the BatchedNMSPlugin for performing the non_max_suppression operation o...
Definition: NvInferPluginUtils.h:275
nvinfer1::IPluginV2 * createBatchedNMSPlugin(nvinfer1::plugin::NMSParameters param)
The BatchedNMS Plugin performs non_max_suppression on the input boxes, per batch, across all classes...
virtual void destroy()=0
Destroy the plugin.
An array of weights used as a layer parameter.
Definition: NvInferRuntime.h:98
TRT_DEPRECATED_API INvPlugin * createSSDDetectionOutputPlugin(DetectionOutputParameters param)
Definition: NvInferPluginUtils.h:250
TRT_DEPRECATED_API INvPlugin * createYOLOReorgPlugin(int stride)
The Reorg plugin layer maps the 512x26x26 feature map onto a 2048x13x13 feature map, so that it can be concatenated with the feature maps at 13x13 resolution.
nvinfer1::IPluginV2 * createNMSPlugin(nvinfer1::plugin::DetectionOutputParameters param)
The DetectionOutput plugin layer generates the detection output based on location and confidence pred...
nvinfer1::IPluginV2 * createRegionPlugin(nvinfer1::plugin::RegionParameters params)
The Region plugin layer performs region proposal calculation: generate 5 bounding boxes per cell (for...
Descriptor for two-dimensional spatial data.
Definition: NvInfer.h:115
TRT_DEPRECATED_API INvPlugin * createSSDPriorBoxPlugin(PriorBoxParameters param)
The Anchor Generator plugin layer generates the prior boxes of designated sizes and aspect ratios acr...
Definition: NvInferPluginUtils.h:175
The DetectionOutput plugin layer generates the detection output based on location and confidence pred...
Definition: NvInferPluginUtils.h:213
TRT_DEPRECATED_API INvPlugin * createFasterRCNNPlugin(int featureStride, int preNmsTop, int nmsMaxOut, float iouThreshold, float minBoxSize, float spatialScale, DimsHW pooling, Weights anchorRatios, Weights anchorScales)
Create a plugin layer that fuses the RPN and ROI pooling using user-defined parameters.
TRT_DEPRECATED_API INvPlugin * createSSDPermutePlugin(Quadruple permuteOrder)