ArmNN
 21.08
QSymm8PerAxisDecoder Class Reference

#include <BaseIterator.hpp>

Inheritance diagram for QSymm8PerAxisDecoder:
PerAxisIterator< const int8_t, Decoder< float > > Decoder< float > BaseIterator

Public Member Functions

 QSymm8PerAxisDecoder (const int8_t *data, const armnn::TensorInfo &tensorInfo)
 
float Get () const override
 
float GetScale () const
 
std::vector< float > DecodeTensor (const TensorShape &tensorShape, bool isDepthwise) override
 
- Public Member Functions inherited from PerAxisIterator< const int8_t, Decoder< float > >
 PerAxisIterator (const int8_t *data=nullptr, unsigned int axisFactor=0, unsigned int axisDimensionality=0)
 
 PerAxisIterator (const int8_t *data=nullptr, const armnn::TensorShape &tensorShape=TensorShape(), const unsigned int axis=0)
 
void Reset (void *data) override
 
PerAxisIteratoroperator++ () override
 
PerAxisIteratoroperator+= (const unsigned int increment) override
 
PerAxisIteratoroperator-= (const unsigned int decrement) override
 
PerAxisIteratorSetIndexOnMem (const unsigned int index)
 
PerAxisIteratoroperator[] (const unsigned int index) override
 
- Public Member Functions inherited from Decoder< float >
 Decoder ()
 
virtual ~Decoder ()
 
- Public Member Functions inherited from BaseIterator
 BaseIterator ()
 
virtual ~BaseIterator ()
 

Additional Inherited Members

- Protected Attributes inherited from PerAxisIterator< const int8_t, Decoder< float > >
const int8_t * m_Iterator
 
const int8_t * m_Start
 
unsigned int m_AxisIndex
 
unsigned int m_AxisDimensionality
 
unsigned int m_AxisFactor
 
unsigned int m_Index
 

Detailed Description

Definition at line 841 of file BaseIterator.hpp.

Constructor & Destructor Documentation

◆ QSymm8PerAxisDecoder()

QSymm8PerAxisDecoder ( const int8_t *  data,
const armnn::TensorInfo tensorInfo 
)
inline

Definition at line 844 of file BaseIterator.hpp.

845  : PerAxisIterator(data, tensorInfo.GetShape(), tensorInfo.GetQuantizationDim().value()),
846  m_Scales(tensorInfo.GetQuantizationScales())
847  {}
const TensorShape & GetShape() const
Definition: Tensor.hpp:191
Optional< unsigned int > GetQuantizationDim() const
Definition: Tensor.cpp:496
std::vector< float > GetQuantizationScales() const
Definition: Tensor.cpp:453
PerAxisIterator(const int8_t *data=nullptr, unsigned int axisFactor=0, unsigned int axisDimensionality=0)

Member Function Documentation

◆ DecodeTensor()

std::vector<float> DecodeTensor ( const TensorShape tensorShape,
bool  isDepthwise 
)
inlineoverridevirtual

Implements Decoder< float >.

Definition at line 860 of file BaseIterator.hpp.

References armnn::Dequantize, TensorShape::GetNumElements(), and armnn::IgnoreUnused().

862  {
863  IgnoreUnused(isDepthwise);
864 
865  const unsigned int size = tensorShape.GetNumElements();
866  std::vector<float> decodedTensor;
867  decodedTensor.reserve(size);
868 
869  for (uint32_t i = 0; i < size; ++i)
870  {
871  SetIndexOnMem(i);
872  decodedTensor.emplace_back(armnn::Dequantize(*m_Iterator, GetScale(), 0));
873  }
874  return decodedTensor;
875  }
void IgnoreUnused(Ts &&...)
PerAxisIterator & SetIndexOnMem(const unsigned int index)

◆ Get()

float Get ( ) const
inlineoverridevirtual

◆ GetScale()

float GetScale ( ) const
inline

Definition at line 855 of file BaseIterator.hpp.

856  {
857  return m_Scales[m_AxisIndex];
858  }

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