66 BaseWorkload<QuantizedLstmQueueDescriptor>(descriptor,
info)
68 m_InputToInputWeightsTensor = std::make_unique<arm_compute::CLTensor>();
71 m_InputToForgetWeightsTensor = std::make_unique<arm_compute::CLTensor>();
74 m_InputToCellWeightsTensor = std::make_unique<arm_compute::CLTensor>();
77 m_InputToOutputWeightsTensor = std::make_unique<arm_compute::CLTensor>();
80 m_RecurrentToInputWeightsTensor = std::make_unique<arm_compute::CLTensor>();
83 m_RecurrentToForgetWeightsTensor = std::make_unique<arm_compute::CLTensor>();
86 m_RecurrentToCellWeightsTensor = std::make_unique<arm_compute::CLTensor>();
89 m_RecurrentToOutputWeightsTensor = std::make_unique<arm_compute::CLTensor>();
92 m_InputGateBiasTensor = std::make_unique<arm_compute::CLTensor>();
95 m_ForgetGateBiasTensor = std::make_unique<arm_compute::CLTensor>();
98 m_CellBiasTensor = std::make_unique<arm_compute::CLTensor>();
101 m_OutputGateBiasTensor = std::make_unique<arm_compute::CLTensor>();
104 const arm_compute::ICLTensor& inputTensor =
static_cast<IClTensorHandle*
>(
m_Data.
m_Inputs[0])->GetTensor();
105 arm_compute::ICLTensor& cellStateInTensor =
static_cast<IClTensorHandle*
>(
m_Data.
m_Inputs[1])->GetTensor();
106 const arm_compute::ICLTensor& outputStateInTensor =
static_cast<IClTensorHandle*
>(
m_Data.
m_Inputs[2])->GetTensor();
108 arm_compute::ICLTensor& cellStateOutTensor =
static_cast<IClTensorHandle*
>(
m_Data.
m_Outputs[0])->GetTensor();
109 arm_compute::ICLTensor& outputStateOutTensor =
static_cast<IClTensorHandle*
>(
m_Data.
m_Outputs[1])->GetTensor();
111 m_QuantizedLstmLayer.configure(&inputTensor, m_InputToInputWeightsTensor.get(), m_InputToForgetWeightsTensor.get(),
112 m_InputToCellWeightsTensor.get(), m_InputToOutputWeightsTensor.get(),
113 m_RecurrentToInputWeightsTensor.get(), m_RecurrentToForgetWeightsTensor.get(),
114 m_RecurrentToCellWeightsTensor.get(), m_RecurrentToOutputWeightsTensor.get(),
115 m_InputGateBiasTensor.get(), m_ForgetGateBiasTensor.get(), m_CellBiasTensor.get(),
116 m_OutputGateBiasTensor.get(), &cellStateInTensor, &outputStateInTensor,
117 &cellStateOutTensor, &outputStateOutTensor);
132 m_QuantizedLstmLayer.prepare();
const ConstCpuTensorHandle * m_CellBias
const ConstCpuTensorHandle * m_ForgetGateBias
const ConstCpuTensorHandle * m_InputToForgetWeights
const TensorInfo & GetTensorInfo() const
const ConstCpuTensorHandle * m_InputToInputWeights
void InitializeArmComputeClTensorData(arm_compute::CLTensor &clTensor, const ConstCpuTensorHandle *handle)
const ConstCpuTensorHandle * m_RecurrentToInputWeights
const ConstCpuTensorHandle * m_OutputGateBias
const ConstCpuTensorHandle * m_InputGateBias
const QuantizedLstmQueueDescriptor m_Data
const ConstCpuTensorHandle * m_RecurrentToForgetWeights
const ConstCpuTensorHandle * m_RecurrentToOutputWeights
const ConstCpuTensorHandle * m_InputToOutputWeights
std::vector< ITensorHandle * > m_Outputs
std::vector< ITensorHandle * > m_Inputs
const ConstCpuTensorHandle * m_RecurrentToCellWeights
const ConstCpuTensorHandle * m_InputToCellWeights