<!-- HTML header for doxygen 1.8.17-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Arm NN: LstmOptCifgParameters Struct Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
  MathJax.Hub.Config({
    extensions: ["tex2jax.js"],
    jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <img alt="ArmNN" src="Arm_NN_horizontal_blue.png" style="max-width: 15rem; margin-top: .5rem; margin-left 13px"/>
  <td id="projectalign" style="padding-left: 0.9em;">
   <div id="projectname">
   &#160;<span id="projectnumber">24.05</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('structarmnn_1_1_lstm_opt_cifg_parameters.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#pub-attribs">Public Attributes</a> &#124;
<a href="structarmnn_1_1_lstm_opt_cifg_parameters-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">LstmOptCifgParameters Struct Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p><code>#include &lt;<a class="el" href="_lstm_parameters_8hpp_source.html">LstmParameters.hpp</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
Public Attributes</h2></td></tr>
<tr class="memitem:a281954ff495d27f7a29e42a98768c670"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; <a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_lstm_opt_cifg_parameters.html#a281954ff495d27f7a29e42a98768c670">m_InputToInputWeights</a></td></tr>
<tr class="memdesc:a281954ff495d27f7a29e42a98768c670"><td class="mdescLeft">&#160;</td><td class="mdescRight">A unique pointer to represent 2D weights tensor with dimensions [input_size, num_units].  <a href="structarmnn_1_1_lstm_opt_cifg_parameters.html#a281954ff495d27f7a29e42a98768c670">More...</a><br /></td></tr>
<tr class="separator:a281954ff495d27f7a29e42a98768c670"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:addfb6b081817510deb924c8fb5ce216c"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; <a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_lstm_opt_cifg_parameters.html#addfb6b081817510deb924c8fb5ce216c">m_RecurrentToInputWeights</a></td></tr>
<tr class="memdesc:addfb6b081817510deb924c8fb5ce216c"><td class="mdescLeft">&#160;</td><td class="mdescRight">A unique pointer to represent 2D weights tensor with dimensions [input_size, num_units].  <a href="structarmnn_1_1_lstm_opt_cifg_parameters.html#addfb6b081817510deb924c8fb5ce216c">More...</a><br /></td></tr>
<tr class="separator:addfb6b081817510deb924c8fb5ce216c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a85684ffb2d12d0d04fbd188591488a2c"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; <a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_lstm_opt_cifg_parameters.html#a85684ffb2d12d0d04fbd188591488a2c">m_InputGateBias</a></td></tr>
<tr class="memdesc:a85684ffb2d12d0d04fbd188591488a2c"><td class="mdescLeft">&#160;</td><td class="mdescRight">A unique pointer to represent 1D weights tensor with dimensions [num_units].  <a href="structarmnn_1_1_lstm_opt_cifg_parameters.html#a85684ffb2d12d0d04fbd188591488a2c">More...</a><br /></td></tr>
<tr class="separator:a85684ffb2d12d0d04fbd188591488a2c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock">
<p class="definition">Definition at line <a class="el" href="_lstm_parameters_8hpp_source.html#l00026">26</a> of file <a class="el" href="_lstm_parameters_8hpp_source.html">LstmParameters.hpp</a>.</p>
</div><h2 class="groupheader">Member Data Documentation</h2>
<a id="a85684ffb2d12d0d04fbd188591488a2c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a85684ffb2d12d0d04fbd188591488a2c">&#9670;&nbsp;</a></span>m_InputGateBias</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::shared_ptr&lt;<a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a>&gt; m_InputGateBias</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>A unique pointer to represent 1D weights tensor with dimensions [num_units]. </p>

<p class="definition">Definition at line <a class="el" href="_lstm_parameters_8hpp_source.html#l00033">33</a> of file <a class="el" href="_lstm_parameters_8hpp_source.html">LstmParameters.hpp</a>.</p>

<p class="reference">Referenced by <a class="el" href="_lstm_layer_8cpp_source.html#l00080">LstmLayer::Clone()</a>, <a class="el" href="_unidirectional_sequence_lstm_layer_8cpp_source.html#l00080">UnidirectionalSequenceLstmLayer::Clone()</a>, <a class="el" href="_lstm_layer_8cpp_source.html#l00022">LstmLayer::CreateWorkload()</a>, <a class="el" href="_unidirectional_sequence_lstm_layer_8cpp_source.html#l00022">UnidirectionalSequenceLstmLayer::CreateWorkload()</a>, <a class="el" href="_lstm_layer_8cpp_source.html#l00402">LstmLayer::ExecuteStrategy()</a>, <a class="el" href="_unidirectional_sequence_lstm_layer_8cpp_source.html#l00397">UnidirectionalSequenceLstmLayer::ExecuteStrategy()</a>, <a class="el" href="_lstm_layer_8cpp_source.html#l00368">LstmLayer::GetConstantTensorsByRef()</a>, <a class="el" href="_unidirectional_sequence_lstm_layer_8cpp_source.html#l00363">UnidirectionalSequenceLstmLayer::GetConstantTensorsByRef()</a>, <a class="el" href="_lstm_layer_8cpp_source.html#l00172">LstmLayer::ValidateTensorShapesFromInputs()</a>, and <a class="el" href="_unidirectional_sequence_lstm_layer_8cpp_source.html#l00172">UnidirectionalSequenceLstmLayer::ValidateTensorShapesFromInputs()</a>.</p>

</div>
</div>
<a id="a281954ff495d27f7a29e42a98768c670"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a281954ff495d27f7a29e42a98768c670">&#9670;&nbsp;</a></span>m_InputToInputWeights</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::shared_ptr&lt;<a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a>&gt; m_InputToInputWeights</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>A unique pointer to represent 2D weights tensor with dimensions [input_size, num_units]. </p>

<p class="definition">Definition at line <a class="el" href="_lstm_parameters_8hpp_source.html#l00029">29</a> of file <a class="el" href="_lstm_parameters_8hpp_source.html">LstmParameters.hpp</a>.</p>

<p class="reference">Referenced by <a class="el" href="_lstm_layer_8cpp_source.html#l00080">LstmLayer::Clone()</a>, <a class="el" href="_unidirectional_sequence_lstm_layer_8cpp_source.html#l00080">UnidirectionalSequenceLstmLayer::Clone()</a>, <a class="el" href="_lstm_layer_8cpp_source.html#l00022">LstmLayer::CreateWorkload()</a>, <a class="el" href="_unidirectional_sequence_lstm_layer_8cpp_source.html#l00022">UnidirectionalSequenceLstmLayer::CreateWorkload()</a>, <a class="el" href="_lstm_layer_8cpp_source.html#l00402">LstmLayer::ExecuteStrategy()</a>, <a class="el" href="_unidirectional_sequence_lstm_layer_8cpp_source.html#l00397">UnidirectionalSequenceLstmLayer::ExecuteStrategy()</a>, <a class="el" href="_lstm_layer_8cpp_source.html#l00368">LstmLayer::GetConstantTensorsByRef()</a>, <a class="el" href="_unidirectional_sequence_lstm_layer_8cpp_source.html#l00363">UnidirectionalSequenceLstmLayer::GetConstantTensorsByRef()</a>, <a class="el" href="_lstm_layer_8cpp_source.html#l00172">LstmLayer::ValidateTensorShapesFromInputs()</a>, and <a class="el" href="_unidirectional_sequence_lstm_layer_8cpp_source.html#l00172">UnidirectionalSequenceLstmLayer::ValidateTensorShapesFromInputs()</a>.</p>

</div>
</div>
<a id="addfb6b081817510deb924c8fb5ce216c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#addfb6b081817510deb924c8fb5ce216c">&#9670;&nbsp;</a></span>m_RecurrentToInputWeights</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::shared_ptr&lt;<a class="el" href="classarmnn_1_1_const_tensor_handle.html">ConstTensorHandle</a>&gt; m_RecurrentToInputWeights</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>A unique pointer to represent 2D weights tensor with dimensions [input_size, num_units]. </p>

<p class="definition">Definition at line <a class="el" href="_lstm_parameters_8hpp_source.html#l00031">31</a> of file <a class="el" href="_lstm_parameters_8hpp_source.html">LstmParameters.hpp</a>.</p>

<p class="reference">Referenced by <a class="el" href="_lstm_layer_8cpp_source.html#l00080">LstmLayer::Clone()</a>, <a class="el" href="_unidirectional_sequence_lstm_layer_8cpp_source.html#l00080">UnidirectionalSequenceLstmLayer::Clone()</a>, <a class="el" href="_lstm_layer_8cpp_source.html#l00022">LstmLayer::CreateWorkload()</a>, <a class="el" href="_unidirectional_sequence_lstm_layer_8cpp_source.html#l00022">UnidirectionalSequenceLstmLayer::CreateWorkload()</a>, <a class="el" href="_lstm_layer_8cpp_source.html#l00402">LstmLayer::ExecuteStrategy()</a>, <a class="el" href="_unidirectional_sequence_lstm_layer_8cpp_source.html#l00397">UnidirectionalSequenceLstmLayer::ExecuteStrategy()</a>, <a class="el" href="_lstm_layer_8cpp_source.html#l00368">LstmLayer::GetConstantTensorsByRef()</a>, <a class="el" href="_unidirectional_sequence_lstm_layer_8cpp_source.html#l00363">UnidirectionalSequenceLstmLayer::GetConstantTensorsByRef()</a>, <a class="el" href="_lstm_layer_8cpp_source.html#l00172">LstmLayer::ValidateTensorShapesFromInputs()</a>, and <a class="el" href="_unidirectional_sequence_lstm_layer_8cpp_source.html#l00172">UnidirectionalSequenceLstmLayer::ValidateTensorShapesFromInputs()</a>.</p>

</div>
</div>
<hr/>The documentation for this struct was generated from the following file:<ul>
<li>src/armnn/layers/<a class="el" href="_lstm_parameters_8hpp_source.html">LstmParameters.hpp</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="namespacearmnn.html">armnn</a></li><li class="navelem"><a class="el" href="structarmnn_1_1_lstm_opt_cifg_parameters.html">LstmOptCifgParameters</a></li>
    <li class="footer">Generated on Thu May 16 2024 09:31:57 for Arm NN by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
  </ul>
</div>
</body>
</html>
