mirror of
https://github.com/TheAlgorithms/C-Plus-Plus.git
synced 2026-03-23 05:12:40 +08:00
Documentation for c26eea874d
This commit is contained in:
@@ -4,7 +4,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.12.0"/>
|
||||
<meta name="generator" content="Doxygen 1.13.2"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>TheAlgorithms/C++: machine_learning/neural_network.cpp Source File</title>
|
||||
<link rel="icon" href="../../favicon.svg" type="image/x-icon" />
|
||||
@@ -60,7 +60,7 @@ window.MathJax = {
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.12.0 -->
|
||||
<!-- Generated by Doxygen 1.13.2 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "../../search/",'.html');
|
||||
@@ -124,7 +124,8 @@ $(function(){initNavTree('d2/d58/neural__network_8cpp_source.html','../../'); in
|
||||
<div class="headertitle"><div class="title">neural_network.cpp</div></div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<a href="../../d2/d58/neural__network_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span> </div>
|
||||
<a href="../../d2/d58/neural__network_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span></div>
|
||||
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> </div>
|
||||
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span><span class="preprocessor">#include <algorithm></span></div>
|
||||
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span><span class="preprocessor">#include <cassert></span></div>
|
||||
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span><span class="preprocessor">#include <chrono></span></div>
|
||||
@@ -137,20 +138,20 @@ $(function(){initNavTree('d2/d58/neural__network_8cpp_source.html','../../'); in
|
||||
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span><span class="preprocessor">#include <vector></span></div>
|
||||
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> </div>
|
||||
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span><span class="preprocessor">#include "<a class="code" href="../../d8/d95/vector__ops_8hpp.html">vector_ops.hpp</a>"</span> <span class="comment">// Custom header file for vector operations</span></div>
|
||||
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> </div>
|
||||
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span></div>
|
||||
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span><span class="keyword">namespace </span><a class="code hl_namespace" href="../../d8/d77/namespacemachine__learning.html">machine_learning</a> {</div>
|
||||
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span><span class="keyword">namespace </span><a class="code hl_namespace" href="../../d0/d2e/namespaceneural__network.html">neural_network</a> {</div>
|
||||
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span><span class="keyword">namespace </span><a class="code hl_namespace" href="../../d5/d39/namespaceactivations.html">activations</a> {</div>
|
||||
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"><a class="line" href="../../d2/d58/neural__network_8cpp.html#a23aa9d32bcbcd65cfc85f0a41e2afadc"> 60</a></span><span class="keywordtype">double</span> <a class="code hl_function" href="../../d2/d58/neural__network_8cpp.html#a23aa9d32bcbcd65cfc85f0a41e2afadc">sigmoid</a>(<span class="keyword">const</span> <span class="keywordtype">double</span> &x) { <span class="keywordflow">return</span> 1.0 / (1.0 + std::exp(-x)); }</div>
|
||||
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> </div>
|
||||
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span></div>
|
||||
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"><a class="line" href="../../d2/d58/neural__network_8cpp.html#a76eb66212d577f948a457b6e29d87c46"> 67</a></span><span class="keywordtype">double</span> <a class="code hl_function" href="../../d2/d58/neural__network_8cpp.html#a76eb66212d577f948a457b6e29d87c46">dsigmoid</a>(<span class="keyword">const</span> <span class="keywordtype">double</span> &x) { <span class="keywordflow">return</span> x * (1 - x); }</div>
|
||||
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> </div>
|
||||
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span></div>
|
||||
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"><a class="line" href="../../d2/d58/neural__network_8cpp.html#af8f264600754602b6a9ea19cc690e50e"> 74</a></span><span class="keywordtype">double</span> <a class="code hl_function" href="../../d2/d58/neural__network_8cpp.html#af8f264600754602b6a9ea19cc690e50e">relu</a>(<span class="keyword">const</span> <span class="keywordtype">double</span> &x) { <span class="keywordflow">return</span> std::max(0.0, x); }</div>
|
||||
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> </div>
|
||||
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span></div>
|
||||
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"><a class="line" href="../../d2/d58/neural__network_8cpp.html#aa69e95a34054d7989bf446f96b2ffaf9"> 81</a></span><span class="keywordtype">double</span> <a class="code hl_function" href="../../d2/d58/neural__network_8cpp.html#aa69e95a34054d7989bf446f96b2ffaf9">drelu</a>(<span class="keyword">const</span> <span class="keywordtype">double</span> &x) { <span class="keywordflow">return</span> x >= 0.0 ? 1.0 : 0.0; }</div>
|
||||
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> </div>
|
||||
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span></div>
|
||||
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"><a class="line" href="../../d2/d58/neural__network_8cpp.html#a371aa7dd5d5add0143d1756bb0a1b32f"> 88</a></span><span class="keywordtype">double</span> <a class="code hl_function" href="../../d2/d58/neural__network_8cpp.html#a371aa7dd5d5add0143d1756bb0a1b32f">tanh</a>(<span class="keyword">const</span> <span class="keywordtype">double</span> &x) { <span class="keywordflow">return</span> 2 / (1 + std::exp(-2 * x)) - 1; }</div>
|
||||
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> </div>
|
||||
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span></div>
|
||||
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"><a class="line" href="../../d2/d58/neural__network_8cpp.html#a2a5e874b9774aa5362dbcf288828b95c"> 95</a></span><span class="keywordtype">double</span> <a class="code hl_function" href="../../d2/d58/neural__network_8cpp.html#a2a5e874b9774aa5362dbcf288828b95c">dtanh</a>(<span class="keyword">const</span> <span class="keywordtype">double</span> &x) { <span class="keywordflow">return</span> 1 - x * x; }</div>
|
||||
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span>} <span class="comment">// namespace activations</span></div>
|
||||
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span><span class="keyword">namespace </span><a class="code hl_namespace" href="../../d3/d17/namespaceutil__functions.html">util_functions</a> {</div>
|
||||
@@ -159,7 +160,7 @@ $(function(){initNavTree('d2/d58/neural__network_8cpp_source.html','../../'); in
|
||||
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span>} <span class="comment">// namespace util_functions</span></div>
|
||||
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span><span class="keyword">namespace </span><a class="code hl_namespace" href="../../d5/d2c/namespacelayers.html">layers</a> {</div>
|
||||
<div class="foldopen" id="foldopen00125" data-start="{" data-end="};">
|
||||
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"><a class="line" href="../../dc/d93/classmachine__learning_1_1neural__network_1_1layers_1_1_dense_layer.html"> 125</a></span><span class="keyword">class </span><a class="code hl_class" href="../../dc/d93/classmachine__learning_1_1neural__network_1_1layers_1_1_dense_layer.html">DenseLayer</a> {</div>
|
||||
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"><a class="line" href="../../dc/d93/classmachine__learning_1_1neural__network_1_1layers_1_1_dense_layer.html"> 125</a></span><span class="keyword">class </span><a class="code hl_function" href="../../dc/d93/classmachine__learning_1_1neural__network_1_1layers_1_1_dense_layer.html#a11046825be0b6dbb73fbe834aa49200e">DenseLayer</a> {</div>
|
||||
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> <span class="keyword">public</span>:</div>
|
||||
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> <span class="comment">// To store activation function and it's derivative</span></div>
|
||||
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> double (*activation_function)(<span class="keyword">const</span> <span class="keywordtype">double</span> &);</div>
|
||||
@@ -167,27 +168,27 @@ $(function(){initNavTree('d2/d58/neural__network_8cpp_source.html','../../'); in
|
||||
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span> <span class="keywordtype">int</span> neurons; <span class="comment">// To store number of neurons (used in summary)</span></div>
|
||||
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> std::string activation; <span class="comment">// To store activation name (used in summary)</span></div>
|
||||
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> std::vector<std::valarray<double>> kernel; <span class="comment">// To store kernel (aka weights)</span></div>
|
||||
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> </div>
|
||||
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span></div>
|
||||
<div class="foldopen" id="foldopen00141" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"><a class="line" href="../../dc/d93/classmachine__learning_1_1neural__network_1_1layers_1_1_dense_layer.html#a11046825be0b6dbb73fbe834aa49200e"> 141</a></span> <a class="code hl_function" href="../../dc/d93/classmachine__learning_1_1neural__network_1_1layers_1_1_dense_layer.html#a11046825be0b6dbb73fbe834aa49200e">DenseLayer</a>(<span class="keyword">const</span> <span class="keywordtype">int</span> &neurons, <span class="keyword">const</span> std::string &activation,</div>
|
||||
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> <span class="keyword">const</span> std::pair<size_t, size_t> &kernel_shape,</div>
|
||||
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> &random_kernel) {</div>
|
||||
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span> <span class="comment">// Choosing activation (and it's derivative)</span></div>
|
||||
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span> <span class="keywordflow">if</span> (activation == <span class="stringliteral">"sigmoid"</span>) {</div>
|
||||
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span> activation_function = neural_network::activations::sigmoid;</div>
|
||||
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span> dactivation_function = neural_network::activations::sigmoid;</div>
|
||||
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span> activation_function = <a class="code hl_function" href="../../d2/d58/neural__network_8cpp.html#a23aa9d32bcbcd65cfc85f0a41e2afadc">neural_network::activations::sigmoid</a>;</div>
|
||||
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span> dactivation_function = <a class="code hl_function" href="../../d2/d58/neural__network_8cpp.html#a23aa9d32bcbcd65cfc85f0a41e2afadc">neural_network::activations::sigmoid</a>;</div>
|
||||
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (activation == <span class="stringliteral">"relu"</span>) {</div>
|
||||
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span> activation_function = neural_network::activations::relu;</div>
|
||||
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span> dactivation_function = neural_network::activations::drelu;</div>
|
||||
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span> activation_function = <a class="code hl_function" href="../../d2/d58/neural__network_8cpp.html#af8f264600754602b6a9ea19cc690e50e">neural_network::activations::relu</a>;</div>
|
||||
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span> dactivation_function = <a class="code hl_function" href="../../d2/d58/neural__network_8cpp.html#aa69e95a34054d7989bf446f96b2ffaf9">neural_network::activations::drelu</a>;</div>
|
||||
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (activation == <span class="stringliteral">"tanh"</span>) {</div>
|
||||
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span> activation_function = neural_network::activations::tanh;</div>
|
||||
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span> dactivation_function = neural_network::activations::dtanh;</div>
|
||||
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span> activation_function = <a class="code hl_function" href="../../d2/d58/neural__network_8cpp.html#a371aa7dd5d5add0143d1756bb0a1b32f">neural_network::activations::tanh</a>;</div>
|
||||
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span> dactivation_function = <a class="code hl_function" href="../../d2/d58/neural__network_8cpp.html#a2a5e874b9774aa5362dbcf288828b95c">neural_network::activations::dtanh</a>;</div>
|
||||
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (activation == <span class="stringliteral">"none"</span>) {</div>
|
||||
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span> <span class="comment">// Set identity function in casse of none is supplied</span></div>
|
||||
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span> activation_function =</div>
|
||||
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span> neural_network::util_functions::identity_function;</div>
|
||||
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span> <a class="code hl_function" href="../../d2/d58/neural__network_8cpp.html#a32c00da08f2cf641dd336270f6e3c407">neural_network::util_functions::identity_function</a>;</div>
|
||||
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span> dactivation_function =</div>
|
||||
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span> neural_network::util_functions::identity_function;</div>
|
||||
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span> <a class="code hl_function" href="../../d2/d58/neural__network_8cpp.html#a32c00da08f2cf641dd336270f6e3c407">neural_network::util_functions::identity_function</a>;</div>
|
||||
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span> } <span class="keywordflow">else</span> {</div>
|
||||
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span> <span class="comment">// If supplied activation is invalid</span></div>
|
||||
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span> std::cerr << <span class="stringliteral">"ERROR ("</span> << __func__ << <span class="stringliteral">") : "</span>;</div>
|
||||
@@ -206,25 +207,26 @@ $(function(){initNavTree('d2/d58/neural__network_8cpp_source.html','../../'); in
|
||||
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span> }</div>
|
||||
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span> }</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span></div>
|
||||
<div class="foldopen" id="foldopen00183" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"><a class="line" href="../../dc/d93/classmachine__learning_1_1neural__network_1_1layers_1_1_dense_layer.html#af136ec31dbd35b1be2eb9a057677c704"> 183</a></span> <a class="code hl_function" href="../../dc/d93/classmachine__learning_1_1neural__network_1_1layers_1_1_dense_layer.html#af136ec31dbd35b1be2eb9a057677c704">DenseLayer</a>(<span class="keyword">const</span> <span class="keywordtype">int</span> &neurons, <span class="keyword">const</span> std::string &activation,</div>
|
||||
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"> 184</span> <span class="keyword">const</span> std::vector<std::valarray<double>> &kernel) {</div>
|
||||
<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"> 185</span> <span class="comment">// Choosing activation (and it's derivative)</span></div>
|
||||
<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"> 186</span> <span class="keywordflow">if</span> (activation == <span class="stringliteral">"sigmoid"</span>) {</div>
|
||||
<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"> 187</span> activation_function = neural_network::activations::sigmoid;</div>
|
||||
<div class="line"><a id="l00188" name="l00188"></a><span class="lineno"> 188</span> dactivation_function = neural_network::activations::sigmoid;</div>
|
||||
<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"> 187</span> activation_function = <a class="code hl_function" href="../../d2/d58/neural__network_8cpp.html#a23aa9d32bcbcd65cfc85f0a41e2afadc">neural_network::activations::sigmoid</a>;</div>
|
||||
<div class="line"><a id="l00188" name="l00188"></a><span class="lineno"> 188</span> dactivation_function = <a class="code hl_function" href="../../d2/d58/neural__network_8cpp.html#a23aa9d32bcbcd65cfc85f0a41e2afadc">neural_network::activations::sigmoid</a>;</div>
|
||||
<div class="line"><a id="l00189" name="l00189"></a><span class="lineno"> 189</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (activation == <span class="stringliteral">"relu"</span>) {</div>
|
||||
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"> 190</span> activation_function = neural_network::activations::relu;</div>
|
||||
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"> 191</span> dactivation_function = neural_network::activations::drelu;</div>
|
||||
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"> 190</span> activation_function = <a class="code hl_function" href="../../d2/d58/neural__network_8cpp.html#af8f264600754602b6a9ea19cc690e50e">neural_network::activations::relu</a>;</div>
|
||||
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"> 191</span> dactivation_function = <a class="code hl_function" href="../../d2/d58/neural__network_8cpp.html#aa69e95a34054d7989bf446f96b2ffaf9">neural_network::activations::drelu</a>;</div>
|
||||
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (activation == <span class="stringliteral">"tanh"</span>) {</div>
|
||||
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"> 193</span> activation_function = neural_network::activations::tanh;</div>
|
||||
<div class="line"><a id="l00194" name="l00194"></a><span class="lineno"> 194</span> dactivation_function = neural_network::activations::dtanh;</div>
|
||||
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"> 193</span> activation_function = <a class="code hl_function" href="../../d2/d58/neural__network_8cpp.html#a371aa7dd5d5add0143d1756bb0a1b32f">neural_network::activations::tanh</a>;</div>
|
||||
<div class="line"><a id="l00194" name="l00194"></a><span class="lineno"> 194</span> dactivation_function = <a class="code hl_function" href="../../d2/d58/neural__network_8cpp.html#a2a5e874b9774aa5362dbcf288828b95c">neural_network::activations::dtanh</a>;</div>
|
||||
<div class="line"><a id="l00195" name="l00195"></a><span class="lineno"> 195</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (activation == <span class="stringliteral">"none"</span>) {</div>
|
||||
<div class="line"><a id="l00196" name="l00196"></a><span class="lineno"> 196</span> <span class="comment">// Set identity function in casse of none is supplied</span></div>
|
||||
<div class="line"><a id="l00197" name="l00197"></a><span class="lineno"> 197</span> activation_function =</div>
|
||||
<div class="line"><a id="l00198" name="l00198"></a><span class="lineno"> 198</span> neural_network::util_functions::identity_function;</div>
|
||||
<div class="line"><a id="l00198" name="l00198"></a><span class="lineno"> 198</span> <a class="code hl_function" href="../../d2/d58/neural__network_8cpp.html#a32c00da08f2cf641dd336270f6e3c407">neural_network::util_functions::identity_function</a>;</div>
|
||||
<div class="line"><a id="l00199" name="l00199"></a><span class="lineno"> 199</span> dactivation_function =</div>
|
||||
<div class="line"><a id="l00200" name="l00200"></a><span class="lineno"> 200</span> neural_network::util_functions::identity_function;</div>
|
||||
<div class="line"><a id="l00200" name="l00200"></a><span class="lineno"> 200</span> <a class="code hl_function" href="../../d2/d58/neural__network_8cpp.html#a32c00da08f2cf641dd336270f6e3c407">neural_network::util_functions::identity_function</a>;</div>
|
||||
<div class="line"><a id="l00201" name="l00201"></a><span class="lineno"> 201</span> } <span class="keywordflow">else</span> {</div>
|
||||
<div class="line"><a id="l00202" name="l00202"></a><span class="lineno"> 202</span> <span class="comment">// If supplied activation is invalid</span></div>
|
||||
<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"> 203</span> std::cerr << <span class="stringliteral">"ERROR ("</span> << __func__ << <span class="stringliteral">") : "</span>;</div>
|
||||
@@ -238,21 +240,21 @@ $(function(){initNavTree('d2/d58/neural__network_8cpp_source.html','../../'); in
|
||||
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span> this->kernel = kernel; <span class="comment">// Setting supplied kernel values</span></div>
|
||||
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span> }</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"> 213</span> </div>
|
||||
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"><a class="line" href="../../dc/d93/classmachine__learning_1_1neural__network_1_1layers_1_1_dense_layer.html#a2871146feaaa453558239df67b21e0d2"> 219</a></span> <a class="code hl_function" href="../../dc/d93/classmachine__learning_1_1neural__network_1_1layers_1_1_dense_layer.html#a2871146feaaa453558239df67b21e0d2">DenseLayer</a>(<span class="keyword">const</span> <a class="code hl_class" href="../../dc/d93/classmachine__learning_1_1neural__network_1_1layers_1_1_dense_layer.html">DenseLayer</a> &layer) = <span class="keywordflow">default</span>;</div>
|
||||
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"> 220</span> </div>
|
||||
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"> 213</span></div>
|
||||
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"><a class="line" href="../../dc/d93/classmachine__learning_1_1neural__network_1_1layers_1_1_dense_layer.html#a2871146feaaa453558239df67b21e0d2"> 219</a></span> <a class="code hl_function" href="../../dc/d93/classmachine__learning_1_1neural__network_1_1layers_1_1_dense_layer.html#a2871146feaaa453558239df67b21e0d2">DenseLayer</a>(<span class="keyword">const</span> <a class="code hl_function" href="../../dc/d93/classmachine__learning_1_1neural__network_1_1layers_1_1_dense_layer.html#a11046825be0b6dbb73fbe834aa49200e">DenseLayer</a> &layer) = <span class="keywordflow">default</span>;</div>
|
||||
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"> 220</span></div>
|
||||
<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"><a class="line" href="../../dc/d93/classmachine__learning_1_1neural__network_1_1layers_1_1_dense_layer.html#ac9cda9453c4a0caf5bae7f9213b019a0"> 224</a></span> <a class="code hl_function" href="../../dc/d93/classmachine__learning_1_1neural__network_1_1layers_1_1_dense_layer.html#ac9cda9453c4a0caf5bae7f9213b019a0">~DenseLayer</a>() = <span class="keywordflow">default</span>;</div>
|
||||
<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"> 225</span> </div>
|
||||
<div class="line"><a id="l00229" name="l00229"></a><span class="lineno"><a class="line" href="../../dc/d93/classmachine__learning_1_1neural__network_1_1layers_1_1_dense_layer.html#ae077132526d2863e46aa77cb0f7d6aa2"> 229</a></span> <a class="code hl_class" href="../../dc/d93/classmachine__learning_1_1neural__network_1_1layers_1_1_dense_layer.html">DenseLayer</a> &<a class="code hl_function" href="../../dc/d93/classmachine__learning_1_1neural__network_1_1layers_1_1_dense_layer.html#ae077132526d2863e46aa77cb0f7d6aa2">operator=</a>(<span class="keyword">const</span> <a class="code hl_class" href="../../dc/d93/classmachine__learning_1_1neural__network_1_1layers_1_1_dense_layer.html">DenseLayer</a> &layer) = <span class="keywordflow">default</span>;</div>
|
||||
<div class="line"><a id="l00230" name="l00230"></a><span class="lineno"> 230</span> </div>
|
||||
<div class="line"><a id="l00234" name="l00234"></a><span class="lineno"><a class="line" href="../../dc/d93/classmachine__learning_1_1neural__network_1_1layers_1_1_dense_layer.html#a6c859e3737aa88b29854df0347b29f4e"> 234</a></span> <a class="code hl_function" href="../../dc/d93/classmachine__learning_1_1neural__network_1_1layers_1_1_dense_layer.html#a6c859e3737aa88b29854df0347b29f4e">DenseLayer</a>(<a class="code hl_class" href="../../dc/d93/classmachine__learning_1_1neural__network_1_1layers_1_1_dense_layer.html">DenseLayer</a> &&) = <span class="keywordflow">default</span>;</div>
|
||||
<div class="line"><a id="l00235" name="l00235"></a><span class="lineno"> 235</span> </div>
|
||||
<div class="line"><a id="l00239" name="l00239"></a><span class="lineno"><a class="line" href="../../dc/d93/classmachine__learning_1_1neural__network_1_1layers_1_1_dense_layer.html#a19aaccad279b22dbbb6c55e5697b4114"> 239</a></span> <a class="code hl_class" href="../../dc/d93/classmachine__learning_1_1neural__network_1_1layers_1_1_dense_layer.html">DenseLayer</a> &<a class="code hl_function" href="../../dc/d93/classmachine__learning_1_1neural__network_1_1layers_1_1_dense_layer.html#a19aaccad279b22dbbb6c55e5697b4114">operator=</a>(<a class="code hl_class" href="../../dc/d93/classmachine__learning_1_1neural__network_1_1layers_1_1_dense_layer.html">DenseLayer</a> &&) = <span class="keywordflow">default</span>;</div>
|
||||
<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"> 225</span></div>
|
||||
<div class="line"><a id="l00229" name="l00229"></a><span class="lineno"><a class="line" href="../../dc/d93/classmachine__learning_1_1neural__network_1_1layers_1_1_dense_layer.html#ae077132526d2863e46aa77cb0f7d6aa2"> 229</a></span> <a class="code hl_function" href="../../dc/d93/classmachine__learning_1_1neural__network_1_1layers_1_1_dense_layer.html#a11046825be0b6dbb73fbe834aa49200e">DenseLayer</a> &<a class="code hl_function" href="../../dc/d93/classmachine__learning_1_1neural__network_1_1layers_1_1_dense_layer.html#ae077132526d2863e46aa77cb0f7d6aa2">operator=</a>(<span class="keyword">const</span> <a class="code hl_function" href="../../dc/d93/classmachine__learning_1_1neural__network_1_1layers_1_1_dense_layer.html#a11046825be0b6dbb73fbe834aa49200e">DenseLayer</a> &layer) = <span class="keywordflow">default</span>;</div>
|
||||
<div class="line"><a id="l00230" name="l00230"></a><span class="lineno"> 230</span></div>
|
||||
<div class="line"><a id="l00234" name="l00234"></a><span class="lineno"><a class="line" href="../../dc/d93/classmachine__learning_1_1neural__network_1_1layers_1_1_dense_layer.html#a6c859e3737aa88b29854df0347b29f4e"> 234</a></span> <a class="code hl_function" href="../../dc/d93/classmachine__learning_1_1neural__network_1_1layers_1_1_dense_layer.html#a6c859e3737aa88b29854df0347b29f4e">DenseLayer</a>(<a class="code hl_function" href="../../dc/d93/classmachine__learning_1_1neural__network_1_1layers_1_1_dense_layer.html#a11046825be0b6dbb73fbe834aa49200e">DenseLayer</a> &&) = <span class="keywordflow">default</span>;</div>
|
||||
<div class="line"><a id="l00235" name="l00235"></a><span class="lineno"> 235</span></div>
|
||||
<div class="line"><a id="l00239" name="l00239"></a><span class="lineno"><a class="line" href="../../dc/d93/classmachine__learning_1_1neural__network_1_1layers_1_1_dense_layer.html#a19aaccad279b22dbbb6c55e5697b4114"> 239</a></span> <a class="code hl_function" href="../../dc/d93/classmachine__learning_1_1neural__network_1_1layers_1_1_dense_layer.html#a11046825be0b6dbb73fbe834aa49200e">DenseLayer</a> &<a class="code hl_function" href="../../dc/d93/classmachine__learning_1_1neural__network_1_1layers_1_1_dense_layer.html#a19aaccad279b22dbbb6c55e5697b4114">operator=</a>(<a class="code hl_function" href="../../dc/d93/classmachine__learning_1_1neural__network_1_1layers_1_1_dense_layer.html#a11046825be0b6dbb73fbe834aa49200e">DenseLayer</a> &&) = <span class="keywordflow">default</span>;</div>
|
||||
<div class="line"><a id="l00240" name="l00240"></a><span class="lineno"> 240</span>};</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00241" name="l00241"></a><span class="lineno"> 241</span>} <span class="comment">// namespace layers</span></div>
|
||||
<div class="foldopen" id="foldopen00247" data-start="{" data-end="};">
|
||||
<div class="line"><a id="l00247" name="l00247"></a><span class="lineno"><a class="line" href="../../d4/df4/classmachine__learning_1_1neural__network_1_1_neural_network.html"> 247</a></span><span class="keyword">class </span><a class="code hl_class" href="../../d4/df4/classmachine__learning_1_1neural__network_1_1_neural_network.html">NeuralNetwork</a> {</div>
|
||||
<div class="line"><a id="l00247" name="l00247"></a><span class="lineno"><a class="line" href="../../d4/df4/classmachine__learning_1_1neural__network_1_1_neural_network.html"> 247</a></span><span class="keyword">class </span><a class="code hl_function" href="../../d4/df4/classmachine__learning_1_1neural__network_1_1_neural_network.html#a4c4c6f63ab965317f9471518ee931b89">NeuralNetwork</a> {</div>
|
||||
<div class="line"><a id="l00248" name="l00248"></a><span class="lineno"> 248</span> <span class="keyword">private</span>:</div>
|
||||
<div class="line"><a id="l00249" name="l00249"></a><span class="lineno"> 249</span> std::vector<neural_network::layers::DenseLayer> <a class="code hl_namespace" href="../../d5/d2c/namespacelayers.html">layers</a>; <span class="comment">// To store layers</span></div>
|
||||
<div class="foldopen" id="foldopen00256" data-start="{" data-end="}">
|
||||
@@ -283,6 +285,7 @@ $(function(){initNavTree('d2/d58/neural__network_8cpp_source.html','../../'); in
|
||||
<div class="line"><a id="l00280" name="l00280"></a><span class="lineno"> 280</span> std::cout << <span class="stringliteral">"INFO: Network constructed successfully"</span> << std::endl;</div>
|
||||
<div class="line"><a id="l00281" name="l00281"></a><span class="lineno"> 281</span> }</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00282" name="l00282"></a><span class="lineno"> 282</span></div>
|
||||
<div class="line"><a id="l00288" name="l00288"></a><span class="lineno"> 288</span> std::vector<std::vector<std::valarray<double>>></div>
|
||||
<div class="foldopen" id="foldopen00289" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00289" name="l00289"></a><span class="lineno"><a class="line" href="../../d4/df4/classmachine__learning_1_1neural__network_1_1_neural_network.html#a361a45f3c3d8347d79103bf182d0570b"> 289</a></span> <a class="code hl_function" href="../../d4/df4/classmachine__learning_1_1neural__network_1_1_neural_network.html#a361a45f3c3d8347d79103bf182d0570b">__detailed_single_prediction</a>(<span class="keyword">const</span> std::vector<std::valarray<double>> &X) {</div>
|
||||
@@ -300,7 +303,7 @@ $(function(){initNavTree('d2/d58/neural__network_8cpp_source.html','../../'); in
|
||||
<div class="line"><a id="l00300" name="l00300"></a><span class="lineno"> 300</span> </div>
|
||||
<div class="line"><a id="l00301" name="l00301"></a><span class="lineno"> 301</span> <span class="keyword">public</span>:</div>
|
||||
<div class="line"><a id="l00306" name="l00306"></a><span class="lineno"><a class="line" href="../../d4/df4/classmachine__learning_1_1neural__network_1_1_neural_network.html#ae7cf126a3a8f9d20c81b21584d061a08"> 306</a></span> <a class="code hl_function" href="../../d4/df4/classmachine__learning_1_1neural__network_1_1_neural_network.html#ae7cf126a3a8f9d20c81b21584d061a08">NeuralNetwork</a>() = <span class="keywordflow">default</span>;</div>
|
||||
<div class="line"><a id="l00307" name="l00307"></a><span class="lineno"> 307</span> </div>
|
||||
<div class="line"><a id="l00307" name="l00307"></a><span class="lineno"> 307</span></div>
|
||||
<div class="foldopen" id="foldopen00313" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00313" name="l00313"></a><span class="lineno"><a class="line" href="../../d4/df4/classmachine__learning_1_1neural__network_1_1_neural_network.html#a62151b0398a2536be60d950e10ffe9a8"> 313</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="../../d4/df4/classmachine__learning_1_1neural__network_1_1_neural_network.html#a62151b0398a2536be60d950e10ffe9a8">NeuralNetwork</a>(</div>
|
||||
<div class="line"><a id="l00314" name="l00314"></a><span class="lineno"> 314</span> <span class="keyword">const</span> std::vector<std::pair<int, std::string>> &config) {</div>
|
||||
@@ -334,17 +337,17 @@ $(function(){initNavTree('d2/d58/neural__network_8cpp_source.html','../../'); in
|
||||
<div class="line"><a id="l00342" name="l00342"></a><span class="lineno"> 342</span> std::cout << <span class="stringliteral">"INFO: Network constructed successfully"</span> << std::endl;</div>
|
||||
<div class="line"><a id="l00343" name="l00343"></a><span class="lineno"> 343</span> }</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00344" name="l00344"></a><span class="lineno"> 344</span> </div>
|
||||
<div class="line"><a id="l00350" name="l00350"></a><span class="lineno"><a class="line" href="../../d4/df4/classmachine__learning_1_1neural__network_1_1_neural_network.html#a176b955c90ae57d7dbc3c63f27c84c75"> 350</a></span> <a class="code hl_function" href="../../d4/df4/classmachine__learning_1_1neural__network_1_1_neural_network.html#a176b955c90ae57d7dbc3c63f27c84c75">NeuralNetwork</a>(<span class="keyword">const</span> <a class="code hl_class" href="../../d4/df4/classmachine__learning_1_1neural__network_1_1_neural_network.html">NeuralNetwork</a> &model) = <span class="keywordflow">default</span>;</div>
|
||||
<div class="line"><a id="l00351" name="l00351"></a><span class="lineno"> 351</span> </div>
|
||||
<div class="line"><a id="l00344" name="l00344"></a><span class="lineno"> 344</span></div>
|
||||
<div class="line"><a id="l00350" name="l00350"></a><span class="lineno"><a class="line" href="../../d4/df4/classmachine__learning_1_1neural__network_1_1_neural_network.html#a176b955c90ae57d7dbc3c63f27c84c75"> 350</a></span> <a class="code hl_function" href="../../d4/df4/classmachine__learning_1_1neural__network_1_1_neural_network.html#a176b955c90ae57d7dbc3c63f27c84c75">NeuralNetwork</a>(<span class="keyword">const</span> <a class="code hl_function" href="../../d4/df4/classmachine__learning_1_1neural__network_1_1_neural_network.html#a4c4c6f63ab965317f9471518ee931b89">NeuralNetwork</a> &model) = <span class="keywordflow">default</span>;</div>
|
||||
<div class="line"><a id="l00351" name="l00351"></a><span class="lineno"> 351</span></div>
|
||||
<div class="line"><a id="l00355" name="l00355"></a><span class="lineno"><a class="line" href="../../d4/df4/classmachine__learning_1_1neural__network_1_1_neural_network.html#a8973f687738ddd76f93b5562feae4027"> 355</a></span> <a class="code hl_function" href="../../d4/df4/classmachine__learning_1_1neural__network_1_1_neural_network.html#a8973f687738ddd76f93b5562feae4027">~NeuralNetwork</a>() = <span class="keywordflow">default</span>;</div>
|
||||
<div class="line"><a id="l00356" name="l00356"></a><span class="lineno"> 356</span> </div>
|
||||
<div class="line"><a id="l00360" name="l00360"></a><span class="lineno"><a class="line" href="../../d4/df4/classmachine__learning_1_1neural__network_1_1_neural_network.html#a58a9614e4c6d4ca672d3358e99a3404f"> 360</a></span> <a class="code hl_class" href="../../d4/df4/classmachine__learning_1_1neural__network_1_1_neural_network.html">NeuralNetwork</a> &<a class="code hl_function" href="../../d4/df4/classmachine__learning_1_1neural__network_1_1_neural_network.html#a58a9614e4c6d4ca672d3358e99a3404f">operator=</a>(<span class="keyword">const</span> <a class="code hl_class" href="../../d4/df4/classmachine__learning_1_1neural__network_1_1_neural_network.html">NeuralNetwork</a> &model) = <span class="keywordflow">default</span>;</div>
|
||||
<div class="line"><a id="l00361" name="l00361"></a><span class="lineno"> 361</span> </div>
|
||||
<div class="line"><a id="l00365" name="l00365"></a><span class="lineno"><a class="line" href="../../d4/df4/classmachine__learning_1_1neural__network_1_1_neural_network.html#a173bb71780af6953ec2e307a4c74b025"> 365</a></span> <a class="code hl_function" href="../../d4/df4/classmachine__learning_1_1neural__network_1_1_neural_network.html#a173bb71780af6953ec2e307a4c74b025">NeuralNetwork</a>(<a class="code hl_class" href="../../d4/df4/classmachine__learning_1_1neural__network_1_1_neural_network.html">NeuralNetwork</a> &&) = <span class="keywordflow">default</span>;</div>
|
||||
<div class="line"><a id="l00366" name="l00366"></a><span class="lineno"> 366</span> </div>
|
||||
<div class="line"><a id="l00370" name="l00370"></a><span class="lineno"><a class="line" href="../../d4/df4/classmachine__learning_1_1neural__network_1_1_neural_network.html#a2c49bfebf9b859d5ceb26035d3003601"> 370</a></span> <a class="code hl_class" href="../../d4/df4/classmachine__learning_1_1neural__network_1_1_neural_network.html">NeuralNetwork</a> &<a class="code hl_function" href="../../d4/df4/classmachine__learning_1_1neural__network_1_1_neural_network.html#a2c49bfebf9b859d5ceb26035d3003601">operator=</a>(<a class="code hl_class" href="../../d4/df4/classmachine__learning_1_1neural__network_1_1_neural_network.html">NeuralNetwork</a> &&) = <span class="keywordflow">default</span>;</div>
|
||||
<div class="line"><a id="l00371" name="l00371"></a><span class="lineno"> 371</span> </div>
|
||||
<div class="line"><a id="l00356" name="l00356"></a><span class="lineno"> 356</span></div>
|
||||
<div class="line"><a id="l00360" name="l00360"></a><span class="lineno"><a class="line" href="../../d4/df4/classmachine__learning_1_1neural__network_1_1_neural_network.html#a58a9614e4c6d4ca672d3358e99a3404f"> 360</a></span> <a class="code hl_function" href="../../d4/df4/classmachine__learning_1_1neural__network_1_1_neural_network.html#a4c4c6f63ab965317f9471518ee931b89">NeuralNetwork</a> &<a class="code hl_function" href="../../d4/df4/classmachine__learning_1_1neural__network_1_1_neural_network.html#a58a9614e4c6d4ca672d3358e99a3404f">operator=</a>(<span class="keyword">const</span> <a class="code hl_function" href="../../d4/df4/classmachine__learning_1_1neural__network_1_1_neural_network.html#a4c4c6f63ab965317f9471518ee931b89">NeuralNetwork</a> &model) = <span class="keywordflow">default</span>;</div>
|
||||
<div class="line"><a id="l00361" name="l00361"></a><span class="lineno"> 361</span></div>
|
||||
<div class="line"><a id="l00365" name="l00365"></a><span class="lineno"><a class="line" href="../../d4/df4/classmachine__learning_1_1neural__network_1_1_neural_network.html#a173bb71780af6953ec2e307a4c74b025"> 365</a></span> <a class="code hl_function" href="../../d4/df4/classmachine__learning_1_1neural__network_1_1_neural_network.html#a173bb71780af6953ec2e307a4c74b025">NeuralNetwork</a>(<a class="code hl_function" href="../../d4/df4/classmachine__learning_1_1neural__network_1_1_neural_network.html#a4c4c6f63ab965317f9471518ee931b89">NeuralNetwork</a> &&) = <span class="keywordflow">default</span>;</div>
|
||||
<div class="line"><a id="l00366" name="l00366"></a><span class="lineno"> 366</span></div>
|
||||
<div class="line"><a id="l00370" name="l00370"></a><span class="lineno"><a class="line" href="../../d4/df4/classmachine__learning_1_1neural__network_1_1_neural_network.html#a2c49bfebf9b859d5ceb26035d3003601"> 370</a></span> <a class="code hl_function" href="../../d4/df4/classmachine__learning_1_1neural__network_1_1_neural_network.html#a4c4c6f63ab965317f9471518ee931b89">NeuralNetwork</a> &<a class="code hl_function" href="../../d4/df4/classmachine__learning_1_1neural__network_1_1_neural_network.html#a2c49bfebf9b859d5ceb26035d3003601">operator=</a>(<a class="code hl_function" href="../../d4/df4/classmachine__learning_1_1neural__network_1_1_neural_network.html#a4c4c6f63ab965317f9471518ee931b89">NeuralNetwork</a> &&) = <span class="keywordflow">default</span>;</div>
|
||||
<div class="line"><a id="l00371" name="l00371"></a><span class="lineno"> 371</span></div>
|
||||
<div class="line"><a id="l00380" name="l00380"></a><span class="lineno"> 380</span> std::pair<std::vector<std::vector<std::valarray<double>>>,</div>
|
||||
<div class="line"><a id="l00381" name="l00381"></a><span class="lineno"> 381</span> std::vector<std::vector<std::valarray<double>>>></div>
|
||||
<div class="foldopen" id="foldopen00382" data-start="{" data-end="}">
|
||||
@@ -412,7 +415,7 @@ $(function(){initNavTree('d2/d58/neural__network_8cpp_source.html','../../'); in
|
||||
<div class="line"><a id="l00443" name="l00443"></a><span class="lineno"> 443</span> <span class="keywordflow">return</span> make_pair(X, Y); <span class="comment">// Return pair of X and Y</span></div>
|
||||
<div class="line"><a id="l00444" name="l00444"></a><span class="lineno"> 444</span> }</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00445" name="l00445"></a><span class="lineno"> 445</span> </div>
|
||||
<div class="line"><a id="l00445" name="l00445"></a><span class="lineno"> 445</span></div>
|
||||
<div class="foldopen" id="foldopen00451" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00451" name="l00451"></a><span class="lineno"><a class="line" href="../../d4/df4/classmachine__learning_1_1neural__network_1_1_neural_network.html#a3b9eac1824d365dce715fb17c33cb96f"> 451</a></span> std::vector<std::valarray<double>> <a class="code hl_function" href="../../d4/df4/classmachine__learning_1_1neural__network_1_1_neural_network.html#a3b9eac1824d365dce715fb17c33cb96f">single_predict</a>(</div>
|
||||
<div class="line"><a id="l00452" name="l00452"></a><span class="lineno"> 452</span> <span class="keyword">const</span> std::vector<std::valarray<double>> &X) {</div>
|
||||
@@ -422,7 +425,7 @@ $(function(){initNavTree('d2/d58/neural__network_8cpp_source.html','../../'); in
|
||||
<div class="line"><a id="l00456" name="l00456"></a><span class="lineno"> 456</span> <span class="keywordflow">return</span> <a class="code hl_namespace" href="../../d5/d39/namespaceactivations.html">activations</a>.back();</div>
|
||||
<div class="line"><a id="l00457" name="l00457"></a><span class="lineno"> 457</span> }</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00458" name="l00458"></a><span class="lineno"> 458</span> </div>
|
||||
<div class="line"><a id="l00458" name="l00458"></a><span class="lineno"> 458</span></div>
|
||||
<div class="foldopen" id="foldopen00464" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00464" name="l00464"></a><span class="lineno"><a class="line" href="../../d4/df4/classmachine__learning_1_1neural__network_1_1_neural_network.html#a88bf9023ab3d4cdb61cf707c7cdfc86b"> 464</a></span> std::vector<std::vector<std::valarray<double>>> <a class="code hl_function" href="../../d4/df4/classmachine__learning_1_1neural__network_1_1_neural_network.html#a88bf9023ab3d4cdb61cf707c7cdfc86b">batch_predict</a>(</div>
|
||||
<div class="line"><a id="l00465" name="l00465"></a><span class="lineno"> 465</span> <span class="keyword">const</span> std::vector<std::vector<std::valarray<double>>> &X) {</div>
|
||||
@@ -436,7 +439,7 @@ $(function(){initNavTree('d2/d58/neural__network_8cpp_source.html','../../'); in
|
||||
<div class="line"><a id="l00473" name="l00473"></a><span class="lineno"> 473</span> <span class="keywordflow">return</span> predicted_batch; <span class="comment">// Return predicted values</span></div>
|
||||
<div class="line"><a id="l00474" name="l00474"></a><span class="lineno"> 474</span> }</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00475" name="l00475"></a><span class="lineno"> 475</span> </div>
|
||||
<div class="line"><a id="l00475" name="l00475"></a><span class="lineno"> 475</span></div>
|
||||
<div class="foldopen" id="foldopen00485" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00485" name="l00485"></a><span class="lineno"><a class="line" href="../../d4/df4/classmachine__learning_1_1neural__network_1_1_neural_network.html#a2be1b52bb9f57486f9a436f35c9089c0"> 485</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="../../d4/df4/classmachine__learning_1_1neural__network_1_1_neural_network.html#a2be1b52bb9f57486f9a436f35c9089c0">fit</a>(<span class="keyword">const</span> std::vector<std::vector<std::valarray<double>>> &X_,</div>
|
||||
<div class="line"><a id="l00486" name="l00486"></a><span class="lineno"> 486</span> <span class="keyword">const</span> std::vector<std::vector<std::valarray<double>>> &Y_,</div>
|
||||
@@ -480,7 +483,7 @@ $(function(){initNavTree('d2/d58/neural__network_8cpp_source.html','../../'); in
|
||||
<div class="line"><a id="l00524" name="l00524"></a><span class="lineno"> 524</span> cur_error = predicted - Y[i]; <span class="comment">// Absoulute error</span></div>
|
||||
<div class="line"><a id="l00525" name="l00525"></a><span class="lineno"> 525</span> <span class="comment">// Calculating loss with MSE</span></div>
|
||||
<div class="line"><a id="l00526" name="l00526"></a><span class="lineno"> 526</span> loss += <a class="code hl_function" href="../../d8/d77/namespacemachine__learning.html#a6f1c98c016ad34ff3d9f39372161bd35">sum</a>(<a class="code hl_function" href="../../d8/d77/namespacemachine__learning.html#ad0bdc88e5f1be47c46c0f0c8ebf754bb">apply_function</a>(</div>
|
||||
<div class="line"><a id="l00527" name="l00527"></a><span class="lineno"> 527</span> cur_error, neural_network::util_functions::square));</div>
|
||||
<div class="line"><a id="l00527" name="l00527"></a><span class="lineno"> 527</span> cur_error, <a class="code hl_function" href="../../d2/d58/neural__network_8cpp.html#a45d3e30406712ada3d9713ece3c1b153">neural_network::util_functions::square</a>));</div>
|
||||
<div class="line"><a id="l00528" name="l00528"></a><span class="lineno"> 528</span> <span class="comment">// If prediction is correct</span></div>
|
||||
<div class="line"><a id="l00529" name="l00529"></a><span class="lineno"> 529</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="../../d8/d77/namespacemachine__learning.html#a50480fccfb39de20ca47f1bf51ecb6ec">argmax</a>(predicted) == <a class="code hl_function" href="../../d8/d77/namespacemachine__learning.html#a50480fccfb39de20ca47f1bf51ecb6ec">argmax</a>(Y[i])) {</div>
|
||||
<div class="line"><a id="l00530" name="l00530"></a><span class="lineno"> 530</span> acc += 1;</div>
|
||||
@@ -529,7 +532,7 @@ $(function(){initNavTree('d2/d58/neural__network_8cpp_source.html','../../'); in
|
||||
<div class="line"><a id="l00573" name="l00573"></a><span class="lineno"> 573</span> <span class="keywordflow">return</span>;</div>
|
||||
<div class="line"><a id="l00574" name="l00574"></a><span class="lineno"> 574</span> }</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00575" name="l00575"></a><span class="lineno"> 575</span> </div>
|
||||
<div class="line"><a id="l00575" name="l00575"></a><span class="lineno"> 575</span></div>
|
||||
<div class="foldopen" id="foldopen00587" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00587" name="l00587"></a><span class="lineno"><a class="line" href="../../d4/df4/classmachine__learning_1_1neural__network_1_1_neural_network.html#a5172a6791b9bd24f4232bab8d6b81fff"> 587</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="../../d4/df4/classmachine__learning_1_1neural__network_1_1_neural_network.html#a5172a6791b9bd24f4232bab8d6b81fff">fit_from_csv</a>(<span class="keyword">const</span> std::string &file_name, <span class="keyword">const</span> <span class="keywordtype">bool</span> &last_label,</div>
|
||||
<div class="line"><a id="l00588" name="l00588"></a><span class="lineno"> 588</span> <span class="keyword">const</span> <span class="keywordtype">int</span> &epochs, <span class="keyword">const</span> <span class="keywordtype">double</span> &learning_rate,</div>
|
||||
@@ -545,7 +548,7 @@ $(function(){initNavTree('d2/d58/neural__network_8cpp_source.html','../../'); in
|
||||
<div class="line"><a id="l00598" name="l00598"></a><span class="lineno"> 598</span> <span class="keywordflow">return</span>;</div>
|
||||
<div class="line"><a id="l00599" name="l00599"></a><span class="lineno"> 599</span> }</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00600" name="l00600"></a><span class="lineno"> 600</span> </div>
|
||||
<div class="line"><a id="l00600" name="l00600"></a><span class="lineno"> 600</span></div>
|
||||
<div class="foldopen" id="foldopen00606" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00606" name="l00606"></a><span class="lineno"><a class="line" href="../../d4/df4/classmachine__learning_1_1neural__network_1_1_neural_network.html#aec648ea4f40bd71123b5f907a681dd8e"> 606</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="../../d4/df4/classmachine__learning_1_1neural__network_1_1_neural_network.html#aec648ea4f40bd71123b5f907a681dd8e">evaluate</a>(<span class="keyword">const</span> std::vector<std::vector<std::valarray<double>>> &X,</div>
|
||||
<div class="line"><a id="l00607" name="l00607"></a><span class="lineno"> 607</span> <span class="keyword">const</span> std::vector<std::vector<std::valarray<double>>> &Y) {</div>
|
||||
@@ -561,7 +564,7 @@ $(function(){initNavTree('d2/d58/neural__network_8cpp_source.html','../../'); in
|
||||
<div class="line"><a id="l00617" name="l00617"></a><span class="lineno"> 617</span> }</div>
|
||||
<div class="line"><a id="l00618" name="l00618"></a><span class="lineno"> 618</span> <span class="comment">// Calculating loss - Mean Squared Error</span></div>
|
||||
<div class="line"><a id="l00619" name="l00619"></a><span class="lineno"> 619</span> loss += <a class="code hl_function" href="../../d8/d77/namespacemachine__learning.html#a6f1c98c016ad34ff3d9f39372161bd35">sum</a>(<a class="code hl_function" href="../../d8/d77/namespacemachine__learning.html#ad0bdc88e5f1be47c46c0f0c8ebf754bb">apply_function</a>((Y[i] - pred),</div>
|
||||
<div class="line"><a id="l00620" name="l00620"></a><span class="lineno"> 620</span> neural_network::util_functions::square) *</div>
|
||||
<div class="line"><a id="l00620" name="l00620"></a><span class="lineno"> 620</span> <a class="code hl_function" href="../../d2/d58/neural__network_8cpp.html#a45d3e30406712ada3d9713ece3c1b153">neural_network::util_functions::square</a>) *</div>
|
||||
<div class="line"><a id="l00621" name="l00621"></a><span class="lineno"> 621</span> 0.5);</div>
|
||||
<div class="line"><a id="l00622" name="l00622"></a><span class="lineno"> 622</span> }</div>
|
||||
<div class="line"><a id="l00623" name="l00623"></a><span class="lineno"> 623</span> acc /= X.size(); <span class="comment">// Averaging accuracy</span></div>
|
||||
@@ -572,7 +575,7 @@ $(function(){initNavTree('d2/d58/neural__network_8cpp_source.html','../../'); in
|
||||
<div class="line"><a id="l00628" name="l00628"></a><span class="lineno"> 628</span> <span class="keywordflow">return</span>;</div>
|
||||
<div class="line"><a id="l00629" name="l00629"></a><span class="lineno"> 629</span> }</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00630" name="l00630"></a><span class="lineno"> 630</span> </div>
|
||||
<div class="line"><a id="l00630" name="l00630"></a><span class="lineno"> 630</span></div>
|
||||
<div class="foldopen" id="foldopen00638" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00638" name="l00638"></a><span class="lineno"><a class="line" href="../../d4/df4/classmachine__learning_1_1neural__network_1_1_neural_network.html#a36494e26ff36d6e15c1022bb9a1ee848"> 638</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="../../d4/df4/classmachine__learning_1_1neural__network_1_1_neural_network.html#a36494e26ff36d6e15c1022bb9a1ee848">evaluate_from_csv</a>(<span class="keyword">const</span> std::string &file_name, <span class="keyword">const</span> <span class="keywordtype">bool</span> &last_label,</div>
|
||||
<div class="line"><a id="l00639" name="l00639"></a><span class="lineno"> 639</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> &normalize, <span class="keyword">const</span> <span class="keywordtype">int</span> &slip_lines = 1) {</div>
|
||||
@@ -584,7 +587,7 @@ $(function(){initNavTree('d2/d58/neural__network_8cpp_source.html','../../'); in
|
||||
<div class="line"><a id="l00645" name="l00645"></a><span class="lineno"> 645</span> <span class="keywordflow">return</span>;</div>
|
||||
<div class="line"><a id="l00646" name="l00646"></a><span class="lineno"> 646</span> }</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00647" name="l00647"></a><span class="lineno"> 647</span> </div>
|
||||
<div class="line"><a id="l00647" name="l00647"></a><span class="lineno"> 647</span></div>
|
||||
<div class="foldopen" id="foldopen00652" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00652" name="l00652"></a><span class="lineno"><a class="line" href="../../d4/df4/classmachine__learning_1_1neural__network_1_1_neural_network.html#a4f14e473bb0722c6490b9dc8da5982aa"> 652</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="../../d4/df4/classmachine__learning_1_1neural__network_1_1_neural_network.html#a4f14e473bb0722c6490b9dc8da5982aa">save_model</a>(<span class="keyword">const</span> std::string &_file_name) {</div>
|
||||
<div class="line"><a id="l00653" name="l00653"></a><span class="lineno"> 653</span> std::string file_name = _file_name;</div>
|
||||
@@ -622,9 +625,9 @@ $(function(){initNavTree('d2/d58/neural__network_8cpp_source.html','../../'); in
|
||||
<div class="line"><a id="l00724" name="l00724"></a><span class="lineno"> 724</span> <span class="keywordflow">return</span>;</div>
|
||||
<div class="line"><a id="l00725" name="l00725"></a><span class="lineno"> 725</span> }</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00726" name="l00726"></a><span class="lineno"> 726</span> </div>
|
||||
<div class="line"><a id="l00726" name="l00726"></a><span class="lineno"> 726</span></div>
|
||||
<div class="foldopen" id="foldopen00732" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00732" name="l00732"></a><span class="lineno"><a class="line" href="../../d4/df4/classmachine__learning_1_1neural__network_1_1_neural_network.html#a58ed20abf6ce3744535bd8b5bb9e741b"> 732</a></span> <a class="code hl_class" href="../../d4/df4/classmachine__learning_1_1neural__network_1_1_neural_network.html">NeuralNetwork</a> <a class="code hl_function" href="../../d4/df4/classmachine__learning_1_1neural__network_1_1_neural_network.html#a58ed20abf6ce3744535bd8b5bb9e741b">load_model</a>(<span class="keyword">const</span> std::string &file_name) {</div>
|
||||
<div class="line"><a id="l00732" name="l00732"></a><span class="lineno"><a class="line" href="../../d4/df4/classmachine__learning_1_1neural__network_1_1_neural_network.html#a58ed20abf6ce3744535bd8b5bb9e741b"> 732</a></span> <a class="code hl_function" href="../../d4/df4/classmachine__learning_1_1neural__network_1_1_neural_network.html#a4c4c6f63ab965317f9471518ee931b89">NeuralNetwork</a> <a class="code hl_function" href="../../d4/df4/classmachine__learning_1_1neural__network_1_1_neural_network.html#a58ed20abf6ce3744535bd8b5bb9e741b">load_model</a>(<span class="keyword">const</span> std::string &file_name) {</div>
|
||||
<div class="line"><a id="l00733" name="l00733"></a><span class="lineno"> 733</span> std::ifstream in_file; <span class="comment">// Ifstream to read file</span></div>
|
||||
<div class="line"><a id="l00734" name="l00734"></a><span class="lineno"> 734</span> in_file.open(file_name.c_str()); <span class="comment">// Openinig file</span></div>
|
||||
<div class="line"><a id="l00735" name="l00735"></a><span class="lineno"> 735</span> <span class="comment">// If there is any problem in opening file</span></div>
|
||||
@@ -662,7 +665,7 @@ $(function(){initNavTree('d2/d58/neural__network_8cpp_source.html','../../'); in
|
||||
<div class="line"><a id="l00767" name="l00767"></a><span class="lineno"> 767</span> config, kernels); <span class="comment">// Return instance of NeuralNetwork class</span></div>
|
||||
<div class="line"><a id="l00768" name="l00768"></a><span class="lineno"> 768</span> }</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00769" name="l00769"></a><span class="lineno"> 769</span> </div>
|
||||
<div class="line"><a id="l00769" name="l00769"></a><span class="lineno"> 769</span></div>
|
||||
<div class="foldopen" id="foldopen00773" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00773" name="l00773"></a><span class="lineno"><a class="line" href="../../d4/df4/classmachine__learning_1_1neural__network_1_1_neural_network.html#a61d30113d13304c664057118b92a5931"> 773</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="../../d4/df4/classmachine__learning_1_1neural__network_1_1_neural_network.html#a61d30113d13304c664057118b92a5931">summary</a>() {</div>
|
||||
<div class="line"><a id="l00774" name="l00774"></a><span class="lineno"> 774</span> <span class="comment">// Printing Summary</span></div>
|
||||
@@ -693,7 +696,7 @@ $(function(){initNavTree('d2/d58/neural__network_8cpp_source.html','../../'); in
|
||||
</div>
|
||||
<div class="line"><a id="l00798" name="l00798"></a><span class="lineno"> 798</span>} <span class="comment">// namespace neural_network</span></div>
|
||||
<div class="line"><a id="l00799" name="l00799"></a><span class="lineno"> 799</span>} <span class="comment">// namespace machine_learning</span></div>
|
||||
<div class="line"><a id="l00800" name="l00800"></a><span class="lineno"> 800</span> </div>
|
||||
<div class="line"><a id="l00800" name="l00800"></a><span class="lineno"> 800</span></div>
|
||||
<div class="foldopen" id="foldopen00805" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00805" name="l00805"></a><span class="lineno"><a class="line" href="../../d2/d58/neural__network_8cpp.html#aa8dca7b867074164d5f45b0f3851269d"> 805</a></span><span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code hl_function" href="../../d2/d58/neural__network_8cpp.html#aa8dca7b867074164d5f45b0f3851269d">test</a>() {</div>
|
||||
<div class="line"><a id="l00806" name="l00806"></a><span class="lineno"> 806</span> <span class="comment">// Creating network with 3 layers for "iris.csv"</span></div>
|
||||
@@ -719,7 +722,7 @@ $(function(){initNavTree('d2/d58/neural__network_8cpp_source.html','../../'); in
|
||||
<div class="line"><a id="l00826" name="l00826"></a><span class="lineno"> 826</span> <span class="keywordflow">return</span>;</div>
|
||||
<div class="line"><a id="l00827" name="l00827"></a><span class="lineno"> 827</span>}</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00828" name="l00828"></a><span class="lineno"> 828</span> </div>
|
||||
<div class="line"><a id="l00828" name="l00828"></a><span class="lineno"> 828</span></div>
|
||||
<div class="foldopen" id="foldopen00833" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00833" name="l00833"></a><span class="lineno"><a class="line" href="../../d2/d58/neural__network_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4"> 833</a></span><span class="keywordtype">int</span> <a class="code hl_function" href="../../d2/d58/neural__network_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a>() {</div>
|
||||
<div class="line"><a id="l00834" name="l00834"></a><span class="lineno"> 834</span> <span class="comment">// Testing</span></div>
|
||||
@@ -793,7 +796,7 @@ $(function(){initNavTree('d2/d58/neural__network_8cpp_source.html','../../'); in
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="../../dir_3343723ae086de42ee4ca9774da3a13f.html">machine_learning</a></li><li class="navelem"><a class="el" href="../../d2/d58/neural__network_8cpp.html">neural_network.cpp</a></li>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.12.0 </li>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
Reference in New Issue
Block a user