| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
| <html xmlns="http://www.w3.org/1999/xhtml"> |
| <head> |
| <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> |
| <meta http-equiv="X-UA-Compatible" content="IE=9"/> |
| <meta name="generator" content="Doxygen 1.8.13"/> |
| <meta name="viewport" content="width=device-width, initial-scale=1"/> |
| <title>Apache Singa: /home/moaz/incubator-singa/include/singa/model/feed_forward_net.h Source File</title> |
| <link href="tabs.css" rel="stylesheet" type="text/css"/> |
| <script type="text/javascript" src="jquery.js"></script> |
| <script type="text/javascript" src="dynsections.js"></script> |
| <link href="search/search.css" rel="stylesheet" type="text/css"/> |
| <script type="text/javascript" src="search/searchdata.js"></script> |
| <script type="text/javascript" src="search/search.js"></script> |
| <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">Apache Singa |
| </div> |
| <div id="projectbrief">A General Distributed Deep Learning Library</div> |
| </td> |
| </tr> |
| </tbody> |
| </table> |
| </div> |
| <!-- end header part --> |
| <!-- Generated by Doxygen 1.8.13 --> |
| <script type="text/javascript"> |
| var searchBox = new SearchBox("searchBox", "search",false,'Search'); |
| </script> |
| <script type="text/javascript" src="menudata.js"></script> |
| <script type="text/javascript" src="menu.js"></script> |
| <script type="text/javascript"> |
| $(function() { |
| initMenu('',true,false,'search.php','Search'); |
| $(document).ready(function() { init_search(); }); |
| }); |
| </script> |
| <div id="main-nav"></div> |
| <!-- window showing the filter options --> |
| <div id="MSearchSelectWindow" |
| onmouseover="return searchBox.OnSearchSelectShow()" |
| onmouseout="return searchBox.OnSearchSelectHide()" |
| onkeydown="return searchBox.OnSearchSelectKey(event)"> |
| </div> |
| |
| <!-- iframe showing the search results (closed by default) --> |
| <div id="MSearchResultsWindow"> |
| <iframe src="javascript:void(0)" frameborder="0" |
| name="MSearchResults" id="MSearchResults"> |
| </iframe> |
| </div> |
| |
| <div id="nav-path" class="navpath"> |
| <ul> |
| <li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_14a988756d30161f7e1f48b05d03905d.html">singa</a></li><li class="navelem"><a class="el" href="dir_1ed15e94f94d348ba7de93ac6315cc91.html">model</a></li> </ul> |
| </div> |
| </div><!-- top --> |
| <div class="header"> |
| <div class="headertitle"> |
| <div class="title">feed_forward_net.h</div> </div> |
| </div><!--header--> |
| <div class="contents"> |
| <div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#ifndef SINGA_MODEL_FEED_FORWARD_NET_H_</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#define SINGA_MODEL_FEED_FORWARD_NET_H_</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include "singa/model/layer.h"</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include "singa/model/loss.h"</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include "singa/model/metric.h"</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include "singa/model/updater.h"</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <thread></span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <memory></span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="keyword">namespace </span><a class="code" href="namespacesinga.html">singa</a> {</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div><div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="classsinga_1_1FeedForwardNet.html"> 31</a></span> <span class="keyword">class </span><a class="code" href="classsinga_1_1FeedForwardNet.html">FeedForwardNet</a> {</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  <span class="keyword">public</span>:</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  <a class="code" href="classsinga_1_1FeedForwardNet.html">FeedForwardNet</a>() = <span class="keywordflow">default</span>;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  <a class="code" href="classsinga_1_1FeedForwardNet.html#a29e8b40d21d2aa9983c5b87231095edc">~FeedForwardNet</a>();</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> </div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  std::shared_ptr<Layer> <a class="code" href="classsinga_1_1FeedForwardNet.html#a3802c112004a7587c6f61ef07c6fb776">Add</a>(std::shared_ptr<Layer> layer);</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <span class="comment">// TODO(wangwei) add ConcatenateLayer and SliceLayer</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <span class="comment">// AddConcatenateLayer(vector<Layer*> src, Layer *dst);</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <span class="comment">// AddSliceLayer(Layer* layer, vector<Layer*> dst);</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  std::shared_ptr<Layer> <a class="code" href="classsinga_1_1FeedForwardNet.html#a3802c112004a7587c6f61ef07c6fb776">Add</a>(<span class="keyword">const</span> LayerConf& conf,</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="keyword">const</span> Shape* sample_shape = <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span> </div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="keywordtype">void</span> <a class="code" href="classsinga_1_1FeedForwardNet.html#ae1a14998b17a633b3106eeddf33b4eb2">Compile</a>(<span class="keywordtype">bool</span> shuffle, <a class="code" href="classsinga_1_1Optimizer.html">Optimizer</a>* opt, <a class="code" href="classsinga_1_1Loss.html">Loss</a>* loss, <a class="code" href="classsinga_1_1Metric.html">Metric</a>* metric);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <span class="keywordtype">void</span> <a class="code" href="classsinga_1_1FeedForwardNet.html#ae1a14998b17a633b3106eeddf33b4eb2">Compile</a>(<span class="keywordtype">bool</span> shuffle, <span class="keywordtype">bool</span> to_register, std::shared_ptr<Updater> updater,</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <a class="code" href="classsinga_1_1Loss.html">Loss</a>* loss, <a class="code" href="classsinga_1_1Metric.html">Metric</a>* metric);</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span> </div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="keywordtype">void</span> <a class="code" href="classsinga_1_1FeedForwardNet.html#a32ef60dad6226d6c03e5917083be5830">Train</a>(<span class="keywordtype">size_t</span> batchsize, <span class="keywordtype">int</span> nb_epoch, <span class="keyword">const</span> <a class="code" href="classsinga_1_1Tensor.html">Tensor</a>& x, <span class="keyword">const</span> <a class="code" href="classsinga_1_1Tensor.html">Tensor</a>& y,</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <span class="keywordtype">float</span> val_split = 0.0f);</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <span class="keywordtype">void</span> <a class="code" href="classsinga_1_1FeedForwardNet.html#a32ef60dad6226d6c03e5917083be5830">Train</a>(<span class="keywordtype">size_t</span> batchsize, <span class="keywordtype">int</span> nb_epoch, <span class="keyword">const</span> <a class="code" href="classsinga_1_1Tensor.html">Tensor</a>& x, <span class="keyword">const</span> <a class="code" href="classsinga_1_1Tensor.html">Tensor</a>& y,</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <span class="keyword">const</span> <a class="code" href="classsinga_1_1Tensor.html">Tensor</a>& val_x, <span class="keyword">const</span> <a class="code" href="classsinga_1_1Tensor.html">Tensor</a>& val_y);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <span class="keyword">const</span> std::pair<float, float> <a class="code" href="classsinga_1_1FeedForwardNet.html#a6906ac848b6d934fe0ce515dddc386ad">TrainOnBatch</a>(<span class="keywordtype">int</span> epoch, <span class="keyword">const</span> <a class="code" href="classsinga_1_1Tensor.html">Tensor</a>& x,</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <span class="keyword">const</span> <a class="code" href="classsinga_1_1Tensor.html">Tensor</a>& y);</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span> </div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  std::pair<Tensor, Tensor> <a class="code" href="classsinga_1_1FeedForwardNet.html#aa7c1e721ff9ca9f1a8e11ae9855e69af">Evaluate</a>(<span class="keyword">const</span> <a class="code" href="classsinga_1_1Tensor.html">Tensor</a>& x, <span class="keyword">const</span> <a class="code" href="classsinga_1_1Tensor.html">Tensor</a>& y,</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <span class="keywordtype">size_t</span> batchsize = 128);</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  std::pair<Tensor, Tensor> <a class="code" href="classsinga_1_1FeedForwardNet.html#a7c74012b7c57f51a5fb2218d82a0fdff">EvaluateOnBatch</a>(<span class="keyword">const</span> <a class="code" href="classsinga_1_1Tensor.html">Tensor</a>& x, <span class="keyword">const</span> <a class="code" href="classsinga_1_1Tensor.html">Tensor</a>& y);</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span> </div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <span class="keyword">const</span> <a class="code" href="classsinga_1_1Tensor.html">Tensor</a> <a class="code" href="classsinga_1_1FeedForwardNet.html#a0cd9bb19e17ac2c54f44503459679ccb">Predict</a>(<span class="keyword">const</span> <a class="code" href="classsinga_1_1Tensor.html">Tensor</a>& x, <span class="keywordtype">size_t</span> batchsize = 128);</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <span class="keyword">const</span> <a class="code" href="classsinga_1_1Tensor.html">Tensor</a> <a class="code" href="classsinga_1_1FeedForwardNet.html#a63bf8f4ce71653773137d48a71615209">PredictOnBatch</a>(<span class="keyword">const</span> <a class="code" href="classsinga_1_1Tensor.html">Tensor</a>& x);</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span> </div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <span class="keyword">const</span> <a class="code" href="classsinga_1_1Tensor.html">Tensor</a> <a class="code" href="classsinga_1_1FeedForwardNet.html#a9c84ffddc1f721fd8068e316e164683a">Forward</a>(<span class="keywordtype">int</span> flag, <span class="keyword">const</span> <a class="code" href="classsinga_1_1Tensor.html">Tensor</a>& x);</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <span class="keyword">const</span> vector<Tensor> <a class="code" href="classsinga_1_1FeedForwardNet.html#a49e566021fc2e388b7b4bdb0bb84ce53">Backward</a>(<span class="keywordtype">int</span> flag, <span class="keyword">const</span> <a class="code" href="classsinga_1_1Tensor.html">Tensor</a>& grad);</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span> </div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <a class="code" href="classsinga_1_1FeedForwardNet.html">FeedForwardNet</a> <a class="code" href="classsinga_1_1FeedForwardNet.html#a790aeb0ab8f3e0b91f4fc6bdecf55f4e">Clone</a>(std::shared_ptr<Device> device);</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <span class="keywordtype">void</span> <a class="code" href="classsinga_1_1FeedForwardNet.html#a165e4e2bad62e2ad6fb9dcaed1e2b568">ToDevice</a>(std::shared_ptr<Device> device);</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <span class="keywordtype">void</span> ToHost() { <a class="code" href="classsinga_1_1FeedForwardNet.html#a165e4e2bad62e2ad6fb9dcaed1e2b568">ToDevice</a>(<a class="code" href="namespacesinga.html#af5fd1cb4e1a4b5ae9bba1377b034eb8d">defaultDevice</a>); }</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <span class="keywordtype">void</span> <a class="code" href="classsinga_1_1FeedForwardNet.html#a554d848ec434290b2de971c91c0f2e83">AsType</a>(DataType dtype);</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span> </div><div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="classsinga_1_1FeedForwardNet.html#a15306a1719ecd371e7da99d387dbf80c"> 135</a></span>  std::thread <a class="code" href="classsinga_1_1FeedForwardNet.html#a15306a1719ecd371e7da99d387dbf80c">TrainThread</a>(<span class="keywordtype">size_t</span> batchsize, <span class="keywordtype">int</span> nb_epoch, <span class="keyword">const</span> <a class="code" href="classsinga_1_1Tensor.html">Tensor</a>& x,</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <span class="keyword">const</span> <a class="code" href="classsinga_1_1Tensor.html">Tensor</a>& y, <span class="keyword">const</span> <a class="code" href="classsinga_1_1Tensor.html">Tensor</a>& val_x,</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <span class="keyword">const</span> <a class="code" href="classsinga_1_1Tensor.html">Tensor</a>& val_y) {</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <span class="keywordflow">return</span> std::thread(</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  [=]() { <a class="code" href="classsinga_1_1FeedForwardNet.html#a32ef60dad6226d6c03e5917083be5830">Train</a>(batchsize, nb_epoch, x, y, val_x, val_y); });</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  }</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span> </div><div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="classsinga_1_1FeedForwardNet.html#a62e80931af5311dda492f838f4274dcd"> 143</a></span>  std::thread <a class="code" href="classsinga_1_1FeedForwardNet.html#a62e80931af5311dda492f838f4274dcd">TrainThread</a>(<span class="keywordtype">size_t</span> batchsize, <span class="keywordtype">int</span> nb_epoch, <span class="keyword">const</span> <a class="code" href="classsinga_1_1Tensor.html">Tensor</a>& x,</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <span class="keyword">const</span> <a class="code" href="classsinga_1_1Tensor.html">Tensor</a>& y) {</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <span class="keywordflow">return</span> std::thread([=]() { <a class="code" href="classsinga_1_1FeedForwardNet.html#a32ef60dad6226d6c03e5917083be5830">Train</a>(batchsize, nb_epoch, x, y); });</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  }</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span> </div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <span class="keyword">const</span> vector<std::shared_ptr<Layer>> layers()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> layers_; }</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  <span class="keyword">const</span> vector<string> GetParamNames() <span class="keyword">const</span>;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <span class="keyword">const</span> vector<ParamSpec> GetParamSpecs() <span class="keyword">const</span>;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <span class="keyword">const</span> vector<Tensor> GetParamValues() <span class="keyword">const</span>;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span> </div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <span class="keyword">protected</span>:</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  vector<std::shared_ptr<Layer>> layers_;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  std::shared_ptr<Updater> updater_;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <a class="code" href="classsinga_1_1Loss.html">Loss</a>* loss_;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <a class="code" href="classsinga_1_1Metric.html">Metric</a>* metric_;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span> </div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <span class="keywordtype">bool</span> shuffle_ = <span class="keyword">true</span>;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  <a class="code" href="classsinga_1_1Device.html">Device</a>* device_ = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  DataType dtype_ = kFloat32;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span> };</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span> </div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span> } <span class="comment">/* singa */</span></div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span> </div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span> <span class="preprocessor">#endif // SINGA_MODEL_FEED_FORWARD_NET_H_</span></div><div class="ttc" id="classsinga_1_1FeedForwardNet_html_a29e8b40d21d2aa9983c5b87231095edc"><div class="ttname"><a href="classsinga_1_1FeedForwardNet.html#a29e8b40d21d2aa9983c5b87231095edc">singa::FeedForwardNet::~FeedForwardNet</a></div><div class="ttdeci">~FeedForwardNet()</div><div class="ttdoc">Delete all layers. </div></div> |
| <div class="ttc" id="classsinga_1_1FeedForwardNet_html_a49e566021fc2e388b7b4bdb0bb84ce53"><div class="ttname"><a href="classsinga_1_1FeedForwardNet.html#a49e566021fc2e388b7b4bdb0bb84ce53">singa::FeedForwardNet::Backward</a></div><div class="ttdeci">const vector< Tensor > Backward(int flag, const Tensor &grad)</div><div class="ttdoc">Backward layers one by one using the gradient batch &#39;grad&#39;. </div></div> |
| <div class="ttc" id="classsinga_1_1FeedForwardNet_html_a63bf8f4ce71653773137d48a71615209"><div class="ttname"><a href="classsinga_1_1FeedForwardNet.html#a63bf8f4ce71653773137d48a71615209">singa::FeedForwardNet::PredictOnBatch</a></div><div class="ttdeci">const Tensor PredictOnBatch(const Tensor &x)</div><div class="ttdoc">Predict for one batch data. </div></div> |
| <div class="ttc" id="classsinga_1_1Tensor_html"><div class="ttname"><a href="classsinga_1_1Tensor.html">singa::Tensor</a></div><div class="ttdoc">A Tensor instance is a multi-dimensional array resident on a Device (default device is the host CPU)...</div><div class="ttdef"><b>Definition:</b> tensor.h:56</div></div> |
| <div class="ttc" id="classsinga_1_1FeedForwardNet_html_a32ef60dad6226d6c03e5917083be5830"><div class="ttname"><a href="classsinga_1_1FeedForwardNet.html#a32ef60dad6226d6c03e5917083be5830">singa::FeedForwardNet::Train</a></div><div class="ttdeci">void Train(size_t batchsize, int nb_epoch, const Tensor &x, const Tensor &y, float val_split=0.0f)</div><div class="ttdoc">Conduct the training giving the training data &#39;x&#39; and label &#39;y&#39;. </div></div> |
| <div class="ttc" id="classsinga_1_1FeedForwardNet_html_a6906ac848b6d934fe0ce515dddc386ad"><div class="ttname"><a href="classsinga_1_1FeedForwardNet.html#a6906ac848b6d934fe0ce515dddc386ad">singa::FeedForwardNet::TrainOnBatch</a></div><div class="ttdeci">const std::pair< float, float > TrainOnBatch(int epoch, const Tensor &x, const Tensor &y)</div><div class="ttdoc">Train the neural net over one batch of training data. </div></div> |
| <div class="ttc" id="classsinga_1_1FeedForwardNet_html_a7c74012b7c57f51a5fb2218d82a0fdff"><div class="ttname"><a href="classsinga_1_1FeedForwardNet.html#a7c74012b7c57f51a5fb2218d82a0fdff">singa::FeedForwardNet::EvaluateOnBatch</a></div><div class="ttdeci">std::pair< Tensor, Tensor > EvaluateOnBatch(const Tensor &x, const Tensor &y)</div><div class="ttdoc">Evaluate the neural net for one batch of data. </div></div> |
| <div class="ttc" id="classsinga_1_1FeedForwardNet_html_a62e80931af5311dda492f838f4274dcd"><div class="ttname"><a href="classsinga_1_1FeedForwardNet.html#a62e80931af5311dda492f838f4274dcd">singa::FeedForwardNet::TrainThread</a></div><div class="ttdeci">std::thread TrainThread(size_t batchsize, int nb_epoch, const Tensor &x, const Tensor &y)</div><div class="ttdoc">A wrapper method to spawn a thread to execute Train() method. </div><div class="ttdef"><b>Definition:</b> feed_forward_net.h:143</div></div> |
| <div class="ttc" id="classsinga_1_1FeedForwardNet_html_a15306a1719ecd371e7da99d387dbf80c"><div class="ttname"><a href="classsinga_1_1FeedForwardNet.html#a15306a1719ecd371e7da99d387dbf80c">singa::FeedForwardNet::TrainThread</a></div><div class="ttdeci">std::thread TrainThread(size_t batchsize, int nb_epoch, const Tensor &x, const Tensor &y, const Tensor &val_x, const Tensor &val_y)</div><div class="ttdoc">A wrapper method to spawn a thread to execute Train() method. </div><div class="ttdef"><b>Definition:</b> feed_forward_net.h:135</div></div> |
| <div class="ttc" id="classsinga_1_1Device_html"><div class="ttname"><a href="classsinga_1_1Device.html">singa::Device</a></div><div class="ttdoc">Allocate memory and execute Tensor operations. </div><div class="ttdef"><b>Definition:</b> device.h:56</div></div> |
| <div class="ttc" id="classsinga_1_1FeedForwardNet_html_ae1a14998b17a633b3106eeddf33b4eb2"><div class="ttname"><a href="classsinga_1_1FeedForwardNet.html#ae1a14998b17a633b3106eeddf33b4eb2">singa::FeedForwardNet::Compile</a></div><div class="ttdeci">void Compile(bool shuffle, Optimizer *opt, Loss *loss, Metric *metric)</div><div class="ttdoc">Set some fields used for training and evaluating the neural net. </div></div> |
| <div class="ttc" id="classsinga_1_1Loss_html"><div class="ttname"><a href="classsinga_1_1Loss.html">singa::Loss</a></div><div class="ttdoc">The base loss class, which declares the APIs for computing the objective score (loss) for a pair of p...</div><div class="ttdef"><b>Definition:</b> loss.h:31</div></div> |
| <div class="ttc" id="namespacesinga_html_af5fd1cb4e1a4b5ae9bba1377b034eb8d"><div class="ttname"><a href="namespacesinga.html#af5fd1cb4e1a4b5ae9bba1377b034eb8d">singa::defaultDevice</a></div><div class="ttdeci">std::shared_ptr< Device > defaultDevice</div><div class="ttdoc">a singleton CppDevice as the host for all devices. </div></div> |
| <div class="ttc" id="classsinga_1_1FeedForwardNet_html_aa7c1e721ff9ca9f1a8e11ae9855e69af"><div class="ttname"><a href="classsinga_1_1FeedForwardNet.html#aa7c1e721ff9ca9f1a8e11ae9855e69af">singa::FeedForwardNet::Evaluate</a></div><div class="ttdeci">std::pair< Tensor, Tensor > Evaluate(const Tensor &x, const Tensor &y, size_t batchsize=128)</div><div class="ttdoc">Evaluate the neural net with given data. </div></div> |
| <div class="ttc" id="classsinga_1_1FeedForwardNet_html_a554d848ec434290b2de971c91c0f2e83"><div class="ttname"><a href="classsinga_1_1FeedForwardNet.html#a554d848ec434290b2de971c91c0f2e83">singa::FeedForwardNet::AsType</a></div><div class="ttdeci">void AsType(DataType dtype)</div><div class="ttdoc">Set the data type of each layer. </div></div> |
| <div class="ttc" id="classsinga_1_1FeedForwardNet_html_a165e4e2bad62e2ad6fb9dcaed1e2b568"><div class="ttname"><a href="classsinga_1_1FeedForwardNet.html#a165e4e2bad62e2ad6fb9dcaed1e2b568">singa::FeedForwardNet::ToDevice</a></div><div class="ttdeci">void ToDevice(std::shared_ptr< Device > device)</div><div class="ttdoc">Move the layer data to the given device. </div></div> |
| <div class="ttc" id="classsinga_1_1FeedForwardNet_html_a9c84ffddc1f721fd8068e316e164683a"><div class="ttname"><a href="classsinga_1_1FeedForwardNet.html#a9c84ffddc1f721fd8068e316e164683a">singa::FeedForwardNet::Forward</a></div><div class="ttdeci">const Tensor Forward(int flag, const Tensor &x)</div><div class="ttdoc">Forward layers one by one using the data batch &#39;x&#39;. </div></div> |
| <div class="ttc" id="classsinga_1_1FeedForwardNet_html_a0cd9bb19e17ac2c54f44503459679ccb"><div class="ttname"><a href="classsinga_1_1FeedForwardNet.html#a0cd9bb19e17ac2c54f44503459679ccb">singa::FeedForwardNet::Predict</a></div><div class="ttdeci">const Tensor Predict(const Tensor &x, size_t batchsize=128)</div><div class="ttdoc">Predict the probability distributation over candicate classes for each data sample. </div></div> |
| <div class="ttc" id="classsinga_1_1Metric_html"><div class="ttname"><a href="classsinga_1_1Metric.html">singa::Metric</a></div><div class="ttdoc">The base metric class, which declares the APIs for computing the performance evaluation metrics given...</div><div class="ttdef"><b>Definition:</b> metric.h:32</div></div> |
| <div class="ttc" id="namespacesinga_html"><div class="ttname"><a href="namespacesinga.html">singa</a></div><div class="ttdoc">Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements...</div><div class="ttdef"><b>Definition:</b> common.h:48</div></div> |
| <div class="ttc" id="classsinga_1_1FeedForwardNet_html"><div class="ttname"><a href="classsinga_1_1FeedForwardNet.html">singa::FeedForwardNet</a></div><div class="ttdoc">The feed-forward neural net. </div><div class="ttdef"><b>Definition:</b> feed_forward_net.h:31</div></div> |
| <div class="ttc" id="classsinga_1_1Optimizer_html"><div class="ttname"><a href="classsinga_1_1Optimizer.html">singa::Optimizer</a></div><div class="ttdoc">The base class for gradient descent algorithms used to update the model parameters in order to optimi...</div><div class="ttdef"><b>Definition:</b> optimizer.h:41</div></div> |
| <div class="ttc" id="classsinga_1_1FeedForwardNet_html_a790aeb0ab8f3e0b91f4fc6bdecf55f4e"><div class="ttname"><a href="classsinga_1_1FeedForwardNet.html#a790aeb0ab8f3e0b91f4fc6bdecf55f4e">singa::FeedForwardNet::Clone</a></div><div class="ttdeci">FeedForwardNet Clone(std::shared_ptr< Device > device)</div><div class="ttdoc">Clone the neuaral net by cloning every layer to the given device. </div></div> |
| <div class="ttc" id="classsinga_1_1FeedForwardNet_html_a3802c112004a7587c6f61ef07c6fb776"><div class="ttname"><a href="classsinga_1_1FeedForwardNet.html#a3802c112004a7587c6f61ef07c6fb776">singa::FeedForwardNet::Add</a></div><div class="ttdeci">std::shared_ptr< Layer > Add(std::shared_ptr< Layer > layer)</div><div class="ttdoc">Add a layer with the assumption that. </div></div> |
| </div><!-- fragment --></div><!-- contents --> |
| <!-- start footer part --> |
| <hr class="footer"/><address class="footer"><small> |
| Generated on Mon Apr 22 2019 12:27:05 for Apache Singa by  <a href="http://www.doxygen.org/index.html"> |
| <img class="footer" src="doxygen.png" alt="doxygen"/> |
| </a> 1.8.13 |
| </small></address> |
| </body> |
| </html> |