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:44 UTC

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

http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/666a841d/api/classsinga_1_1ParserLayer-members.html
----------------------------------------------------------------------
diff --git a/api/classsinga_1_1ParserLayer-members.html b/api/classsinga_1_1ParserLayer-members.html
new file mode 100644
index 0000000..1469e84
--- /dev/null
+++ b/api/classsinga_1_1ParserLayer-members.html
@@ -0,0 +1,157 @@
+<!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_1ParserLayer.html">ParserLayer</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">singa::ParserLayer Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classsinga_1_1ParserLayer.html">singa::ParserLayer</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_1ParserLayer.html#a346797e377211251ae5c268fca093c50">ComputeFeature</a>(bool training, const vector&lt; SLayer &gt; &amp;srclayers)</td><td class="entry"><a class="el" href="classsinga_1_1ParserLayer.html">singa::ParserLayer</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#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 class="even"><td class="entry"><a class="el" href="classsinga_1_1ParserLayer.html#afe2b6dd37ea96e7039ed24e93b28899b">ComputeGradient</a>(const vector&lt; SLayer &gt; &amp;srclayers)</td><td class="entry"><a class="el" href="classsinga_1_1ParserLayer.html">singa::ParserLayer</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#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 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_1ParserLayer.html">singa::ParserLayer</a>)</td><td class="entry"><a class="el" href="classsinga_1_1ParserLayer.html">singa::ParserLayer</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_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_1ParserLayer.html">singa::ParserLayer</a>)</td><td class="entry"><a class="el" href="classsinga_1_1ParserLayer.html">singa::ParserLayer</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>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_1ParserLayer.html#a4ee00445771065cc4bf569003a33e796">mutable_grad</a>(const Layer *layer=nullptr)</td><td class="entry"><a class="el" href="classsinga_1_1ParserLayer.html">singa::ParserLayer</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><td class="entry"><a class="el" href="classsinga_1_1ParserLayer.html#a9cca75c5b4b4b6aec618d694b008c02b">ParseRecords</a>(bool training, const vector&lt; Record &gt; &amp;records, Blob&lt; float &gt; *blob)=0</td><td class="entry"><a class="el" href="classsinga_1_1ParserLayer.html">singa::ParserLayer</a></td><td class="entry"><span class="mlabel">pure virtual</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_1ParserLayer.html#a67d78cafced1950980b54b0b6e302e87">partition_type</a>() const </td><td class="entry"><a class="el" href="classsinga_1_1ParserLayer.html">singa::ParserLayer</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_1ParserLayer.html#a617f1a2b0e7adfc0266e6fb3c0b1259b">Prefetching</a>(bool training)</td><td class="entry"><a class="el" href="classsinga_1_1ParserLayer.html">singa::ParserLayer</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#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_1ParserLayer.html#ade2d822132b5bd7eba1fcd2fa605ee5c">set_prefetch</a>(bool prefetch)</td><td class="entry"><a class="el" href="classsinga_1_1ParserLayer.html">singa::ParserLayer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classsinga_1_1ParserLayer.html#a2c6328bfd198d28854c61392dde05882">Setup</a>(const LayerProto &amp;proto, const vector&lt; SLayer &gt; &amp;srclayers)=0</td><td class="entry"><a class="el" href="classsinga_1_1ParserLayer.html">singa::ParserLayer</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classsinga_1_1ParserLayer.html#ad01d938a87aba0c7a6f8ccf0139bde4c">Setup</a>()</td><td class="entry"><a class="el" href="classsinga_1_1ParserLayer.html">singa::ParserLayer</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_1ParserLayer.html#abb1e22e31cb2cd0f09c40227ec7fd8c3">SetupAfterPartition</a>()</td><td class="entry"><a class="el" href="classsinga_1_1ParserLayer.html">singa::ParserLayer</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_1ParserLayer.html#a1340b2cf693aa48d823d12228900556b">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_1ParserLayer.html">singa::ParserLayer</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>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 class="even"><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"><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" 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><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>

http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/666a841d/api/classsinga_1_1ParserLayer.html
----------------------------------------------------------------------
diff --git a/api/classsinga_1_1ParserLayer.html b/api/classsinga_1_1ParserLayer.html
new file mode 100644
index 0000000..72595c7
--- /dev/null
+++ b/api/classsinga_1_1ParserLayer.html
@@ -0,0 +1,620 @@
+<!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::ParserLayer 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_1ParserLayer.html">ParserLayer</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="classsinga_1_1ParserLayer-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">singa::ParserLayer Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>parse the input records into Blobs.  
+ <a href="classsinga_1_1ParserLayer.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::ParserLayer:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="classsinga_1_1ParserLayer.png" usemap="#singa::ParserLayer_map" alt=""/>
+  <map id="singa::ParserLayer_map" name="singa::ParserLayer_map">
+<area href="classsinga_1_1Layer.html" title="Base layer class. " alt="singa::Layer" shape="rect" coords="154,0,298,24"/>
+<area href="classsinga_1_1LabelLayer.html" alt="singa::LabelLayer" shape="rect" coords="0,112,144,136"/>
+<area href="classsinga_1_1MnistImageLayer.html" alt="singa::MnistImageLayer" shape="rect" coords="154,112,298,136"/>
+<area href="classsinga_1_1RGBImageLayer.html" alt="singa::RGBImageLayer" shape="rect" coords="308,112,452,136"/>
+</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:a2c6328bfd198d28854c61392dde05882"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsinga_1_1ParserLayer.html#a2c6328bfd198d28854c61392dde05882">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:a2c6328bfd198d28854c61392dde05882"><td class="mdescLeft">&#160;</td><td class="mdescRight">Setup layer properties.  <a href="#a2c6328bfd198d28854c61392dde05882">More...</a><br/></td></tr>
+<tr class="separator:a2c6328bfd198d28854c61392dde05882"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9cca75c5b4b4b6aec618d694b008c02b"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsinga_1_1ParserLayer.html#a9cca75c5b4b4b6aec618d694b008c02b">ParseRecords</a> (bool training, const vector&lt; Record &gt; &amp;records, <a class="el" href="classBlob.html">Blob</a>&lt; float &gt; *blob)=0</td></tr>
+<tr class="memdesc:a9cca75c5b4b4b6aec618d694b008c02b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Parse records from <a class="el" href="classsinga_1_1DataLayer.html" title="base layer for prefetching records from local Shard, HDFS, lmdb, etc. ">DataLayer</a> into blob.  <a href="#a9cca75c5b4b4b6aec618d694b008c02b">More...</a><br/></td></tr>
+<tr class="separator:a9cca75c5b4b4b6aec618d694b008c02b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad87377303fd7e97ed5b2dbac20b2843a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad87377303fd7e97ed5b2dbac20b2843a"></a>
+virtual bool&#160;</td><td class="memItemRight" valign="bottom"><b>is_parserlayer</b> () const </td></tr>
+<tr class="separator:ad87377303fd7e97ed5b2dbac20b2843a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afe2b6dd37ea96e7039ed24e93b28899b"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsinga_1_1ParserLayer.html#afe2b6dd37ea96e7039ed24e93b28899b">ComputeGradient</a> (const vector&lt; SLayer &gt; &amp;<a class="el" href="classsinga_1_1Layer.html#a836817f842419098c53fff371ae8fc80">srclayers</a>)</td></tr>
+<tr class="memdesc:afe2b6dd37ea96e7039ed24e93b28899b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dummy function.  <a href="#afe2b6dd37ea96e7039ed24e93b28899b">More...</a><br/></td></tr>
+<tr class="separator:afe2b6dd37ea96e7039ed24e93b28899b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad01d938a87aba0c7a6f8ccf0139bde4c"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsinga_1_1ParserLayer.html#ad01d938a87aba0c7a6f8ccf0139bde4c">Setup</a> ()</td></tr>
+<tr class="memdesc:ad01d938a87aba0c7a6f8ccf0139bde4c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Setup layer properties.  <a href="#ad01d938a87aba0c7a6f8ccf0139bde4c">More...</a><br/></td></tr>
+<tr class="separator:ad01d938a87aba0c7a6f8ccf0139bde4c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abb1e22e31cb2cd0f09c40227ec7fd8c3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abb1e22e31cb2cd0f09c40227ec7fd8c3"></a>
+virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsinga_1_1ParserLayer.html#abb1e22e31cb2cd0f09c40227ec7fd8c3">SetupAfterPartition</a> ()</td></tr>
+<tr class="memdesc:abb1e22e31cb2cd0f09c40227ec7fd8c3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Setup the layer properties except shape. <br/></td></tr>
+<tr class="separator:abb1e22e31cb2cd0f09c40227ec7fd8c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1340b2cf693aa48d823d12228900556b"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsinga_1_1ParserLayer.html#a1340b2cf693aa48d823d12228900556b">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:a1340b2cf693aa48d823d12228900556b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Setup the layer properties except shape.  <a href="#a1340b2cf693aa48d823d12228900556b">More...</a><br/></td></tr>
+<tr class="separator:a1340b2cf693aa48d823d12228900556b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a67d78cafced1950980b54b0b6e302e87"><td class="memItemLeft" align="right" valign="top">virtual PartitionType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsinga_1_1ParserLayer.html#a67d78cafced1950980b54b0b6e302e87">partition_type</a> () const </td></tr>
+<tr class="memdesc:a67d78cafced1950980b54b0b6e302e87"><td class="mdescLeft">&#160;</td><td class="mdescRight">return partition type of this layer.  <a href="#a67d78cafced1950980b54b0b6e302e87">More...</a><br/></td></tr>
+<tr class="separator:a67d78cafced1950980b54b0b6e302e87"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4ee00445771065cc4bf569003a33e796"><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_1ParserLayer.html#a4ee00445771065cc4bf569003a33e796">mutable_grad</a> (const <a class="el" href="classsinga_1_1Layer.html">Layer</a> *layer=nullptr)</td></tr>
+<tr class="separator:a4ee00445771065cc4bf569003a33e796"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aabeab9a2b4dd113a7271cfba39d83d82"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aabeab9a2b4dd113a7271cfba39d83d82"></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:aabeab9a2b4dd113a7271cfba39d83d82"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a346797e377211251ae5c268fca093c50"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsinga_1_1ParserLayer.html#a346797e377211251ae5c268fca093c50">ComputeFeature</a> (bool training, const vector&lt; SLayer &gt; &amp;<a class="el" href="classsinga_1_1Layer.html#a836817f842419098c53fff371ae8fc80">srclayers</a>)</td></tr>
+<tr class="memdesc:a346797e377211251ae5c268fca093c50"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute features of this layer based on connected layers.  <a href="#a346797e377211251ae5c268fca093c50">More...</a><br/></td></tr>
+<tr class="separator:a346797e377211251ae5c268fca093c50"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a617f1a2b0e7adfc0266e6fb3c0b1259b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsinga_1_1ParserLayer.html#a617f1a2b0e7adfc0266e6fb3c0b1259b">Prefetching</a> (bool training)</td></tr>
+<tr class="memdesc:a617f1a2b0e7adfc0266e6fb3c0b1259b"><td class="mdescLeft">&#160;</td><td class="mdescRight">prefetching is transparent to parsing logics.  <a href="#a617f1a2b0e7adfc0266e6fb3c0b1259b">More...</a><br/></td></tr>
+<tr class="separator:a617f1a2b0e7adfc0266e6fb3c0b1259b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ade2d822132b5bd7eba1fcd2fa605ee5c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ade2d822132b5bd7eba1fcd2fa605ee5c"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsinga_1_1ParserLayer.html#ade2d822132b5bd7eba1fcd2fa605ee5c">set_prefetch</a> (bool prefetch)</td></tr>
+<tr class="memdesc:ade2d822132b5bd7eba1fcd2fa605ee5c"><td class="mdescLeft">&#160;</td><td class="mdescRight">must be called before calling <a class="el" href="classsinga_1_1Layer.html#af5d9b7aba92f5ead82872e5a70a1def0">ComputeFeature(bool)</a> if Prefetching runs in a separate thread <br/></td></tr>
+<tr class="separator:ade2d822132b5bd7eba1fcd2fa605ee5c"><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:aff0688e641c845aee9964a3d96172731 inherit pub_methods_classsinga_1_1Layer"><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 inherit pub_methods_classsinga_1_1Layer"><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 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: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:a7e134c5b4a1a8e442626354d2d869caa inherit pub_methods_classsinga_1_1Layer"><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 inherit pub_methods_classsinga_1_1Layer"><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 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: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: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="inherited"></a>
+Additional Inherited Members</h2></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>parse the input records into Blobs. </p>
+</div><h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="a346797e377211251ae5c268fca093c50"></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::ParserLayer::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">inline</span><span class="mlabel">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>Implements <a class="el" href="classsinga_1_1Layer.html#a11ef38d1bf31d054a96a1ac45fd49299">singa::Layer</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="afe2b6dd37ea96e7039ed24e93b28899b"></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::ParserLayer::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">inline</span><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Dummy function. </p>
+<p><a class="el" href="classsinga_1_1ParserLayer.html" title="parse the input records into Blobs. ">ParserLayer</a> does not compute gradients. </p>
+
+<p>Implements <a class="el" href="classsinga_1_1Layer.html#a7eb4b3141896bff0d7c423a24308fd63">singa::Layer</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a4ee00445771065cc4bf569003a33e796"></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::ParserLayer::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 from <a class="el" href="classsinga_1_1Layer.html#ad4936117ef7d58193726a966f796fafc">singa::Layer</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a9cca75c5b4b4b6aec618d694b008c02b"></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::ParserLayer::ParseRecords </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; Record &gt; &amp;&#160;</td>
+          <td class="paramname"><em>records</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classBlob.html">Blob</a>&lt; float &gt; *&#160;</td>
+          <td class="paramname"><em>blob</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>Parse records from <a class="el" href="classsinga_1_1DataLayer.html" title="base layer for prefetching records from local Shard, HDFS, lmdb, etc. ">DataLayer</a> into blob. </p>
+<p>This function is called by <a class="el" href="classsinga_1_1ParserLayer.html#a346797e377211251ae5c268fca093c50" title="Compute features of this layer based on connected layers. ">ComputeFeature(bool, const vector&lt;SLayer&gt;&amp; srclayers)</a> or Prefetch(bool). </p>
+
+<p>Implemented in <a class="el" href="classsinga_1_1RGBImageLayer.html#a292f905d76903ca9fe139a7cca217d10">singa::RGBImageLayer</a>, <a class="el" href="classsinga_1_1MnistImageLayer.html#a8f1cde0c276fdfc6260ea96edd7ff430">singa::MnistImageLayer</a>, and <a class="el" href="classsinga_1_1LabelLayer.html#a6fffae5ecc9a790c70510efec831c51f">singa::LabelLayer</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a67d78cafced1950980b54b0b6e302e87"></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::ParserLayer::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 from <a class="el" href="classsinga_1_1Layer.html#ab3c0e1047f36e2fb783a6fd3d4eabd73">singa::Layer</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a617f1a2b0e7adfc0266e6fb3c0b1259b"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">void singa::ParserLayer::Prefetching </td>
+          <td>(</td>
+          <td class="paramtype">bool&#160;</td>
+          <td class="paramname"><em>training</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>prefetching is transparent to parsing logics. </p>
+<p>users implement parsing logics in ParseRecords worker/training algorithm calls this function to do prefetching in a separate thread. Records are in fact parsed into prefetch_data_, and later copied into data_. </p>
+
+</div>
+</div>
+<a class="anchor" id="a2c6328bfd198d28854c61392dde05882"></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::ParserLayer::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>Implements <a class="el" href="classsinga_1_1Layer.html#aecbe8ed0ff294e40586678cef474ca42">singa::Layer</a>.</p>
+
+<p>Implemented in <a class="el" href="classsinga_1_1RGBImageLayer.html#a578b92e4e894277790bf0d24b8bba9c7">singa::RGBImageLayer</a>, <a class="el" href="classsinga_1_1MnistImageLayer.html#a1dba251022584d60d12092481d162d04">singa::MnistImageLayer</a>, and <a class="el" href="classsinga_1_1LabelLayer.html#aa7cc5abb98cbe0d7066f8336dca384e2">singa::LabelLayer</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ad01d938a87aba0c7a6f8ccf0139bde4c"></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::ParserLayer::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">inline</span><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 from <a class="el" href="classsinga_1_1Layer.html#ae691995f08f16d01739f98b6d9bd0335">singa::Layer</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a1340b2cf693aa48d823d12228900556b"></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::ParserLayer::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">inline</span><span class="mlabel">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>Implements <a class="el" href="classsinga_1_1Layer.html#af8c911e3ca34f8c288eaddee263661aa">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="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_1ParserLayer.png
----------------------------------------------------------------------
diff --git a/api/classsinga_1_1ParserLayer.png b/api/classsinga_1_1ParserLayer.png
new file mode 100644
index 0000000..10690d4
Binary files /dev/null and b/api/classsinga_1_1ParserLayer.png differ

http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/666a841d/api/classsinga_1_1Performance-members.html
----------------------------------------------------------------------
diff --git a/api/classsinga_1_1Performance-members.html b/api/classsinga_1_1Performance-members.html
new file mode 100644
index 0000000..877e6d0
--- /dev/null
+++ b/api/classsinga_1_1Performance-members.html
@@ -0,0 +1,110 @@
+<!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_1Performance.html">Performance</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">singa::Performance Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classsinga_1_1Performance.html">singa::Performance</a>, including all inherited members.</p>
+<table class="directory">
+  <tr class="even"><td class="entry"><a class="el" href="classsinga_1_1Performance.html#a80405a2aba8cb49749de9f0e9c94e025">Performance</a>(shared_ptr&lt; NeuralNet &gt; net)</td><td class="entry"><a class="el" href="classsinga_1_1Performance.html">singa::Performance</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>Reset</b>() (defined in <a class="el" href="classsinga_1_1Performance.html">singa::Performance</a>)</td><td class="entry"><a class="el" href="classsinga_1_1Performance.html">singa::Performance</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>ToString</b>() (defined in <a class="el" href="classsinga_1_1Performance.html">singa::Performance</a>)</td><td class="entry"><a class="el" href="classsinga_1_1Performance.html">singa::Performance</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classsinga_1_1Performance.html#a0868f1798592a8d61c30cee94ce37e87">Update</a>()</td><td class="entry"><a class="el" href="classsinga_1_1Performance.html">singa::Performance</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Thu May 7 2015 17:15:43 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>