Files
mlpack/doc/html/convolution_8hpp_source.html
T

172 lines
76 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://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.11"/>
<title>mlpack: src/mlpack/methods/ann/layer/convolution.hpp Source File</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="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/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="extra-stylesheet.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;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">mlpack
&#160;<span id="projectnumber">master</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
<!-- 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 id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_44a936ef30fc126706c6284a2fc0c990.html">mlpack</a></li><li class="navelem"><a class="el" href="dir_3cfbf900288ec2fe8dd2c2c8482f216e.html">methods</a></li><li class="navelem"><a class="el" href="dir_04cdefcc9a97fb221ee3f2d7fb8aab76.html">ann</a></li><li class="navelem"><a class="el" href="dir_104798ce316d01262d69b00f4c94ed15.html">layer</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">convolution.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="convolution_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#ifndef MLPACK_METHODS_ANN_LAYER_CONVOLUTION_HPP</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#define MLPACK_METHODS_ANN_LAYER_CONVOLUTION_HPP</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="prereqs_8hpp.html">mlpack/prereqs.hpp</a>&gt;</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="border__modes_8hpp.html">mlpack/methods/ann/convolution_rules/border_modes.hpp</a>&gt;</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="naive__convolution_8hpp.html">mlpack/methods/ann/convolution_rules/naive_convolution.hpp</a>&gt;</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="fft__convolution_8hpp.html">mlpack/methods/ann/convolution_rules/fft_convolution.hpp</a>&gt;</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="svd__convolution_8hpp.html">mlpack/methods/ann/convolution_rules/svd_convolution.hpp</a>&gt;</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="layer__types_8hpp.html">layer_types.hpp</a>&quot;</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacemlpack.html">mlpack</a> {</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="keyword">namespace </span>ann {</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">template</span> &lt;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">typename</span> ForwardConvolutionRule = NaiveConvolution&lt;ValidConvolution&gt;,</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keyword">typename</span> BackwardConvolutionRule = NaiveConvolution&lt;FullConvolution&gt;,</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keyword">typename</span> GradientConvolutionRule = NaiveConvolution&lt;ValidConvolution&gt;,</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keyword">typename</span> InputDataType = arma::mat,</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">typename</span> OutputDataType = arma::mat</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;&gt;</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="classmlpack_1_1ann_1_1Convolution.html"> 46</a></span>&#160;<span class="keyword">class </span><a class="code" href="classmlpack_1_1ann_1_1Convolution.html">Convolution</a></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;{</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <a class="code" href="classmlpack_1_1ann_1_1Convolution.html#a97f55f6503c149d51052466806f13c9c">Convolution</a>();</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <a class="code" href="classmlpack_1_1ann_1_1Convolution.html#a97f55f6503c149d51052466806f13c9c">Convolution</a>(<span class="keyword">const</span> <span class="keywordtype">size_t</span> <a class="code" href="classmlpack_1_1ann_1_1Convolution.html#ac86096b84b4e1b81d1e51784840260cd">inSize</a>,</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keyword">const</span> <span class="keywordtype">size_t</span> <a class="code" href="classmlpack_1_1ann_1_1Convolution.html#a4ab4efa70730deea85b1dea40a9f475f">outSize</a>,</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keyword">const</span> <span class="keywordtype">size_t</span> <a class="code" href="classmlpack_1_1ann_1_1Convolution.html#af4489dafb6cb83ea25fa5b6baf3b679e">kW</a>,</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keyword">const</span> <span class="keywordtype">size_t</span> <a class="code" href="classmlpack_1_1ann_1_1Convolution.html#a4caa1d8911fd09f63ca4601019e15e13">kH</a>,</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keyword">const</span> <span class="keywordtype">size_t</span> <a class="code" href="classmlpack_1_1ann_1_1Convolution.html#a9ad943345b3812c59f163f6e83b30d2e">dW</a> = 1,</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">const</span> <span class="keywordtype">size_t</span> <a class="code" href="classmlpack_1_1ann_1_1Convolution.html#a1c276453c007cf96fc9e39fb5313be57">dH</a> = 1,</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keyword">const</span> <span class="keywordtype">size_t</span> <a class="code" href="classmlpack_1_1ann_1_1Convolution.html#a0d6dd4c3dc5ed18026d8ac23b69d71ed">padW</a> = 0,</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keyword">const</span> <span class="keywordtype">size_t</span> <a class="code" href="classmlpack_1_1ann_1_1Convolution.html#a82c26749edd6a44f4337d20a40ad391d">padH</a> = 0,</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keyword">const</span> <span class="keywordtype">size_t</span> <a class="code" href="classmlpack_1_1ann_1_1Convolution.html#a579220e11384a1ff5baa765056dacb64">inputWidth</a> = 0,</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keyword">const</span> <span class="keywordtype">size_t</span> <a class="code" href="classmlpack_1_1ann_1_1Convolution.html#aa4b83d01e8d1c746cbe28c6a50c2598a">inputHeight</a> = 0);</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="comment">/*</span></div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="comment"> * Set the weight and bias term.</span></div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classmlpack_1_1ann_1_1Convolution.html#a7c87bcfaa28fb51caffee542776bbe01">Reset</a>();</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> eT&gt;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classmlpack_1_1ann_1_1Convolution.html#a6290e21f1659a6c17b6dc96dd10b6e92">Forward</a>(<span class="keyword">const</span> arma::Mat&lt;eT&gt;&amp;&amp; input, arma::Mat&lt;eT&gt;&amp;&amp; output);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> eT&gt;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classmlpack_1_1ann_1_1Convolution.html#abede1642dc47f49eac0dba0259594a69">Backward</a>(<span class="keyword">const</span> arma::Mat&lt;eT&gt;&amp;&amp; <span class="comment">/* input */</span>,</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; arma::Mat&lt;eT&gt;&amp;&amp; gy,</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; arma::Mat&lt;eT&gt;&amp;&amp; g);</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="comment">/*</span></div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="comment"> * Calculate the gradient using the output delta and the input activation.</span></div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;<span class="comment"> * @param input The input parameter used for calculating the gradient.</span></div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<span class="comment"> * @param error The calculated error.</span></div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<span class="comment"> * @param gradient The calculated gradient.</span></div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> eT&gt;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classmlpack_1_1ann_1_1Convolution.html#aa8b1e4d597519d1116d650ca0ecd51e3">Gradient</a>(<span class="keyword">const</span> arma::Mat&lt;eT&gt;&amp;&amp; <span class="comment">/* input */</span>,</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; arma::Mat&lt;eT&gt;&amp;&amp; error,</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; arma::Mat&lt;eT&gt;&amp;&amp; <a class="code" href="classmlpack_1_1ann_1_1Convolution.html#aac575be6fc69cfee9ad0f1ad45299f80">gradient</a>);</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="classmlpack_1_1ann_1_1Convolution.html#ac117ff98346fba857f0c3392f877f577"> 120</a></span>&#160; OutputDataType <span class="keyword">const</span>&amp; <a class="code" href="classmlpack_1_1ann_1_1Convolution.html#ac117ff98346fba857f0c3392f877f577">Parameters</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classmlpack_1_1ann_1_1Convolution.html#a7b469fdbc5785c9951cbd5ed2d221efb">weights</a>; }</div><div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="classmlpack_1_1ann_1_1Convolution.html#a1ed8cdacde8b8e430bdc55df6aa9dabd"> 122</a></span>&#160; OutputDataType&amp; <a class="code" href="classmlpack_1_1ann_1_1Convolution.html#a1ed8cdacde8b8e430bdc55df6aa9dabd">Parameters</a>() { <span class="keywordflow">return</span> <a class="code" href="classmlpack_1_1ann_1_1Convolution.html#a7b469fdbc5785c9951cbd5ed2d221efb">weights</a>; }</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="classmlpack_1_1ann_1_1Convolution.html#a2161039665a939782c59a32cab3bbb7c"> 125</a></span>&#160; InputDataType <span class="keyword">const</span>&amp; <a class="code" href="classmlpack_1_1ann_1_1Convolution.html#a2161039665a939782c59a32cab3bbb7c">InputParameter</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classmlpack_1_1ann_1_1Convolution.html#a7ff0124990223f536a7ad6c54ad72b7a">inputParameter</a>; }</div><div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="classmlpack_1_1ann_1_1Convolution.html#a7904bf1fd0cd9f5fdba578eb500fb3e5"> 127</a></span>&#160; InputDataType&amp; <a class="code" href="classmlpack_1_1ann_1_1Convolution.html#a7904bf1fd0cd9f5fdba578eb500fb3e5">InputParameter</a>() { <span class="keywordflow">return</span> <a class="code" href="classmlpack_1_1ann_1_1Convolution.html#a7ff0124990223f536a7ad6c54ad72b7a">inputParameter</a>; }</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="classmlpack_1_1ann_1_1Convolution.html#ad91d75b1fb8cb74da6d16f9db71f9c1a"> 130</a></span>&#160; OutputDataType <span class="keyword">const</span>&amp; <a class="code" href="classmlpack_1_1ann_1_1Convolution.html#ad91d75b1fb8cb74da6d16f9db71f9c1a">OutputParameter</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classmlpack_1_1ann_1_1Convolution.html#abdcedb6413d0105ad69103feedeadcd8">outputParameter</a>; }</div><div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="classmlpack_1_1ann_1_1Convolution.html#a792cbbdcde774b1edff983c6eaf9fcb5"> 132</a></span>&#160; OutputDataType&amp; <a class="code" href="classmlpack_1_1ann_1_1Convolution.html#a792cbbdcde774b1edff983c6eaf9fcb5">OutputParameter</a>() { <span class="keywordflow">return</span> <a class="code" href="classmlpack_1_1ann_1_1Convolution.html#abdcedb6413d0105ad69103feedeadcd8">outputParameter</a>; }</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="classmlpack_1_1ann_1_1Convolution.html#ab2730019f32480fc3d984bb09666a03a"> 135</a></span>&#160; OutputDataType <span class="keyword">const</span>&amp; <a class="code" href="classmlpack_1_1ann_1_1Convolution.html#ab2730019f32480fc3d984bb09666a03a">Delta</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classmlpack_1_1ann_1_1Convolution.html#aa7f6078d912b4d61940effec9d0cf69f">delta</a>; }</div><div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="classmlpack_1_1ann_1_1Convolution.html#add7e33b52bda6e0602cb98cb91cb09a9"> 137</a></span>&#160; OutputDataType&amp; <a class="code" href="classmlpack_1_1ann_1_1Convolution.html#add7e33b52bda6e0602cb98cb91cb09a9">Delta</a>() { <span class="keywordflow">return</span> <a class="code" href="classmlpack_1_1ann_1_1Convolution.html#aa7f6078d912b4d61940effec9d0cf69f">delta</a>; }</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div><div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="classmlpack_1_1ann_1_1Convolution.html#aa8b1e4d597519d1116d650ca0ecd51e3"> 140</a></span>&#160; OutputDataType <span class="keyword">const</span>&amp; <a class="code" href="classmlpack_1_1ann_1_1Convolution.html#aa8b1e4d597519d1116d650ca0ecd51e3">Gradient</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classmlpack_1_1ann_1_1Convolution.html#aac575be6fc69cfee9ad0f1ad45299f80">gradient</a>; }</div><div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="classmlpack_1_1ann_1_1Convolution.html#ab2cf75e77fd91c629092486dfb6998ae"> 142</a></span>&#160; OutputDataType&amp; <a class="code" href="classmlpack_1_1ann_1_1Convolution.html#ab2cf75e77fd91c629092486dfb6998ae">Gradient</a>() { <span class="keywordflow">return</span> <a class="code" href="classmlpack_1_1ann_1_1Convolution.html#aac575be6fc69cfee9ad0f1ad45299f80">gradient</a>; }</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div><div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="classmlpack_1_1ann_1_1Convolution.html#a3fea71b2a4a57d1e235681344987eeb5"> 145</a></span>&#160; <span class="keywordtype">size_t</span> <span class="keyword">const</span>&amp; <a class="code" href="classmlpack_1_1ann_1_1Convolution.html#a3fea71b2a4a57d1e235681344987eeb5">InputWidth</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classmlpack_1_1ann_1_1Convolution.html#a579220e11384a1ff5baa765056dacb64">inputWidth</a>; }</div><div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="classmlpack_1_1ann_1_1Convolution.html#a6b7d5eda34cdd884d5c601a15bc4e575"> 147</a></span>&#160; <span class="keywordtype">size_t</span>&amp; <a class="code" href="classmlpack_1_1ann_1_1Convolution.html#a6b7d5eda34cdd884d5c601a15bc4e575">InputWidth</a>() { <span class="keywordflow">return</span> <a class="code" href="classmlpack_1_1ann_1_1Convolution.html#a579220e11384a1ff5baa765056dacb64">inputWidth</a>; }</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div><div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="classmlpack_1_1ann_1_1Convolution.html#aa73f23583b9c8d18c69bbd803a61832f"> 150</a></span>&#160; <span class="keywordtype">size_t</span> <span class="keyword">const</span>&amp; <a class="code" href="classmlpack_1_1ann_1_1Convolution.html#aa73f23583b9c8d18c69bbd803a61832f">InputHeight</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classmlpack_1_1ann_1_1Convolution.html#aa4b83d01e8d1c746cbe28c6a50c2598a">inputHeight</a>; }</div><div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="classmlpack_1_1ann_1_1Convolution.html#a56b61105460d55ba1dc1f6f7e5df04ea"> 152</a></span>&#160; <span class="keywordtype">size_t</span>&amp; <a class="code" href="classmlpack_1_1ann_1_1Convolution.html#a56b61105460d55ba1dc1f6f7e5df04ea">InputHeight</a>() { <span class="keywordflow">return</span> <a class="code" href="classmlpack_1_1ann_1_1Convolution.html#aa4b83d01e8d1c746cbe28c6a50c2598a">inputHeight</a>; }</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;</div><div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="classmlpack_1_1ann_1_1Convolution.html#a6ca0e14b866f33871403ab6e2938f40a"> 155</a></span>&#160; <span class="keywordtype">size_t</span> <span class="keyword">const</span>&amp; <a class="code" href="classmlpack_1_1ann_1_1Convolution.html#a6ca0e14b866f33871403ab6e2938f40a">OutputWidth</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classmlpack_1_1ann_1_1Convolution.html#a090eff12d5b41e937bf22c59b2190b1a">outputWidth</a>; }</div><div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="classmlpack_1_1ann_1_1Convolution.html#a0379359de16f0934507feb5f2e049842"> 157</a></span>&#160; <span class="keywordtype">size_t</span>&amp; <a class="code" href="classmlpack_1_1ann_1_1Convolution.html#a0379359de16f0934507feb5f2e049842">OutputWidth</a>() { <span class="keywordflow">return</span> <a class="code" href="classmlpack_1_1ann_1_1Convolution.html#a090eff12d5b41e937bf22c59b2190b1a">outputWidth</a>; }</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="classmlpack_1_1ann_1_1Convolution.html#a252c37070ec53c4443bfdc6545b5602a"> 160</a></span>&#160; <span class="keywordtype">size_t</span> <span class="keyword">const</span>&amp; <a class="code" href="classmlpack_1_1ann_1_1Convolution.html#a252c37070ec53c4443bfdc6545b5602a">OutputHeight</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classmlpack_1_1ann_1_1Convolution.html#a54740c9e869934d997f5dd460aefb8c4">outputHeight</a>; }</div><div class="line"><a name="l00162"></a><span class="lineno"><a class="line" href="classmlpack_1_1ann_1_1Convolution.html#a10046b541fc85e03e20268999a997659"> 162</a></span>&#160; <span class="keywordtype">size_t</span>&amp; <a class="code" href="classmlpack_1_1ann_1_1Convolution.html#a10046b541fc85e03e20268999a997659">OutputHeight</a>() { <span class="keywordflow">return</span> <a class="code" href="classmlpack_1_1ann_1_1Convolution.html#a54740c9e869934d997f5dd460aefb8c4">outputHeight</a>; }</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> Archive&gt;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classmlpack_1_1ann_1_1Convolution.html#afc7ca2d8c0a7ba3ee2a9f3c1ba68401f">Serialize</a>(Archive&amp; ar, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <span class="comment">/* version */</span>);</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keyword">private</span>:</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="comment">/*</span></div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;<span class="comment"> * Return the convolution output size.</span></div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;<span class="comment"> * @param size The size of the input (row or column).</span></div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;<span class="comment"> * @param k The size of the filter (width or height).</span></div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;<span class="comment"> * @param s The stride size (x or y direction).</span></div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;<span class="comment"> * @param p The size of the padding (width or height).</span></div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;<span class="comment"> * @return The convolution output size.</span></div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00181"></a><span class="lineno"><a class="line" href="classmlpack_1_1ann_1_1Convolution.html#ac43383dfb7f7843bc3226f838c45d0a1"> 181</a></span>&#160; <span class="keywordtype">size_t</span> <a class="code" href="classmlpack_1_1ann_1_1Convolution.html#ac43383dfb7f7843bc3226f838c45d0a1">ConvOutSize</a>(<span class="keyword">const</span> <span class="keywordtype">size_t</span> size,</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keyword">const</span> <span class="keywordtype">size_t</span> k,</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keyword">const</span> <span class="keywordtype">size_t</span> s,</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keyword">const</span> <span class="keywordtype">size_t</span> p)</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; {</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keywordflow">return</span> std::floor(size + p * 2 - k) / s + 1;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; }</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="comment">/*</span></div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;<span class="comment"> * Rotates a 3rd-order tensor counterclockwise by 180 degrees.</span></div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;<span class="comment"> * @param input The input data to be rotated.</span></div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;<span class="comment"> * @param output The rotated output.</span></div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> eT&gt;</div><div class="line"><a name="l00196"></a><span class="lineno"><a class="line" href="classmlpack_1_1ann_1_1Convolution.html#a20330974d27c36fda8b99246016339dc"> 196</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classmlpack_1_1ann_1_1Convolution.html#a20330974d27c36fda8b99246016339dc">Rotate180</a>(<span class="keyword">const</span> arma::Cube&lt;eT&gt;&amp; input, arma::Cube&lt;eT&gt;&amp; output)</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; {</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; output = arma::Cube&lt;eT&gt;(input.n_rows, input.n_cols, input.n_slices);</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="comment">// * left-right flip, up-down flip */</span></div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> s = 0; s &lt; output.n_slices; s++)</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; output.slice(s) = arma::fliplr(arma::flipud(input.slice(s)));</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; }</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="comment">/*</span></div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;<span class="comment"> * Rotates a dense matrix counterclockwise by 180 degrees.</span></div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;<span class="comment"> * @param input The input data to be rotated.</span></div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;<span class="comment"> * @param output The rotated output.</span></div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> eT&gt;</div><div class="line"><a name="l00212"></a><span class="lineno"><a class="line" href="classmlpack_1_1ann_1_1Convolution.html#a59d310606ff68f8a21795f75136232d4"> 212</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classmlpack_1_1ann_1_1Convolution.html#a59d310606ff68f8a21795f75136232d4">Rotate180</a>(<span class="keyword">const</span> arma::Mat&lt;eT&gt;&amp; input, arma::Mat&lt;eT&gt;&amp; output)</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; {</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="comment">// * left-right flip, up-down flip */</span></div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; output = arma::fliplr(arma::flipud(input));</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; }</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="comment">/*</span></div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;<span class="comment"> * Pad the given input data.</span></div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;<span class="comment"> * @param input The input to be padded.</span></div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;<span class="comment"> * @param wPad Padding width of the input.</span></div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;<span class="comment"> * @param hPad Padding height of the input.</span></div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;<span class="comment"> * @param output The padded output data.</span></div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> eT&gt;</div><div class="line"><a name="l00227"></a><span class="lineno"><a class="line" href="classmlpack_1_1ann_1_1Convolution.html#a3d164992ed786c51a2ffad07651703d1"> 227</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classmlpack_1_1ann_1_1Convolution.html#a3d164992ed786c51a2ffad07651703d1">Pad</a>(<span class="keyword">const</span> arma::Mat&lt;eT&gt;&amp; input,</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keywordtype">size_t</span> wPad,</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keywordtype">size_t</span> hPad,</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; arma::Mat&lt;eT&gt;&amp; output)</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; {</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="keywordflow">if</span> (output.n_rows != input.n_rows + wPad * 2 ||</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; output.n_cols != input.n_cols + hPad * 2)</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; {</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; output = arma::zeros(input.n_rows + wPad * 2, input.n_cols + hPad * 2);</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; }</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; output.submat(wPad, hPad, wPad + input.n_rows - 1,</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; hPad + input.n_cols - 1) = input;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; }</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="comment">/*</span></div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;<span class="comment"> * Pad the given input data.</span></div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;<span class="comment"> * @param input The input to be padded.</span></div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;<span class="comment"> * @param wPad Padding width of the input.</span></div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;<span class="comment"> * @param hPad Padding height of the input.</span></div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;<span class="comment"> * @param output The padded output data.</span></div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> eT&gt;</div><div class="line"><a name="l00251"></a><span class="lineno"><a class="line" href="classmlpack_1_1ann_1_1Convolution.html#af0a782583488ffaeee7f94fc296b267c"> 251</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classmlpack_1_1ann_1_1Convolution.html#af0a782583488ffaeee7f94fc296b267c">Pad</a>(<span class="keyword">const</span> arma::Cube&lt;eT&gt;&amp; input,</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keywordtype">size_t</span> wPad,</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="keywordtype">size_t</span> hPad,</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; arma::Cube&lt;eT&gt;&amp; output)</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; {</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; output = arma::zeros(input.n_rows + wPad * 2,</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; input.n_cols + hPad * 2, input.n_slices);</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; input.n_slices; ++i)</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; {</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; Pad&lt;double&gt;(input.slice(i), wPad, hPad, output.slice(i));</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; }</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; }</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;</div><div class="line"><a name="l00266"></a><span class="lineno"><a class="line" href="classmlpack_1_1ann_1_1Convolution.html#ac86096b84b4e1b81d1e51784840260cd"> 266</a></span>&#160; <span class="keywordtype">size_t</span> <a class="code" href="classmlpack_1_1ann_1_1Convolution.html#ac86096b84b4e1b81d1e51784840260cd">inSize</a>;</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;</div><div class="line"><a name="l00269"></a><span class="lineno"><a class="line" href="classmlpack_1_1ann_1_1Convolution.html#a4ab4efa70730deea85b1dea40a9f475f"> 269</a></span>&#160; <span class="keywordtype">size_t</span> <a class="code" href="classmlpack_1_1ann_1_1Convolution.html#a4ab4efa70730deea85b1dea40a9f475f">outSize</a>;</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;</div><div class="line"><a name="l00272"></a><span class="lineno"><a class="line" href="classmlpack_1_1ann_1_1Convolution.html#af4489dafb6cb83ea25fa5b6baf3b679e"> 272</a></span>&#160; <span class="keywordtype">size_t</span> <a class="code" href="classmlpack_1_1ann_1_1Convolution.html#af4489dafb6cb83ea25fa5b6baf3b679e">kW</a>;</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;</div><div class="line"><a name="l00275"></a><span class="lineno"><a class="line" href="classmlpack_1_1ann_1_1Convolution.html#a4caa1d8911fd09f63ca4601019e15e13"> 275</a></span>&#160; <span class="keywordtype">size_t</span> <a class="code" href="classmlpack_1_1ann_1_1Convolution.html#a4caa1d8911fd09f63ca4601019e15e13">kH</a>;</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;</div><div class="line"><a name="l00278"></a><span class="lineno"><a class="line" href="classmlpack_1_1ann_1_1Convolution.html#a9ad943345b3812c59f163f6e83b30d2e"> 278</a></span>&#160; <span class="keywordtype">size_t</span> <a class="code" href="classmlpack_1_1ann_1_1Convolution.html#a9ad943345b3812c59f163f6e83b30d2e">dW</a>;</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;</div><div class="line"><a name="l00281"></a><span class="lineno"><a class="line" href="classmlpack_1_1ann_1_1Convolution.html#a1c276453c007cf96fc9e39fb5313be57"> 281</a></span>&#160; <span class="keywordtype">size_t</span> <a class="code" href="classmlpack_1_1ann_1_1Convolution.html#a1c276453c007cf96fc9e39fb5313be57">dH</a>;</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;</div><div class="line"><a name="l00284"></a><span class="lineno"><a class="line" href="classmlpack_1_1ann_1_1Convolution.html#a0d6dd4c3dc5ed18026d8ac23b69d71ed"> 284</a></span>&#160; <span class="keywordtype">size_t</span> <a class="code" href="classmlpack_1_1ann_1_1Convolution.html#a0d6dd4c3dc5ed18026d8ac23b69d71ed">padW</a>;</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;</div><div class="line"><a name="l00287"></a><span class="lineno"><a class="line" href="classmlpack_1_1ann_1_1Convolution.html#a82c26749edd6a44f4337d20a40ad391d"> 287</a></span>&#160; <span class="keywordtype">size_t</span> <a class="code" href="classmlpack_1_1ann_1_1Convolution.html#a82c26749edd6a44f4337d20a40ad391d">padH</a>;</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;</div><div class="line"><a name="l00290"></a><span class="lineno"><a class="line" href="classmlpack_1_1ann_1_1Convolution.html#a7b469fdbc5785c9951cbd5ed2d221efb"> 290</a></span>&#160; OutputDataType <a class="code" href="classmlpack_1_1ann_1_1Convolution.html#a7b469fdbc5785c9951cbd5ed2d221efb">weights</a>;</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;</div><div class="line"><a name="l00293"></a><span class="lineno"><a class="line" href="classmlpack_1_1ann_1_1Convolution.html#ac72cad8bc050bf0841c37c6a8785f624"> 293</a></span>&#160; arma::cube <a class="code" href="classmlpack_1_1ann_1_1Convolution.html#ac72cad8bc050bf0841c37c6a8785f624">weight</a>;</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;</div><div class="line"><a name="l00296"></a><span class="lineno"><a class="line" href="classmlpack_1_1ann_1_1Convolution.html#a7795e6ce33416963ea1cdc4f310490c9"> 296</a></span>&#160; arma::mat <a class="code" href="classmlpack_1_1ann_1_1Convolution.html#a7795e6ce33416963ea1cdc4f310490c9">bias</a>;</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;</div><div class="line"><a name="l00299"></a><span class="lineno"><a class="line" href="classmlpack_1_1ann_1_1Convolution.html#a579220e11384a1ff5baa765056dacb64"> 299</a></span>&#160; <span class="keywordtype">size_t</span> <a class="code" href="classmlpack_1_1ann_1_1Convolution.html#a579220e11384a1ff5baa765056dacb64">inputWidth</a>;</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;</div><div class="line"><a name="l00302"></a><span class="lineno"><a class="line" href="classmlpack_1_1ann_1_1Convolution.html#aa4b83d01e8d1c746cbe28c6a50c2598a"> 302</a></span>&#160; <span class="keywordtype">size_t</span> <a class="code" href="classmlpack_1_1ann_1_1Convolution.html#aa4b83d01e8d1c746cbe28c6a50c2598a">inputHeight</a>;</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;</div><div class="line"><a name="l00305"></a><span class="lineno"><a class="line" href="classmlpack_1_1ann_1_1Convolution.html#a090eff12d5b41e937bf22c59b2190b1a"> 305</a></span>&#160; <span class="keywordtype">size_t</span> <a class="code" href="classmlpack_1_1ann_1_1Convolution.html#a090eff12d5b41e937bf22c59b2190b1a">outputWidth</a>;</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;</div><div class="line"><a name="l00308"></a><span class="lineno"><a class="line" href="classmlpack_1_1ann_1_1Convolution.html#a54740c9e869934d997f5dd460aefb8c4"> 308</a></span>&#160; <span class="keywordtype">size_t</span> <a class="code" href="classmlpack_1_1ann_1_1Convolution.html#a54740c9e869934d997f5dd460aefb8c4">outputHeight</a>;</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;</div><div class="line"><a name="l00311"></a><span class="lineno"><a class="line" href="classmlpack_1_1ann_1_1Convolution.html#a1aa898b2d8cfc5ae1fde0760b2b43016"> 311</a></span>&#160; arma::cube <a class="code" href="classmlpack_1_1ann_1_1Convolution.html#a1aa898b2d8cfc5ae1fde0760b2b43016">outputTemp</a>;</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;</div><div class="line"><a name="l00314"></a><span class="lineno"><a class="line" href="classmlpack_1_1ann_1_1Convolution.html#a758afd04f19c960b5988e2548b380c55"> 314</a></span>&#160; arma::cube <a class="code" href="classmlpack_1_1ann_1_1Convolution.html#a758afd04f19c960b5988e2548b380c55">inputTemp</a>;</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;</div><div class="line"><a name="l00317"></a><span class="lineno"><a class="line" href="classmlpack_1_1ann_1_1Convolution.html#a2e433a18bf7cc4a3e38a7b2c7c5ea5d9"> 317</a></span>&#160; arma::cube <a class="code" href="classmlpack_1_1ann_1_1Convolution.html#a2e433a18bf7cc4a3e38a7b2c7c5ea5d9">inputPaddedTemp</a>;</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;</div><div class="line"><a name="l00320"></a><span class="lineno"><a class="line" href="classmlpack_1_1ann_1_1Convolution.html#a5911ed415613205bbc64b3d0de4c9e5c"> 320</a></span>&#160; arma::cube <a class="code" href="classmlpack_1_1ann_1_1Convolution.html#a5911ed415613205bbc64b3d0de4c9e5c">gTemp</a>;</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160;</div><div class="line"><a name="l00323"></a><span class="lineno"><a class="line" href="classmlpack_1_1ann_1_1Convolution.html#a232c1a3aafc86a92a56d9b97c2c16a11"> 323</a></span>&#160; arma::cube <a class="code" href="classmlpack_1_1ann_1_1Convolution.html#a232c1a3aafc86a92a56d9b97c2c16a11">gradientTemp</a>;</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160;</div><div class="line"><a name="l00326"></a><span class="lineno"><a class="line" href="classmlpack_1_1ann_1_1Convolution.html#aa7f6078d912b4d61940effec9d0cf69f"> 326</a></span>&#160; OutputDataType <a class="code" href="classmlpack_1_1ann_1_1Convolution.html#aa7f6078d912b4d61940effec9d0cf69f">delta</a>;</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;</div><div class="line"><a name="l00329"></a><span class="lineno"><a class="line" href="classmlpack_1_1ann_1_1Convolution.html#aac575be6fc69cfee9ad0f1ad45299f80"> 329</a></span>&#160; OutputDataType <a class="code" href="classmlpack_1_1ann_1_1Convolution.html#aac575be6fc69cfee9ad0f1ad45299f80">gradient</a>;</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160;</div><div class="line"><a name="l00332"></a><span class="lineno"><a class="line" href="classmlpack_1_1ann_1_1Convolution.html#a7ff0124990223f536a7ad6c54ad72b7a"> 332</a></span>&#160; InputDataType <a class="code" href="classmlpack_1_1ann_1_1Convolution.html#a7ff0124990223f536a7ad6c54ad72b7a">inputParameter</a>;</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160;</div><div class="line"><a name="l00335"></a><span class="lineno"><a class="line" href="classmlpack_1_1ann_1_1Convolution.html#abdcedb6413d0105ad69103feedeadcd8"> 335</a></span>&#160; OutputDataType <a class="code" href="classmlpack_1_1ann_1_1Convolution.html#abdcedb6413d0105ad69103feedeadcd8">outputParameter</a>;</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;}; <span class="comment">// class Convolution</span></div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160;</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160;} <span class="comment">// namespace ann</span></div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160;} <span class="comment">// namespace mlpack</span></div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160;<span class="comment">// Include implementation.</span></div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160;<span class="preprocessor">#include &quot;convolution_impl.hpp&quot;</span></div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160;</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160;<span class="preprocessor">#endif</span></div><div class="ttc" id="classmlpack_1_1ann_1_1Convolution_html_a4ab4efa70730deea85b1dea40a9f475f"><div class="ttname"><a href="classmlpack_1_1ann_1_1Convolution.html#a4ab4efa70730deea85b1dea40a9f475f">mlpack::ann::Convolution::outSize</a></div><div class="ttdeci">size_t outSize</div><div class="ttdoc">Locally-stored number of output units. </div><div class="ttdef"><b>Definition:</b> <a href="convolution_8hpp_source.html#l00269">convolution.hpp:269</a></div></div>
<div class="ttc" id="classmlpack_1_1ann_1_1Convolution_html_a10046b541fc85e03e20268999a997659"><div class="ttname"><a href="classmlpack_1_1ann_1_1Convolution.html#a10046b541fc85e03e20268999a997659">mlpack::ann::Convolution::OutputHeight</a></div><div class="ttdeci">size_t &amp; OutputHeight()</div><div class="ttdoc">Modify the output height. </div><div class="ttdef"><b>Definition:</b> <a href="convolution_8hpp_source.html#l00162">convolution.hpp:162</a></div></div>
<div class="ttc" id="classmlpack_1_1ann_1_1Convolution_html_aac575be6fc69cfee9ad0f1ad45299f80"><div class="ttname"><a href="classmlpack_1_1ann_1_1Convolution.html#aac575be6fc69cfee9ad0f1ad45299f80">mlpack::ann::Convolution::gradient</a></div><div class="ttdeci">OutputDataType gradient</div><div class="ttdoc">Locally-stored gradient object. </div><div class="ttdef"><b>Definition:</b> <a href="convolution_8hpp_source.html#l00329">convolution.hpp:329</a></div></div>
<div class="ttc" id="classmlpack_1_1ann_1_1Convolution_html_ab2730019f32480fc3d984bb09666a03a"><div class="ttname"><a href="classmlpack_1_1ann_1_1Convolution.html#ab2730019f32480fc3d984bb09666a03a">mlpack::ann::Convolution::Delta</a></div><div class="ttdeci">OutputDataType const &amp; Delta() const </div><div class="ttdoc">Get the delta. </div><div class="ttdef"><b>Definition:</b> <a href="convolution_8hpp_source.html#l00135">convolution.hpp:135</a></div></div>
<div class="ttc" id="namespacemlpack_html"><div class="ttname"><a href="namespacemlpack.html">mlpack</a></div><div class="ttdoc">Linear algebra utility functions, generally performed on matrices or vectors. </div><div class="ttdef"><b>Definition:</b> <a href="binarize_8hpp_source.html#l00018">binarize.hpp:18</a></div></div>
<div class="ttc" id="classmlpack_1_1ann_1_1Convolution_html_ac43383dfb7f7843bc3226f838c45d0a1"><div class="ttname"><a href="classmlpack_1_1ann_1_1Convolution.html#ac43383dfb7f7843bc3226f838c45d0a1">mlpack::ann::Convolution::ConvOutSize</a></div><div class="ttdeci">size_t ConvOutSize(const size_t size, const size_t k, const size_t s, const size_t p)</div><div class="ttdef"><b>Definition:</b> <a href="convolution_8hpp_source.html#l00181">convolution.hpp:181</a></div></div>
<div class="ttc" id="classmlpack_1_1ann_1_1Convolution_html_a6b7d5eda34cdd884d5c601a15bc4e575"><div class="ttname"><a href="classmlpack_1_1ann_1_1Convolution.html#a6b7d5eda34cdd884d5c601a15bc4e575">mlpack::ann::Convolution::InputWidth</a></div><div class="ttdeci">size_t &amp; InputWidth()</div><div class="ttdoc">Modify input the width. </div><div class="ttdef"><b>Definition:</b> <a href="convolution_8hpp_source.html#l00147">convolution.hpp:147</a></div></div>
<div class="ttc" id="classmlpack_1_1ann_1_1Convolution_html_ac117ff98346fba857f0c3392f877f577"><div class="ttname"><a href="classmlpack_1_1ann_1_1Convolution.html#ac117ff98346fba857f0c3392f877f577">mlpack::ann::Convolution::Parameters</a></div><div class="ttdeci">OutputDataType const &amp; Parameters() const </div><div class="ttdoc">Get the parameters. </div><div class="ttdef"><b>Definition:</b> <a href="convolution_8hpp_source.html#l00120">convolution.hpp:120</a></div></div>
<div class="ttc" id="prereqs_8hpp_html"><div class="ttname"><a href="prereqs_8hpp.html">prereqs.hpp</a></div><div class="ttdoc">The core includes that mlpack expects; standard C++ includes and Armadillo. </div></div>
<div class="ttc" id="classmlpack_1_1ann_1_1Convolution_html_a1aa898b2d8cfc5ae1fde0760b2b43016"><div class="ttname"><a href="classmlpack_1_1ann_1_1Convolution.html#a1aa898b2d8cfc5ae1fde0760b2b43016">mlpack::ann::Convolution::outputTemp</a></div><div class="ttdeci">arma::cube outputTemp</div><div class="ttdoc">Locally-stored transformed output parameter. </div><div class="ttdef"><b>Definition:</b> <a href="convolution_8hpp_source.html#l00311">convolution.hpp:311</a></div></div>
<div class="ttc" id="classmlpack_1_1ann_1_1Convolution_html"><div class="ttname"><a href="classmlpack_1_1ann_1_1Convolution.html">mlpack::ann::Convolution</a></div><div class="ttdoc">Implementation of the Convolution class. </div><div class="ttdef"><b>Definition:</b> <a href="convolution_8hpp_source.html#l00046">convolution.hpp:46</a></div></div>
<div class="ttc" id="svd__convolution_8hpp_html"><div class="ttname"><a href="svd__convolution_8hpp.html">svd_convolution.hpp</a></div></div>
<div class="ttc" id="classmlpack_1_1ann_1_1Convolution_html_afc7ca2d8c0a7ba3ee2a9f3c1ba68401f"><div class="ttname"><a href="classmlpack_1_1ann_1_1Convolution.html#afc7ca2d8c0a7ba3ee2a9f3c1ba68401f">mlpack::ann::Convolution::Serialize</a></div><div class="ttdeci">void Serialize(Archive &amp;ar, const unsigned int)</div><div class="ttdoc">Serialize the layer. </div></div>
<div class="ttc" id="classmlpack_1_1ann_1_1Convolution_html_a2e433a18bf7cc4a3e38a7b2c7c5ea5d9"><div class="ttname"><a href="classmlpack_1_1ann_1_1Convolution.html#a2e433a18bf7cc4a3e38a7b2c7c5ea5d9">mlpack::ann::Convolution::inputPaddedTemp</a></div><div class="ttdeci">arma::cube inputPaddedTemp</div><div class="ttdoc">Locally-stored transformed padded input parameter. </div><div class="ttdef"><b>Definition:</b> <a href="convolution_8hpp_source.html#l00317">convolution.hpp:317</a></div></div>
<div class="ttc" id="classmlpack_1_1ann_1_1Convolution_html_a7904bf1fd0cd9f5fdba578eb500fb3e5"><div class="ttname"><a href="classmlpack_1_1ann_1_1Convolution.html#a7904bf1fd0cd9f5fdba578eb500fb3e5">mlpack::ann::Convolution::InputParameter</a></div><div class="ttdeci">InputDataType &amp; InputParameter()</div><div class="ttdoc">Modify the input parameter. </div><div class="ttdef"><b>Definition:</b> <a href="convolution_8hpp_source.html#l00127">convolution.hpp:127</a></div></div>
<div class="ttc" id="classmlpack_1_1ann_1_1Convolution_html_a82c26749edd6a44f4337d20a40ad391d"><div class="ttname"><a href="classmlpack_1_1ann_1_1Convolution.html#a82c26749edd6a44f4337d20a40ad391d">mlpack::ann::Convolution::padH</a></div><div class="ttdeci">size_t padH</div><div class="ttdoc">Locally-stored padding height. </div><div class="ttdef"><b>Definition:</b> <a href="convolution_8hpp_source.html#l00287">convolution.hpp:287</a></div></div>
<div class="ttc" id="classmlpack_1_1ann_1_1Convolution_html_aa4b83d01e8d1c746cbe28c6a50c2598a"><div class="ttname"><a href="classmlpack_1_1ann_1_1Convolution.html#aa4b83d01e8d1c746cbe28c6a50c2598a">mlpack::ann::Convolution::inputHeight</a></div><div class="ttdeci">size_t inputHeight</div><div class="ttdoc">Locally-stored input height. </div><div class="ttdef"><b>Definition:</b> <a href="convolution_8hpp_source.html#l00302">convolution.hpp:302</a></div></div>
<div class="ttc" id="classmlpack_1_1ann_1_1Convolution_html_ac86096b84b4e1b81d1e51784840260cd"><div class="ttname"><a href="classmlpack_1_1ann_1_1Convolution.html#ac86096b84b4e1b81d1e51784840260cd">mlpack::ann::Convolution::inSize</a></div><div class="ttdeci">size_t inSize</div><div class="ttdoc">Locally-stored number of input units. </div><div class="ttdef"><b>Definition:</b> <a href="convolution_8hpp_source.html#l00266">convolution.hpp:266</a></div></div>
<div class="ttc" id="classmlpack_1_1ann_1_1Convolution_html_af4489dafb6cb83ea25fa5b6baf3b679e"><div class="ttname"><a href="classmlpack_1_1ann_1_1Convolution.html#af4489dafb6cb83ea25fa5b6baf3b679e">mlpack::ann::Convolution::kW</a></div><div class="ttdeci">size_t kW</div><div class="ttdoc">Locally-stored filter/kernel width. </div><div class="ttdef"><b>Definition:</b> <a href="convolution_8hpp_source.html#l00272">convolution.hpp:272</a></div></div>
<div class="ttc" id="classmlpack_1_1ann_1_1Convolution_html_a0379359de16f0934507feb5f2e049842"><div class="ttname"><a href="classmlpack_1_1ann_1_1Convolution.html#a0379359de16f0934507feb5f2e049842">mlpack::ann::Convolution::OutputWidth</a></div><div class="ttdeci">size_t &amp; OutputWidth()</div><div class="ttdoc">Modify the output width. </div><div class="ttdef"><b>Definition:</b> <a href="convolution_8hpp_source.html#l00157">convolution.hpp:157</a></div></div>
<div class="ttc" id="classmlpack_1_1ann_1_1Convolution_html_a4caa1d8911fd09f63ca4601019e15e13"><div class="ttname"><a href="classmlpack_1_1ann_1_1Convolution.html#a4caa1d8911fd09f63ca4601019e15e13">mlpack::ann::Convolution::kH</a></div><div class="ttdeci">size_t kH</div><div class="ttdoc">Locally-stored filter/kernel height. </div><div class="ttdef"><b>Definition:</b> <a href="convolution_8hpp_source.html#l00275">convolution.hpp:275</a></div></div>
<div class="ttc" id="fft__convolution_8hpp_html"><div class="ttname"><a href="fft__convolution_8hpp.html">fft_convolution.hpp</a></div></div>
<div class="ttc" id="classmlpack_1_1ann_1_1Convolution_html_a0d6dd4c3dc5ed18026d8ac23b69d71ed"><div class="ttname"><a href="classmlpack_1_1ann_1_1Convolution.html#a0d6dd4c3dc5ed18026d8ac23b69d71ed">mlpack::ann::Convolution::padW</a></div><div class="ttdeci">size_t padW</div><div class="ttdoc">Locally-stored padding width. </div><div class="ttdef"><b>Definition:</b> <a href="convolution_8hpp_source.html#l00284">convolution.hpp:284</a></div></div>
<div class="ttc" id="classmlpack_1_1ann_1_1Convolution_html_a3d164992ed786c51a2ffad07651703d1"><div class="ttname"><a href="classmlpack_1_1ann_1_1Convolution.html#a3d164992ed786c51a2ffad07651703d1">mlpack::ann::Convolution::Pad</a></div><div class="ttdeci">void Pad(const arma::Mat&lt; eT &gt; &amp;input, size_t wPad, size_t hPad, arma::Mat&lt; eT &gt; &amp;output)</div><div class="ttdef"><b>Definition:</b> <a href="convolution_8hpp_source.html#l00227">convolution.hpp:227</a></div></div>
<div class="ttc" id="classmlpack_1_1ann_1_1Convolution_html_a7795e6ce33416963ea1cdc4f310490c9"><div class="ttname"><a href="classmlpack_1_1ann_1_1Convolution.html#a7795e6ce33416963ea1cdc4f310490c9">mlpack::ann::Convolution::bias</a></div><div class="ttdeci">arma::mat bias</div><div class="ttdoc">Locally-stored bias term object. </div><div class="ttdef"><b>Definition:</b> <a href="convolution_8hpp_source.html#l00296">convolution.hpp:296</a></div></div>
<div class="ttc" id="classmlpack_1_1ann_1_1Convolution_html_a6ca0e14b866f33871403ab6e2938f40a"><div class="ttname"><a href="classmlpack_1_1ann_1_1Convolution.html#a6ca0e14b866f33871403ab6e2938f40a">mlpack::ann::Convolution::OutputWidth</a></div><div class="ttdeci">size_t const &amp; OutputWidth() const </div><div class="ttdoc">Get the output width. </div><div class="ttdef"><b>Definition:</b> <a href="convolution_8hpp_source.html#l00155">convolution.hpp:155</a></div></div>
<div class="ttc" id="classmlpack_1_1ann_1_1Convolution_html_aa7f6078d912b4d61940effec9d0cf69f"><div class="ttname"><a href="classmlpack_1_1ann_1_1Convolution.html#aa7f6078d912b4d61940effec9d0cf69f">mlpack::ann::Convolution::delta</a></div><div class="ttdeci">OutputDataType delta</div><div class="ttdoc">Locally-stored delta object. </div><div class="ttdef"><b>Definition:</b> <a href="convolution_8hpp_source.html#l00326">convolution.hpp:326</a></div></div>
<div class="ttc" id="classmlpack_1_1ann_1_1Convolution_html_a5911ed415613205bbc64b3d0de4c9e5c"><div class="ttname"><a href="classmlpack_1_1ann_1_1Convolution.html#a5911ed415613205bbc64b3d0de4c9e5c">mlpack::ann::Convolution::gTemp</a></div><div class="ttdeci">arma::cube gTemp</div><div class="ttdoc">Locally-stored transformed error parameter. </div><div class="ttdef"><b>Definition:</b> <a href="convolution_8hpp_source.html#l00320">convolution.hpp:320</a></div></div>
<div class="ttc" id="classmlpack_1_1ann_1_1Convolution_html_aa8b1e4d597519d1116d650ca0ecd51e3"><div class="ttname"><a href="classmlpack_1_1ann_1_1Convolution.html#aa8b1e4d597519d1116d650ca0ecd51e3">mlpack::ann::Convolution::Gradient</a></div><div class="ttdeci">OutputDataType const &amp; Gradient() const </div><div class="ttdoc">Get the gradient. </div><div class="ttdef"><b>Definition:</b> <a href="convolution_8hpp_source.html#l00140">convolution.hpp:140</a></div></div>
<div class="ttc" id="classmlpack_1_1ann_1_1Convolution_html_af0a782583488ffaeee7f94fc296b267c"><div class="ttname"><a href="classmlpack_1_1ann_1_1Convolution.html#af0a782583488ffaeee7f94fc296b267c">mlpack::ann::Convolution::Pad</a></div><div class="ttdeci">void Pad(const arma::Cube&lt; eT &gt; &amp;input, size_t wPad, size_t hPad, arma::Cube&lt; eT &gt; &amp;output)</div><div class="ttdef"><b>Definition:</b> <a href="convolution_8hpp_source.html#l00251">convolution.hpp:251</a></div></div>
<div class="ttc" id="classmlpack_1_1ann_1_1Convolution_html_a6290e21f1659a6c17b6dc96dd10b6e92"><div class="ttname"><a href="classmlpack_1_1ann_1_1Convolution.html#a6290e21f1659a6c17b6dc96dd10b6e92">mlpack::ann::Convolution::Forward</a></div><div class="ttdeci">void Forward(const arma::Mat&lt; eT &gt; &amp;&amp;input, arma::Mat&lt; eT &gt; &amp;&amp;output)</div><div class="ttdoc">Ordinary feed forward pass of a neural network, evaluating the function f(x) by propagating the activ...</div></div>
<div class="ttc" id="classmlpack_1_1ann_1_1Convolution_html_ac72cad8bc050bf0841c37c6a8785f624"><div class="ttname"><a href="classmlpack_1_1ann_1_1Convolution.html#ac72cad8bc050bf0841c37c6a8785f624">mlpack::ann::Convolution::weight</a></div><div class="ttdeci">arma::cube weight</div><div class="ttdoc">Locally-stored weight object. </div><div class="ttdef"><b>Definition:</b> <a href="convolution_8hpp_source.html#l00293">convolution.hpp:293</a></div></div>
<div class="ttc" id="classmlpack_1_1ann_1_1Convolution_html_a97f55f6503c149d51052466806f13c9c"><div class="ttname"><a href="classmlpack_1_1ann_1_1Convolution.html#a97f55f6503c149d51052466806f13c9c">mlpack::ann::Convolution::Convolution</a></div><div class="ttdeci">Convolution()</div><div class="ttdoc">Create the Convolution object. </div></div>
<div class="ttc" id="naive__convolution_8hpp_html"><div class="ttname"><a href="naive__convolution_8hpp.html">naive_convolution.hpp</a></div></div>
<div class="ttc" id="classmlpack_1_1ann_1_1Convolution_html_a3fea71b2a4a57d1e235681344987eeb5"><div class="ttname"><a href="classmlpack_1_1ann_1_1Convolution.html#a3fea71b2a4a57d1e235681344987eeb5">mlpack::ann::Convolution::InputWidth</a></div><div class="ttdeci">size_t const &amp; InputWidth() const </div><div class="ttdoc">Get the input width. </div><div class="ttdef"><b>Definition:</b> <a href="convolution_8hpp_source.html#l00145">convolution.hpp:145</a></div></div>
<div class="ttc" id="classmlpack_1_1ann_1_1Convolution_html_abede1642dc47f49eac0dba0259594a69"><div class="ttname"><a href="classmlpack_1_1ann_1_1Convolution.html#abede1642dc47f49eac0dba0259594a69">mlpack::ann::Convolution::Backward</a></div><div class="ttdeci">void Backward(const arma::Mat&lt; eT &gt; &amp;&amp;, arma::Mat&lt; eT &gt; &amp;&amp;gy, arma::Mat&lt; eT &gt; &amp;&amp;g)</div><div class="ttdoc">Ordinary feed backward pass of a neural network, calculating the function f(x) by propagating x backw...</div></div>
<div class="ttc" id="classmlpack_1_1ann_1_1Convolution_html_a54740c9e869934d997f5dd460aefb8c4"><div class="ttname"><a href="classmlpack_1_1ann_1_1Convolution.html#a54740c9e869934d997f5dd460aefb8c4">mlpack::ann::Convolution::outputHeight</a></div><div class="ttdeci">size_t outputHeight</div><div class="ttdoc">Locally-stored output height. </div><div class="ttdef"><b>Definition:</b> <a href="convolution_8hpp_source.html#l00308">convolution.hpp:308</a></div></div>
<div class="ttc" id="classmlpack_1_1ann_1_1Convolution_html_a59d310606ff68f8a21795f75136232d4"><div class="ttname"><a href="classmlpack_1_1ann_1_1Convolution.html#a59d310606ff68f8a21795f75136232d4">mlpack::ann::Convolution::Rotate180</a></div><div class="ttdeci">void Rotate180(const arma::Mat&lt; eT &gt; &amp;input, arma::Mat&lt; eT &gt; &amp;output)</div><div class="ttdef"><b>Definition:</b> <a href="convolution_8hpp_source.html#l00212">convolution.hpp:212</a></div></div>
<div class="ttc" id="classmlpack_1_1ann_1_1Convolution_html_abdcedb6413d0105ad69103feedeadcd8"><div class="ttname"><a href="classmlpack_1_1ann_1_1Convolution.html#abdcedb6413d0105ad69103feedeadcd8">mlpack::ann::Convolution::outputParameter</a></div><div class="ttdeci">OutputDataType outputParameter</div><div class="ttdoc">Locally-stored output parameter object. </div><div class="ttdef"><b>Definition:</b> <a href="convolution_8hpp_source.html#l00335">convolution.hpp:335</a></div></div>
<div class="ttc" id="classmlpack_1_1ann_1_1Convolution_html_a252c37070ec53c4443bfdc6545b5602a"><div class="ttname"><a href="classmlpack_1_1ann_1_1Convolution.html#a252c37070ec53c4443bfdc6545b5602a">mlpack::ann::Convolution::OutputHeight</a></div><div class="ttdeci">size_t const &amp; OutputHeight() const </div><div class="ttdoc">Get the output height. </div><div class="ttdef"><b>Definition:</b> <a href="convolution_8hpp_source.html#l00160">convolution.hpp:160</a></div></div>
<div class="ttc" id="classmlpack_1_1ann_1_1Convolution_html_add7e33b52bda6e0602cb98cb91cb09a9"><div class="ttname"><a href="classmlpack_1_1ann_1_1Convolution.html#add7e33b52bda6e0602cb98cb91cb09a9">mlpack::ann::Convolution::Delta</a></div><div class="ttdeci">OutputDataType &amp; Delta()</div><div class="ttdoc">Modify the delta. </div><div class="ttdef"><b>Definition:</b> <a href="convolution_8hpp_source.html#l00137">convolution.hpp:137</a></div></div>
<div class="ttc" id="classmlpack_1_1ann_1_1Convolution_html_a9ad943345b3812c59f163f6e83b30d2e"><div class="ttname"><a href="classmlpack_1_1ann_1_1Convolution.html#a9ad943345b3812c59f163f6e83b30d2e">mlpack::ann::Convolution::dW</a></div><div class="ttdeci">size_t dW</div><div class="ttdoc">Locally-stored stride of the filter in x-direction. </div><div class="ttdef"><b>Definition:</b> <a href="convolution_8hpp_source.html#l00278">convolution.hpp:278</a></div></div>
<div class="ttc" id="layer__types_8hpp_html"><div class="ttname"><a href="layer__types_8hpp.html">layer_types.hpp</a></div></div>
<div class="ttc" id="classmlpack_1_1ann_1_1Convolution_html_a579220e11384a1ff5baa765056dacb64"><div class="ttname"><a href="classmlpack_1_1ann_1_1Convolution.html#a579220e11384a1ff5baa765056dacb64">mlpack::ann::Convolution::inputWidth</a></div><div class="ttdeci">size_t inputWidth</div><div class="ttdoc">Locally-stored input width. </div><div class="ttdef"><b>Definition:</b> <a href="convolution_8hpp_source.html#l00299">convolution.hpp:299</a></div></div>
<div class="ttc" id="classmlpack_1_1ann_1_1Convolution_html_a232c1a3aafc86a92a56d9b97c2c16a11"><div class="ttname"><a href="classmlpack_1_1ann_1_1Convolution.html#a232c1a3aafc86a92a56d9b97c2c16a11">mlpack::ann::Convolution::gradientTemp</a></div><div class="ttdeci">arma::cube gradientTemp</div><div class="ttdoc">Locally-stored transformed gradient parameter. </div><div class="ttdef"><b>Definition:</b> <a href="convolution_8hpp_source.html#l00323">convolution.hpp:323</a></div></div>
<div class="ttc" id="classmlpack_1_1ann_1_1Convolution_html_aa73f23583b9c8d18c69bbd803a61832f"><div class="ttname"><a href="classmlpack_1_1ann_1_1Convolution.html#aa73f23583b9c8d18c69bbd803a61832f">mlpack::ann::Convolution::InputHeight</a></div><div class="ttdeci">size_t const &amp; InputHeight() const </div><div class="ttdoc">Get the input height. </div><div class="ttdef"><b>Definition:</b> <a href="convolution_8hpp_source.html#l00150">convolution.hpp:150</a></div></div>
<div class="ttc" id="classmlpack_1_1ann_1_1Convolution_html_a7c87bcfaa28fb51caffee542776bbe01"><div class="ttname"><a href="classmlpack_1_1ann_1_1Convolution.html#a7c87bcfaa28fb51caffee542776bbe01">mlpack::ann::Convolution::Reset</a></div><div class="ttdeci">void Reset()</div></div>
<div class="ttc" id="classmlpack_1_1ann_1_1Convolution_html_ab2cf75e77fd91c629092486dfb6998ae"><div class="ttname"><a href="classmlpack_1_1ann_1_1Convolution.html#ab2cf75e77fd91c629092486dfb6998ae">mlpack::ann::Convolution::Gradient</a></div><div class="ttdeci">OutputDataType &amp; Gradient()</div><div class="ttdoc">Modify the gradient. </div><div class="ttdef"><b>Definition:</b> <a href="convolution_8hpp_source.html#l00142">convolution.hpp:142</a></div></div>
<div class="ttc" id="classmlpack_1_1ann_1_1Convolution_html_a7b469fdbc5785c9951cbd5ed2d221efb"><div class="ttname"><a href="classmlpack_1_1ann_1_1Convolution.html#a7b469fdbc5785c9951cbd5ed2d221efb">mlpack::ann::Convolution::weights</a></div><div class="ttdeci">OutputDataType weights</div><div class="ttdoc">Locally-stored weight object. </div><div class="ttdef"><b>Definition:</b> <a href="convolution_8hpp_source.html#l00290">convolution.hpp:290</a></div></div>
<div class="ttc" id="classmlpack_1_1ann_1_1Convolution_html_a090eff12d5b41e937bf22c59b2190b1a"><div class="ttname"><a href="classmlpack_1_1ann_1_1Convolution.html#a090eff12d5b41e937bf22c59b2190b1a">mlpack::ann::Convolution::outputWidth</a></div><div class="ttdeci">size_t outputWidth</div><div class="ttdoc">Locally-stored output width. </div><div class="ttdef"><b>Definition:</b> <a href="convolution_8hpp_source.html#l00305">convolution.hpp:305</a></div></div>
<div class="ttc" id="classmlpack_1_1ann_1_1Convolution_html_a792cbbdcde774b1edff983c6eaf9fcb5"><div class="ttname"><a href="classmlpack_1_1ann_1_1Convolution.html#a792cbbdcde774b1edff983c6eaf9fcb5">mlpack::ann::Convolution::OutputParameter</a></div><div class="ttdeci">OutputDataType &amp; OutputParameter()</div><div class="ttdoc">Modify the output parameter. </div><div class="ttdef"><b>Definition:</b> <a href="convolution_8hpp_source.html#l00132">convolution.hpp:132</a></div></div>
<div class="ttc" id="classmlpack_1_1ann_1_1Convolution_html_a20330974d27c36fda8b99246016339dc"><div class="ttname"><a href="classmlpack_1_1ann_1_1Convolution.html#a20330974d27c36fda8b99246016339dc">mlpack::ann::Convolution::Rotate180</a></div><div class="ttdeci">void Rotate180(const arma::Cube&lt; eT &gt; &amp;input, arma::Cube&lt; eT &gt; &amp;output)</div><div class="ttdef"><b>Definition:</b> <a href="convolution_8hpp_source.html#l00196">convolution.hpp:196</a></div></div>
<div class="ttc" id="classmlpack_1_1ann_1_1Convolution_html_a1ed8cdacde8b8e430bdc55df6aa9dabd"><div class="ttname"><a href="classmlpack_1_1ann_1_1Convolution.html#a1ed8cdacde8b8e430bdc55df6aa9dabd">mlpack::ann::Convolution::Parameters</a></div><div class="ttdeci">OutputDataType &amp; Parameters()</div><div class="ttdoc">Modify the parameters. </div><div class="ttdef"><b>Definition:</b> <a href="convolution_8hpp_source.html#l00122">convolution.hpp:122</a></div></div>
<div class="ttc" id="classmlpack_1_1ann_1_1Convolution_html_a56b61105460d55ba1dc1f6f7e5df04ea"><div class="ttname"><a href="classmlpack_1_1ann_1_1Convolution.html#a56b61105460d55ba1dc1f6f7e5df04ea">mlpack::ann::Convolution::InputHeight</a></div><div class="ttdeci">size_t &amp; InputHeight()</div><div class="ttdoc">Modify the input height. </div><div class="ttdef"><b>Definition:</b> <a href="convolution_8hpp_source.html#l00152">convolution.hpp:152</a></div></div>
<div class="ttc" id="classmlpack_1_1ann_1_1Convolution_html_ad91d75b1fb8cb74da6d16f9db71f9c1a"><div class="ttname"><a href="classmlpack_1_1ann_1_1Convolution.html#ad91d75b1fb8cb74da6d16f9db71f9c1a">mlpack::ann::Convolution::OutputParameter</a></div><div class="ttdeci">OutputDataType const &amp; OutputParameter() const </div><div class="ttdoc">Get the output parameter. </div><div class="ttdef"><b>Definition:</b> <a href="convolution_8hpp_source.html#l00130">convolution.hpp:130</a></div></div>
<div class="ttc" id="classmlpack_1_1ann_1_1Convolution_html_a2161039665a939782c59a32cab3bbb7c"><div class="ttname"><a href="classmlpack_1_1ann_1_1Convolution.html#a2161039665a939782c59a32cab3bbb7c">mlpack::ann::Convolution::InputParameter</a></div><div class="ttdeci">InputDataType const &amp; InputParameter() const </div><div class="ttdoc">Get the input parameter. </div><div class="ttdef"><b>Definition:</b> <a href="convolution_8hpp_source.html#l00125">convolution.hpp:125</a></div></div>
<div class="ttc" id="classmlpack_1_1ann_1_1Convolution_html_a7ff0124990223f536a7ad6c54ad72b7a"><div class="ttname"><a href="classmlpack_1_1ann_1_1Convolution.html#a7ff0124990223f536a7ad6c54ad72b7a">mlpack::ann::Convolution::inputParameter</a></div><div class="ttdeci">InputDataType inputParameter</div><div class="ttdoc">Locally-stored input parameter object. </div><div class="ttdef"><b>Definition:</b> <a href="convolution_8hpp_source.html#l00332">convolution.hpp:332</a></div></div>
<div class="ttc" id="classmlpack_1_1ann_1_1Convolution_html_a758afd04f19c960b5988e2548b380c55"><div class="ttname"><a href="classmlpack_1_1ann_1_1Convolution.html#a758afd04f19c960b5988e2548b380c55">mlpack::ann::Convolution::inputTemp</a></div><div class="ttdeci">arma::cube inputTemp</div><div class="ttdoc">Locally-stored transformed input parameter. </div><div class="ttdef"><b>Definition:</b> <a href="convolution_8hpp_source.html#l00314">convolution.hpp:314</a></div></div>
<div class="ttc" id="border__modes_8hpp_html"><div class="ttname"><a href="border__modes_8hpp.html">border_modes.hpp</a></div></div>
<div class="ttc" id="classmlpack_1_1ann_1_1Convolution_html_a1c276453c007cf96fc9e39fb5313be57"><div class="ttname"><a href="classmlpack_1_1ann_1_1Convolution.html#a1c276453c007cf96fc9e39fb5313be57">mlpack::ann::Convolution::dH</a></div><div class="ttdeci">size_t dH</div><div class="ttdoc">Locally-stored stride of the filter in y-direction. </div><div class="ttdef"><b>Definition:</b> <a href="convolution_8hpp_source.html#l00281">convolution.hpp:281</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
<script type="text/javascript">
var x = document.getElementsByClassName("formulaDsp");
var i;
for (i = 0; i < x.length; i++)
{
x[i].width /= 4;
}
</script>
</html>