http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/666a841d/api/classsinga_1_1Layer.html
----------------------------------------------------------------------
diff --git a/api/classsinga_1_1Layer.html b/api/classsinga_1_1Layer.html
new file mode 100644
index 0000000..81352d1
--- /dev/null
+++ b/api/classsinga_1_1Layer.html
@@ -0,0 +1,741 @@
+<!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.6"/>
+<title>Apache SINGA: singa::Layer 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="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</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="projectlogo"><img alt="Logo" src="singa-logo-small.png"/></td>
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Apache SINGA
+   </div>
+   <div id="projectbrief">A distributed deep learning platform .</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a 
href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" 
href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" 
border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" 
onclick="searchBox.OnSelectItem(0)"><span 
class="SelectionMark">&#160;</span>All</a><a class="SelectItem" 
href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span 
class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" 
href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span 
class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" 
href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span 
class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" 
href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span 
class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" 
href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span 
class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" 
href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span 
class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" 
href="javascript:void
 (0)" onclick="searchBox.OnSelectItem(7)"><span 
class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" 
href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span 
class="SelectionMark">&#160;</span>Macros</a></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"><b>singa</b></li><li class="navelem"><a class="el" 
href="classsinga_1_1Layer.html">Layer</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pro-attribs">Protected Attributes</a> &#124;
+<a href="classsinga_1_1Layer-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">singa::Layer Class Reference<span class="mlabels"><span 
class="mlabel">abstract</span></span></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Base layer class.  
+ <a href="classsinga_1_1Layer.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" 
href="base__layer_8h_source.html">base_layer.h</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for singa::Layer:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="classsinga_1_1Layer.png" usemap="#singa::Layer_map" alt=""/>
+  <map id="singa::Layer_map" name="singa::Layer_map">
+<area href="classsinga_1_1BridgeDstLayer.html" title="For recv data from layer 
on other threads which may resident on other nodes due to layer/data 
partito..." alt="singa::BridgeDstLayer" shape="rect" coords="164,56,318,80"/>
+<area href="classsinga_1_1BridgeSrcLayer.html" title="For sending data to 
layer on other threads which may resident on other nodes due to layer/data 
partit..." alt="singa::BridgeSrcLayer" shape="rect" coords="164,112,318,136"/>
+<area href="classsinga_1_1ConcateLayer.html" title="Concate src layers on one 
dimension. " alt="singa::ConcateLayer" shape="rect" coords="164,168,318,192"/>
+<area href="classsinga_1_1ConvolutionLayer.html" title="Convolution layer. " 
alt="singa::ConvolutionLayer" shape="rect" coords="164,224,318,248"/>
+<area href="classsinga_1_1DataLayer.html" title="base layer for prefetching 
records from local Shard, HDFS, lmdb, etc. " alt="singa::DataLayer" 
shape="rect" coords="164,280,318,304"/>
+<area href="classsinga_1_1DropoutLayer.html" alt="singa::DropoutLayer" 
shape="rect" coords="164,336,318,360"/>
+<area href="classsinga_1_1InnerProductLayer.html" title="fully connected layer 
" alt="singa::InnerProductLayer" shape="rect" coords="164,392,318,416"/>
+<area href="classsinga_1_1LossLayer.html" title="Loss layer to calculate loss 
and other metrics, e.g., precison. " alt="singa::LossLayer" shape="rect" 
coords="164,448,318,472"/>
+<area href="classsinga_1_1LRNLayer.html" alt="singa::LRNLayer" shape="rect" 
coords="164,504,318,528"/>
+<area href="classsinga_1_1ParserLayer.html" title="parse the input records 
into Blobs. " alt="singa::ParserLayer" shape="rect" coords="164,560,318,584"/>
+<area href="classsinga_1_1PoolingLayer.html" alt="singa::PoolingLayer" 
shape="rect" coords="164,616,318,640"/>
+<area href="classsinga_1_1ReLULayer.html" alt="singa::ReLULayer" shape="rect" 
coords="164,672,318,696"/>
+<area href="classsinga_1_1SliceLayer.html" title="Slice this layer into 
multiple dst layers on one dimension. " alt="singa::SliceLayer" shape="rect" 
coords="164,728,318,752"/>
+<area href="classsinga_1_1SplitLayer.html" title="Replciate this layer into 
multiple dst layers. " alt="singa::SplitLayer" shape="rect" 
coords="164,784,318,808"/>
+<area href="classsinga_1_1TanhLayer.html" title="This layer apply Tan function 
to neuron activations. " alt="singa::TanhLayer" shape="rect" 
coords="164,840,318,864"/>
+</map>
+ </div></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:aeec3259af3b38227d4e3b3c5f5340573"><td class="memItemLeft" 
align="right" valign="top">virtual void&#160;</td><td class="memItemRight" 
valign="bottom"><a class="el" 
href="classsinga_1_1Layer.html#aeec3259af3b38227d4e3b3c5f5340573">Init</a> 
(const LayerProto &amp;proto)</td></tr>
+<tr class="memdesc:aeec3259af3b38227d4e3b3c5f5340573"><td 
class="mdescLeft">&#160;</td><td class="mdescRight">simply save the proto 
configuation.  <a 
href="#aeec3259af3b38227d4e3b3c5f5340573">More...</a><br/></td></tr>
+<tr class="separator:aeec3259af3b38227d4e3b3c5f5340573"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abc49f57fad4091d99578512c9d24d436"><td class="memItemLeft" 
align="right" valign="top"><a class="anchor" 
id="abc49f57fad4091d99578512c9d24d436"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" 
href="classsinga_1_1Layer.html#abc49f57fad4091d99578512c9d24d436">Init</a> 
(const <a class="el" href="classsinga_1_1Layer.html">Layer</a> &amp;other, 
const vector&lt; int &gt; &amp;shape)</td></tr>
+<tr class="memdesc:abc49f57fad4091d99578512c9d24d436"><td 
class="mdescLeft">&#160;</td><td class="mdescRight">copy layer configuration 
from the other <a class="el" href="classsinga_1_1Layer.html" title="Base layer 
class. ">Layer</a>, and set the shape. <br/></td></tr>
+<tr class="separator:abc49f57fad4091d99578512c9d24d436"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa029c17a260a114802c46d9faa347b7f"><td class="memItemLeft" 
align="right" valign="top">virtual void&#160;</td><td class="memItemRight" 
valign="bottom"><a class="el" 
href="classsinga_1_1Layer.html#aa029c17a260a114802c46d9faa347b7f">ToProto</a> 
(LayerProto *layer_proto, bool copyData)</td></tr>
+<tr class="memdesc:aa029c17a260a114802c46d9faa347b7f"><td 
class="mdescLeft">&#160;</td><td class="mdescRight">Marshal layer properties 
and data into google protobuf object (i.e., snapshot).  <a 
href="#aa029c17a260a114802c46d9faa347b7f">More...</a><br/></td></tr>
+<tr class="separator:aa029c17a260a114802c46d9faa347b7f"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aecbe8ed0ff294e40586678cef474ca42"><td class="memItemLeft" 
align="right" valign="top">virtual void&#160;</td><td class="memItemRight" 
valign="bottom"><a class="el" 
href="classsinga_1_1Layer.html#aecbe8ed0ff294e40586678cef474ca42">Setup</a> 
(const LayerProto &amp;proto, const vector&lt; SLayer &gt; &amp;<a class="el" 
href="classsinga_1_1Layer.html#a836817f842419098c53fff371ae8fc80">srclayers</a>)=0</td></tr>
+<tr class="memdesc:aecbe8ed0ff294e40586678cef474ca42"><td 
class="mdescLeft">&#160;</td><td class="mdescRight">Setup layer properties.  <a 
href="#aecbe8ed0ff294e40586678cef474ca42">More...</a><br/></td></tr>
+<tr class="separator:aecbe8ed0ff294e40586678cef474ca42"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae691995f08f16d01739f98b6d9bd0335"><td class="memItemLeft" 
align="right" valign="top">virtual void&#160;</td><td class="memItemRight" 
valign="bottom"><a class="el" 
href="classsinga_1_1Layer.html#ae691995f08f16d01739f98b6d9bd0335">Setup</a> 
()</td></tr>
+<tr class="memdesc:ae691995f08f16d01739f98b6d9bd0335"><td 
class="mdescLeft">&#160;</td><td class="mdescRight">Setup layer properties.  <a 
href="#ae691995f08f16d01739f98b6d9bd0335">More...</a><br/></td></tr>
+<tr class="separator:ae691995f08f16d01739f98b6d9bd0335"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af8c911e3ca34f8c288eaddee263661aa"><td class="memItemLeft" 
align="right" valign="top">virtual void&#160;</td><td class="memItemRight" 
valign="bottom"><a class="el" 
href="classsinga_1_1Layer.html#af8c911e3ca34f8c288eaddee263661aa">SetupAfterPartition</a>
 (const LayerProto &amp;proto, const vector&lt; int &gt; &amp;shape, const 
vector&lt; SLayer &gt; &amp;<a class="el" 
href="classsinga_1_1Layer.html#a836817f842419098c53fff371ae8fc80">srclayers</a>)=0</td></tr>
+<tr class="memdesc:af8c911e3ca34f8c288eaddee263661aa"><td 
class="mdescLeft">&#160;</td><td class="mdescRight">Setup the layer properties 
except shape.  <a 
href="#af8c911e3ca34f8c288eaddee263661aa">More...</a><br/></td></tr>
+<tr class="separator:af8c911e3ca34f8c288eaddee263661aa"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a50fbb59219c1eeb5559431e1719e1f97"><td class="memItemLeft" 
align="right" valign="top"><a class="anchor" 
id="a50fbb59219c1eeb5559431e1719e1f97"></a>
+virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" 
href="classsinga_1_1Layer.html#a50fbb59219c1eeb5559431e1719e1f97">SetupAfterPartition</a>
 ()</td></tr>
