<!-- 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: LstmOptPeepholeParameters 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_peephole_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_peephole_parameters-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">LstmOptPeepholeParameters 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:a9eb0e6bb91acbf59117a1460ce1dfd29"><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_peephole_parameters.html#a9eb0e6bb91acbf59117a1460ce1dfd29">m_CellToInputWeights</a></td></tr>
<tr class="memdesc:a9eb0e6bb91acbf59117a1460ce1dfd29"><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_peephole_parameters.html#a9eb0e6bb91acbf59117a1460ce1dfd29">More...</a><br /></td></tr>
<tr class="separator:a9eb0e6bb91acbf59117a1460ce1dfd29"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0ccce0cf0ae71e89b20dfa48645494c8"><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_peephole_parameters.html#a0ccce0cf0ae71e89b20dfa48645494c8">m_CellToForgetWeights</a></td></tr>
<tr class="memdesc:a0ccce0cf0ae71e89b20dfa48645494c8"><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_peephole_parameters.html#a0ccce0cf0ae71e89b20dfa48645494c8">More...</a><br /></td></tr>
<tr class="separator:a0ccce0cf0ae71e89b20dfa48645494c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeff3e3b8715c568fdff74a25ec40facb"><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_peephole_parameters.html#aeff3e3b8715c568fdff74a25ec40facb">m_CellToOutputWeights</a></td></tr>
<tr class="memdesc:aeff3e3b8715c568fdff74a25ec40facb"><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_peephole_parameters.html#aeff3e3b8715c568fdff74a25ec40facb">More...</a><br /></td></tr>
<tr class="separator:aeff3e3b8715c568fdff74a25ec40facb"><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#l00044">44</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="a0ccce0cf0ae71e89b20dfa48645494c8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0ccce0cf0ae71e89b20dfa48645494c8">&#9670;&nbsp;</a></span>m_CellToForgetWeights</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_CellToForgetWeights</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#l00049">49</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="a9eb0e6bb91acbf59117a1460ce1dfd29"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9eb0e6bb91acbf59117a1460ce1dfd29">&#9670;&nbsp;</a></span>m_CellToInputWeights</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_CellToInputWeights</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#l00047">47</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="aeff3e3b8715c568fdff74a25ec40facb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aeff3e3b8715c568fdff74a25ec40facb">&#9670;&nbsp;</a></span>m_CellToOutputWeights</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_CellToOutputWeights</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#l00051">51</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_peephole_parameters.html">LstmOptPeepholeParameters</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>
