Documentation for 4a34bec125

This commit is contained in:
github-actions
2020-08-19 19:28:09 +00:00
parent 436fc1029a
commit b3f9bef796
592 changed files with 32027 additions and 9642 deletions

View File

@@ -0,0 +1,492 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.18"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: machine_learning::neural_network::layers::DenseLayer Class Reference</title>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../jquery.js"></script>
<script type="text/javascript" src="../../dynsections.js"></script>
<link href="../../navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../resize.js"></script>
<script type="text/javascript" src="../../navtreedata.js"></script>
<script type="text/javascript" src="../../navtree.js"></script>
<link href="../../search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML/MathJax.js"></script>
<link href="../../doxygen.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">Algorithms_in_C++
&#160;<span id="projectnumber">1.0.0</span>
</div>
<div id="projectbrief">Set of algorithms implemented in C++.</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.18 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('dc/d93/classmachine__learning_1_1neural__network_1_1layers_1_1_dense_layer.html','../../'); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-attribs">Public Attributes</a> &#124;
<a href="../../d3/d98/classmachine__learning_1_1neural__network_1_1layers_1_1_dense_layer-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">machine_learning::neural_network::layers::DenseLayer Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="dynheader">
Collaboration diagram for machine_learning::neural_network::layers::DenseLayer:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="../../d3/d65/classmachine__learning_1_1neural__network_1_1layers_1_1_dense_layer__coll__graph.svg" width="283" height="246"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
<center><span class="legend">[<a target="top" href="../../graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a51c2b942ecf10625780c6bb9d5c50ff1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dc/d93/classmachine__learning_1_1neural__network_1_1layers_1_1_dense_layer.html#a51c2b942ecf10625780c6bb9d5c50ff1">DenseLayer</a> (const int &amp;neurons, const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> &amp;activation, const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair</a>&lt; size_t, size_t &gt; &amp;kernal_shape, const bool &amp;random_kernal)</td></tr>
<tr class="separator:a51c2b942ecf10625780c6bb9d5c50ff1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a04b8e21316458436c8851959928c3964"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dc/d93/classmachine__learning_1_1neural__network_1_1layers_1_1_dense_layer.html#a04b8e21316458436c8851959928c3964">DenseLayer</a> (const int &amp;neurons, const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> &amp;activation, const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a>&lt; double &gt;&gt; &amp;kernal)</td></tr>
<tr class="separator:a04b8e21316458436c8851959928c3964"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2871146feaaa453558239df67b21e0d2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dc/d93/classmachine__learning_1_1neural__network_1_1layers_1_1_dense_layer.html#a2871146feaaa453558239df67b21e0d2">DenseLayer</a> (const <a class="el" href="../../dc/d93/classmachine__learning_1_1neural__network_1_1layers_1_1_dense_layer.html">DenseLayer</a> &amp;layer)=default</td></tr>
<tr class="separator:a2871146feaaa453558239df67b21e0d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac9cda9453c4a0caf5bae7f9213b019a0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dc/d93/classmachine__learning_1_1neural__network_1_1layers_1_1_dense_layer.html#ac9cda9453c4a0caf5bae7f9213b019a0">~DenseLayer</a> ()=default</td></tr>
<tr class="separator:ac9cda9453c4a0caf5bae7f9213b019a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8809e6df990f37c85c06474dd955cb2b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../dc/d93/classmachine__learning_1_1neural__network_1_1layers_1_1_dense_layer.html">DenseLayer</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dc/d93/classmachine__learning_1_1neural__network_1_1layers_1_1_dense_layer.html#a8809e6df990f37c85c06474dd955cb2b">operator=</a> (const <a class="el" href="../../dc/d93/classmachine__learning_1_1neural__network_1_1layers_1_1_dense_layer.html">DenseLayer</a> &amp;layer)=default</td></tr>
<tr class="separator:a8809e6df990f37c85c06474dd955cb2b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6c859e3737aa88b29854df0347b29f4e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dc/d93/classmachine__learning_1_1neural__network_1_1layers_1_1_dense_layer.html#a6c859e3737aa88b29854df0347b29f4e">DenseLayer</a> (<a class="el" href="../../dc/d93/classmachine__learning_1_1neural__network_1_1layers_1_1_dense_layer.html">DenseLayer</a> &amp;&amp;)=default</td></tr>
<tr class="separator:a6c859e3737aa88b29854df0347b29f4e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6385ad4d8186b8a74b17e4a8dc41da11"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../dc/d93/classmachine__learning_1_1neural__network_1_1layers_1_1_dense_layer.html">DenseLayer</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dc/d93/classmachine__learning_1_1neural__network_1_1layers_1_1_dense_layer.html#a6385ad4d8186b8a74b17e4a8dc41da11">operator=</a> (<a class="el" href="../../dc/d93/classmachine__learning_1_1neural__network_1_1layers_1_1_dense_layer.html">DenseLayer</a> &amp;&amp;)=default</td></tr>
<tr class="separator:a6385ad4d8186b8a74b17e4a8dc41da11"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
Public Attributes</h2></td></tr>
<tr class="memitem:a8e4c57922478ccc2b7c6277c05608714"><td class="memItemLeft" align="right" valign="top"><a id="a8e4c57922478ccc2b7c6277c05608714"></a>
double(*&#160;</td><td class="memItemRight" valign="bottom"><b>activation_function</b> )(const double &amp;)</td></tr>
<tr class="separator:a8e4c57922478ccc2b7c6277c05608714"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acc6cfdcc9d6e5170340abae63234a442"><td class="memItemLeft" align="right" valign="top"><a id="acc6cfdcc9d6e5170340abae63234a442"></a>
double(*&#160;</td><td class="memItemRight" valign="bottom"><b>dactivation_function</b> )(const double &amp;)</td></tr>
<tr class="separator:acc6cfdcc9d6e5170340abae63234a442"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ace9c37dd1322d3745de9713c90df8003"><td class="memItemLeft" align="right" valign="top"><a id="ace9c37dd1322d3745de9713c90df8003"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>neurons</b></td></tr>
<tr class="separator:ace9c37dd1322d3745de9713c90df8003"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a891264e2eb1357b2b3282e5532250869"><td class="memItemLeft" align="right" valign="top"><a id="a891264e2eb1357b2b3282e5532250869"></a>
<a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a>&#160;</td><td class="memItemRight" valign="bottom"><b>activation</b></td></tr>
<tr class="separator:a891264e2eb1357b2b3282e5532250869"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab185a343b4fdd6b9fadc8ba877360101"><td class="memItemLeft" align="right" valign="top"><a id="ab185a343b4fdd6b9fadc8ba877360101"></a>
<a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a>&lt; double &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>kernal</b></td></tr>
<tr class="separator:ab185a343b4fdd6b9fadc8ba877360101"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p><a class="el" href="../../dc/d93/classmachine__learning_1_1neural__network_1_1layers_1_1_dense_layer.html">neural_network::layers::DenseLayer</a> class is used to store all necessary information about the layers (i.e. neurons, activation and kernal). This class is used by <a class="el" href="../../d4/df4/classmachine__learning_1_1neural__network_1_1_neural_network.html">NeuralNetwork</a> class to store layers. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a51c2b942ecf10625780c6bb9d5c50ff1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a51c2b942ecf10625780c6bb9d5c50ff1">&#9670;&nbsp;</a></span>DenseLayer() <span class="overload">[1/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">machine_learning::neural_network::layers::DenseLayer::DenseLayer </td>
<td>(</td>
<td class="paramtype">const int &amp;&#160;</td>
<td class="paramname"><em>neurons</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> &amp;&#160;</td>
<td class="paramname"><em>activation</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair</a>&lt; size_t, size_t &gt; &amp;&#160;</td>
<td class="paramname"><em>kernal_shape</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const bool &amp;&#160;</td>
<td class="paramname"><em>random_kernal</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Constructor for <a class="el" href="../../dc/d93/classmachine__learning_1_1neural__network_1_1layers_1_1_dense_layer.html">neural_network::layers::DenseLayer</a> class </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">neurons</td><td>number of neurons </td></tr>
<tr><td class="paramname">activation</td><td>activation function for layer </td></tr>
<tr><td class="paramname">kernal_shape</td><td>shape of kernal </td></tr>
<tr><td class="paramname">random_kernal</td><td>flag for whether to intialize kernal randomly </td></tr>
</table>
</dd>
</dl>
<div class="fragment"><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; {</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="comment">// Choosing activation (and it&#39;s derivative)</span></div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keywordflow">if</span> (activation == <span class="stringliteral">&quot;sigmoid&quot;</span>) {</div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; activation_function = neural_network::activations::sigmoid;</div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; dactivation_function = neural_network::activations::sigmoid;</div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; }</div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (activation == <span class="stringliteral">&quot;relu&quot;</span>) {</div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; activation_function = neural_network::activations::relu;</div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; dactivation_function = neural_network::activations::drelu;</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; }</div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (activation == <span class="stringliteral">&quot;tanh&quot;</span>) {</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; activation_function = neural_network::activations::tanh;</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; dactivation_function = neural_network::activations::dtanh;</div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; }</div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (activation == <span class="stringliteral">&quot;none&quot;</span>) {</div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="comment">// Set identity function in casse of none is supplied</span></div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; activation_function = neural_network::util_functions::identity_function;</div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; dactivation_function = neural_network::util_functions::identity_function;</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="keywordflow">else</span> {</div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="comment">// If supplied activation is invalid</span></div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cerr</a> &lt;&lt; <span class="stringliteral">&quot;ERROR: Invalid argument for layer -&gt; constructor -&gt; activation, &quot;</span>;</div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cerr</a> &lt;&lt; <span class="stringliteral">&quot;Expected from {none, sigmoid, relu, tanh} got &quot;</span>;</div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cerr</a> &lt;&lt; activation &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/program/exit.html">std::exit</a>(EXIT_FAILURE);</div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; }</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keyword">this</span> -&gt; activation = activation; <span class="comment">// Setting activation name</span></div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keyword">this</span> -&gt; neurons = neurons; <span class="comment">// Setting number of neurons</span></div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="comment">// Initialize kernal according to flag</span></div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keywordflow">if</span>(random_kernal) {</div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <a class="code" href="../../d8/d77/namespacemachine__learning.html#a73ee7ed3546ab9e8792a92336d0d14ab">uniform_random_initialization</a>(kernal, kernal_shape, -1.0, 1.0);</div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; }</div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <a class="code" href="../../d8/d77/namespacemachine__learning.html#abf136b863d804899647f46eeb2e1392b">unit_matrix_initialization</a>(kernal, kernal_shape);</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><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="../../dc/d93/classmachine__learning_1_1neural__network_1_1layers_1_1_dense_layer_a51c2b942ecf10625780c6bb9d5c50ff1_cgraph.svg" width="616" height="220"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>
</div>
</div>
<a id="a04b8e21316458436c8851959928c3964"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a04b8e21316458436c8851959928c3964">&#9670;&nbsp;</a></span>DenseLayer() <span class="overload">[2/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">machine_learning::neural_network::layers::DenseLayer::DenseLayer </td>
<td>(</td>
<td class="paramtype">const int &amp;&#160;</td>
<td class="paramname"><em>neurons</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> &amp;&#160;</td>
<td class="paramname"><em>activation</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a>&lt; double &gt;&gt; &amp;&#160;</td>
<td class="paramname"><em>kernal</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Constructor for <a class="el" href="../../dc/d93/classmachine__learning_1_1neural__network_1_1layers_1_1_dense_layer.html">neural_network::layers::DenseLayer</a> class </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">neurons</td><td>number of neurons </td></tr>
<tr><td class="paramname">activation</td><td>activation function for layer </td></tr>
<tr><td class="paramname">kernal</td><td>values of kernal (useful in loading model) </td></tr>
</table>
</dd>
</dl>
<div class="fragment"><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; <span class="comment">// Choosing activation (and it&#39;s derivative)</span></div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keywordflow">if</span> (activation == <span class="stringliteral">&quot;sigmoid&quot;</span>) {</div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; activation_function = neural_network::activations::sigmoid;</div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; dactivation_function = neural_network::activations::sigmoid;</div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; }</div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (activation == <span class="stringliteral">&quot;relu&quot;</span>) {</div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; activation_function = neural_network::activations::relu;</div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; dactivation_function = neural_network::activations::drelu;</div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; }</div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (activation == <span class="stringliteral">&quot;tanh&quot;</span>) {</div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; activation_function = neural_network::activations::tanh;</div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; dactivation_function = neural_network::activations::dtanh;</div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; }</div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (activation == <span class="stringliteral">&quot;none&quot;</span>) {</div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="comment">// Set identity function in casse of none is supplied</span></div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; activation_function = neural_network::util_functions::identity_function;</div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; dactivation_function = neural_network::util_functions::identity_function;</div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; }</div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="comment">// If supplied activation is invalid</span></div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cerr</a> &lt;&lt; <span class="stringliteral">&quot;ERROR: Invalid argument for layer -&gt; constructor -&gt; activation, &quot;</span>;</div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cerr</a> &lt;&lt; <span class="stringliteral">&quot;Expected from {none, sigmoid, relu, tanh} got &quot;</span>;</div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cerr</a> &lt;&lt; activation &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/program/exit.html">std::exit</a>(EXIT_FAILURE);</div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; }</div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keyword">this</span> -&gt; activation = activation; <span class="comment">// Setting activation name</span></div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keyword">this</span> -&gt; neurons = neurons; <span class="comment">// Setting number of neurons</span></div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keyword">this</span> -&gt; kernal = kernal; <span class="comment">// Setting supplied kernal values </span></div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; }</div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="../../dc/d93/classmachine__learning_1_1neural__network_1_1layers_1_1_dense_layer_a04b8e21316458436c8851959928c3964_cgraph.svg" width="327" height="88"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>
</div>
</div>
<a id="a2871146feaaa453558239df67b21e0d2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2871146feaaa453558239df67b21e0d2">&#9670;&nbsp;</a></span>DenseLayer() <span class="overload">[3/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">machine_learning::neural_network::layers::DenseLayer::DenseLayer </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="../../dc/d93/classmachine__learning_1_1neural__network_1_1layers_1_1_dense_layer.html">DenseLayer</a> &amp;&#160;</td>
<td class="paramname"><em>layer</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">default</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Copy Constructor for class <a class="el" href="../../dc/d93/classmachine__learning_1_1neural__network_1_1layers_1_1_dense_layer.html">DenseLayer</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">model</td><td>instance of class to be copied. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ac9cda9453c4a0caf5bae7f9213b019a0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac9cda9453c4a0caf5bae7f9213b019a0">&#9670;&nbsp;</a></span>~DenseLayer()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">machine_learning::neural_network::layers::DenseLayer::~DenseLayer </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">default</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Destructor for class <a class="el" href="../../dc/d93/classmachine__learning_1_1neural__network_1_1layers_1_1_dense_layer.html">DenseLayer</a>. </p>
</div>
</div>
<a id="a6c859e3737aa88b29854df0347b29f4e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6c859e3737aa88b29854df0347b29f4e">&#9670;&nbsp;</a></span>DenseLayer() <span class="overload">[4/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">machine_learning::neural_network::layers::DenseLayer::DenseLayer </td>
<td>(</td>
<td class="paramtype"><a class="el" href="../../dc/d93/classmachine__learning_1_1neural__network_1_1layers_1_1_dense_layer.html">DenseLayer</a> &amp;&amp;&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">default</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Move constructor for class <a class="el" href="../../dc/d93/classmachine__learning_1_1neural__network_1_1layers_1_1_dense_layer.html">DenseLayer</a> </p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a8809e6df990f37c85c06474dd955cb2b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8809e6df990f37c85c06474dd955cb2b">&#9670;&nbsp;</a></span>operator=() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="../../dc/d93/classmachine__learning_1_1neural__network_1_1layers_1_1_dense_layer.html">DenseLayer</a>&amp; machine_learning::neural_network::layers::DenseLayer::operator= </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="../../dc/d93/classmachine__learning_1_1neural__network_1_1layers_1_1_dense_layer.html">DenseLayer</a> &amp;&#160;</td>
<td class="paramname"><em>layer</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">default</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Copy assignment operator for class <a class="el" href="../../dc/d93/classmachine__learning_1_1neural__network_1_1layers_1_1_dense_layer.html">DenseLayer</a> </p>
</div>
</div>
<a id="a6385ad4d8186b8a74b17e4a8dc41da11"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6385ad4d8186b8a74b17e4a8dc41da11">&#9670;&nbsp;</a></span>operator=() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="../../dc/d93/classmachine__learning_1_1neural__network_1_1layers_1_1_dense_layer.html">DenseLayer</a>&amp; machine_learning::neural_network::layers::DenseLayer::operator= </td>
<td>(</td>
<td class="paramtype"><a class="el" href="../../dc/d93/classmachine__learning_1_1neural__network_1_1layers_1_1_dense_layer.html">DenseLayer</a> &amp;&amp;&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">default</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Move assignment operator for class <a class="el" href="../../dc/d93/classmachine__learning_1_1neural__network_1_1layers_1_1_dense_layer.html">DenseLayer</a> </p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>machine_learning/<a class="el" href="../../d2/d58/neural__network_8cpp.html">neural_network.cpp</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<div class="ttc" id="anamespacemachine__learning_html_a73ee7ed3546ab9e8792a92336d0d14ab"><div class="ttname"><a href="../../d8/d77/namespacemachine__learning.html#a73ee7ed3546ab9e8792a92336d0d14ab">machine_learning::uniform_random_initialization</a></div><div class="ttdeci">void uniform_random_initialization(std::vector&lt; std::valarray&lt; T &gt;&gt; &amp;A, const std::pair&lt; size_t, size_t &gt; &amp;shape, const T &amp;low, const T &amp;high)</div><div class="ttdef"><b>Definition:</b> vector_ops.hpp:162</div></div>
<div class="ttc" id="anamespacemachine__learning_html_abf136b863d804899647f46eeb2e1392b"><div class="ttname"><a href="../../d8/d77/namespacemachine__learning.html#abf136b863d804899647f46eeb2e1392b">machine_learning::unit_matrix_initialization</a></div><div class="ttdeci">void unit_matrix_initialization(std::vector&lt; std::valarray&lt; T &gt;&gt; &amp;A, const std::pair&lt; size_t, size_t &gt; &amp;shape)</div><div class="ttdef"><b>Definition:</b> vector_ops.hpp:189</div></div>
<div class="ttc" id="abasic_ostream_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cerr</a></div></div>
<div class="ttc" id="aendl_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a></div><div class="ttdeci">T endl(T... args)</div></div>
<div class="ttc" id="aexit_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/utility/program/exit.html">std::exit</a></div><div class="ttdeci">T exit(T... args)</div></div>
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../d8/d77/namespacemachine__learning.html">machine_learning</a></li><li class="navelem"><b>neural_network</b></li><li class="navelem"><b>layers</b></li><li class="navelem"><a class="el" href="../../dc/d93/classmachine__learning_1_1neural__network_1_1layers_1_1_dense_layer.html">DenseLayer</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="../../doxygen.png" alt="doxygen"/></a> 1.8.18 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,15 @@
var classmachine__learning_1_1neural__network_1_1layers_1_1_dense_layer =
[
[ "DenseLayer", "dc/d93/classmachine__learning_1_1neural__network_1_1layers_1_1_dense_layer.html#a51c2b942ecf10625780c6bb9d5c50ff1", null ],
[ "DenseLayer", "dc/d93/classmachine__learning_1_1neural__network_1_1layers_1_1_dense_layer.html#a04b8e21316458436c8851959928c3964", null ],
[ "DenseLayer", "dc/d93/classmachine__learning_1_1neural__network_1_1layers_1_1_dense_layer.html#a2871146feaaa453558239df67b21e0d2", null ],
[ "~DenseLayer", "dc/d93/classmachine__learning_1_1neural__network_1_1layers_1_1_dense_layer.html#ac9cda9453c4a0caf5bae7f9213b019a0", null ],
[ "DenseLayer", "dc/d93/classmachine__learning_1_1neural__network_1_1layers_1_1_dense_layer.html#a6c859e3737aa88b29854df0347b29f4e", null ],
[ "operator=", "dc/d93/classmachine__learning_1_1neural__network_1_1layers_1_1_dense_layer.html#a8809e6df990f37c85c06474dd955cb2b", null ],
[ "operator=", "dc/d93/classmachine__learning_1_1neural__network_1_1layers_1_1_dense_layer.html#a6385ad4d8186b8a74b17e4a8dc41da11", null ],
[ "activation", "dc/d93/classmachine__learning_1_1neural__network_1_1layers_1_1_dense_layer.html#a891264e2eb1357b2b3282e5532250869", null ],
[ "activation_function", "dc/d93/classmachine__learning_1_1neural__network_1_1layers_1_1_dense_layer.html#a8e4c57922478ccc2b7c6277c05608714", null ],
[ "dactivation_function", "dc/d93/classmachine__learning_1_1neural__network_1_1layers_1_1_dense_layer.html#acc6cfdcc9d6e5170340abae63234a442", null ],
[ "kernal", "dc/d93/classmachine__learning_1_1neural__network_1_1layers_1_1_dense_layer.html#ab185a343b4fdd6b9fadc8ba877360101", null ],
[ "neurons", "dc/d93/classmachine__learning_1_1neural__network_1_1layers_1_1_dense_layer.html#ace9c37dd1322d3745de9713c90df8003", null ]
];

View File

@@ -0,0 +1,5 @@
<map id="machine_learning::neural_network::layers::DenseLayer::DenseLayer" name="machine_learning::neural_network::layers::DenseLayer::DenseLayer">
<area shape="rect" id="node1" title=" " alt="" coords="5,16,201,72"/>
<area shape="rect" id="node2" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/io/manip/endl.html#" title=" " alt="" coords="249,5,321,32"/>
<area shape="rect" id="node3" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/utility/program/exit.html#" title=" " alt="" coords="251,56,320,83"/>
</map>

View File

@@ -0,0 +1,54 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.44.1 (20200629.0846)
-->
<!-- Title: machine_learning::neural_network::layers::DenseLayer::DenseLayer Pages: 1 -->
<svg width="245pt" height="66pt"
viewBox="0.00 0.00 245.00 66.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 62)">
<title>machine_learning::neural_network::layers::DenseLayer::DenseLayer</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-62 241,-62 241,4 -4,4"/>
<!-- Node1 -->
<g id="node1" class="node">
<title>Node1</title>
<g id="a_node1"><a xlink:title=" ">
<polygon fill="#bfbfbf" stroke="black" points="0,-8.5 0,-49.5 147,-49.5 147,-8.5 0,-8.5"/>
<text text-anchor="start" x="8" y="-37.5" font-family="Helvetica,sans-Serif" font-size="10.00">machine_learning::neural</text>
<text text-anchor="start" x="8" y="-26.5" font-family="Helvetica,sans-Serif" font-size="10.00">_network::layers::DenseLayer</text>
<text text-anchor="middle" x="73.5" y="-15.5" font-family="Helvetica,sans-Serif" font-size="10.00">::DenseLayer</text>
</a>
</g>
</g>
<!-- Node2 -->
<g id="node2" class="node">
<title>Node2</title>
<g id="a_node2"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/io/manip/endl.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="183,-38.5 183,-57.5 237,-57.5 237,-38.5 183,-38.5"/>
<text text-anchor="middle" x="210" y="-45.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::endl</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node2 -->
<g id="edge1" class="edge">
<title>Node1&#45;&gt;Node2</title>
<path fill="none" stroke="midnightblue" d="M147.26,-39.28C156.13,-40.53 164.86,-41.77 172.85,-42.89"/>
<polygon fill="midnightblue" stroke="midnightblue" points="172.47,-46.37 182.87,-44.31 173.45,-39.44 172.47,-46.37"/>
</g>
<!-- Node3 -->
<g id="node3" class="node">
<title>Node3</title>
<g id="a_node3"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/utility/program/exit.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="184,-0.5 184,-19.5 236,-19.5 236,-0.5 184,-0.5"/>
<text text-anchor="middle" x="210" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::exit</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node3 -->
<g id="edge2" class="edge">
<title>Node1&#45;&gt;Node3</title>
<path fill="none" stroke="midnightblue" d="M147.26,-18.72C156.49,-17.42 165.57,-16.13 173.82,-14.97"/>
<polygon fill="midnightblue" stroke="midnightblue" points="174.35,-18.43 183.77,-13.56 173.37,-11.5 174.35,-18.43"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

View File

@@ -0,0 +1,8 @@
<map id="machine_learning::neural_network::layers::DenseLayer::DenseLayer" name="machine_learning::neural_network::layers::DenseLayer::DenseLayer">
<area shape="rect" id="node1" title=" " alt="" coords="5,71,201,127"/>
<area shape="rect" id="node2" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/io/manip/endl.html#" title=" " alt="" coords="301,5,373,32"/>
<area shape="rect" id="node3" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/utility/program/exit.html#" title=" " alt="" coords="302,56,371,83"/>
<area shape="rect" id="node4" href="$d8/d77/namespacemachine__learning.html#a73ee7ed3546ab9e8792a92336d0d14ab" title=" " alt="" coords="249,107,424,149"/>
<area shape="rect" id="node6" href="$d8/d77/namespacemachine__learning.html#abf136b863d804899647f46eeb2e1392b" title=" " alt="" coords="261,173,413,214"/>
<area shape="rect" id="node5" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/chrono/system_clock/now.html#" title=" " alt="" coords="472,107,611,149"/>
</map>

View File

@@ -0,0 +1,102 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.44.1 (20200629.0846)
-->
<!-- Title: machine_learning::neural_network::layers::DenseLayer::DenseLayer Pages: 1 -->
<svg width="462pt" height="165pt"
viewBox="0.00 0.00 462.00 164.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 160.5)">
<title>machine_learning::neural_network::layers::DenseLayer::DenseLayer</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-160.5 458,-160.5 458,4 -4,4"/>
<!-- Node1 -->
<g id="node1" class="node">
<title>Node1</title>
<g id="a_node1"><a xlink:title=" ">
<polygon fill="#bfbfbf" stroke="black" points="0,-66 0,-107 147,-107 147,-66 0,-66"/>
<text text-anchor="start" x="8" y="-95" font-family="Helvetica,sans-Serif" font-size="10.00">machine_learning::neural</text>
<text text-anchor="start" x="8" y="-84" font-family="Helvetica,sans-Serif" font-size="10.00">_network::layers::DenseLayer</text>
<text text-anchor="middle" x="73.5" y="-73" font-family="Helvetica,sans-Serif" font-size="10.00">::DenseLayer</text>
</a>
</g>
</g>
<!-- Node2 -->
<g id="node2" class="node">
<title>Node2</title>
<g id="a_node2"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/io/manip/endl.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="221.5,-137 221.5,-156 275.5,-156 275.5,-137 221.5,-137"/>
<text text-anchor="middle" x="248.5" y="-144" font-family="Helvetica,sans-Serif" font-size="10.00">std::endl</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node2 -->
<g id="edge1" class="edge">
<title>Node1&#45;&gt;Node2</title>
<path fill="none" stroke="midnightblue" d="M126.37,-107C144.21,-113.82 164.39,-121.25 183,-127.5 192.18,-130.58 202.19,-133.66 211.52,-136.42"/>
<polygon fill="midnightblue" stroke="midnightblue" points="210.73,-139.84 221.31,-139.27 212.69,-133.11 210.73,-139.84"/>
</g>
<!-- Node3 -->
<g id="node3" class="node">
<title>Node3</title>
<g id="a_node3"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/utility/program/exit.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="222.5,-99 222.5,-118 274.5,-118 274.5,-99 222.5,-99"/>
<text text-anchor="middle" x="248.5" y="-106" font-family="Helvetica,sans-Serif" font-size="10.00">std::exit</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node3 -->
<g id="edge2" class="edge">
<title>Node1&#45;&gt;Node3</title>
<path fill="none" stroke="midnightblue" d="M147.12,-95.73C169.64,-98.6 193.45,-101.63 212.22,-104.01"/>
<polygon fill="midnightblue" stroke="midnightblue" points="212.01,-107.52 222.37,-105.3 212.89,-100.57 212.01,-107.52"/>
</g>
<!-- Node4 -->
<g id="node4" class="node">
<title>Node4</title>
<g id="a_node4"><a xlink:href="../../d8/d77/namespacemachine__learning.html#a73ee7ed3546ab9e8792a92336d0d14ab" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="183,-49.5 183,-79.5 314,-79.5 314,-49.5 183,-49.5"/>
<text text-anchor="start" x="191" y="-67.5" font-family="Helvetica,sans-Serif" font-size="10.00">machine_learning::uniform</text>
<text text-anchor="middle" x="248.5" y="-56.5" font-family="Helvetica,sans-Serif" font-size="10.00">_random_initialization</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node4 -->
<g id="edge3" class="edge">
<title>Node1&#45;&gt;Node4</title>
<path fill="none" stroke="midnightblue" d="M147.12,-77.27C155.62,-76.18 164.31,-75.08 172.85,-73.99"/>
<polygon fill="midnightblue" stroke="midnightblue" points="173.3,-77.46 182.77,-72.73 172.41,-70.52 173.3,-77.46"/>
</g>
<!-- Node6 -->
<g id="node6" class="node">
<title>Node6</title>
<g id="a_node6"><a xlink:href="../../d8/d77/namespacemachine__learning.html#abf136b863d804899647f46eeb2e1392b" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="191.5,-0.5 191.5,-30.5 305.5,-30.5 305.5,-0.5 191.5,-0.5"/>
<text text-anchor="start" x="199.5" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00">machine_learning::unit</text>
<text text-anchor="middle" x="248.5" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">_matrix_initialization</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node6 -->
<g id="edge5" class="edge">
<title>Node1&#45;&gt;Node6</title>
<path fill="none" stroke="midnightblue" d="M122.17,-65.91C141.06,-57.85 163,-48.61 183,-40.5 188.08,-38.44 193.39,-36.32 198.7,-34.23"/>
<polygon fill="midnightblue" stroke="midnightblue" points="200.16,-37.41 208.2,-30.51 197.61,-30.9 200.16,-37.41"/>
</g>
<!-- Node5 -->
<g id="node5" class="node">
<title>Node5</title>
<g id="a_node5"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/chrono/system_clock/now.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="350,-49.5 350,-79.5 454,-79.5 454,-49.5 350,-49.5"/>
<text text-anchor="start" x="358" y="-67.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::chrono::system</text>
<text text-anchor="middle" x="402" y="-56.5" font-family="Helvetica,sans-Serif" font-size="10.00">_clock::now</text>
</a>
</g>
</g>
<!-- Node4&#45;&gt;Node5 -->
<g id="edge4" class="edge">
<title>Node4&#45;&gt;Node5</title>
<path fill="none" stroke="midnightblue" d="M314.19,-64.5C322.65,-64.5 331.3,-64.5 339.71,-64.5"/>
<polygon fill="midnightblue" stroke="midnightblue" points="339.8,-68 349.8,-64.5 339.8,-61 339.8,-68"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.4 KiB