+<tr class="memdesc:a50fbb59219c1eeb5559431e1719e1f97"><td 
class="mdescLeft">&#160;</td><td class="mdescRight">Setup the layer properties 
except shape. <br/></td></tr>
+<tr class="separator:a50fbb59219c1eeb5559431e1719e1f97"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aff0688e641c845aee9964a3d96172731"><td class="memItemLeft" 
align="right" valign="top">virtual vector&lt; shared_ptr<br class="typebreak"/>
+&lt; <a class="el" href="classsinga_1_1Param.html">Param</a> &gt; 
&gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" 
href="classsinga_1_1Layer.html#aff0688e641c845aee9964a3d96172731">GetParams</a> 
()</td></tr>
+<tr class="memdesc:aff0688e641c845aee9964a3d96172731"><td 
class="mdescLeft">&#160;</td><td class="mdescRight">Layers that have paramters 
must overload this function.  <a 
href="#aff0688e641c845aee9964a3d96172731">More...</a><br/></td></tr>
+<tr class="separator:aff0688e641c845aee9964a3d96172731"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a11ef38d1bf31d054a96a1ac45fd49299"><td class="memItemLeft" 
align="right" valign="top">virtual void&#160;</td><td class="memItemRight" 
valign="bottom"><a class="el" 
href="classsinga_1_1Layer.html#a11ef38d1bf31d054a96a1ac45fd49299">ComputeFeature</a>
 (bool training, const vector&lt; SLayer &gt; &amp;<a class="el" 
href="classsinga_1_1Layer.html#a836817f842419098c53fff371ae8fc80">srclayers</a>)=0</td></tr>
+<tr class="memdesc:a11ef38d1bf31d054a96a1ac45fd49299"><td 
class="mdescLeft">&#160;</td><td class="mdescRight">Compute features of this 
layer based on connected layers.  <a 
href="#a11ef38d1bf31d054a96a1ac45fd49299">More...</a><br/></td></tr>
+<tr class="separator:a11ef38d1bf31d054a96a1ac45fd49299"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af5d9b7aba92f5ead82872e5a70a1def0"><td class="memItemLeft" 
align="right" valign="top"><a class="anchor" 
id="af5d9b7aba92f5ead82872e5a70a1def0"></a>
+virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" 
href="classsinga_1_1Layer.html#af5d9b7aba92f5ead82872e5a70a1def0">ComputeFeature</a>
 (bool training)</td></tr>
+<tr class="separator:af5d9b7aba92f5ead82872e5a70a1def0"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7eb4b3141896bff0d7c423a24308fd63"><td class="memItemLeft" 
align="right" valign="top">virtual void&#160;</td><td class="memItemRight" 
valign="bottom"><a class="el" 
href="classsinga_1_1Layer.html#a7eb4b3141896bff0d7c423a24308fd63">ComputeGradient</a>
 (const vector&lt; SLayer &gt; &amp;<a class="el" 
href="classsinga_1_1Layer.html#a836817f842419098c53fff371ae8fc80">srclayers</a>)=0</td></tr>
+<tr class="memdesc:a7eb4b3141896bff0d7c423a24308fd63"><td 
class="mdescLeft">&#160;</td><td class="mdescRight">Compute gradients for 
parameters and connecting layers.  <a 
href="#a7eb4b3141896bff0d7c423a24308fd63">More...</a><br/></td></tr>
+<tr class="separator:a7eb4b3141896bff0d7c423a24308fd63"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a50591a153fbfe349d8d307781d19ebb5"><td class="memItemLeft" 
align="right" valign="top"><a class="anchor" 
id="a50591a153fbfe349d8d307781d19ebb5"></a>
+virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" 
href="classsinga_1_1Layer.html#a50591a153fbfe349d8d307781d19ebb5">ComputeGradient</a>
 ()</td></tr>
+<tr class="memdesc:a50591a153fbfe349d8d307781d19ebb5"><td 
class="mdescLeft">&#160;</td><td class="mdescRight">Compute gradients for 
parameters and connecting layers. <br/></td></tr>
+<tr class="separator:a50591a153fbfe349d8d307781d19ebb5"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a12d268e424e4affada0d5b85ea6d2359"><td class="memItemLeft" 
align="right" valign="top">virtual int&#160;</td><td class="memItemRight" 
valign="bottom"><a class="el" 
href="classsinga_1_1Layer.html#a12d268e424e4affada0d5b85ea6d2359">partition_dimension</a>
 () const </td></tr>
+<tr class="memdesc:a12d268e424e4affada0d5b85ea6d2359"><td 
class="mdescLeft">&#160;</td><td class="mdescRight">decide on which dimension 
to do the partitioning.  <a 
href="#a12d268e424e4affada0d5b85ea6d2359">More...</a><br/></td></tr>
+<tr class="separator:a12d268e424e4affada0d5b85ea6d2359"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7e134c5b4a1a8e442626354d2d869caa"><td class="memItemLeft" 
align="right" valign="top">virtual ConnectionType&#160;</td><td 
class="memItemRight" valign="bottom"><a class="el" 
href="classsinga_1_1Layer.html#a7e134c5b4a1a8e442626354d2d869caa">connection_type</a>
 (int k) const </td></tr>
+<tr class="memdesc:a7e134c5b4a1a8e442626354d2d869caa"><td 
class="mdescLeft">&#160;</td><td class="mdescRight">return connection type 
between two layers.  <a 
href="#a7e134c5b4a1a8e442626354d2d869caa">More...</a><br/></td></tr>
+<tr class="separator:a7e134c5b4a1a8e442626354d2d869caa"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab3c0e1047f36e2fb783a6fd3d4eabd73"><td class="memItemLeft" 
align="right" valign="top">virtual PartitionType&#160;</td><td 
class="memItemRight" valign="bottom"><a class="el" 
href="classsinga_1_1Layer.html#ab3c0e1047f36e2fb783a6fd3d4eabd73">partition_type</a>
 () const </td></tr>
