ArmNN
 24.02
LstmQueueDescriptor Struct Reference

#include <WorkloadData.hpp>

Inheritance diagram for LstmQueueDescriptor:
[legend]
Collaboration diagram for LstmQueueDescriptor:
[legend]

Public Member Functions

 LstmQueueDescriptor ()
 
void Validate (const WorkloadInfo &workloadInfo) const
 
- Public Member Functions inherited from QueueDescriptorWithParameters< LstmDescriptor >
virtual ~QueueDescriptorWithParameters ()=default
 
- Public Member Functions inherited from QueueDescriptor
virtual ~QueueDescriptor ()=default
 
void ValidateTensorNumDimensions (const TensorInfo &tensor, std::string const &descName, unsigned int numDimensions, std::string const &tensorName) const
 
void ValidateTensorNumDimNumElem (const TensorInfo &tensorInfo, unsigned int numDimension, unsigned int numElements, std::string const &tensorName) const
 
void ValidateInputsOutputs (const std::string &descName, unsigned int numExpectedIn, unsigned int numExpectedOut) const
 
template<typename T >
const T * GetAdditionalInformation () const
 

Public Attributes

const ConstTensorHandlem_InputToInputWeights
 
const ConstTensorHandlem_InputToForgetWeights
 
const ConstTensorHandlem_InputToCellWeights
 
const ConstTensorHandlem_InputToOutputWeights
 
const ConstTensorHandlem_RecurrentToInputWeights
 
const ConstTensorHandlem_RecurrentToForgetWeights
 
const ConstTensorHandlem_RecurrentToCellWeights
 
const ConstTensorHandlem_RecurrentToOutputWeights
 
const ConstTensorHandlem_CellToInputWeights
 
const ConstTensorHandlem_CellToForgetWeights
 
const ConstTensorHandlem_CellToOutputWeights
 
const ConstTensorHandlem_InputGateBias
 
const ConstTensorHandlem_ForgetGateBias
 
const ConstTensorHandlem_CellBias
 
const ConstTensorHandlem_OutputGateBias
 
const ConstTensorHandlem_ProjectionWeights
 
const ConstTensorHandlem_ProjectionBias
 
const ConstTensorHandlem_InputLayerNormWeights
 
const ConstTensorHandlem_ForgetLayerNormWeights
 
const ConstTensorHandlem_CellLayerNormWeights
 
const ConstTensorHandlem_OutputLayerNormWeights
 
- Public Attributes inherited from QueueDescriptorWithParameters< LstmDescriptor >
LstmDescriptor m_Parameters
 
- Public Attributes inherited from QueueDescriptor
std::vector< ITensorHandle * > m_Inputs
 
std::vector< ITensorHandle * > m_Outputs
 
void * m_AdditionalInfoObject
 
bool m_AllowExpandedDims = false
 

Additional Inherited Members

- Protected Member Functions inherited from QueueDescriptorWithParameters< LstmDescriptor >
 QueueDescriptorWithParameters ()=default
 
 QueueDescriptorWithParameters (QueueDescriptorWithParameters const &)=default
 
QueueDescriptorWithParametersoperator= (QueueDescriptorWithParameters const &)=default
 
- Protected Member Functions inherited from QueueDescriptor
 QueueDescriptor ()
 
 QueueDescriptor (QueueDescriptor const &)=default
 
QueueDescriptoroperator= (QueueDescriptor const &)=default
 

Detailed Description

Definition at line 400 of file WorkloadData.hpp.

Constructor & Destructor Documentation

◆ LstmQueueDescriptor()

LstmQueueDescriptor ( )
inline

Definition at line 402 of file WorkloadData.hpp.

403  : m_InputToInputWeights(nullptr)
404  , m_InputToForgetWeights(nullptr)
405  , m_InputToCellWeights(nullptr)
406  , m_InputToOutputWeights(nullptr)
407  , m_RecurrentToInputWeights(nullptr)
408  , m_RecurrentToForgetWeights(nullptr)
409  , m_RecurrentToCellWeights(nullptr)
410  , m_RecurrentToOutputWeights(nullptr)
411  , m_CellToInputWeights(nullptr)
412  , m_CellToForgetWeights(nullptr)
413  , m_CellToOutputWeights(nullptr)
414  , m_InputGateBias(nullptr)
415  , m_ForgetGateBias(nullptr)
416  , m_CellBias(nullptr)
417  , m_OutputGateBias(nullptr)
418  , m_ProjectionWeights(nullptr)
419  , m_ProjectionBias(nullptr)
420  , m_InputLayerNormWeights(nullptr)
421  , m_ForgetLayerNormWeights(nullptr)
422  , m_CellLayerNormWeights(nullptr)
423  , m_OutputLayerNormWeights(nullptr)
424  {
425  }

