// // Copyright © 2021 Arm Ltd and Contributors. All rights reserved. // SPDX-License-Identifier: MIT // #pragma once #include "LayerWithParameters.hpp" namespace armnn { class ScopedTensorHandle; struct LstmOptLayerNormParameters { /// A unique pointer to represent 1D weights tensor with dimensions [num_units]. std::shared_ptr m_InputLayerNormWeights; /// A unique pointer to represent 1D weights tensor with dimensions [num_units]. std::shared_ptr m_ForgetLayerNormWeights; /// A unique pointer to represent 1D weights tensor with dimensions [num_units]. std::shared_ptr m_CellLayerNormWeights; /// A unique pointer to represent 1D weights tensor with dimensions [num_units]. std::shared_ptr m_OutputLayerNormWeights; }; struct LstmOptCifgParameters { /// A unique pointer to represent 2D weights tensor with dimensions [input_size, num_units]. std::shared_ptr m_InputToInputWeights; /// A unique pointer to represent 2D weights tensor with dimensions [input_size, num_units]. std::shared_ptr m_RecurrentToInputWeights; /// A unique pointer to represent 1D weights tensor with dimensions [num_units]. std::shared_ptr m_InputGateBias; }; struct LstmOptProjectionParameters { /// A unique pointer to represent 2D weights tensor with dimensions [output_size, num_units]. std::shared_ptr m_ProjectionWeights; /// A unique pointer to represent 1D weights tensor with dimensions [output_size]. std::shared_ptr m_ProjectionBias; }; struct LstmOptPeepholeParameters { /// A unique pointer to represent 1D weights tensor with dimensions [num_units]. std::shared_ptr m_CellToInputWeights; /// A unique pointer to represent 1D weights tensor with dimensions [num_units]. std::shared_ptr m_CellToForgetWeights; /// A unique pointer to represent 1D weights tensor with dimensions [num_units]. std::shared_ptr m_CellToOutputWeights; }; struct LstmBasicParameters { /// A unique pointer to represent 2D weights tensor with dimensions [input_size, num_units]. std::shared_ptr m_InputToForgetWeights; /// A unique pointer to represent 2D weights tensor with dimensions [input_size, num_units]. std::shared_ptr m_InputToCellWeights; /// A unique pointer to represent 2D weights tensor with dimensions [input_size, num_units]. std::shared_ptr m_InputToOutputWeights; /// A unique pointer to represent 2D weights tensor with dimensions [output_size, num_units]. std::shared_ptr m_RecurrentToForgetWeights; /// A unique pointer to represent 2D weights tensor with dimensions [output_size, num_units]. std::shared_ptr m_RecurrentToCellWeights; /// A unique pointer to represent 2D weights tensor with dimensions [output_size, num_units]. std::shared_ptr m_RecurrentToOutputWeights; /// A unique pointer to represent 1D weights tensor with dimensions [num_units]. std::shared_ptr m_ForgetGateBias; /// A unique pointer to represent 1D weights tensor with dimensions [num_units]. std::shared_ptr m_CellBias; /// A unique pointer to represent 1D weights tensor with dimensions [num_units]. std::shared_ptr m_OutputGateBias; }; } // namespace