+<tr class="memdesc:ab3c0e1047f36e2fb783a6fd3d4eabd73"><td 
class="mdescLeft">&#160;</td><td class="mdescRight">return partition type of 
this layer.  <a 
href="#ab3c0e1047f36e2fb783a6fd3d4eabd73">More...</a><br/></td></tr>
+<tr class="separator:ab3c0e1047f36e2fb783a6fd3d4eabd73"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:addab6c99866d34001471f86aede7f6e8"><td class="memItemLeft" 
align="right" valign="top"><a class="anchor" 
id="addab6c99866d34001471f86aede7f6e8"></a>
+virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" 
href="classsinga_1_1Layer.html#addab6c99866d34001471f86aede7f6e8">set_locationid</a>
 (int id)</td></tr>
+<tr class="memdesc:addab6c99866d34001471f86aede7f6e8"><td 
class="mdescLeft">&#160;</td><td class="mdescRight">location id is the 
execution unit (i.e., thread from the working group) ID. <br/></td></tr>
+<tr class="separator:addab6c99866d34001471f86aede7f6e8"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af3170517c202d998fec1f20b97e6a881"><td class="memItemLeft" 
align="right" valign="top"><a class="anchor" 
id="af3170517c202d998fec1f20b97e6a881"></a>
+virtual int&#160;</td><td class="memItemRight" 
valign="bottom"><b>locationid</b> () const </td></tr>
+<tr class="separator:af3170517c202d998fec1f20b97e6a881"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af177cc1bdfc8d57b6992855bf437ef9a"><td class="memItemLeft" 
align="right" valign="top"><a class="anchor" 
id="af177cc1bdfc8d57b6992855bf437ef9a"></a>
+virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" 
href="classsinga_1_1Layer.html#af177cc1bdfc8d57b6992855bf437ef9a">set_partitionid</a>
 (int id)</td></tr>