Member Function Documentation

◆ Validate()

void Validate ( const WorkloadInfo workloadInfo) const

Definition at line 2011 of file WorkloadData.cpp.

2012 {
2013  // ported from android/ml/nn/common/operations/LSTM.cpp CheckInputTensorDimensions()
2014 
2015  const std::string descriptorName{"LstmQueueDescriptor"};
2016 
2017  // check dimensions of all inputs and outputs
2018  if (workloadInfo.m_InputTensorInfos.size() != 3)
2019  {
2020  throw InvalidArgumentException(descriptorName + ": Invalid number of inputs.");
2021  }
2022  if (workloadInfo.m_OutputTensorInfos.size() != 4)
2023  {
2024  throw InvalidArgumentException(descriptorName + ": Invalid number of outputs.");
2025  }
2026 
2027  std::vector<DataType> supportedTypes =
2028  {
2033  };
2034 
2035  // check for supported type of one input and match them with all the other input and output
2036  ValidateDataTypes(workloadInfo.m_InputTensorInfos[0], supportedTypes, descriptorName);
2037 
2038  // type matches all other inputs
2039  for (uint32_t i = 1u; i < workloadInfo.m_InputTensorInfos.size(); ++i)
2040  {
2041  ValidateTensorDataTypesMatch(workloadInfo.m_InputTensorInfos[0],
2042  workloadInfo.m_InputTensorInfos[i],
2043  descriptorName,
2044  "input_0",
2045  "input_" + std::to_string(i));
2046  }
2047  // type matches all other outputs
2048  for (uint32_t i = 0u; i < workloadInfo.m_OutputTensorInfos.size(); ++i)
2049  {
2050  ValidateTensorDataTypesMatch(workloadInfo.m_InputTensorInfos[0],
2051  workloadInfo.m_OutputTensorInfos[i],
2052  "LstmQueueDescriptor",
2053  "input_0",
2054  "output_" + std::to_string(i));
2055  }
2056 
2057  // Making sure clipping parameters have valid values.
2058  // == 0 means no clipping
2059  // > 0 means clipping
2060  if (m_Parameters.m_ClippingThresCell < 0.0f)
2061  {
2062  throw InvalidArgumentException(descriptorName + ": negative cell clipping threshold is invalid");
2063  }
2064  if (m_Parameters.m_ClippingThresProj < 0.0f)
2065  {
2066  throw InvalidArgumentException(descriptorName + ": negative projection clipping threshold is invalid");
2067  }
2068 
2069  // Inferring batch size, number of outputs and number of cells from the inputs.
2070  const uint32_t n_input = workloadInfo.m_InputTensorInfos[0].GetShape()[1];
2071  const uint32_t n_batch = workloadInfo.m_InputTensorInfos[0].GetShape()[0];
2072  ValidatePointer(m_InputToOutputWeights, "Null pointer check", "InputToOutputWeights");
2073  const uint32_t n_cell = m_InputToOutputWeights->GetShape()[0];
2074  ValidatePointer(m_RecurrentToOutputWeights, "Null pointer check", "RecurrentToOutputWeights");
2075  const uint32_t n_output = m_RecurrentToOutputWeights->GetShape()[1];
2076 
2077  // input tensor
2078  ValidateTensorNumDimNumElem(workloadInfo.m_InputTensorInfos[0], 2, (n_batch * n_input),
2079  descriptorName + " input_0");
2080  // outputStateInTensor
2081  ValidateTensorNumDimNumElem(workloadInfo.m_InputTensorInfos[1], 2, (n_batch * n_output),
2082  descriptorName + " input_1");
2083  // outputStateInTensor
2084  ValidateTensorNumDimNumElem(workloadInfo.m_InputTensorInfos[2], 2, (n_batch * n_cell),
2085  descriptorName + " input_2");
2086  // scratchBufferTensor
2087  unsigned int scratchBufferSize = m_Parameters.m_CifgEnabled ? n_cell * 3 : n_cell * 4;
2088  ValidateTensorNumDimNumElem(workloadInfo.m_OutputTensorInfos[0], 2, (n_batch * scratchBufferSize),
2089  descriptorName + " output_0");
2090  // outputStateOutTensor
2091  ValidateTensorNumDimNumElem(workloadInfo.m_OutputTensorInfos[1], 2, (n_batch * n_output),
2092  descriptorName + " output_1");
2093  // cellStateOutTensor
2094  ValidateTensorNumDimNumElem(workloadInfo.m_OutputTensorInfos[2], 2, (n_batch * n_cell),
2095  descriptorName + " output_2");
2096  // outputTensor
2097  ValidateTensorNumDimNumElem(workloadInfo.m_OutputTensorInfos[3], 2, (n_batch * n_output),
2098  descriptorName + " output_3");
2099 
2100  // check that dimensions of inputs/outputs and QueueDescriptor data match with each other
2101  if ( m_InputToInputWeights )
2102  {
2104  (n_cell * n_input), "InputLayerNormWeights");
2105  }
2106 
2107  ValidatePointer(m_InputToForgetWeights, "Null pointer check", "InputToForgetWeights");
2109  (n_cell * n_input), "InputToForgetWeights");
2110 
2111  ValidatePointer(m_InputToCellWeights, "Null pointer check", "InputToCellWeights");
2113  (n_cell * n_input), "InputToCellWeights");
2114 
2116  {
2118  (n_cell * n_output), "RecurrentToInputWeights");
2119  }
2120 
2121  ValidatePointer(m_RecurrentToForgetWeights, "Null pointer check", "RecurrentToForgetWeights");
2123  (n_cell * n_output), "RecurrentToForgetWeights");
2124 
2125  ValidatePointer(m_RecurrentToCellWeights, "Null pointer check", "RecurrentToCellWeights");
2127  (n_cell * n_output), "RecurrentToCellWeights");
2128 
2129  // Make sure the input-gate's parameters are either both present (regular
2130  // LSTM) or not at all (CIFG-LSTM). And CifgEnable is set accordingly.
2131  bool cifg_weights_all_or_none = ((m_InputToInputWeights && m_RecurrentToInputWeights &&
2135  if (!cifg_weights_all_or_none)
2136  {
2137  throw InvalidArgumentException(descriptorName + ": Input-Gate's parameters InputToInputWeights and "
2138  "RecurrentToInputWeights must either both be present (regular LSTM) "
2139  "or both not present (CIFG-LSTM). In addition CifgEnable must be set "
2140  "accordingly.");
2141  }
2142 
2143  if ( m_CellToInputWeights )
2144  {
2146  n_cell, "CellToInputWeights");
2147  }
2148  if ( m_CellToForgetWeights )
2149  {
2151  n_cell, "CellToForgetWeights");
2152  }
2153  if ( m_CellToOutputWeights )
2154  {
2156  n_cell, "CellToOutputWeights");
2157  }
2158 
2159  // Making sure the peephole weights are there all or none. And PeepholeEnable is set accordingly.
2160  bool peephole_weights_all_or_none =
2165  if (!peephole_weights_all_or_none)
2166  {
2167  throw InvalidArgumentException(descriptorName + ": Invalid combination of peephole parameters.");
2168  }
2169 
2170  // Make sure the input gate bias is present only when not a CIFG-LSTM.
2172  {
2173  if (m_InputGateBias)
2174  {
2175  throw InvalidArgumentException(descriptorName + ": InputGateBias is present and CIFG-LSTM is enabled.");
2176  }
2177  }
2178  else
2179  {
2180  if (!m_InputGateBias)
2181  {
2182  throw InvalidArgumentException(descriptorName + ": If CIFG-LSTM is disabled InputGateBias "
2183  "must be present.");
2184  }
2186  n_cell, "InputGateBias");
2187  }
2188 
2189  ValidatePointer(m_ForgetGateBias, "Null pointer check", "ForgetGateBias");
2190  ValidateTensorNumDimNumElem(m_ForgetGateBias->GetTensorInfo(), 1, n_cell, "ForgetGateBias");
2191 
2192  ValidatePointer(m_CellBias, "Null pointer check", "CellBias");
2193  ValidateTensorNumDimNumElem(m_CellBias->GetTensorInfo(), 1, n_cell, "CellBias");
2194 
2195  ValidatePointer(m_OutputGateBias, "Null pointer check", "OutputGateBias");
2196  ValidateTensorNumDimNumElem(m_OutputGateBias->GetTensorInfo(), 1, n_cell, "OutputGateBias");
2197 
2198  if (m_ProjectionWeights)
2199  {
2201  (n_cell * n_output), "ProjectionWeights");
2202  }
2203  if (m_ProjectionBias)
2204  {
2205  ValidateTensorNumDimNumElem(m_ProjectionBias->GetTensorInfo(), 1, n_output, "ProjectionBias");
2206  }
2207 
2208  // Making sure the projection tensors are consistent:
2209  // 1) If projection weight is not present, then projection bias should not be
2210  // present.
2211  // 2) If projection weight is present, then projection bias is optional.
2212  bool projecton_tensors_consistent = ((!m_ProjectionWeights && !m_ProjectionBias &&
2218  if (!projecton_tensors_consistent)
2219  {
2220  throw InvalidArgumentException(descriptorName + ": Projection tensors are inconsistent.");
2221  }
2222 
2223  // The four layer normalization weights either all have values or none of them have values. Additionally, if
2224  // CIFG is used, input layer normalization weights tensor is omitted and the other layer normalization weights
2225  // either all have values or none of them have values. Layer normalization is used when the values of all the
2226  // layer normalization weights are present
2228  {
2229  ValidateTensorNumDimNumElem(m_InputLayerNormWeights->GetTensorInfo(), 1, n_cell, "InputLayerNormWeights");
2230  }
2232  {
2233  ValidateTensorNumDimNumElem(m_ForgetLayerNormWeights->GetTensorInfo(), 1, n_cell, "ForgetLayerNormWeights");
2234  }
2236  {
2237  ValidateTensorNumDimNumElem(m_CellLayerNormWeights->GetTensorInfo(), 1, n_cell, "CellLayerNormWeights");
2238  }
2240  {
2241  ValidateTensorNumDimNumElem(m_OutputLayerNormWeights->GetTensorInfo(), 1, n_cell, "OutputLayerNormWeights");
2242  }
2243 
2245  {
2247  {
2249  {
2250  throw InvalidArgumentException(descriptorName + ": Layer normalisation is enabled and CIFG-LSTM is "
2251  "disabled but InputLayerNormWeights are not present");
2252  }
2254  1, n_cell, "InputLayerNormWeights");
2255  }
2256  else if (m_InputLayerNormWeights)
2257  {
2258  throw InvalidArgumentException(descriptorName + ":InputLayerNormWeights are present while CIFG is "
2259  "enabled");
2260  }
2261 
2262  ValidatePointer(m_ForgetLayerNormWeights, "Null pointer check layer normalisation enabled",
2263  "ForgetLayerNormWeights");
2264  ValidateTensorNumDimNumElem(m_ForgetLayerNormWeights->GetTensorInfo(), 1, n_cell, "ForgetLayerNormWeights");
2265 
2266  ValidatePointer(m_OutputLayerNormWeights, "Null pointer check layer normalisation enabled",
2267  "OutputLayerNormWeights");
2268  ValidateTensorNumDimNumElem(m_OutputLayerNormWeights->GetTensorInfo(), 1, n_cell, "OutputLayerNormWeights");
2269 
2270  ValidatePointer(m_CellLayerNormWeights, "Null pointer check layer normalisation enabled",
2271  "CellLayerNormWeights");
2272  ValidateTensorNumDimNumElem(m_CellLayerNormWeights->GetTensorInfo(), 1, n_cell, "CellLayerNormWeights");
2273  }
2275  {
2276  throw InvalidArgumentException(descriptorName + ": Layer normalisation is disabled but one or more layer "
2277  "normalisation weights are present.");
2278  }
2279 }

