TensorRT 10.12.0
nvinfer1::IScatterLayer Class Reference

A scatter layer in a network definition. Supports several kinds of scattering. More...

#include <NvInfer.h>

Inheritance diagram for nvinfer1::IScatterLayer:
nvinfer1::ILayer nvinfer1::INoCopy

Public Member Functions

void setMode (ScatterMode mode) noexcept
 Set the scatter mode. More...
 
ScatterMode getMode () const noexcept
 Get the scatter mode. More...
 
void setAxis (int32_t axis) noexcept
 Set the axis used by ScatterMode::kELEMENTS. More...
 
int32_t getAxis () const noexcept
 Get the axis. More...
 
- Public Member Functions inherited from nvinfer1::ILayer
LayerType getType () const noexcept
 Return the type of a layer. More...
 
void setName (char const *name) noexcept
 Set the name of a layer. More...
 
char const * getName () const noexcept
 Return the name of a layer. More...
 
int32_t getNbInputs () const noexcept
 Get the number of inputs of a layer. More...
 
ITensorgetInput (int32_t index) const noexcept
 Get the layer input corresponding to the given index. More...
 
int32_t getNbOutputs () const noexcept
 Get the number of outputs of a layer. More...
 
ITensorgetOutput (int32_t index) const noexcept
 Get the layer output corresponding to the given index. More...
 
void setInput (int32_t index, ITensor &tensor) noexcept
 Replace an input of this layer with a specific tensor. More...
 
TRT_DEPRECATED void setPrecision (DataType dataType) noexcept
 Set the preferred or required computational precision of this layer in a weakly-typed network. More...
 
DataType getPrecision () const noexcept
 get the computational precision of this layer More...
 
TRT_DEPRECATED bool precisionIsSet () const noexcept
 whether the computational precision has been set for this layer More...
 
TRT_DEPRECATED void resetPrecision () noexcept
 reset the computational precision for this layer More...
 
TRT_DEPRECATED void setOutputType (int32_t index, DataType dataType) noexcept
 Set the output type of this layer in a weakly-typed network. More...
 
DataType getOutputType (int32_t index) const noexcept
 get the output type of this layer More...
 
TRT_DEPRECATED bool outputTypeIsSet (int32_t index) const noexcept
 whether the output type has been set for this layer More...
 
TRT_DEPRECATED void resetOutputType (int32_t index) noexcept
 reset the output type for this layer More...
 
void setMetadata (char const *metadata) noexcept
 Set the metadata for this layer. More...
 
char const * getMetadata () const noexcept
 Get the metadata of the layer. More...
 

Protected Member Functions

virtual ~IScatterLayer () noexcept=default
 
- Protected Member Functions inherited from nvinfer1::ILayer
virtual ~ILayer () noexcept=default
 
- Protected Member Functions inherited from nvinfer1::INoCopy
 INoCopy ()=default
 
virtual ~INoCopy ()=default
 
 INoCopy (INoCopy const &other)=delete
 
INoCopyoperator= (INoCopy const &other)=delete
 
 INoCopy (INoCopy &&other)=delete
 
INoCopyoperator= (INoCopy &&other)=delete
 

Protected Attributes

apiv::VScatterLayer * mImpl
 
- Protected Attributes inherited from nvinfer1::ILayer
apiv::VLayer * mLayer
 

Detailed Description

A scatter layer in a network definition. Supports several kinds of scattering.

The Scatter layer has three input tensors: Data, Indices, and Updates, one output tensor Output, and a scatter mode. When kELEMENT mode is used an optional axis parameter is available.

  • Data is a tensor of rank r >= 1 that stores the values to be duplicated in Output.
  • Indices is a tensor of rank q that determines which locations in Output to write new values to. Constraints on the rank q depend on the mode: ScatterMode::kND: q >= 1 ScatterMode::kELEMENT: q must be the same as r
  • Updates is a tensor of rank s >= 1 that provides the data to write to Output specified by its corresponding location in Indices. Constraints on the rank of Updates depend on the mode: ScatterMode::kND: s = r + q - shape(Indices)[-1] - 1 Scattermode::kELEMENT: s = q = r
  • Output is a tensor with the same dimensions as Data that stores the resulting values of the transformation. It must not be a shape tensor. The types of Data, Update, and Output shall be the same, and Indices shall be of type DataType::kINT32 or DataType::kINT64.

The output is computed by copying the data, and then updating elements of it based on indices. How Indices are interpreted depends upon the ScatterMode.

ScatterMode::kND

The indices are interpreted as a tensor of rank q-1 of indexing tuples.
The axis parameter is ignored.

Given that data dims are {d_0,...,d_{r-1}} and indices dims are {i_0,...,i_{q-1}},
define k = indices[q-1], it follows that updates dims are {i_0,...,i_{q-2},d_k,...,d_{r-1}}
The updating can be computed by:
    foreach slice in indices[i_0,...,i_{q-2}]
        output[indices[slice]] = updates[slice]

ScatterMode::kELEMENT

Here "axis" denotes the result of getAxis().

For each element X of indices:
    Let J denote a sequence for the subscripts of X
    Let K = sequence J with element [axis] replaced by X
    output[K] = updates[J]

For example, if indices has dimensions [N,C,H,W] and axis is 2, then the updates happen as:

    for n in [0,n)
        for c in [0,n)
            for h in [0,n)
                for w in [0,n)
                    output[n,c,indices[n,c,h,w],w] = updates[n,c,h,w]

Writes to the same output element cause undefined behavior.

Warning
Do not inherit from this class, as doing so will break forward-compatibility of the API and ABI.

Constructor & Destructor Documentation

◆ ~IScatterLayer()

virtual nvinfer1::IScatterLayer::~IScatterLayer ( )
protectedvirtualdefaultnoexcept

Member Function Documentation

◆ getAxis()

int32_t nvinfer1::IScatterLayer::getAxis ( ) const
inlinenoexcept

Get the axis.

◆ getMode()

ScatterMode nvinfer1::IScatterLayer::getMode ( ) const
inlinenoexcept

Get the scatter mode.

See also
setMode()

◆ setAxis()

void nvinfer1::IScatterLayer::setAxis ( int32_t  axis)
inlinenoexcept

Set the axis used by ScatterMode::kELEMENTS.

The axis defaults to 0.

◆ setMode()

void nvinfer1::IScatterLayer::setMode ( ScatterMode  mode)
inlinenoexcept

Set the scatter mode.

See also
getMode()

Member Data Documentation

◆ mImpl

apiv::VScatterLayer* nvinfer1::IScatterLayer::mImpl
protected

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

  Copyright © 2024 NVIDIA Corporation
  Privacy Policy | Manage My Privacy | Do Not Sell or Share My Data | Terms of Service | Accessibility | Corporate Policies | Product Security | Contact