+<tr class="memdesc:af177cc1bdfc8d57b6992855bf437ef9a"><td 
class="mdescLeft">&#160;</td><td class="mdescRight">partition id is the ID of 
the layer in the original layer. <br/></td></tr>
+<tr class="separator:af177cc1bdfc8d57b6992855bf437ef9a"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad7f7ec42c3d8086370d9fbdfaa57fe7a"><td class="memItemLeft" 
align="right" valign="top"><a class="anchor" 
id="ad7f7ec42c3d8086370d9fbdfaa57fe7a"></a>
+virtual int&#160;</td><td class="memItemRight" 
valign="bottom"><b>partitiionid</b> () const </td></tr>
+<tr class="separator:ad7f7ec42c3d8086370d9fbdfaa57fe7a"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abc01aee87088c70cedadfe54f60d78c7"><td class="memItemLeft" 
align="right" valign="top"><a class="anchor" 
id="abc01aee87088c70cedadfe54f60d78c7"></a>
+virtual void&#160;</td><td class="memItemRight" 
valign="bottom"><b>set_name</b> (string <a class="el" 
href="classsinga_1_1Layer.html#abc76f037afc13a17ab07082cfae945de">name</a>)</td></tr>
+<tr class="separator:abc01aee87088c70cedadfe54f60d78c7"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a50478bdb3fdeb8272d0f693134e5064e"><td class="memItemLeft" 
align="right" valign="top"><a class="anchor" 
id="a50478bdb3fdeb8272d0f693134e5064e"></a>
+virtual const string&#160;</td><td class="memItemRight" 
valign="bottom"><b>type</b> () const </td></tr>
+<tr class="separator:a50478bdb3fdeb8272d0f693134e5064e"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abc76f037afc13a17ab07082cfae945de"><td class="memItemLeft" 
align="right" valign="top"><a class="anchor" 
id="abc76f037afc13a17ab07082cfae945de"></a>
+const std::string &amp;&#160;</td><td class="memItemRight" valign="bottom"><a 
class="el" 
href="classsinga_1_1Layer.html#abc76f037afc13a17ab07082cfae945de">name</a> () 
const </td></tr>
+<tr class="memdesc:abc76f037afc13a17ab07082cfae945de"><td 
class="mdescLeft">&#160;</td><td class="mdescRight">Return name of this layer. 
<br/></td></tr>
+<tr class="separator:abc76f037afc13a17ab07082cfae945de"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9c693432b440fdf2078f6d9921ba394f"><td class="memItemLeft" 
align="right" valign="top"><a class="anchor" 
id="a9c693432b440fdf2078f6d9921ba394f"></a>
+const vector&lt; int &gt; &amp;&#160;</td><td class="memItemRight" 
valign="bottom"><b>shape</b> (const <a class="el" 
href="classsinga_1_1Layer.html">Layer</a> *layer=nullptr) const </td></tr>
+<tr class="separator:a9c693432b440fdf2078f6d9921ba394f"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad443a1e7f957dad71fd0c9b356a53c20"><td class="memItemLeft" 
align="right" valign="top">virtual const <a class="el" 
href="classBlob.html">Blob</a>&lt; float &gt; &amp;&#160;</td><td 
class="memItemRight" valign="bottom"><a class="el" 
href="classsinga_1_1Layer.html#ad443a1e7f957dad71fd0c9b356a53c20">data</a> 
(const <a class="el" href="classsinga_1_1Layer.html">Layer</a> *from=nullptr) 
const </td></tr>
+<tr class="separator:ad443a1e7f957dad71fd0c9b356a53c20"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab62f26448810b04d35e892ce013feac8"><td class="memItemLeft" 
align="right" valign="top"><a class="anchor" 
id="ab62f26448810b04d35e892ce013feac8"></a>
+virtual <a class="el" href="classBlob.html">Blob</a>&lt; float &gt; 
*&#160;</td><td class="memItemRight" valign="bottom"><b>mutable_data</b> (const 
<a class="el" href="classsinga_1_1Layer.html">Layer</a> *from=nullptr)</td></tr>
+<tr class="separator:ab62f26448810b04d35e892ce013feac8"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae53f8fe14b76f423e7d79d2bda36523a"><td class="memItemLeft" 
align="right" valign="top"><a class="anchor" 
id="ae53f8fe14b76f423e7d79d2bda36523a"></a>
+virtual const <a class="el" href="classBlob.html">Blob</a>&lt; float &gt; 
&amp;&#160;</td><td class="memItemRight" valign="bottom"><b>grad</b> (const <a 
class="el" href="classsinga_1_1Layer.html">Layer</a> *from=nullptr) const 
</td></tr>
+<tr class="separator:ae53f8fe14b76f423e7d79d2bda36523a"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad4936117ef7d58193726a966f796fafc"><td class="memItemLeft" 
align="right" valign="top">virtual <a class="el" 
href="classBlob.html">Blob</a>&lt; float &gt; *&#160;</td><td 
class="memItemRight" valign="bottom"><a class="el" 
href="classsinga_1_1Layer.html#ad4936117ef7d58193726a966f796fafc">mutable_grad</a>
 (const <a class="el" href="classsinga_1_1Layer.html">Layer</a> 
*from=nullptr)</td></tr>
+<tr class="separator:ad4936117ef7d58193726a966f796fafc"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a836817f842419098c53fff371ae8fc80"><td class="memItemLeft" 
align="right" valign="top"><a class="anchor" 
id="a836817f842419098c53fff371ae8fc80"></a>
+virtual const vector&lt; SLayer &gt;&#160;</td><td class="memItemRight" 
valign="bottom"><a class="el" 
href="classsinga_1_1Layer.html#a836817f842419098c53fff371ae8fc80">srclayers</a> 
() const </td></tr>
+<tr class="memdesc:a836817f842419098c53fff371ae8fc80"><td 
class="mdescLeft">&#160;</td><td class="mdescRight">return LayerS that 
connected to this layer <br/></td></tr>
+<tr class="separator:a836817f842419098c53fff371ae8fc80"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2c5aeabbc26770bcff169dd907e9c737"><td class="memItemLeft" 
align="right" valign="top"><a class="anchor" 
id="a2c5aeabbc26770bcff169dd907e9c737"></a>
+virtual const vector&lt; SLayer &gt;&#160;</td><td class="memItemRight" 
valign="bottom"><a class="el" 
href="classsinga_1_1Layer.html#a2c5aeabbc26770bcff169dd907e9c737">dstlayers</a> 
() const </td></tr>
+<tr class="memdesc:a2c5aeabbc26770bcff169dd907e9c737"><td 
class="mdescLeft">&#160;</td><td class="mdescRight">return LayerS that this 
layer connected to <br/></td></tr>
+<tr class="separator:a2c5aeabbc26770bcff169dd907e9c737"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a944081b99606ba317932bd9994b6fee3"><td class="memItemLeft" 
align="right" valign="top"><a class="anchor" 
id="a944081b99606ba317932bd9994b6fee3"></a>
+virtual const int&#160;</td><td class="memItemRight" 
valign="bottom"><b>srclayers_size</b> () const </td></tr>
+<tr class="separator:a944081b99606ba317932bd9994b6fee3"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9ebebda5c30c10648c3f1c4af38f49c4"><td class="memItemLeft" 
align="right" valign="top"><a class="anchor" 
id="a9ebebda5c30c10648c3f1c4af38f49c4"></a>
+virtual const int&#160;</td><td class="memItemRight" 
valign="bottom"><b>dstlayers_size</b> () const </td></tr>
+<tr class="separator:a9ebebda5c30c10648c3f1c4af38f49c4"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae8fe0fc86daa0d8092257aecbd7662d3"><td class="memItemLeft" 
align="right" valign="top"><a class="anchor" 
id="ae8fe0fc86daa0d8092257aecbd7662d3"></a>
+virtual void&#160;</td><td class="memItemRight" 
valign="bottom"><b>ClearDstLayers</b> ()</td></tr>
+<tr class="separator:ae8fe0fc86daa0d8092257aecbd7662d3"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a089f56583f89f9b4c02acc8b1664b948"><td class="memItemLeft" 
align="right" valign="top"><a class="anchor" 
id="a089f56583f89f9b4c02acc8b1664b948"></a>
+virtual void&#160;</td><td class="memItemRight" 
valign="bottom"><b>ClearSrcLayers</b> ()</td></tr>
+<tr class="separator:a089f56583f89f9b4c02acc8b1664b948"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aac3f866084459be028a0f2f931016d33"><td class="memItemLeft" 
align="right" valign="top"><a class="anchor" 
id="aac3f866084459be028a0f2f931016d33"></a>
+virtual void&#160;</td><td class="memItemRight" 
valign="bottom"><b>AddSrcLayer</b> (SLayer src)</td></tr>
+<tr class="separator:aac3f866084459be028a0f2f931016d33"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a13a01a39dbcd89c752202cbcbb53c36e"><td class="memItemLeft" 
align="right" valign="top"><a class="anchor" 
id="a13a01a39dbcd89c752202cbcbb53c36e"></a>
+virtual void&#160;</td><td class="memItemRight" 
valign="bottom"><b>AddDstLayer</b> (SLayer dst)</td></tr>
+<tr class="separator:a13a01a39dbcd89c752202cbcbb53c36e"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aad61de583fe620672dc76963173ab248"><td class="memItemLeft" 
align="right" valign="top"><a class="anchor" 
id="aad61de583fe620672dc76963173ab248"></a>
+virtual bool&#160;</td><td class="memItemRight" 
valign="bottom"><b>is_datalayer</b> () const </td></tr>
+<tr class="separator:aad61de583fe620672dc76963173ab248"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3d6c46c2c9e4e0fab3b66b4dae1cb9bc"><td class="memItemLeft" 
align="right" valign="top"><a class="anchor" 
id="a3d6c46c2c9e4e0fab3b66b4dae1cb9bc"></a>
+virtual bool&#160;</td><td class="memItemRight" 
valign="bottom"><b>is_parserlayer</b> () const </td></tr>
+<tr class="separator:a3d6c46c2c9e4e0fab3b66b4dae1cb9bc"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8ab4edffdb3cb2a30b70116e725c6246"><td class="memItemLeft" 
align="right" valign="top"><a class="anchor" 
id="a8ab4edffdb3cb2a30b70116e725c6246"></a>
+virtual bool&#160;</td><td class="memItemRight" 
valign="bottom"><b>is_losslayer</b> () const </td></tr>
+<tr class="separator:a8ab4edffdb3cb2a30b70116e725c6246"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1927b5a9b362e5839471e481f07f8088"><td class="memItemLeft" 
align="right" valign="top"><a class="anchor" 
id="a1927b5a9b362e5839471e481f07f8088"></a>
+virtual bool&#160;</td><td class="memItemRight" 
valign="bottom"><b>is_bridgesrclayer</b> () const </td></tr>
+<tr class="separator:a1927b5a9b362e5839471e481f07f8088"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a140a45def081bfb1be4877ff4091c87e"><td class="memItemLeft" 
align="right" valign="top"><a class="anchor" 
id="a140a45def081bfb1be4877ff4091c87e"></a>
+virtual bool&#160;</td><td class="memItemRight" 
valign="bottom"><b>is_bridgedstlayer</b> () const </td></tr>
+<tr class="separator:a140a45def081bfb1be4877ff4091c87e"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a 
name="pro-attribs"></a>
+Protected Attributes</h2></td></tr>
+<tr class="memitem:a9307fe49ca9fa70a77f00e262e51b58e"><td class="memItemLeft" 
align="right" valign="top"><a class="anchor" 
id="a9307fe49ca9fa70a77f00e262e51b58e"></a>
+string&#160;</td><td class="memItemRight" 
valign="bottom"><b>name_</b></td></tr>
+<tr class="separator:a9307fe49ca9fa70a77f00e262e51b58e"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6244f7e610e5a4add1c827415f5430fb"><td class="memItemLeft" 
align="right" valign="top"><a class="anchor" 
id="a6244f7e610e5a4add1c827415f5430fb"></a>
+<a class="el" href="classBlob.html">Blob</a>&lt; float &gt;&#160;</td><td 
class="memItemRight" valign="bottom"><b>data_</b></td></tr>
+<tr class="separator:a6244f7e610e5a4add1c827415f5430fb"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a455a662d1be46a83ac5a42705b77e717"><td class="memItemLeft" 
align="right" valign="top"><a class="anchor" 
id="a455a662d1be46a83ac5a42705b77e717"></a>
+<a class="el" href="classBlob.html">Blob</a>&lt; float &gt;&#160;</td><td 
class="memItemRight" valign="bottom"><b>grad_</b></td></tr>
+<tr class="separator:a455a662d1be46a83ac5a42705b77e717"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a528fc84a4714528fa0419e01d6bba5b1"><td class="memItemLeft" 
align="right" valign="top"><a class="anchor" 
id="a528fc84a4714528fa0419e01d6bba5b1"></a>
+LayerProto&#160;</td><td class="memItemRight" 
valign="bottom"><b>layer_proto_</b></td></tr>
+<tr class="separator:a528fc84a4714528fa0419e01d6bba5b1"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a31f4a6569d9531304e5c0c3b1bdacda9"><td class="memItemLeft" 
align="right" valign="top"><a class="anchor" 
id="a31f4a6569d9531304e5c0c3b1bdacda9"></a>
+vector&lt; SLayer &gt;&#160;</td><td class="memItemRight" 
valign="bottom"><b>srclayers_</b></td></tr>
+<tr class="separator:a31f4a6569d9531304e5c0c3b1bdacda9"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a755a464d39e139aa161e03be77810101"><td class="memItemLeft" 
align="right" valign="top"><a class="anchor" 
id="a755a464d39e139aa161e03be77810101"></a>
+vector&lt; SLayer &gt;&#160;</td><td class="memItemRight" 
valign="bottom"><b>dstlayers_</b></td></tr>
+<tr class="separator:a755a464d39e139aa161e03be77810101"><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>Base layer class. </p>
+<p>Children should implement at least <a class="el" 
href="classsinga_1_1Layer.html#aecbe8ed0ff294e40586678cef474ca42" title="Setup 
layer properties. ">Layer::Setup</a>, <a class="el" 
href="classsinga_1_1Layer.html#a11ef38d1bf31d054a96a1ac45fd49299" 
title="Compute features of this layer based on connected layers. 
">Layer::ComputeFeature()</a>, Layer::ComputGradient() functions for 
backpropagation method; TODO(wangwei) implement children layers to support 
contrastive divergence, The identifier of each layer is the literal string of 
the class name without the suffix "Layer", which is used in layer registration 
and creation. </p>
+</div><h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="a11ef38d1bf31d054a96a1ac45fd49299"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual void singa::Layer::ComputeFeature </td>
+          <td>(</td>
+          <td class="paramtype">bool&#160;</td>
+          <td class="paramname"><em>training</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const vector&lt; SLayer &gt; &amp;&#160;</td>
+          <td class="paramname"><em>srclayers</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">pure virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Compute features of this layer based on connected layers. </p>
+<p>Implement forward propagation for BP; TODO Implement both postive phase and 
negative phase for CD. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">srclayers</td><td>layers connecting to this 
layer </td></tr>
+  </table>
+  </dd>
+</dl>
+
+<p>Implemented in <a class="el" 
href="classsinga_1_1ParserLayer.html#a346797e377211251ae5c268fca093c50">singa::ParserLayer</a>,
 <a class="el" 
href="classsinga_1_1DataLayer.html#a1764fa7801dd568e706beacf18d284b0">singa::DataLayer</a>,
 <a class="el" 
href="classsinga_1_1BridgeDstLayer.html#a16beb7c175217864bf2f75af016aa5ac">singa::BridgeDstLayer</a>,
 and <a class="el" 
href="classsinga_1_1BridgeSrcLayer.html#a6b6b652e2ae1b2c863b5143e07e9b6bf">singa::BridgeSrcLayer</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a7eb4b3141896bff0d7c423a24308fd63"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual void singa::Layer::ComputeGradient </td>
+          <td>(</td>
+          <td class="paramtype">const vector&lt; SLayer &gt; &amp;&#160;</td>
+          <td class="paramname"><em>srclayers</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Compute gradients for parameters and connecting layers. </p>
+<p>Implement backward propagation for BP; TODO Calculate gradients for 
parameters for CD. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">srclayers</td><td>layers connecting to this 
layer. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+<p>Implemented in <a class="el" 
href="classsinga_1_1ParserLayer.html#afe2b6dd37ea96e7039ed24e93b28899b">singa::ParserLayer</a>,
 <a class="el" 
href="classsinga_1_1DataLayer.html#a2ab6f424cb1838773bb16c94d6a585a5">singa::DataLayer</a>,
 <a class="el" 
href="classsinga_1_1BridgeDstLayer.html#ae55ce33799c5e7a2d6fcdbba83c94ae3">singa::BridgeDstLayer</a>,
 and <a class="el" 
href="classsinga_1_1BridgeSrcLayer.html#a54ce17eea86fb66db8984e13d1731f94">singa::BridgeSrcLayer</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a7e134c5b4a1a8e442626354d2d869caa"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual ConnectionType 
singa::Layer::connection_type </td>
+          <td>(</td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>k</em></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span 
class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>return connection type between two layers. </p>
+<p>Currently support two connections: kOneToOne, and kOneToAll. kOneToOne 
indicates the dst neuron depends on only one neuron from src layer. kOneToAll 
indicates the dst neuron depends on all neurons from src layer. TODO support 
kOneToMany. </p>
+
+<p>Reimplemented in <a class="el" 
href="classsinga_1_1SoftmaxLossLayer.html#afdf930f5872db0c86d6f1fd944b338c3">singa::SoftmaxLossLayer</a>,
 <a class="el" 
href="classsinga_1_1InnerProductLayer.html#ae8f82011418b1e9c2c2f4c11d358c141">singa::InnerProductLayer</a>,
 and <a class="el" 
href="classsinga_1_1ConvolutionLayer.html#a2d02f88e6500f44a2df338ff23773709">singa::ConvolutionLayer</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ad443a1e7f957dad71fd0c9b356a53c20"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual const <a class="el" 
href="classBlob.html">Blob</a>&lt;float&gt;&amp; singa::Layer::data </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" 
href="classsinga_1_1Layer.html">Layer</a> *&#160;</td>
+          <td class="paramname"><em>from</em> = 
<code>nullptr</code></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span 
class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+<dl class="section return"><dt>Returns</dt><dd>a const ref for <a class="el" 
href="classBlob.html">Blob</a> storing neuron values of this layer for BP 
</dd></dl>
+
+<p>Reimplemented in <a class="el" 
href="classsinga_1_1SliceLayer.html#a635401ab1990f4dd97bf936cc6c61e71">singa::SliceLayer</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aff0688e641c845aee9964a3d96172731"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual vector&lt;shared_ptr&lt;<a class="el" 
href="classsinga_1_1Param.html">Param</a>&gt; &gt; singa::Layer::GetParams </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span 
class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Layers that have paramters must overload this function. </p>
+<dl class="section return"><dt>Returns</dt><dd>parameters associated with this 
layer </dd></dl>
+
+<p>Reimplemented in <a class="el" 
href="classsinga_1_1InnerProductLayer.html#acb8362b53f2d515c166af413d708d4d0">singa::InnerProductLayer</a>,
 and <a class="el" 
href="classsinga_1_1ConvolutionLayer.html#aa66cf441e0f6cd315113db2e09299a5b">singa::ConvolutionLayer</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aeec3259af3b38227d4e3b3c5f5340573"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual void singa::Layer::Init </td>
+          <td>(</td>
+          <td class="paramtype">const LayerProto &amp;&#160;</td>
+          <td class="paramname"><em>proto</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>simply save the proto configuation. </p>
+<p>most initializations are done by <a class="el" 
href="classsinga_1_1Layer.html#ae691995f08f16d01739f98b6d9bd0335" title="Setup 
layer properties. ">Setup()</a>. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">layer_proto</td><td>user defined layer 
configuration </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="ad4936117ef7d58193726a966f796fafc"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual <a class="el" 
href="classBlob.html">Blob</a>&lt;float&gt;* singa::Layer::mutable_grad </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" 
href="classsinga_1_1Layer.html">Layer</a> *&#160;</td>
+          <td class="paramname"><em>from</em> = 
<code>nullptr</code></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span 
class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+<dl class="section return"><dt>Returns</dt><dd>a pointer to storing neuron 
grads of this layer for BP </dd></dl>
+
+<p>Reimplemented in <a class="el" 
href="classsinga_1_1ParserLayer.html#a4ee00445771065cc4bf569003a33e796">singa::ParserLayer</a>,
 <a class="el" 
href="classsinga_1_1LossLayer.html#aaedd08096c3e1f2bae5cccf75cdf3382">singa::LossLayer</a>,
 <a class="el" 
href="classsinga_1_1SliceLayer.html#a4022c8722eb9b77d8b774c8987c4cf7e">singa::SliceLayer</a>,
 and <a class="el" 
href="classsinga_1_1DataLayer.html#ae15c0c4720f0a070fcfc3416c1449a97">singa::DataLayer</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a12d268e424e4affada0d5b85ea6d2359"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual int singa::Layer::partition_dimension 
</td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span 
class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>decide on which dimension to do the partitioning. </p>
+<p>kLayer, kData, kNone (no partition) </p>
+<dl class="section return"><dt>Returns</dt><dd>the partition dimension, -1 for 
no partition </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ab3c0e1047f36e2fb783a6fd3d4eabd73"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual PartitionType 
singa::Layer::partition_type </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span 
class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>return partition type of this layer. </p>
+<p>E.g., kNone, kLayer or kData </p>
+
+<p>Reimplemented in <a class="el" 
href="classsinga_1_1ParserLayer.html#a67d78cafced1950980b54b0b6e302e87">singa::ParserLayer</a>,
 <a class="el" 
href="classsinga_1_1DataLayer.html#a5ffcae36ddcc4a445b9a91b083b29d2b">singa::DataLayer</a>,
 and <a class="el" 
href="classsinga_1_1SoftmaxLossLayer.html#af36fdea88d2538cffbbe34a2930613a6">singa::SoftmaxLossLayer</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aecbe8ed0ff294e40586678cef474ca42"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual void singa::Layer::Setup </td>
+          <td>(</td>
+          <td class="paramtype">const LayerProto &amp;&#160;</td>
+          <td class="paramname"><em>proto</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const vector&lt; SLayer &gt; &amp;&#160;</td>
+          <td class="paramname"><em>srclayers</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">pure virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Setup layer properties. </p>
+<p>Setup the shapes for data and parameters, also setup some properties based 
on the layer configuration and connected src layers. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">srclayers</td><td>layers connecting to this 
layer </td></tr>
+  </table>
+  </dd>
+</dl>
+
+<p>Implemented in <a class="el" 
href="classsinga_1_1ParserLayer.html#a2c6328bfd198d28854c61392dde05882">singa::ParserLayer</a>,
 <a class="el" 
href="classsinga_1_1LossLayer.html#a16f16d5b289cb2d4bee9a9bee21e3b7c">singa::LossLayer</a>,
 <a class="el" 
href="classsinga_1_1SplitLayer.html#a5a03aaa4e7de6432b511fedb340b9250">singa::SplitLayer</a>,
 <a class="el" 
href="classsinga_1_1SliceLayer.html#a965d30f2b8ddb853b661671f73d7e8ea">singa::SliceLayer</a>,
 <a class="el" 
href="classsinga_1_1DataLayer.html#aad95cbeac929cdb9eeb7fb6e7996ac26">singa::DataLayer</a>,
 <a class="el" 
href="classsinga_1_1ConcateLayer.html#a160ffe17e1138034c7d9b8d61065412b">singa::ConcateLayer</a>,
 <a class="el" 
href="classsinga_1_1BridgeDstLayer.html#a8caa316af324395b766409dd8f8bcd15">singa::BridgeDstLayer</a>,
 <a class="el" 
href="classsinga_1_1TanhLayer.html#ae2f5b0d2f2ac2f304324795cf46151ef">singa::TanhLayer</a>,
 <a class="el" 
href="classsinga_1_1BridgeSrcLayer.html#a6bbe7d66a0c0e06b430f281b67e5ae92">singa::BridgeSrcLa
 yer</a>, <a class="el" 
href="classsinga_1_1LMDBDataLayer.html#a715e5072cbf8897531f88bb681698081">singa::LMDBDataLayer</a>,
 <a class="el" 
href="classsinga_1_1ShardDataLayer.html#a3dbc554bbed8a2515c3bb8b6948dd407">singa::ShardDataLayer</a>,
 <a class="el" 
href="classsinga_1_1RGBImageLayer.html#a578b92e4e894277790bf0d24b8bba9c7">singa::RGBImageLayer</a>,
 <a class="el" 
href="classsinga_1_1SoftmaxLossLayer.html#af92ba2d30039d508cada194a557067a7">singa::SoftmaxLossLayer</a>,
 <a class="el" 
href="classsinga_1_1ReLULayer.html#aa9bb1353ba3d064edd1f89d5918442aa">singa::ReLULayer</a>,
 <a class="el" 
href="classsinga_1_1PoolingLayer.html#a7d074abe2fb6fc0cf73e84eae80f269a">singa::PoolingLayer</a>,
 <a class="el" 
href="classsinga_1_1MnistImageLayer.html#a1dba251022584d60d12092481d162d04">singa::MnistImageLayer</a>,
 <a class="el" 
href="classsinga_1_1LRNLayer.html#aeec95bd635930c4d6b028119357fb0a1">singa::LRNLayer</a>,
 <a class="el" 
href="classsinga_1_1LabelLayer.html#aa7cc5abb98cbe0d7066f8336dca384e2"
 >singa::LabelLayer</a>, <a class="el" 
 >href="classsinga_1_1InnerProductLayer.html#aa63806b1ded9d752350ac01fb3a3aafb">singa::InnerProductLayer</a>,
 > <a class="el" 
 >href="classsinga_1_1DropoutLayer.html#a3b2016cbb63ea661e3abef8dd0b392c9">singa::DropoutLayer</a>,
 > and <a class="el" 
 >href="classsinga_1_1ConvolutionLayer.html#a4d942e8244380cc6f8471cfa5ffb933e">singa::ConvolutionLayer</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ae691995f08f16d01739f98b6d9bd0335"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual void singa::Layer::Setup </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Setup layer properties. </p>
+<p>Setup the shapes for data and parameters, also setup some properties based 
on the layer configuration and connected src layers. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">srclayers</td><td>layers connecting to this 
layer </td></tr>
+  </table>
+  </dd>
+</dl>
+
+<p>Reimplemented in <a class="el" 
href="classsinga_1_1ParserLayer.html#ad01d938a87aba0c7a6f8ccf0139bde4c">singa::ParserLayer</a>,
 and <a class="el" 
href="classsinga_1_1DataLayer.html#a703368d1972e8343e0dea4acd93702ae">singa::DataLayer</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="af8c911e3ca34f8c288eaddee263661aa"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual void singa::Layer::SetupAfterPartition 
</td>
+          <td>(</td>
+          <td class="paramtype">const LayerProto &amp;&#160;</td>
+          <td class="paramname"><em>proto</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const vector&lt; int &gt; &amp;&#160;</td>
+          <td class="paramname"><em>shape</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const vector&lt; SLayer &gt; &amp;&#160;</td>
+          <td class="paramname"><em>srclayers</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">pure virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Setup the layer properties except shape. </p>
+<p>the shape is already set and passed in to set other properties. perperties 
are set according to shapes of itself and connected layers, and configuration. 
this should not change the current shape_( shape check is done outside the 
function). </p>
+
+<p>Implemented in <a class="el" 
href="classsinga_1_1ParserLayer.html#a1340b2cf693aa48d823d12228900556b">singa::ParserLayer</a>,
 <a class="el" 
href="classsinga_1_1LossLayer.html#adefb43c93a024c3b7fc558abc291dc49">singa::LossLayer</a>,
 <a class="el" 
href="classsinga_1_1SplitLayer.html#a949028cd476e463b6893fb9ff6c7d664">singa::SplitLayer</a>,
 <a class="el" 
href="classsinga_1_1SliceLayer.html#adf443fffadbdb5671e7982028689bbca">singa::SliceLayer</a>,
 <a class="el" 
href="classsinga_1_1DataLayer.html#a3c7b81249e522dd231a098ffed481496">singa::DataLayer</a>,
 <a class="el" 
href="classsinga_1_1ConcateLayer.html#a3781c4852c40650f6e20858929f60ffa">singa::ConcateLayer</a>,
 <a class="el" 
href="classsinga_1_1BridgeDstLayer.html#a90883d70214e4ac2e1afd2337531ef03">singa::BridgeDstLayer</a>,
 <a class="el" 
href="classsinga_1_1TanhLayer.html#ae828e79607c2abe9c0b73627b8ec0548">singa::TanhLayer</a>,
 <a class="el" 
href="classsinga_1_1BridgeSrcLayer.html#aa81a45289008df0334e66e6b639862a4">singa::BridgeSrcLa
 yer</a>, <a class="el" 
href="classsinga_1_1SoftmaxLossLayer.html#aceb8d0a51d606b0ac6bd4c13e77af01a">singa::SoftmaxLossLayer</a>,
 <a class="el" 
href="classsinga_1_1ReLULayer.html#ad3098f5e7619f7746e3ca6836e0fe979">singa::ReLULayer</a>,
 <a class="el" 
href="classsinga_1_1PoolingLayer.html#aa106d86ff430bd174d07adafccb79b82">singa::PoolingLayer</a>,
 <a class="el" 
href="classsinga_1_1LRNLayer.html#a1d272777844aee450b00ecb6a52ba49f">singa::LRNLayer</a>,
 <a class="el" 
href="classsinga_1_1InnerProductLayer.html#a5cb033a8fde53340e58d7408befc6698">singa::InnerProductLayer</a>,
 <a class="el" 
href="classsinga_1_1DropoutLayer.html#a51b6005a831bf92b3ed5107b96efe5e1">singa::DropoutLayer</a>,
 and <a class="el" 
href="classsinga_1_1ConvolutionLayer.html#a59cbc71b6a48e4dee7c87170161370f9">singa::ConvolutionLayer</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa029c17a260a114802c46d9faa347b7f"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual void singa::Layer::ToProto </td>
+          <td>(</td>
+          <td class="paramtype">LayerProto *&#160;</td>
+          <td class="paramname"><em>layer_proto</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">bool&#160;</td>
+          <td class="paramname"><em>copyData</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">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Marshal layer properties and data into google protobuf object (i.e., 
snapshot). </p>
+<p>Parameters are marshalled separately into another object (i.e., model). </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">layer_proto</td><td></td></tr>
+    <tr><td class="paramname">copyData</td><td>if true marshal data of DArray 
</td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following 
file:<ul>
+<li>/home/wangwei/program/asf/incubator-singa/include/neuralnet/<a class="el" 
href="base__layer_8h_source.html">base_layer.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Thu May 7 2015 17:15:41 for Apache SINGA by &#160;<a 
href="http://www.doxygen.org/index.html";>
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/666a841d/api/classsinga_1_1Layer.png
----------------------------------------------------------------------
diff --git a/api/classsinga_1_1Layer.png b/api/classsinga_1_1Layer.png
new file mode 100644
index 0000000..25e5238
Binary files /dev/null and b/api/classsinga_1_1Layer.png differ

http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/666a841d/api/classsinga_1_1LossLayer-members.html
----------------------------------------------------------------------
diff --git a/api/classsinga_1_1LossLayer-members.html 
b/api/classsinga_1_1LossLayer-members.html
new file mode 100644
index 0000000..c1d7645
--- /dev/null
+++ b/api/classsinga_1_1LossLayer-members.html
@@ -0,0 +1,156 @@
+<!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.6"/>
+<title>Apache SINGA: Member List</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/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</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="projectlogo"><img alt="Logo" src="singa-logo-small.png"/></td>
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Apache SINGA
+   </div>
+   <div id="projectbrief">A distributed deep learning platform .</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a 
href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" 
href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" 
border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" 
onclick="searchBox.OnSelectItem(0)"><span 
class="SelectionMark">&#160;</span>All</a><a class="SelectItem" 
href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span 
class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" 
href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span 
class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" 
href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span 
class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" 
href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span 
class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" 
href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span 
class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" 
href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span 
class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" 
href="javascript:void
 (0)" onclick="searchBox.OnSelectItem(7)"><span 
class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" 
href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span 
class="SelectionMark">&#160;</span>Macros</a></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"><b>singa</b></li><li class="navelem"><a class="el" 
href="classsinga_1_1LossLayer.html">LossLayer</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">singa::LossLayer Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" 
href="classsinga_1_1LossLayer.html">singa::LossLayer</a>, including all 
inherited members.</p>
+<table class="directory">
+  <tr bgcolor="#f0f0f0" class="even"><td 
class="entry"><b>AddDstLayer</b>(SLayer dst) (defined in <a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a>)</td><td class="entry"><a 
class="el" href="classsinga_1_1Layer.html">singa::Layer</a></td><td 
class="entry"><span class="mlabel">inline</span><span 
class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>AddSrcLayer</b>(SLayer src) 
(defined in <a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a>)</td><td class="entry"><a 
class="el" href="classsinga_1_1Layer.html">singa::Layer</a></td><td 
class="entry"><span class="mlabel">inline</span><span 
class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>ClearDstLayers</b>() 
(defined in <a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a>)</td><td class="entry"><a 
class="el" href="classsinga_1_1Layer.html">singa::Layer</a></td><td 
class="entry"><span class="mlabel">inline</span><span 
class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>ClearSrcLayers</b>() (defined in 
<a class="el" href="classsinga_1_1Layer.html">singa::Layer</a>)</td><td 
class="entry"><a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a></td><td class="entry"><span 
class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" 
href="classsinga_1_1Layer.html#a11ef38d1bf31d054a96a1ac45fd49299">ComputeFeature</a>(bool
 training, const vector&lt; SLayer &gt; &amp;srclayers)=0</td><td 
class="entry"><a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a></td><td class="entry"><span 
class="mlabel">pure virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" 
href="classsinga_1_1Layer.html#af5d9b7aba92f5ead82872e5a70a1def0">ComputeFeature</a>(bool
 training)</td><td class="entry"><a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a></td><td class="entry"><span 
class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" 
href="classsinga_1_1Layer.html#a7eb4b3141896bff0d7c423a24308fd63">ComputeGradient</a>(const
 vector&lt; SLayer &gt; &amp;srclayers)=0</td><td class="entry"><a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a></td><td class="entry"><span 
class="mlabel">pure virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" 
href="classsinga_1_1Layer.html#a50591a153fbfe349d8d307781d19ebb5">ComputeGradient</a>()</td><td
 class="entry"><a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a></td><td class="entry"><span 
class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" 
href="classsinga_1_1Layer.html#a7e134c5b4a1a8e442626354d2d869caa">connection_type</a>(int
 k) const </td><td class="entry"><a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a></td><td class="entry"><span 
class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" 
href="classsinga_1_1Layer.html#ad443a1e7f957dad71fd0c9b356a53c20">data</a>(const
 Layer *from=nullptr) const </td><td class="entry"><a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a></td><td class="entry"><span 
class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>data_</b> (defined 
in <a class="el" href="classsinga_1_1Layer.html">singa::Layer</a>)</td><td 
class="entry"><a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a></td><td class="entry"><span 
class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" 
href="classsinga_1_1Layer.html#a2c5aeabbc26770bcff169dd907e9c737">dstlayers</a>()
 const </td><td class="entry"><a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a></td><td class="entry"><span 
class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>dstlayers_</b> 
(defined in <a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a>)</td><td class="entry"><a 
class="el" href="classsinga_1_1Layer.html">singa::Layer</a></td><td 
class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>dstlayers_size</b>() const  
(defined in <a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a>)</td><td class="entry"><a 
class="el" href="classsinga_1_1Layer.html">singa::Layer</a></td><td 
class="entry"><span class="mlabel">inline</span><span 
class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" 
href="classsinga_1_1Layer.html#aff0688e641c845aee9964a3d96172731">GetParams</a>()</td><td
 class="entry"><a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a></td><td class="entry"><span 
class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>grad</b>(const Layer 
*from=nullptr) const  (defined in <a class="el" 
href="classsinga_1_1LossLayer.html">singa::LossLayer</a>)</td><td 
class="entry"><a class="el" 
href="classsinga_1_1LossLayer.html">singa::LossLayer</a></td><td 
class="entry"><span class="mlabel">inline</span><span 
class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>grad_</b> (defined 
in <a class="el" href="classsinga_1_1Layer.html">singa::Layer</a>)</td><td 
class="entry"><a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a></td><td class="entry"><span 
class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" 
href="classsinga_1_1Layer.html#aeec3259af3b38227d4e3b3c5f5340573">Init</a>(const
 LayerProto &amp;proto)</td><td class="entry"><a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a></td><td class="entry"><span 
class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" 
href="classsinga_1_1Layer.html#abc49f57fad4091d99578512c9d24d436">Init</a>(const
 Layer &amp;other, const vector&lt; int &gt; &amp;shape)</td><td 
class="entry"><a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a></td><td 
class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>is_bridgedstlayer</b>() const  
(defined in <a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a>)</td><td class="entry"><a 
class="el" href="classsinga_1_1Layer.html">singa::Layer</a></td><td 
class="entry"><span class="mlabel">inline</span><span 
class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td 
class="entry"><b>is_bridgesrclayer</b>() const  (defined in <a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a>)</td><td class="entry"><a 
class="el" href="classsinga_1_1Layer.html">singa::Layer</a></td><td 
class="entry"><span class="mlabel">inline</span><span 
class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>is_datalayer</b>() const  
(defined in <a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a>)</td><td class="entry"><a 
class="el" href="classsinga_1_1Layer.html">singa::Layer</a></td><td 
class="entry"><span class="mlabel">inline</span><span 
class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>is_losslayer</b>() 
const  (defined in <a class="el" 
href="classsinga_1_1LossLayer.html">singa::LossLayer</a>)</td><td 
class="entry"><a class="el" 
href="classsinga_1_1LossLayer.html">singa::LossLayer</a></td><td 
class="entry"><span class="mlabel">inline</span><span 
class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>is_parserlayer</b>() const  
(defined in <a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a>)</td><td class="entry"><a 
class="el" href="classsinga_1_1Layer.html">singa::Layer</a></td><td 
class="entry"><span class="mlabel">inline</span><span 
class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Layer</b>() (defined 
in <a class="el" href="classsinga_1_1Layer.html">singa::Layer</a>)</td><td 
class="entry"><a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a></td><td class="entry"><span 
class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>layer_proto_</b> (defined in <a 
class="el" href="classsinga_1_1Layer.html">singa::Layer</a>)</td><td 
class="entry"><a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a></td><td class="entry"><span 
class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>locationid</b>() 
const  (defined in <a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a>)</td><td class="entry"><a 
class="el" href="classsinga_1_1Layer.html">singa::Layer</a></td><td 
class="entry"><span class="mlabel">inline</span><span 
class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>metric</b>() const  (defined in 
<a class="el" href="classsinga_1_1LossLayer.html">singa::LossLayer</a>)</td><td 
class="entry"><a class="el" 
href="classsinga_1_1LossLayer.html">singa::LossLayer</a></td><td 
class="entry"><span class="mlabel">inline</span><span 
class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>metric_</b> (defined 
in <a class="el" 
href="classsinga_1_1LossLayer.html">singa::LossLayer</a>)</td><td 
class="entry"><a class="el" 
href="classsinga_1_1LossLayer.html">singa::LossLayer</a></td><td 
class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>mutable_data</b>(const Layer 
*from=nullptr) (defined in <a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a>)</td><td class="entry"><a 
class="el" href="classsinga_1_1Layer.html">singa::Layer</a></td><td 
class="entry"><span class="mlabel">inline</span><span 
class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" 
href="classsinga_1_1LossLayer.html#aaedd08096c3e1f2bae5cccf75cdf3382">mutable_grad</a>(const
 Layer *layer=nullptr)</td><td class="entry"><a class="el" 
href="classsinga_1_1LossLayer.html">singa::LossLayer</a></td><td 
class="entry"><span class="mlabel">inline</span><span 
class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" 
href="classsinga_1_1Layer.html#abc76f037afc13a17ab07082cfae945de">name</a>() 
const </td><td class="entry"><a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a></td><td class="entry"><span 
class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>name_</b> (defined 
in <a class="el" href="classsinga_1_1Layer.html">singa::Layer</a>)</td><td 
class="entry"><a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a></td><td class="entry"><span 
class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>partitiionid</b>() const  
(defined in <a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a>)</td><td class="entry"><a 
class="el" href="classsinga_1_1Layer.html">singa::Layer</a></td><td 
class="entry"><span class="mlabel">inline</span><span 
class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" 
href="classsinga_1_1Layer.html#a12d268e424e4affada0d5b85ea6d2359">partition_dimension</a>()
 const </td><td class="entry"><a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a></td><td class="entry"><span 
class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" 
href="classsinga_1_1Layer.html#ab3c0e1047f36e2fb783a6fd3d4eabd73">partition_type</a>()
 const </td><td class="entry"><a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a></td><td class="entry"><span 
class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" 
href="classsinga_1_1Layer.html#addab6c99866d34001471f86aede7f6e8">set_locationid</a>(int
 id)</td><td class="entry"><a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a></td><td class="entry"><span 
class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>set_name</b>(string name) 
(defined in <a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a>)</td><td class="entry"><a 
class="el" href="classsinga_1_1Layer.html">singa::Layer</a></td><td 
class="entry"><span class="mlabel">inline</span><span 
class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" 
href="classsinga_1_1Layer.html#af177cc1bdfc8d57b6992855bf437ef9a">set_partitionid</a>(int
 id)</td><td class="entry"><a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a></td><td class="entry"><span 
class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" 
href="classsinga_1_1LossLayer.html#a16f16d5b289cb2d4bee9a9bee21e3b7c">Setup</a>(const
 LayerProto &amp;proto, const vector&lt; SLayer &gt; &amp;srclayers)=0</td><td 
class="entry"><a class="el" 
href="classsinga_1_1LossLayer.html">singa::LossLayer</a></td><td 
class="entry"><span class="mlabel">pure virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" 
href="classsinga_1_1Layer.html#ae691995f08f16d01739f98b6d9bd0335">singa::Layer::Setup</a>()</td><td
 class="entry"><a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a></td><td class="entry"><span 
class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" 
href="classsinga_1_1LossLayer.html#adefb43c93a024c3b7fc558abc291dc49">SetupAfterPartition</a>(const
 LayerProto &amp;proto, const vector&lt; int &gt; &amp;shape, const vector&lt; 
SLayer &gt; &amp;srclayers)=0</td><td class="entry"><a class="el" 
href="classsinga_1_1LossLayer.html">singa::LossLayer</a></td><td 
class="entry"><span class="mlabel">pure virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" 
href="classsinga_1_1Layer.html#a50fbb59219c1eeb5559431e1719e1f97">singa::Layer::SetupAfterPartition</a>()</td><td
 class="entry"><a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a></td><td class="entry"><span 
class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>shape</b>(const Layer 
*layer=nullptr) const  (defined in <a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a>)</td><td class="entry"><a 
class="el" href="classsinga_1_1Layer.html">singa::Layer</a></td><td 
class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" 
href="classsinga_1_1Layer.html#a836817f842419098c53fff371ae8fc80">srclayers</a>()
 const </td><td class="entry"><a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a></td><td class="entry"><span 
class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>srclayers_</b> (defined in <a 
class="el" href="classsinga_1_1Layer.html">singa::Layer</a>)</td><td 
class="entry"><a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a></td><td class="entry"><span 
class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>srclayers_size</b>() 
const  (defined in <a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a>)</td><td class="entry"><a 
class="el" href="classsinga_1_1Layer.html">singa::Layer</a></td><td 
class="entry"><span class="mlabel">inline</span><span 
class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" 
href="classsinga_1_1Layer.html#aa029c17a260a114802c46d9faa347b7f">ToProto</a>(LayerProto
 *layer_proto, bool copyData)</td><td class="entry"><a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a></td><td class="entry"><span 
class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>type</b>() const  
(defined in <a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a>)</td><td class="entry"><a 
class="el" href="classsinga_1_1Layer.html">singa::Layer</a></td><td 
class="entry"><span class="mlabel">inline</span><span 
class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>~Layer</b>() (defined in <a 
class="el" href="classsinga_1_1Layer.html">singa::Layer</a>)</td><td 
class="entry"><a class="el" 
href="classsinga_1_1Layer.html">singa::Layer</a></td><td class="entry"><span 
class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Thu May 7 2015 17:15:41 for Apache SINGA by &#160;<a 
href="http://www.doxygen.org/index.html";>
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>

Reply via email to