References armnn::BFloat16, armnn::Float16, armnn::Float32, ConstTensorHandle::GetShape(), ConstTensorHandle::GetTensorInfo(), LstmQueueDescriptor::m_CellBias, LstmQueueDescriptor::m_CellLayerNormWeights, LstmQueueDescriptor::m_CellToForgetWeights, LstmQueueDescriptor::m_CellToInputWeights, LstmQueueDescriptor::m_CellToOutputWeights, LstmDescriptor::m_CifgEnabled, LstmDescriptor::m_ClippingThresCell, LstmDescriptor::m_ClippingThresProj, LstmQueueDescriptor::m_ForgetGateBias, LstmQueueDescriptor::m_ForgetLayerNormWeights, LstmQueueDescriptor::m_InputGateBias, LstmQueueDescriptor::m_InputLayerNormWeights, WorkloadInfo::m_InputTensorInfos, LstmQueueDescriptor::m_InputToCellWeights, LstmQueueDescriptor::m_InputToForgetWeights, LstmQueueDescriptor::m_InputToInputWeights, LstmQueueDescriptor::m_InputToOutputWeights, LstmDescriptor::m_LayerNormEnabled, LstmQueueDescriptor::m_OutputGateBias, LstmQueueDescriptor::m_OutputLayerNormWeights, WorkloadInfo::m_OutputTensorInfos, QueueDescriptorWithParameters< LstmDescriptor >::m_Parameters, LstmDescriptor::m_PeepholeEnabled, LstmQueueDescriptor::m_ProjectionBias, LstmDescriptor::m_ProjectionEnabled, LstmQueueDescriptor::m_ProjectionWeights, LstmQueueDescriptor::m_RecurrentToCellWeights, LstmQueueDescriptor::m_RecurrentToForgetWeights, LstmQueueDescriptor::m_RecurrentToInputWeights, LstmQueueDescriptor::m_RecurrentToOutputWeights, armnn::QSymmS16, and QueueDescriptor::ValidateTensorNumDimNumElem().

Member Data Documentation

◆ m_CellBias

const ConstTensorHandle* m_CellBias

Definition at line 440 of file WorkloadData.hpp.

Referenced by LstmLayer::CreateWorkload(), and LstmQueueDescriptor::Validate().

◆ m_CellLayerNormWeights

const ConstTensorHandle* m_CellLayerNormWeights

Definition at line 446 of file WorkloadData.hpp.

Referenced by LstmLayer::CreateWorkload(), and LstmQueueDescriptor::Validate().

◆ m_CellToForgetWeights

const ConstTensorHandle* m_CellToForgetWeights

Definition at line 436 of file WorkloadData.hpp.

Referenced by LstmLayer::CreateWorkload(), and LstmQueueDescriptor::Validate().

◆ m_CellToInputWeights

const ConstTensorHandle* m_CellToInputWeights

Definition at line 435 of file WorkloadData.hpp.

Referenced by LstmLayer::CreateWorkload(), and LstmQueueDescriptor::Validate().

◆ m_CellToOutputWeights

const ConstTensorHandle* m_CellToOutputWeights

Definition at line 437 of file WorkloadData.hpp.

Referenced by LstmLayer::CreateWorkload(), and LstmQueueDescriptor::Validate().

◆ m_ForgetGateBias

const ConstTensorHandle* m_ForgetGateBias

Definition at line 439 of file WorkloadData.hpp.

Referenced by LstmLayer::CreateWorkload(), and LstmQueueDescriptor::Validate().

◆ m_ForgetLayerNormWeights

const ConstTensorHandle* m_ForgetLayerNormWeights

Definition at line 445 of file WorkloadData.hpp.

Referenced by LstmLayer::CreateWorkload(), and LstmQueueDescriptor::Validate().

◆ m_InputGateBias

const ConstTensorHandle* m_InputGateBias

Definition at line 438 of file WorkloadData.hpp.

Referenced by LstmLayer::CreateWorkload(), and LstmQueueDescriptor::Validate().

◆ m_InputLayerNormWeights

const ConstTensorHandle* m_InputLayerNormWeights

Definition at line 444 of file WorkloadData.hpp.

Referenced by LstmLayer::CreateWorkload(), and LstmQueueDescriptor::Validate().

◆ m_InputToCellWeights

const ConstTensorHandle* m_InputToCellWeights

Definition at line 429 of file WorkloadData.hpp.

Referenced by LstmLayer::CreateWorkload(), and LstmQueueDescriptor::Validate().

◆ m_InputToForgetWeights

const ConstTensorHandle* m_InputToForgetWeights

Definition at line 428 of file WorkloadData.hpp.

Referenced by LstmLayer::CreateWorkload(), and LstmQueueDescriptor::Validate().

◆ m_InputToInputWeights

const ConstTensorHandle* m_InputToInputWeights

Definition at line 427 of file WorkloadData.hpp.

Referenced by LstmLayer::CreateWorkload(), and LstmQueueDescriptor::Validate().

◆ m_InputToOutputWeights

const ConstTensorHandle* m_InputToOutputWeights

Definition at line 430 of file WorkloadData.hpp.

Referenced by LstmLayer::CreateWorkload(), and LstmQueueDescriptor::Validate().

◆ m_OutputGateBias

const ConstTensorHandle* m_OutputGateBias

Definition at line 441 of file WorkloadData.hpp.

Referenced by LstmLayer::CreateWorkload(), and LstmQueueDescriptor::Validate().

◆ m_OutputLayerNormWeights

const ConstTensorHandle* m_OutputLayerNormWeights

Definition at line 447 of file WorkloadData.hpp.

Referenced by LstmLayer::CreateWorkload(), and LstmQueueDescriptor::Validate().

◆ m_ProjectionBias

const ConstTensorHandle* m_ProjectionBias

Definition at line 443 of file WorkloadData.hpp.

Referenced by LstmLayer::CreateWorkload(), and LstmQueueDescriptor::Validate().

◆ m_ProjectionWeights

const ConstTensorHandle* m_ProjectionWeights

Definition at line 442 of file WorkloadData.hpp.

Referenced by LstmLayer::CreateWorkload(), and LstmQueueDescriptor::Validate().

◆ m_RecurrentToCellWeights

const ConstTensorHandle* m_RecurrentToCellWeights

Definition at line 433 of file WorkloadData.hpp.

Referenced by LstmLayer::CreateWorkload(), and LstmQueueDescriptor::Validate().

◆ m_RecurrentToForgetWeights

const ConstTensorHandle* m_RecurrentToForgetWeights

Definition at line 432 of file WorkloadData.hpp.

Referenced by LstmLayer::CreateWorkload(), and LstmQueueDescriptor::Validate().

◆ m_RecurrentToInputWeights

const ConstTensorHandle* m_RecurrentToInputWeights

Definition at line 431 of file WorkloadData.hpp.

Referenced by LstmLayer::CreateWorkload(), and LstmQueueDescriptor::Validate().

◆ m_RecurrentToOutputWeights

const ConstTensorHandle* m_RecurrentToOutputWeights

Definition at line 434 of file WorkloadData.hpp.

Referenced by LstmLayer::CreateWorkload(), and LstmQueueDescriptor::Validate().


The documentation for this struct was generated from the following files:
armnn::LstmQueueDescriptor::m_ForgetLayerNormWeights
const ConstTensorHandle * m_ForgetLayerNormWeights
Definition: WorkloadData.hpp:445
armnn::LstmQueueDescriptor::m_CellBias
const ConstTensorHandle * m_CellBias
Definition: WorkloadData.hpp:440
armnn::ConstTensorHandle::GetShape
TensorShape GetShape() const override
Get the number of elements for each dimension ordered from slowest iterating dimension to fastest ite...
Definition: TensorHandle.hpp:56
armnn::LstmQueueDescriptor::m_InputToInputWeights
const ConstTensorHandle * m_InputToInputWeights
Definition: WorkloadData.hpp:427
armnn::LstmQueueDescriptor::m_ForgetGateBias
const ConstTensorHandle * m_ForgetGateBias
Definition: WorkloadData.hpp:439
armnn::LstmQueueDescriptor::m_InputToForgetWeights
const ConstTensorHandle * m_InputToForgetWeights
Definition: WorkloadData.hpp:428
armnn::DataType::Float32
@ Float32
armnn::ConstTensorHandle::GetTensorInfo
const TensorInfo & GetTensorInfo() const
Definition: TensorHandle.hpp:40
armnn::LstmQueueDescriptor::m_InputToCellWeights
const ConstTensorHandle * m_InputToCellWeights
Definition: WorkloadData.hpp:429
armnn::DataType::QSymmS16
@ QSymmS16
armnn::DataType::BFloat16
@ BFloat16
armnn::LstmQueueDescriptor::m_CellToOutputWeights
const ConstTensorHandle * m_CellToOutputWeights
Definition: WorkloadData.hpp:437
armnn::LstmDescriptor::m_PeepholeEnabled
bool m_PeepholeEnabled
Enable/disable peephole.
Definition: Descriptors.hpp:1148
armnn::DataType::Float16
@ Float16
armnn::WorkloadInfo::m_OutputTensorInfos
std::vector< TensorInfo > m_OutputTensorInfos
Definition: WorkloadInfo.hpp:19
armnn::LstmDescriptor::m_ClippingThresProj
float m_ClippingThresProj
Clipping threshold value for the projection.
Definition: Descriptors.hpp:1144
armnn::QueueDescriptorWithParameters< LstmDescriptor >::m_Parameters
LstmDescriptor m_Parameters
Definition: WorkloadData.hpp:66
armnn::InvalidArgumentException
Definition: Exceptions.hpp:80
armnn::LstmQueueDescriptor::m_InputGateBias
const ConstTensorHandle * m_InputGateBias
Definition: WorkloadData.hpp:438
armnn::LstmQueueDescriptor::m_RecurrentToCellWeights
const ConstTensorHandle * m_RecurrentToCellWeights
Definition: WorkloadData.hpp:433
armnn::LstmQueueDescriptor::m_CellLayerNormWeights
const ConstTensorHandle * m_CellLayerNormWeights
Definition: WorkloadData.hpp:446
armnn::LstmDescriptor::m_CifgEnabled
bool m_CifgEnabled
Enable/disable cifg (coupled input & forget gate).
Definition: Descriptors.hpp:1146
armnn::LstmQueueDescriptor::m_RecurrentToOutputWeights
const ConstTensorHandle * m_RecurrentToOutputWeights
Definition: WorkloadData.hpp:434
armnn::LstmQueueDescriptor::m_InputLayerNormWeights
const ConstTensorHandle * m_InputLayerNormWeights
Definition: WorkloadData.hpp:444
armnn::LstmDescriptor::m_LayerNormEnabled
bool m_LayerNormEnabled
Enable/disable layer normalization.
Definition: Descriptors.hpp:1152
armnn::LstmQueueDescriptor::m_RecurrentToForgetWeights
const ConstTensorHandle * m_RecurrentToForgetWeights
Definition: WorkloadData.hpp:432
armnn::WorkloadInfo::m_InputTensorInfos
std::vector< TensorInfo > m_InputTensorInfos
Definition: WorkloadInfo.hpp:18
armnn::LstmQueueDescriptor::m_ProjectionWeights
const ConstTensorHandle * m_ProjectionWeights
Definition: WorkloadData.hpp:442
armnn::LstmQueueDescriptor::m_CellToInputWeights
const ConstTensorHandle * m_CellToInputWeights
Definition: WorkloadData.hpp:435
armnn::LstmQueueDescriptor::m_RecurrentToInputWeights
const ConstTensorHandle * m_RecurrentToInputWeights
Definition: WorkloadData.hpp:431
armnn::LstmDescriptor::m_ProjectionEnabled
bool m_ProjectionEnabled
Enable/disable the projection layer.
Definition: Descriptors.hpp:1150
armnn::LstmQueueDescriptor::m_ProjectionBias
const ConstTensorHandle * m_ProjectionBias
Definition: WorkloadData.hpp:443
armnn::LstmQueueDescriptor::m_OutputGateBias
const ConstTensorHandle * m_OutputGateBias
Definition: WorkloadData.hpp:441
armnn::QueueDescriptor::ValidateTensorNumDimNumElem
void ValidateTensorNumDimNumElem(const TensorInfo &tensorInfo, unsigned int numDimension, unsigned int numElements, std::string const &tensorName) const
Definition: WorkloadData.cpp:435
armnn::LstmQueueDescriptor::m_CellToForgetWeights
const ConstTensorHandle * m_CellToForgetWeights
Definition: WorkloadData.hpp:436
armnn::LstmQueueDescriptor::m_InputToOutputWeights
const ConstTensorHandle * m_InputToOutputWeights
Definition: WorkloadData.hpp:430
armnn::LstmDescriptor::m_ClippingThresCell
float m_ClippingThresCell
Clipping threshold value for the cell state.
Definition: Descriptors.hpp:1142
armnn::LstmQueueDescriptor::m_OutputLayerNormWeights
const ConstTensorHandle * m_OutputLayerNormWeights
Definition: WorkloadData.hpp:447