TensorRT  7.2.1.6
NVIDIA TensorRT
Looking for a C++ dev who knows TensorRT?
I'm looking for work. Hire me!
nvinfer1::ILoop Class Referenceabstract

Helper for creating a recurrent subgraph. More...

Public Member Functions

virtual IRecurrenceLayeraddRecurrence (ITensor &initialValue) noexcept=0
 Create a recurrence layer for this loop with initialValue as its first input. More...
 
virtual ITripLimitLayeraddTripLimit (ITensor &tensor, TripLimit limit) noexcept=0
 Add a trip-count limiter, based on the given tensor. More...
 
virtual IIteratorLayeraddIterator (ITensor &tensor, int32_t axis=0, bool reverse=false) noexcept=0
 Return layer that subscripts tensor by loop iteration. More...
 
virtual ILoopOutputLayeraddLoopOutput (ITensor &tensor, LoopOutput outputKind, int32_t axis=0) noexcept=0
 Make an output for this loop, based on the given tensor. More...
 
virtual void setName (const char *name) noexcept=0
 Set the name of the loop. More...
 
virtual const char * getName () const noexcept=0
 Return the name of the loop. More...
 

Protected Member Functions

virtual ~ILoop ()
 

Detailed Description

Helper for creating a recurrent subgraph.

Constructor & Destructor Documentation

◆ ~ILoop()

virtual nvinfer1::ILoop::~ILoop ( )
inlineprotectedvirtual

Member Function Documentation

◆ addRecurrence()

virtual IRecurrenceLayer* nvinfer1::ILoop::addRecurrence ( ITensor initialValue)
pure virtualnoexcept

Create a recurrence layer for this loop with initialValue as its first input.

IRecurrenceLayer requires exactly two inputs. The 2nd input must be added, via method IRecurrenceLayer::setInput(1,...) before an Engine can be built.

Here is the caller graph for this function:

◆ addTripLimit()

virtual ITripLimitLayer* nvinfer1::ILoop::addTripLimit ( ITensor tensor,
TripLimit  limit 
)
pure virtualnoexcept

Add a trip-count limiter, based on the given tensor.

There may be at most one kCOUNT and one kWHILE limiter for a loop. When both trip limits exist, the loop exits when the count is reached or condition is falsified. It is an error to not add at least one trip limiter.

For kTRIP_LIMIT, the input tensor must be available before the loop starts.

For kWHILE, the input tensor must be the output of a subgraph that contains only layers that are not ITripLimitLayer, IIteratorLayer or ILoopOutputLayer. Any IRecurrenceLayers in the subgraph must belong to the same loop as the ITripLimitLayer. A trivial example of this rule is that the input to the kWHILE is the output of an IRecurrenceLayer for the same loop.

Here is the caller graph for this function:

◆ addIterator()

virtual IIteratorLayer* nvinfer1::ILoop::addIterator ( ITensor tensor,
int32_t  axis = 0,
bool  reverse = false 
)
pure virtualnoexcept

Return layer that subscripts tensor by loop iteration.

For reverse=false, this is equivalent to addGather(tensor, I, 0) where I is a scalar tensor containing the loop iteration number. For reverse=true, this is equivalent to addGather(tensor, M-1-I, 0) where M is the trip count computed from TripLimits of kind kCOUNT.

Here is the caller graph for this function:

◆ addLoopOutput()

virtual ILoopOutputLayer* nvinfer1::ILoop::addLoopOutput ( ITensor tensor,
LoopOutput  outputKind,
int32_t  axis = 0 
)
pure virtualnoexcept

Make an output for this loop, based on the given tensor.

axis is the axis for concatenation (if using outputKind of kCONCATENATE or kREVERSE).

If outputKind is kCONCATENATE or kREVERSE, a second input specifying the concatenation dimension must be added via method ILoopOutputLayer::setInput.

◆ setName()

virtual void nvinfer1::ILoop::setName ( const char *  name)
pure virtualnoexcept

Set the name of the loop.

The name is used in error diagnostics. This method copies the name string.

See also
getName()

◆ getName()

virtual const char* nvinfer1::ILoop::getName ( ) const
pure virtualnoexcept

Return the name of the loop.

See also
setName()

The documentation for this class was generated from the following file: