ArmNN
 23.02
UnidirectionalSequenceLstmQueueDescriptor Struct Reference

#include <WorkloadData.hpp>

Inheritance diagram for UnidirectionalSequenceLstmQueueDescriptor:
QueueDescriptorWithParameters< LstmDescriptor > QueueDescriptor

Public Member Functions

 UnidirectionalSequenceLstmQueueDescriptor ()
 
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 686 of file WorkloadData.hpp.

Constructor & Destructor Documentation

◆ UnidirectionalSequenceLstmQueueDescriptor()

Definition at line 688 of file WorkloadData.hpp.

689  : m_InputToInputWeights(nullptr)
690  , m_InputToForgetWeights(nullptr)
691  , m_InputToCellWeights(nullptr)
692  , m_InputToOutputWeights(nullptr)
693  , m_RecurrentToInputWeights(nullptr)
694  , m_RecurrentToForgetWeights(nullptr)
695  , m_RecurrentToCellWeights(nullptr)
696  , m_RecurrentToOutputWeights(nullptr)
697  , m_CellToInputWeights(nullptr)
698  , m_CellToForgetWeights(nullptr)
699  , m_CellToOutputWeights(nullptr)
700  , m_InputGateBias(nullptr)
701  , m_ForgetGateBias(nullptr)
702  , m_CellBias(nullptr)
703  , m_OutputGateBias(nullptr)
704  , m_ProjectionWeights(nullptr)
705  , m_ProjectionBias(nullptr)
706  , m_InputLayerNormWeights(nullptr)
707  , m_ForgetLayerNormWeights(nullptr)
708  , m_CellLayerNormWeights(nullptr)
709  , m_OutputLayerNormWeights(nullptr)
710  {
711  }

Member Function Documentation

◆ Validate()

void Validate ( const WorkloadInfo workloadInfo) const

Definition at line 3800 of file WorkloadData.cpp.

3801 {
3802  // Modified from LstmQueueDescriptor::Validate to support UnidirectionalSequenceLstm
3803 
3804  const std::string descriptorName{"UnidirectionalSequenceLstmQueueDescriptor"};
3805 
3806  // check dimensions of all inputs and outputs
3807  if (workloadInfo.m_InputTensorInfos.size() != 3)
3808  {
3809  throw InvalidArgumentException(descriptorName + ": Invalid number of inputs.");
3810  }
3811  if (workloadInfo.m_OutputTensorInfos.size() != 3)
3812  {
3813  throw InvalidArgumentException(descriptorName + ": Invalid number of outputs.");
3814  }
3815 
3816  std::vector<DataType> supportedTypes =
3817  {
3820  };
3821 
3822  // check for supported type of one input and match them with all the other input and output
3823  ValidateDataTypes(workloadInfo.m_InputTensorInfos[0], supportedTypes, descriptorName);
3824 
3825  // Making sure clipping parameters have valid values.
3826  // == 0 means no clipping
3827  // > 0 means clipping
3828  if (m_Parameters.m_ClippingThresCell < 0.0f)
3829  {
3830  throw InvalidArgumentException(descriptorName + ": negative cell clipping threshold is invalid");
3831  }
3832  if (m_Parameters.m_ClippingThresProj < 0.0f)
3833  {
3834  throw InvalidArgumentException(descriptorName + ": negative projection clipping threshold is invalid");
3835  }
3836 
3837  unsigned int batchIndx = 0;
3838  unsigned int inputIndx = 1;
3839  uint32_t timeStep = 1;
3840  unsigned int timeIndx = 1;
3841  inputIndx = 2;
3843  {
3844  batchIndx = 1;
3845  timeIndx = 0;
3846 
3847  }
3848  timeStep = workloadInfo.m_InputTensorInfos[0].GetShape()[timeIndx];
3849 
3850  // Inferring batch size, number of outputs and number of cells from the inputs.
3851  const uint32_t n_input = workloadInfo.m_InputTensorInfos[0].GetShape()[inputIndx];
3852  const uint32_t n_batch = workloadInfo.m_InputTensorInfos[0].GetShape()[batchIndx];
3853  ValidatePointer(m_InputToOutputWeights, "Null pointer check", "InputToOutputWeights");
3854  const uint32_t n_cell = m_InputToOutputWeights->GetShape()[0];
3855  ValidatePointer(m_RecurrentToOutputWeights, "Null pointer check", "RecurrentToOutputWeights");
3856  const uint32_t n_output = m_RecurrentToOutputWeights->GetShape()[1];
3857 
3858  // input tensor
3859  ValidateTensorNumDimNumElem(workloadInfo.m_InputTensorInfos[0], 3, (timeStep * n_batch * n_input),
3860  descriptorName + " input_0");
3861  // outputStateInTensor
3862  ValidateTensorNumDimNumElem(workloadInfo.m_InputTensorInfos[1], 2, (n_batch * n_output),
3863  descriptorName + " input_1");
3864  // outputStateInTensor
3865  ValidateTensorNumDimNumElem(workloadInfo.m_InputTensorInfos[2], 2, (n_batch * n_cell),
3866  descriptorName + " input_2");
3867 
3868  // outputTensor
3869  ValidateTensorNumDimNumElem(workloadInfo.m_OutputTensorInfos[2], 3, (timeStep * n_batch * n_output),
3870  descriptorName + " output_0");
3871 
3872  // check that dimensions of inputs/outputs and QueueDescriptor data match with each other
3873  if ( m_InputToInputWeights )
3874  {
3876  (n_cell * n_input), "InputLayerNormWeights");
3877  }
3878 
3879  ValidatePointer(m_InputToForgetWeights, "Null pointer check", "InputToForgetWeights");
3881  (n_cell * n_input), "InputToForgetWeights");
3882 
3883  ValidatePointer(m_InputToCellWeights, "Null pointer check", "InputToCellWeights");
3885  (n_cell * n_input), "InputToCellWeights");
3886 
3888  {
3890  (n_cell * n_output), "RecurrentToInputWeights");
3891  }
3892 
3893  ValidatePointer(m_RecurrentToForgetWeights, "Null pointer check", "RecurrentToForgetWeights");
3895  (n_cell * n_output), "RecurrentToForgetWeights");
3896 
3897  ValidatePointer(m_RecurrentToCellWeights, "Null pointer check", "RecurrentToCellWeights");
3899  (n_cell * n_output), "RecurrentToCellWeights");
3900 
3901  // Make sure the input-gate's parameters are either both present (regular
3902  // LSTM) or not at all (CIFG-LSTM). And CifgEnable is set accordingly.
3903  bool cifg_weights_all_or_none = ((m_InputToInputWeights && m_RecurrentToInputWeights &&
3907  if (!cifg_weights_all_or_none)
3908  {
3909  throw InvalidArgumentException(descriptorName + ": Input-Gate's parameters InputToInputWeights and "
3910  "RecurrentToInputWeights must either both be present (regular LSTM) "
3911  "or both not present (CIFG-LSTM). In addition CifgEnable must be set "
3912  "accordingly.");
3913  }
3914 
3915  if ( m_CellToInputWeights )
3916  {
3918  n_cell, "CellToInputWeights");
3919  }
3920  if ( m_CellToForgetWeights )
3921  {
3923  n_cell, "CellToForgetWeights");
3924  }
3925  if ( m_CellToOutputWeights )
3926  {
3928  n_cell, "CellToOutputWeights");
3929  }
3930 
3931  // Making sure the peephole weights are there all or none. And PeepholeEnable is set accordingly.
3932  bool peephole_weights_all_or_none =
3937  if (!peephole_weights_all_or_none)
3938  {
3939  throw InvalidArgumentException(descriptorName + ": Invalid combination of peephole parameters.");
3940  }
3941 
3942  // Make sure the input gate bias is present only when not a CIFG-LSTM.
3944  {
3945  if (m_InputGateBias)
3946  {
3947  throw InvalidArgumentException(descriptorName + ": InputGateBias is present and CIFG-LSTM is enabled.");
3948  }
3949  }
3950  else
3951  {
3952  if (!m_InputGateBias)
3953  {
3954  throw InvalidArgumentException(descriptorName + ": If CIFG-LSTM is disabled InputGateBias "
3955  "must be present.");
3956  }
3958  n_cell, "InputGateBias");
3959  }
3960 
3961  ValidatePointer(m_ForgetGateBias, "Null pointer check", "ForgetGateBias");
3962  ValidateTensorNumDimNumElem(m_ForgetGateBias->GetTensorInfo(), 1, n_cell, "ForgetGateBias");
3963 
3964  ValidatePointer(m_CellBias, "Null pointer check", "CellBias");
3965  ValidateTensorNumDimNumElem(m_CellBias->GetTensorInfo(), 1, n_cell, "CellBias");
3966 
3967  ValidatePointer(m_OutputGateBias, "Null pointer check", "OutputGateBias");
3968  ValidateTensorNumDimNumElem(m_OutputGateBias->GetTensorInfo(), 1, n_cell, "OutputGateBias");
3969 
3970  if (m_ProjectionWeights)
3971  {
3973  (n_cell * n_output), "ProjectionWeights");
3974  }
3975  if (m_ProjectionBias)
3976  {
3977  ValidateTensorNumDimNumElem(m_ProjectionBias->GetTensorInfo(), 1, n_output, "ProjectionBias");
3978  }
3979 
3980  // Making sure the projection tensors are consistent:
3981  // 1) If projection weight is not present, then projection bias should not be
3982  // present.
3983  // 2) If projection weight is present, then projection bias is optional.
3984  bool projecton_tensors_consistent = ((!m_ProjectionWeights && !m_ProjectionBias &&
3990  if (!projecton_tensors_consistent)
3991  {
3992  throw InvalidArgumentException(descriptorName + ": Projection tensors are inconsistent.");
3993  }
3994 
3995  // The four layer normalization weights either all have values or none of them have values. Additionally, if
3996  // CIFG is used, input layer normalization weights tensor is omitted and the other layer normalization weights
3997  // either all have values or none of them have values. Layer normalization is used when the values of all the
3998  // layer normalization weights are present
4000  {
4001  ValidateTensorNumDimNumElem(m_InputLayerNormWeights->GetTensorInfo(), 1, n_cell, "InputLayerNormWeights");
4002  }
4004  {
4005  ValidateTensorNumDimNumElem(m_ForgetLayerNormWeights->GetTensorInfo(), 1, n_cell, "ForgetLayerNormWeights");
4006  }
4008  {
4009  ValidateTensorNumDimNumElem(m_CellLayerNormWeights->GetTensorInfo(), 1, n_cell, "CellLayerNormWeights");
4010  }
4012  {
4013  ValidateTensorNumDimNumElem(m_OutputLayerNormWeights->GetTensorInfo(), 1, n_cell, "OutputLayerNormWeights");
4014  }
4015 
4017  {
4019  {
4021  {
4022  throw InvalidArgumentException(descriptorName + ": Layer normalisation is enabled and CIFG-LSTM is "
4023  "disabled but InputLayerNormWeights are not present");
4024  }
4026  1, n_cell, "InputLayerNormWeights");
4027  }
4028  else if (m_InputLayerNormWeights)
4029  {
4030  throw InvalidArgumentException(descriptorName + ":InputLayerNormWeights are present while CIFG is "
4031  "enabled");
4032  }
4033 
4034  ValidatePointer(m_ForgetLayerNormWeights, "Null pointer check layer normalisation enabled",
4035  "ForgetLayerNormWeights");
4036  ValidateTensorNumDimNumElem(m_ForgetLayerNormWeights->GetTensorInfo(), 1, n_cell, "ForgetLayerNormWeights");
4037 
4038  ValidatePointer(m_OutputLayerNormWeights, "Null pointer check layer normalisation enabled",
4039  "OutputLayerNormWeights");
4040  ValidateTensorNumDimNumElem(m_OutputLayerNormWeights->GetTensorInfo(), 1, n_cell, "OutputLayerNormWeights");
4041 
4042  ValidatePointer(m_CellLayerNormWeights, "Null pointer check layer normalisation enabled",
4043  "CellLayerNormWeights");
4044  ValidateTensorNumDimNumElem(m_CellLayerNormWeights->GetTensorInfo(), 1, n_cell, "CellLayerNormWeights");
4045  }
4047  {
4048  throw InvalidArgumentException(descriptorName + ": Layer normalisation is disabled but one or more layer "
4049  "normalisation weights are present.");
4050  }
4051 }

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

