You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@singa.apache.org by wa...@apache.org on 2015/05/07 15:07:58 UTC

[34/57] [partial] incubator-singa git commit: create github pages

http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/666a841d/api/classsinga_1_1ConvolutionLayer-members.html
----------------------------------------------------------------------
diff --git a/api/classsinga_1_1ConvolutionLayer-members.html b/api/classsinga_1_1ConvolutionLayer-members.html
new file mode 100644
index 0000000..bc3f898
--- /dev/null
+++ b/api/classsinga_1_1ConvolutionLayer-members.html
@@ -0,0 +1,172 @@
+<!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_1ConvolutionLayer.html">ConvolutionLayer</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">singa::ConvolutionLayer Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classsinga_1_1ConvolutionLayer.html">singa::ConvolutionLayer</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>batchsize_</b> (defined in <a class="el" href="classsinga_1_1ConvolutionLayer.html">singa::ConvolutionLayer</a>)</td><td class="entry"><a class="el" href="classsinga_1_1ConvolutionLayer.html">singa::ConvolutionLayer</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>bias_</b> (defined in <a class="el" href="classsinga_1_1ConvolutionLayer.html">singa::ConvolutionLayer</a>)</td><td class="entry"><a class="el" href="classsinga_1_1ConvolutionLayer.html">singa::ConvolutionLayer</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>channels_</b> (defined in <a class="el" href="classsinga_1_1ConvolutionLayer.html">singa::ConvolutionLayer</a>)</td><td class="entry"><a class="el" href="classsinga_1_1ConvolutionLayer.html">singa::ConvolutionLayer</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0"><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" class="even"><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 bgcolor="#f0f0f0"><td class="entry"><b>col_data_</b> (defined in <a class="el" href="classsinga_1_1ConvolutionLayer.html">singa::ConvolutionLayer</a>)</td><td class="entry"><a class="el" href="classsinga_1_1ConvolutionLayer.html">singa::ConvolutionLayer</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>col_grad_</b> (defined in <a class="el" href="classsinga_1_1ConvolutionLayer.html">singa::ConvolutionLayer</a>)</td><td class="entry"><a class="el" href="classsinga_1_1ConvolutionLayer.html">singa::ConvolutionLayer</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>col_height_</b> (defined in <a class="el" href="classsinga_1_1ConvolutionLayer.html">singa::ConvolutionLayer</a>)</td><td class="entry"><a class="el" href="classsinga_1_1ConvolutionLayer.html">singa::ConvolutionLayer</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>col_width_</b> (defined in <a class="el" href="classsinga_1_1ConvolutionLayer.html">singa::ConvolutionLayer</a>)</td><td class="entry"><a class="el" href="classsinga_1_1ConvolutionLayer.html">singa::ConvolutionLayer</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>ComputeFeature</b>(bool training, const vector&lt; shared_ptr&lt; Layer &gt;&gt; &amp;srclayers) (defined in <a class="el" href="classsinga_1_1ConvolutionLayer.html">singa::ConvolutionLayer</a>)</td><td class="entry"><a class="el" href="classsinga_1_1ConvolutionLayer.html">singa::ConvolutionLayer</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#a11ef38d1bf31d054a96a1ac45fd49299">singa::Layer::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">singa::Layer::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 bgcolor="#f0f0f0" class="even"><td class="entry"><b>ComputeGradient</b>(const vector&lt; shared_ptr&lt; Layer &gt;&gt; &amp;srclayers) (defined in <a class="el" href="classsinga_1_1ConvolutionLayer.html">singa::ConvolutionLayer</a>)</td><td class="entry"><a class="el" href="classsinga_1_1ConvolutionLayer.html">singa::ConvolutionLayer</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classsinga_1_1Layer.html#a7eb4b3141896bff0d7c423a24308fd63">singa::Layer::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 class="even"><td class="entry"><a class="el" href="classsinga_1_1Layer.html#a50591a153fbfe349d8d307781d19ebb5">singa::Layer::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><td class="entry"><a class="el" href="classsinga_1_1ConvolutionLayer.html#a2d02f88e6500f44a2df338ff23773709">connection_type</a>(int k) const </td><td class="entry"><a class="el" href="classsinga_1_1ConvolutionLayer.html">singa::ConvolutionLayer</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>conv_height_</b> (defined in <a class="el" href="classsinga_1_1ConvolutionLayer.html">singa::ConvolutionLayer</a>)</td><td class="entry"><a class="el" href="classsinga_1_1ConvolutionLayer.html">singa::ConvolutionLayer</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>conv_width_</b> (defined in <a class="el" href="classsinga_1_1ConvolutionLayer.html">singa::ConvolutionLayer</a>)</td><td class="entry"><a class="el" href="classsinga_1_1ConvolutionLayer.html">singa::ConvolutionLayer</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><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"><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 class="even"><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"><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" class="even"><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><td class="entry"><a class="el" href="classsinga_1_1ConvolutionLayer.html#aa66cf441e0f6cd315113db2e09299a5b">GetParams</a>()</td><td class="entry"><a class="el" href="classsinga_1_1ConvolutionLayer.html">singa::ConvolutionLayer</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>(const Layer *from=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><span class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0"><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 bgcolor="#f0f0f0" class="even"><td class="entry"><b>height_</b> (defined in <a class="el" href="classsinga_1_1ConvolutionLayer.html">singa::ConvolutionLayer</a>)</td><td class="entry"><a class="el" href="classsinga_1_1ConvolutionLayer.html">singa::ConvolutionLayer</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_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_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>kernel_</b> (defined in <a class="el" href="classsinga_1_1ConvolutionLayer.html">singa::ConvolutionLayer</a>)</td><td class="entry"><a class="el" href="classsinga_1_1ConvolutionLayer.html">singa::ConvolutionLayer</a></td><td class="entry"><span class="mlabel">protected</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></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><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"><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" class="even"><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><td class="entry"><a class="el" href="classsinga_1_1Layer.html#ad4936117ef7d58193726a966f796fafc">mutable_grad</a>(const Layer *from=nullptr)</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#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"><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" class="even"><td class="entry"><b>num_filters_</b> (defined in <a class="el" href="classsinga_1_1ConvolutionLayer.html">singa::ConvolutionLayer</a>)</td><td class="entry"><a class="el" href="classsinga_1_1ConvolutionLayer.html">singa::ConvolutionLayer</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>pad_</b> (defined in <a class="el" href="classsinga_1_1ConvolutionLayer.html">singa::ConvolutionLayer</a>)</td><td class="entry"><a class="el" href="classsinga_1_1ConvolutionLayer.html">singa::ConvolutionLayer</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><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><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 class="even"><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><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" class="even"><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><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 class="even"><td class="entry"><a class="el" href="classsinga_1_1ConvolutionLayer.html#a4d942e8244380cc6f8471cfa5ffb933e">Setup</a>(const LayerProto &amp;proto, const vector&lt; SLayer &gt; &amp;srclayers)</td><td class="entry"><a class="el" href="classsinga_1_1ConvolutionLayer.html">singa::ConvolutionLayer</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><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 class="even"><td class="entry"><a class="el" href="classsinga_1_1ConvolutionLayer.html#a59cbc71b6a48e4dee7c87170161370f9">SetupAfterPartition</a>(const LayerProto &amp;proto, const vector&lt; int &gt; &amp;shape, const vector&lt; SLayer &gt; &amp;srclayers)</td><td class="entry"><a class="el" href="classsinga_1_1ConvolutionLayer.html">singa::ConvolutionLayer</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><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" class="even"><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><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" class="even"><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"><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 bgcolor="#f0f0f0" class="even"><td class="entry"><b>stride_</b> (defined in <a class="el" href="classsinga_1_1ConvolutionLayer.html">singa::ConvolutionLayer</a>)</td><td class="entry"><a class="el" href="classsinga_1_1ConvolutionLayer.html">singa::ConvolutionLayer</a></td><td class="entry"><span class="mlabel">protected</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>weight_</b> (defined in <a class="el" href="classsinga_1_1ConvolutionLayer.html">singa::ConvolutionLayer</a>)</td><td class="entry"><a class="el" href="classsinga_1_1ConvolutionLayer.html">singa::ConvolutionLayer</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>width_</b> (defined in <a class="el" href="classsinga_1_1ConvolutionLayer.html">singa::ConvolutionLayer</a>)</td><td class="entry"><a class="el" href="classsinga_1_1ConvolutionLayer.html">singa::ConvolutionLayer</a></td><td class="entry"><span class="mlabel">protected</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:42 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_1ConvolutionLayer.html
----------------------------------------------------------------------
diff --git a/api/classsinga_1_1ConvolutionLayer.html b/api/classsinga_1_1ConvolutionLayer.html
new file mode 100644
index 0000000..ee9e92f
--- /dev/null
+++ b/api/classsinga_1_1ConvolutionLayer.html
@@ -0,0 +1,438 @@
+<!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::ConvolutionLayer 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_1ConvolutionLayer.html">ConvolutionLayer</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_1ConvolutionLayer-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">singa::ConvolutionLayer Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Convolution layer.  
+ <a href="classsinga_1_1ConvolutionLayer.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="layer_8h_source.html">layer.h</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for singa::ConvolutionLayer:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="classsinga_1_1ConvolutionLayer.png" usemap="#singa::ConvolutionLayer_map" alt=""/>
+  <map id="singa::ConvolutionLayer_map" name="singa::ConvolutionLayer_map">
+<area href="classsinga_1_1Layer.html" title="Base layer class. " alt="singa::Layer" shape="rect" coords="0,0,148,24"/>
+</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:a4d942e8244380cc6f8471cfa5ffb933e"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsinga_1_1ConvolutionLayer.html#a4d942e8244380cc6f8471cfa5ffb933e">Setup</a> (const LayerProto &amp;proto, const vector&lt; SLayer &gt; &amp;<a class="el" href="classsinga_1_1Layer.html#a836817f842419098c53fff371ae8fc80">srclayers</a>)</td></tr>
+<tr class="memdesc:a4d942e8244380cc6f8471cfa5ffb933e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Setup layer properties.  <a href="#a4d942e8244380cc6f8471cfa5ffb933e">More...</a><br/></td></tr>
+<tr class="separator:a4d942e8244380cc6f8471cfa5ffb933e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a59cbc71b6a48e4dee7c87170161370f9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a59cbc71b6a48e4dee7c87170161370f9"></a>
+virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsinga_1_1ConvolutionLayer.html#a59cbc71b6a48e4dee7c87170161370f9">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>)</td></tr>
+<tr class="memdesc:a59cbc71b6a48e4dee7c87170161370f9"><td class="mdescLeft">&#160;</td><td class="mdescRight">need to reset some properties (e.g., weight matrix) according to shapes (after partition, e.g., partition is done against channel dimension) <br/></td></tr>
+<tr class="separator:a59cbc71b6a48e4dee7c87170161370f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9b2e03c58b814b7418246b110839c363"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9b2e03c58b814b7418246b110839c363"></a>
+virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>ComputeFeature</b> (bool training, const vector&lt; shared_ptr&lt; <a class="el" href="classsinga_1_1Layer.html">Layer</a> &gt;&gt; &amp;<a class="el" href="classsinga_1_1Layer.html#a836817f842419098c53fff371ae8fc80">srclayers</a>)</td></tr>
+<tr class="separator:a9b2e03c58b814b7418246b110839c363"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4d3a73c293dc9c2caab6949a0fd579ee"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4d3a73c293dc9c2caab6949a0fd579ee"></a>
+virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>ComputeGradient</b> (const vector&lt; shared_ptr&lt; <a class="el" href="classsinga_1_1Layer.html">Layer</a> &gt;&gt; &amp;<a class="el" href="classsinga_1_1Layer.html#a836817f842419098c53fff371ae8fc80">srclayers</a>)</td></tr>
+<tr class="separator:a4d3a73c293dc9c2caab6949a0fd579ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa66cf441e0f6cd315113db2e09299a5b"><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_1ConvolutionLayer.html#aa66cf441e0f6cd315113db2e09299a5b">GetParams</a> ()</td></tr>
+<tr class="memdesc:aa66cf441e0f6cd315113db2e09299a5b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Layers that have paramters must overload this function.  <a href="#aa66cf441e0f6cd315113db2e09299a5b">More...</a><br/></td></tr>
+<tr class="separator:aa66cf441e0f6cd315113db2e09299a5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2d02f88e6500f44a2df338ff23773709"><td class="memItemLeft" align="right" valign="top">virtual ConnectionType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsinga_1_1ConvolutionLayer.html#a2d02f88e6500f44a2df338ff23773709">connection_type</a> (int k) const </td></tr>
+<tr class="memdesc:a2d02f88e6500f44a2df338ff23773709"><td class="mdescLeft">&#160;</td><td class="mdescRight">return connection type between two layers.  <a href="#a2d02f88e6500f44a2df338ff23773709">More...</a><br/></td></tr>
+<tr class="separator:a2d02f88e6500f44a2df338ff23773709"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classsinga_1_1Layer"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classsinga_1_1Layer')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classsinga_1_1Layer.html">singa::Layer</a></td></tr>
+<tr class="memitem:aeec3259af3b38227d4e3b3c5f5340573 inherit pub_methods_classsinga_1_1Layer"><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 inherit pub_methods_classsinga_1_1Layer"><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 inherit pub_methods_classsinga_1_1Layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abc49f57fad4091d99578512c9d24d436 inherit pub_methods_classsinga_1_1Layer"><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 inherit pub_methods_classsinga_1_1Layer"><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 inherit pub_methods_classsinga_1_1Layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa029c17a260a114802c46d9faa347b7f inherit pub_methods_classsinga_1_1Layer"><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 inherit pub_methods_classsinga_1_1Layer"><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 inherit pub_methods_classsinga_1_1Layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae691995f08f16d01739f98b6d9bd0335 inherit pub_methods_classsinga_1_1Layer"><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 inherit pub_methods_classsinga_1_1Layer"><td class="mdescLeft">&#160;</td><td class="mdescRight">Setup layer properties.  <a href="#ae691995f08f16d01739f98b6d9bd0335">More...</a><br/></td></tr>
+<tr class="separator:ae691995f08f16d01739f98b6d9bd0335 inherit pub_methods_classsinga_1_1Layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a50fbb59219c1eeb5559431e1719e1f97 inherit pub_methods_classsinga_1_1Layer"><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 inherit pub_methods_classsinga_1_1Layer"><td class="mdescLeft">&#160;</td><td class="mdescRight">Setup the layer properties except shape. <br/></td></tr>
+<tr class="separator:a50fbb59219c1eeb5559431e1719e1f97 inherit pub_methods_classsinga_1_1Layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a11ef38d1bf31d054a96a1ac45fd49299 inherit pub_methods_classsinga_1_1Layer"><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 inherit pub_methods_classsinga_1_1Layer"><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 inherit pub_methods_classsinga_1_1Layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af5d9b7aba92f5ead82872e5a70a1def0 inherit pub_methods_classsinga_1_1Layer"><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 inherit pub_methods_classsinga_1_1Layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7eb4b3141896bff0d7c423a24308fd63 inherit pub_methods_classsinga_1_1Layer"><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 inherit pub_methods_classsinga_1_1Layer"><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 inherit pub_methods_classsinga_1_1Layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a50591a153fbfe349d8d307781d19ebb5 inherit pub_methods_classsinga_1_1Layer"><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 inherit pub_methods_classsinga_1_1Layer"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute gradients for parameters and connecting layers. <br/></td></tr>
+<tr class="separator:a50591a153fbfe349d8d307781d19ebb5 inherit pub_methods_classsinga_1_1Layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a12d268e424e4affada0d5b85ea6d2359 inherit pub_methods_classsinga_1_1Layer"><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 inherit pub_methods_classsinga_1_1Layer"><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 inherit pub_methods_classsinga_1_1Layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab3c0e1047f36e2fb783a6fd3d4eabd73 inherit pub_methods_classsinga_1_1Layer"><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 inherit pub_methods_classsinga_1_1Layer"><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 inherit pub_methods_classsinga_1_1Layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:addab6c99866d34001471f86aede7f6e8 inherit pub_methods_classsinga_1_1Layer"><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 inherit pub_methods_classsinga_1_1Layer"><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 inherit pub_methods_classsinga_1_1Layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af3170517c202d998fec1f20b97e6a881 inherit pub_methods_classsinga_1_1Layer"><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 inherit pub_methods_classsinga_1_1Layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af177cc1bdfc8d57b6992855bf437ef9a inherit pub_methods_classsinga_1_1Layer"><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 inherit pub_methods_classsinga_1_1Layer"><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 inherit pub_methods_classsinga_1_1Layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad7f7ec42c3d8086370d9fbdfaa57fe7a inherit pub_methods_classsinga_1_1Layer"><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 inherit pub_methods_classsinga_1_1Layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abc01aee87088c70cedadfe54f60d78c7 inherit pub_methods_classsinga_1_1Layer"><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 inherit pub_methods_classsinga_1_1Layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a50478bdb3fdeb8272d0f693134e5064e inherit pub_methods_classsinga_1_1Layer"><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 inherit pub_methods_classsinga_1_1Layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abc76f037afc13a17ab07082cfae945de inherit pub_methods_classsinga_1_1Layer"><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 inherit pub_methods_classsinga_1_1Layer"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return name of this layer. <br/></td></tr>
+<tr class="separator:abc76f037afc13a17ab07082cfae945de inherit pub_methods_classsinga_1_1Layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9c693432b440fdf2078f6d9921ba394f inherit pub_methods_classsinga_1_1Layer"><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 inherit pub_methods_classsinga_1_1Layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad443a1e7f957dad71fd0c9b356a53c20 inherit pub_methods_classsinga_1_1Layer"><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 inherit pub_methods_classsinga_1_1Layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab62f26448810b04d35e892ce013feac8 inherit pub_methods_classsinga_1_1Layer"><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 inherit pub_methods_classsinga_1_1Layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae53f8fe14b76f423e7d79d2bda36523a inherit pub_methods_classsinga_1_1Layer"><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 inherit pub_methods_classsinga_1_1Layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad4936117ef7d58193726a966f796fafc inherit pub_methods_classsinga_1_1Layer"><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 inherit pub_methods_classsinga_1_1Layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a836817f842419098c53fff371ae8fc80 inherit pub_methods_classsinga_1_1Layer"><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 inherit pub_methods_classsinga_1_1Layer"><td class="mdescLeft">&#160;</td><td class="mdescRight">return LayerS that connected to this layer <br/></td></tr>
+<tr class="separator:a836817f842419098c53fff371ae8fc80 inherit pub_methods_classsinga_1_1Layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2c5aeabbc26770bcff169dd907e9c737 inherit pub_methods_classsinga_1_1Layer"><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 inherit pub_methods_classsinga_1_1Layer"><td class="mdescLeft">&#160;</td><td class="mdescRight">return LayerS that this layer connected to <br/></td></tr>
+<tr class="separator:a2c5aeabbc26770bcff169dd907e9c737 inherit pub_methods_classsinga_1_1Layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a944081b99606ba317932bd9994b6fee3 inherit pub_methods_classsinga_1_1Layer"><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 inherit pub_methods_classsinga_1_1Layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9ebebda5c30c10648c3f1c4af38f49c4 inherit pub_methods_classsinga_1_1Layer"><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 inherit pub_methods_classsinga_1_1Layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae8fe0fc86daa0d8092257aecbd7662d3 inherit pub_methods_classsinga_1_1Layer"><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 inherit pub_methods_classsinga_1_1Layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a089f56583f89f9b4c02acc8b1664b948 inherit pub_methods_classsinga_1_1Layer"><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 inherit pub_methods_classsinga_1_1Layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aac3f866084459be028a0f2f931016d33 inherit pub_methods_classsinga_1_1Layer"><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 inherit pub_methods_classsinga_1_1Layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a13a01a39dbcd89c752202cbcbb53c36e inherit pub_methods_classsinga_1_1Layer"><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 inherit pub_methods_classsinga_1_1Layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aad61de583fe620672dc76963173ab248 inherit pub_methods_classsinga_1_1Layer"><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 inherit pub_methods_classsinga_1_1Layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3d6c46c2c9e4e0fab3b66b4dae1cb9bc inherit pub_methods_classsinga_1_1Layer"><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 inherit pub_methods_classsinga_1_1Layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8ab4edffdb3cb2a30b70116e725c6246 inherit pub_methods_classsinga_1_1Layer"><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 inherit pub_methods_classsinga_1_1Layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1927b5a9b362e5839471e481f07f8088 inherit pub_methods_classsinga_1_1Layer"><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 inherit pub_methods_classsinga_1_1Layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a140a45def081bfb1be4877ff4091c87e inherit pub_methods_classsinga_1_1Layer"><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 inherit pub_methods_classsinga_1_1Layer"><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:a3a707c6a7b1a4b4b8c9bea0814ecb7f9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3a707c6a7b1a4b4b8c9bea0814ecb7f9"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><b>kernel_</b></td></tr>
+<tr class="separator:a3a707c6a7b1a4b4b8c9bea0814ecb7f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a736e7b68d76defefb7ae84249273f0a8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a736e7b68d76defefb7ae84249273f0a8"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><b>pad_</b></td></tr>
+<tr class="separator:a736e7b68d76defefb7ae84249273f0a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0a2fdf4d35fef55051b2781b9d6af7ba"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0a2fdf4d35fef55051b2781b9d6af7ba"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><b>stride_</b></td></tr>
+<tr class="separator:a0a2fdf4d35fef55051b2781b9d6af7ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac4d30225f5ca195a5238a458b6daae26"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac4d30225f5ca195a5238a458b6daae26"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><b>batchsize_</b></td></tr>
+<tr class="separator:ac4d30225f5ca195a5238a458b6daae26"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab2232285dff2965d4c6523840c3af9a9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab2232285dff2965d4c6523840c3af9a9"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><b>channels_</b></td></tr>
+<tr class="separator:ab2232285dff2965d4c6523840c3af9a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a94efc0191aaed94787525a236ccbaa2b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a94efc0191aaed94787525a236ccbaa2b"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><b>height_</b></td></tr>
+<tr class="separator:a94efc0191aaed94787525a236ccbaa2b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a150d6cd1b2320006b95ecfc334dcd9cc"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a150d6cd1b2320006b95ecfc334dcd9cc"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><b>width_</b></td></tr>
+<tr class="separator:a150d6cd1b2320006b95ecfc334dcd9cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a286a083b4f13e80cadc1691ff4a72dad"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a286a083b4f13e80cadc1691ff4a72dad"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><b>col_height_</b></td></tr>
+<tr class="separator:a286a083b4f13e80cadc1691ff4a72dad"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7c1fd103576bcb8411cd0e7efdcc1c85"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7c1fd103576bcb8411cd0e7efdcc1c85"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><b>col_width_</b></td></tr>
+<tr class="separator:a7c1fd103576bcb8411cd0e7efdcc1c85"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad3b78a3b641c8a171b933179f7e41b8b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad3b78a3b641c8a171b933179f7e41b8b"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><b>conv_height_</b></td></tr>
+<tr class="separator:ad3b78a3b641c8a171b933179f7e41b8b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4c22ee11d87ac03a4111502182da975d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4c22ee11d87ac03a4111502182da975d"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><b>conv_width_</b></td></tr>
+<tr class="separator:a4c22ee11d87ac03a4111502182da975d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af7206cbd9fb0a40d406df2c08322a074"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af7206cbd9fb0a40d406df2c08322a074"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><b>num_filters_</b></td></tr>
+<tr class="separator:af7206cbd9fb0a40d406df2c08322a074"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad76627325a494c99956ab60638d9897a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad76627325a494c99956ab60638d9897a"></a>
+shared_ptr&lt; <a class="el" href="classsinga_1_1Param.html">Param</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>weight_</b></td></tr>
+<tr class="separator:ad76627325a494c99956ab60638d9897a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a411b82716c7d0dd6de4c8fb9726cff3d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a411b82716c7d0dd6de4c8fb9726cff3d"></a>
+shared_ptr&lt; <a class="el" href="classsinga_1_1Param.html">Param</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>bias_</b></td></tr>
+<tr class="separator:a411b82716c7d0dd6de4c8fb9726cff3d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac3a4a95cd444a1479ef858e1711c9f98"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac3a4a95cd444a1479ef858e1711c9f98"></a>
+<a class="el" href="classBlob.html">Blob</a>&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>col_data_</b></td></tr>
+<tr class="separator:ac3a4a95cd444a1479ef858e1711c9f98"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a60bf9c1cb65977a03161b6f7c46c5983"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a60bf9c1cb65977a03161b6f7c46c5983"></a>
+<a class="el" href="classBlob.html">Blob</a>&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>col_grad_</b></td></tr>
+<tr class="separator:a60bf9c1cb65977a03161b6f7c46c5983"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_attribs_classsinga_1_1Layer"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classsinga_1_1Layer')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classsinga_1_1Layer.html">singa::Layer</a></td></tr>
+<tr class="memitem:a9307fe49ca9fa70a77f00e262e51b58e inherit pro_attribs_classsinga_1_1Layer"><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 inherit pro_attribs_classsinga_1_1Layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6244f7e610e5a4add1c827415f5430fb inherit pro_attribs_classsinga_1_1Layer"><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 inherit pro_attribs_classsinga_1_1Layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a455a662d1be46a83ac5a42705b77e717 inherit pro_attribs_classsinga_1_1Layer"><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 inherit pro_attribs_classsinga_1_1Layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a528fc84a4714528fa0419e01d6bba5b1 inherit pro_attribs_classsinga_1_1Layer"><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 inherit pro_attribs_classsinga_1_1Layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a31f4a6569d9531304e5c0c3b1bdacda9 inherit pro_attribs_classsinga_1_1Layer"><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 inherit pro_attribs_classsinga_1_1Layer"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a755a464d39e139aa161e03be77810101 inherit pro_attribs_classsinga_1_1Layer"><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 inherit pro_attribs_classsinga_1_1Layer"><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>Convolution layer. </p>
+</div><h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="a2d02f88e6500f44a2df338ff23773709"></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::ConvolutionLayer::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 from <a class="el" href="classsinga_1_1Layer.html#a7e134c5b4a1a8e442626354d2d869caa">singa::Layer</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa66cf441e0f6cd315113db2e09299a5b"></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::ConvolutionLayer::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 from <a class="el" href="classsinga_1_1Layer.html#aff0688e641c845aee9964a3d96172731">singa::Layer</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a4d942e8244380cc6f8471cfa5ffb933e"></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::ConvolutionLayer::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">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>Implements <a class="el" href="classsinga_1_1Layer.html#aecbe8ed0ff294e40586678cef474ca42">singa::Layer</a>.</p>
+
+</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="layer_8h_source.html">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:42 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_1ConvolutionLayer.png
----------------------------------------------------------------------
diff --git a/api/classsinga_1_1ConvolutionLayer.png b/api/classsinga_1_1ConvolutionLayer.png
new file mode 100644
index 0000000..741643e
Binary files /dev/null and b/api/classsinga_1_1ConvolutionLayer.png differ