From 1299496996bc332f02218f926640a9255ed60310 Mon Sep 17 00:00:00 2001 From: Mike Kelly Date: Thu, 21 Apr 2022 11:57:09 +0100 Subject: IVGCVSW-6806 Add Unidirectional Sequence Lstm support to Neon * Corrected TensorInfo order for IsUnidirectionalSequenceLstmSupported * outputStateOut TensorInfo is not optional. * cellStateOut TensorInfo is not optional. * TensorInfo Order matches other QLSTM/LSTM layers. * Added missing parameters to UnidirectionalSequenceLstmOperator for delegate. * Added quantized UnidirectionalSequenceLstm support to Neon !android-nn-driver:7457 Signed-off-by: Mike Kelly Change-Id: I26dde1bb96793dd25eb9081ca5ae5f63752288c4 --- .../cl/workloads/ClUnidirectionalSequenceLstmFloatWorkload.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src/backends/cl/workloads') diff --git a/src/backends/cl/workloads/ClUnidirectionalSequenceLstmFloatWorkload.cpp b/src/backends/cl/workloads/ClUnidirectionalSequenceLstmFloatWorkload.cpp index cc9aea8486..ac24120804 100644 --- a/src/backends/cl/workloads/ClUnidirectionalSequenceLstmFloatWorkload.cpp +++ b/src/backends/cl/workloads/ClUnidirectionalSequenceLstmFloatWorkload.cpp @@ -41,17 +41,17 @@ ClUnidirectionalSequenceLstmFloatWorkload::ClUnidirectionalSequenceLstmFloatWork GetGuid()); const arm_compute::ICLTensor& input = static_cast(m_Data.m_Inputs[0])->GetTensor(); - arm_compute::ICLTensor& output = static_cast(m_Data.m_Outputs[0])->GetTensor(); + arm_compute::ICLTensor& output = static_cast(m_Data.m_Outputs[2])->GetTensor(); TensorInfo inputInfo = info.m_InputTensorInfos[0]; - TensorInfo outputInfo = info.m_OutputTensorInfos[0]; + TensorInfo outputInfo = info.m_OutputTensorInfos[2]; arm_compute::DataType armComputeDataType = static_cast(m_Data.m_Inputs[0])->GetDataType(); armnn::DataType armnnDataType = GetArmNNDataType(armComputeDataType); TensorShape inputLayerShape = static_cast(m_Data.m_Inputs[0])->GetShape(); TensorShape cellStateLayerShape = static_cast(m_Data.m_Inputs[2])->GetShape(); - TensorShape outputLayerShape = static_cast(m_Data.m_Outputs[0])->GetShape(); + TensorShape outputLayerShape = static_cast(m_Data.m_Outputs[2])->GetShape(); unsigned int maxTime = m_Data.m_Parameters.m_TimeMajor ? inputLayerShape[0] : inputLayerShape[1]; unsigned int batchSize = m_Data.m_Parameters.m_TimeMajor ? inputLayerShape[1] : inputLayerShape[0]; -- cgit v1.2.1