Member Data Documentation

◆ m_CellBias

◆ m_CellLayerNormWeights

◆ m_CellToForgetWeights

◆ m_CellToInputWeights

◆ m_CellToOutputWeights

◆ m_ForgetGateBias

◆ m_ForgetLayerNormWeights

◆ m_InputGateBias

◆ m_InputLayerNormWeights

◆ m_InputToCellWeights

◆ m_InputToForgetWeights

◆ m_InputToInputWeights

◆ m_InputToOutputWeights

◆ m_OutputGateBias

◆ m_OutputLayerNormWeights

◆ m_ProjectionBias

◆ m_ProjectionWeights

◆ m_RecurrentToCellWeights

◆ m_RecurrentToForgetWeights

◆ m_RecurrentToInputWeights

◆ m_RecurrentToOutputWeights


The documentation for this struct was generated from the following files:
armnn::UnidirectionalSequenceLstmQueueDescriptor::m_RecurrentToForgetWeights
const ConstTensorHandle * m_RecurrentToForgetWeights
Definition: WorkloadData.hpp:718
armnn::UnidirectionalSequenceLstmQueueDescriptor::m_OutputLayerNormWeights
const ConstTensorHandle * m_OutputLayerNormWeights
Definition: WorkloadData.hpp:733
armnn::LstmDescriptor::m_TimeMajor
bool m_TimeMajor
Enable/disable time major.
Definition: Descriptors.hpp:1101
armnn::UnidirectionalSequenceLstmQueueDescriptor::m_RecurrentToOutputWeights
const ConstTensorHandle * m_RecurrentToOutputWeights
Definition: WorkloadData.hpp:720
armnn::UnidirectionalSequenceLstmQueueDescriptor::m_InputGateBias
const ConstTensorHandle * m_InputGateBias
Definition: WorkloadData.hpp:724
armnn::UnidirectionalSequenceLstmQueueDescriptor::m_CellToOutputWeights
const ConstTensorHandle * m_CellToOutputWeights
Definition: WorkloadData.hpp:723
armnn::QueueDescriptor::ValidateTensorNumDimNumElem
void ValidateTensorNumDimNumElem(const TensorInfo &tensorInfo, unsigned int numDimension, unsigned int numElements, std::string const &tensorName) const
Definition: WorkloadData.cpp:464
armnn::UnidirectionalSequenceLstmQueueDescriptor::m_ForgetGateBias
const ConstTensorHandle * m_ForgetGateBias
Definition: WorkloadData.hpp:725
armnn::UnidirectionalSequenceLstmQueueDescriptor::m_CellToForgetWeights
const ConstTensorHandle * m_CellToForgetWeights
Definition: WorkloadData.hpp:722
armnn::LstmDescriptor::m_CifgEnabled
bool m_CifgEnabled
Enable/disable cifg (coupled input & forget gate).
Definition: Descriptors.hpp:1093
armnn::LstmDescriptor::m_LayerNormEnabled
bool m_LayerNormEnabled
Enable/disable layer normalization.
Definition: Descriptors.hpp:1099
armnn::DataType::QAsymmS8
@ QAsymmS8
armnn::UnidirectionalSequenceLstmQueueDescriptor::m_InputToInputWeights
const ConstTensorHandle * m_InputToInputWeights
Definition: WorkloadData.hpp:713
armnn::UnidirectionalSequenceLstmQueueDescriptor::m_CellBias
const ConstTensorHandle * m_CellBias
Definition: WorkloadData.hpp:726
armnn::UnidirectionalSequenceLstmQueueDescriptor::m_InputToForgetWeights
const ConstTensorHandle * m_InputToForgetWeights
Definition: WorkloadData.hpp:714
armnn::UnidirectionalSequenceLstmQueueDescriptor::m_OutputGateBias
const ConstTensorHandle * m_OutputGateBias
Definition: WorkloadData.hpp:727
armnn::UnidirectionalSequenceLstmQueueDescriptor::m_CellLayerNormWeights
const ConstTensorHandle * m_CellLayerNormWeights
Definition: WorkloadData.hpp:732
armnn::WorkloadInfo::m_OutputTensorInfos
std::vector< TensorInfo > m_OutputTensorInfos
Definition: WorkloadInfo.hpp:19
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::UnidirectionalSequenceLstmQueueDescriptor::m_CellToInputWeights
const ConstTensorHandle * m_CellToInputWeights
Definition: WorkloadData.hpp:721
armnn::DataType::Float32
@ Float32
armnn::LstmDescriptor::m_PeepholeEnabled
bool m_PeepholeEnabled
Enable/disable peephole.
Definition: Descriptors.hpp:1095
armnn::UnidirectionalSequenceLstmQueueDescriptor::m_ProjectionWeights
const ConstTensorHandle * m_ProjectionWeights
Definition: WorkloadData.hpp:728
armnn::ConstTensorHandle::GetTensorInfo
const TensorInfo & GetTensorInfo() const
Definition: TensorHandle.hpp:40
armnn::UnidirectionalSequenceLstmQueueDescriptor::m_ForgetLayerNormWeights
const ConstTensorHandle * m_ForgetLayerNormWeights
Definition: WorkloadData.hpp:731
armnn::LstmDescriptor::m_ClippingThresCell
float m_ClippingThresCell
Clipping threshold value for the cell state.
Definition: Descriptors.hpp:1089
armnn::UnidirectionalSequenceLstmQueueDescriptor::m_RecurrentToInputWeights
const ConstTensorHandle * m_RecurrentToInputWeights
Definition: WorkloadData.hpp:717
armnn::QueueDescriptorWithParameters< LstmDescriptor >::m_Parameters
LstmDescriptor m_Parameters
Definition: WorkloadData.hpp:66
armnn::UnidirectionalSequenceLstmQueueDescriptor::m_ProjectionBias
const ConstTensorHandle * m_ProjectionBias
Definition: WorkloadData.hpp:729
armnn::LstmDescriptor::m_ProjectionEnabled
bool m_ProjectionEnabled
Enable/disable the projection layer.
Definition: Descriptors.hpp:1097
armnn::UnidirectionalSequenceLstmQueueDescriptor::m_InputLayerNormWeights
const ConstTensorHandle * m_InputLayerNormWeights
Definition: WorkloadData.hpp:730
armnn::UnidirectionalSequenceLstmQueueDescriptor::m_InputToCellWeights
const ConstTensorHandle * m_InputToCellWeights
Definition: WorkloadData.hpp:715
armnn::UnidirectionalSequenceLstmQueueDescriptor::m_RecurrentToCellWeights
const ConstTensorHandle * m_RecurrentToCellWeights
Definition: WorkloadData.hpp:719
armnn::LstmDescriptor::m_ClippingThresProj
float m_ClippingThresProj
Clipping threshold value for the projection.
Definition: Descriptors.hpp:1091
armnn::UnidirectionalSequenceLstmQueueDescriptor::m_InputToOutputWeights
const ConstTensorHandle * m_InputToOutputWeights
Definition: WorkloadData.hpp:716
armnn::InvalidArgumentException
Definition: Exceptions.hpp:80
armnn::WorkloadInfo::m_InputTensorInfos
std::vector< TensorInfo > m_InputTensorInfos
Definition: WorkloadInfo.hpp:18