Added: incubator/singa/site/trunk/v1.1.0/docs/neural-net.html
URL: 
http://svn.apache.org/viewvc/incubator/singa/site/trunk/v1.1.0/docs/neural-net.html?rev=1782721&view=auto
==============================================================================
--- incubator/singa/site/trunk/v1.1.0/docs/neural-net.html (added)
+++ incubator/singa/site/trunk/v1.1.0/docs/neural-net.html Mon Feb 13 05:13:19 
2017
@@ -0,0 +1,561 @@
+
+
+
+<!DOCTYPE html>
+<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
+<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
+<head>
+  <meta charset="utf-8">
+  
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  
+  <title>Neural Net &mdash; incubator-singa 1.1.0 documentation</title>
+  
+
+  
+  
+
+  
+
+  
+  
+    
+
+  
+
+  
+  
+    <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
+  
+
+  
+
+  
+    <link rel="top" title="incubator-singa 1.1.0 documentation" 
href="../index.html"/>
+    <link href="../_static/style.css" rel="stylesheet" type="text/css">
+
+
+  
+  <script src="../_static/js/modernizr.min.js"></script>
+
+</head>
+
+<body class="wy-body-for-nav" role="document">
+
+  <div class="wy-grid-for-nav">
+
+    
+    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
+      <div class="wy-side-scroll">
+        <div class="wy-side-nav-search">
+          
+
+          
+            <a href="../index.html" class="icon icon-home"> incubator-singa
+          
+
+          
+            
+            <img src="../_static/singa.png" class="logo" />
+          
+          </a>
+
+          
+            
+            
+              <div class="version">
+                latest
+              </div>
+            
+          
+
+          
+<div role="search">
+  <form id="rtd-search-form" class="wy-form" action="../search.html" 
method="get">
+    <input type="text" name="q" placeholder="Search docs" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+
+          
+        </div>
+
+        <div class="wy-menu wy-menu-vertical" data-spy="affix" 
role="navigation" aria-label="main navigation">
+          
+            
+            
+                <ul>
+<li class="toctree-l1"><a class="reference internal" 
href="../downloads.html">Download SINGA</a></li>
+<li class="toctree-l1"><a class="reference internal" 
href="index.html">Documentation</a></li>
+</ul>
+<p class="caption"><span class="caption-text">Development</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" 
href="../develop/schedule.html">Development Schedule</a></li>
+<li class="toctree-l1"><a class="reference internal" 
href="../develop/how-contribute.html">How to Contribute to SINGA</a></li>
+<li class="toctree-l1"><a class="reference internal" 
href="../develop/contribute-code.html">How to Contribute Code</a></li>
+<li class="toctree-l1"><a class="reference internal" 
href="../develop/contribute-docs.html">How to Contribute to 
Documentation</a></li>
+</ul>
+<p class="caption"><span class="caption-text">Community</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" 
href="../community/source-repository.html">Source Repository</a></li>
+<li class="toctree-l1"><a class="reference internal" 
href="../community/mail-lists.html">Project Mailing Lists</a></li>
+<li class="toctree-l1"><a class="reference internal" 
href="../community/issue-tracking.html">Issue Tracking</a></li>
+<li class="toctree-l1"><a class="reference internal" 
href="../community/team-list.html">The SINGA Team</a></li>
+</ul>
+
+            
+          
+        </div>
+      </div>
+    </nav>
+
+    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
+
+      
+      <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
+        <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
+        <a href="../index.html">incubator-singa</a>
+      </nav>
+
+
+      
+      <div class="wy-nav-content">
+        <div class="rst-content">
+          
+
+ 
+
+
+
+<div role="navigation" aria-label="breadcrumbs navigation">
+  <ul class="wy-breadcrumbs">
+    <li><a href="../index.html">Docs</a> &raquo;</li>
+      
+    <li>Neural Net</li>
+      <li class="wy-breadcrumbs-aside">
+        
+          
+        
+      </li>
+  </ul>
+  <hr/>
+</div>
+          <div role="main" class="document" itemscope="itemscope" 
itemtype="http://schema.org/Article";>
+           <div itemprop="articleBody">
+            
+  <div class="section" id="neural-net">
+<span id="neural-net"></span><h1>Neural Net<a class="headerlink" 
href="#neural-net" title="Permalink to this headline">¶</a></h1>
+<p><code class="docutils literal"><span class="pre">NeuralNet</span></code> in 
SINGA represents an instance of user&#8217;s neural net model. As the
+neural net typically consists of a set of layers, <code class="docutils 
literal"><span class="pre">NeuralNet</span></code> comprises
+a set of unidirectionally connected <a class="reference external" 
href="layer.html">Layer</a>s.
+This page describes how to convert an user&#8217;s neural net into
+the configuration of <code class="docutils literal"><span 
class="pre">NeuralNet</span></code>.</p>
+<p><img src="../_static/images/model-category.png" align="center" 
width="200px"/>
+<span><strong>Figure 1 - Categorization of popular deep learning 
models.</strong></span></p>
+<div class="section" id="net-structure-configuration">
+<span id="net-structure-configuration"></span><h2>Net structure 
configuration<a class="headerlink" href="#net-structure-configuration" 
title="Permalink to this headline">¶</a></h2>
+<p>Users configure the <code class="docutils literal"><span 
class="pre">NeuralNet</span></code> by listing all layers of the neural net and
+specifying each layer&#8217;s source layer names. Popular deep learning models 
can be
+categorized as Figure 1. The subsequent sections give details for each
+category.</p>
+<div class="section" id="feed-forward-models">
+<span id="feed-forward-models"></span><h3>Feed-forward models<a 
class="headerlink" href="#feed-forward-models" title="Permalink to this 
headline">¶</a></h3>
+<div align = "left">
+<img src="../_static/images/mlp-net.png" align="center" width="200px"/>
+<span><strong>Figure 2 - Net structure of a MLP model.</strong></span>
+</div><p>Feed-forward models, e.g., CNN and MLP, can easily get configured as 
their layer
+connections are undirected without circles. The
+configuration for the MLP model shown in Figure 1 is as follows,</p>
+<div class="highlight-python"><div class="highlight"><pre>net {
+  layer {
+    name : &#39;data&quot;
+    type : kData
+  }
+  layer {
+    name : &#39;image&quot;
+    type : kImage
+    srclayer: &#39;data&#39;
+  }
+  layer {
+    name : &#39;label&quot;
+    type : kLabel
+    srclayer: &#39;data&#39;
+  }
+  layer {
+    name : &#39;hidden&quot;
+    type : kHidden
+    srclayer: &#39;image&#39;
+  }
+  layer {
+    name : &#39;softmax&quot;
+    type : kSoftmaxLoss
+    srclayer: &#39;hidden&#39;
+    srclayer: &#39;label&#39;
+  }
+}
+</pre></div>
+</div>
+</div>
+<div class="section" id="energy-models">
+<span id="energy-models"></span><h3>Energy models<a class="headerlink" 
href="#energy-models" title="Permalink to this headline">¶</a></h3>
+<p><img src="../_static/images/rbm-rnn.png" align="center" width="500px"/>
+<span><strong>Figure 3 - Convert connections in RBM and 
RNN.</strong></span></p>
+<p>For energy models including RBM, DBM,
+etc., their connections are undirected (i.e., Category B). To represent these 
models using
+<code class="docutils literal"><span class="pre">NeuralNet</span></code>, 
users can simply replace each connection with two directed
+connections, as shown in Figure 3a. In other words, for each pair of connected 
layers, their source
+layer field should include each other&#8217;s name.
+The full <a class="reference external" href="rbm.html">RBM example</a> has
+detailed neural net configuration for a RBM model, which looks like</p>
+<div class="highlight-python"><div class="highlight"><pre>net {
+  layer {
+    name : &quot;vis&quot;
+    type : kVisLayer
+    param {
+      name : &quot;w1&quot;
+    }
+    srclayer: &quot;hid&quot;
+  }
+  layer {
+    name : &quot;hid&quot;
+    type : kHidLayer
+    param {
+      name : &quot;w2&quot;
+      share_from: &quot;w1&quot;
+    }
+    srclayer: &quot;vis&quot;
+  }
+}
+</pre></div>
+</div>
+</div>
+<div class="section" id="rnn-models">
+<span id="rnn-models"></span><h3>RNN models<a class="headerlink" 
href="#rnn-models" title="Permalink to this headline">¶</a></h3>
+<p>For recurrent neural networks (RNN), users can remove the recurrent 
connections
+by unrolling the recurrent layer.  For example, in Figure 3b, the original
+layer is unrolled into a new layer with 4 internal layers. In this way, the
+model is like a normal feed-forward model, thus can be configured similarly.
+The <a class="reference external" href="rnn.html">RNN example</a> has a full 
neural net
+configuration for a RNN model.</p>
+</div>
+</div>
+<div class="section" id="configuration-for-multiple-nets">
+<span id="configuration-for-multiple-nets"></span><h2>Configuration for 
multiple nets<a class="headerlink" href="#configuration-for-multiple-nets" 
title="Permalink to this headline">¶</a></h2>
+<p>Typically, a training job includes three neural nets for
+training, validation and test phase respectively. The three neural nets share 
most
+layers except the data layer, loss layer or output layer, etc..  To avoid
+redundant configurations for the shared layers, users can uses the <code 
class="docutils literal"><span class="pre">exclude</span></code>
+filed to filter a layer in the neural net, e.g., the following layer will be
+filtered when creating the testing <code class="docutils literal"><span 
class="pre">NeuralNet</span></code>.</p>
+<div class="highlight-python"><div class="highlight"><pre>layer {
+  ...
+  exclude : kTest # filter this layer for creating test net
+}
+</pre></div>
+</div>
+</div>
+<div class="section" id="neural-net-partitioning">
+<span id="neural-net-partitioning"></span><h2>Neural net partitioning<a 
class="headerlink" href="#neural-net-partitioning" title="Permalink to this 
headline">¶</a></h2>
+<p>A neural net can be partitioned in different ways to distribute the training
+over multiple workers.</p>
+<div class="section" id="batch-and-feature-dimension">
+<span id="batch-and-feature-dimension"></span><h3>Batch and feature 
dimension<a class="headerlink" href="#batch-and-feature-dimension" 
title="Permalink to this headline">¶</a></h3>
+<p><img src="../_static/images/partition_fc.png" align="center" width="400px"/>
+<span><strong>Figure 4 - Partitioning of a fully connected 
layer.</strong></span></p>
+<p>Every layer&#8217;s feature blob is considered a matrix whose rows are 
feature
+vectors. Thus, one layer can be split on two dimensions. Partitioning on
+dimension 0 (also called batch dimension) slices the feature matrix by rows.
+For instance, if the mini-batch size is 256 and the layer is partitioned into 2
+sub-layers, each sub-layer would have 128 feature vectors in its feature blob.
+Partitioning on this dimension has no effect on the parameters, as every
+<a class="reference external" href="param.html">Param</a> object is replicated 
in the sub-layers. Partitioning on dimension
+1 (also called feature dimension) slices the feature matrix by columns. For
+example, suppose the original feature vector has 50 units, after partitioning
+into 2 sub-layers, each sub-layer would have 25 units. This partitioning may
+result in <a class="reference external" href="param.html">Param</a> object 
being split, as shown in
+Figure 4. Both the bias vector and weight matrix are
+partitioned into two sub-layers.</p>
+</div>
+<div class="section" id="partitioning-configuration">
+<span id="partitioning-configuration"></span><h3>Partitioning configuration<a 
class="headerlink" href="#partitioning-configuration" title="Permalink to this 
headline">¶</a></h3>
+<p>There are 4 partitioning schemes, whose configurations are give below,</p>
+<ol>
+<li><p class="first">Partitioning each singe layer into sub-layers on batch 
dimension (see
+below). It is enabled by configuring the partition dimension of the layer to
+0, e.g.,</p>
+<div class="highlight-python"><div class="highlight"><pre> # with other fields 
omitted
+ layer {
+   partition_dim: 0
+ }
+</pre></div>
+</div>
+</li>
+<li><p class="first">Partitioning each singe layer into sub-layers on feature 
dimension (see
+below).  It is enabled by configuring the partition dimension of the layer to
+1, e.g.,</p>
+<div class="highlight-python"><div class="highlight"><pre> # with other fields 
omitted
+ layer {
+   partition_dim: 1
+ }
+</pre></div>
+</div>
+</li>
+<li><p class="first">Partitioning all layers into different subsets. It is 
enabled by
+configuring the location ID of a layer, e.g.,</p>
+<div class="highlight-python"><div class="highlight"><pre> # with other fields 
omitted
+ layer {
+   location: 1
+ }
+ layer {
+   location: 0
+ }
+</pre></div>
+</div>
+</li>
+</ol>
+<ol>
+<li><p class="first">Hybrid partitioning of strategy 1, 2 and 3. The hybrid 
partitioning is
+useful for large models. An example application is to implement the
+<a class="reference external" href="http://arxiv.org/abs/1404.5997";>idea 
proposed by Alex</a>.
+Hybrid partitioning is configured like,</p>
+<div class="highlight-python"><div class="highlight"><pre> # with other fields 
omitted
+ layer {
+   location: 1
+ }
+ layer {
+   location: 0
+ }
+ layer {
+   partition_dim: 0
+   location: 0
+ }
+ layer {
+   partition_dim: 1
+   location: 0
+ }
+</pre></div>
+</div>
+</li>
+</ol>
+<p>Currently SINGA supports strategy-2 well. Other partitioning strategies are
+are under test and will be released in later version.</p>
+</div>
+</div>
+<div class="section" id="parameter-sharing">
+<span id="parameter-sharing"></span><h2>Parameter sharing<a class="headerlink" 
href="#parameter-sharing" title="Permalink to this headline">¶</a></h2>
+<p>Parameters can be shared in two cases,</p>
+<ul class="simple">
+<li>sharing parameters among layers via user configuration. For example, the
+visible layer and hidden layer of a RBM shares the weight matrix, which is 
configured through
+the <code class="docutils literal"><span class="pre">share_from</span></code> 
field as shown in the above RBM configuration. The
+configurations must be the same (except name) for shared parameters.</li>
+<li>due to neural net partitioning, some <code class="docutils literal"><span 
class="pre">Param</span></code> objects are replicated into
+different workers, e.g., partitioning one layer on batch dimension. These
+workers share parameter values. SINGA controls this kind of parameter
+sharing automatically, users do not need to do any configuration.</li>
+<li>the <code class="docutils literal"><span 
class="pre">NeuralNet</span></code> for training and testing (and validation) 
share most layers
+, thus share <code class="docutils literal"><span 
class="pre">Param</span></code> values.</li>
+</ul>
+<p>If the shared <code class="docutils literal"><span 
class="pre">Param</span></code> instances resident in the same process (may in 
different
+threads), they use the same chunk of memory space for their values. But they
+would have different memory spaces for their gradients. In fact, their
+gradients will be averaged by the stub or server.</p>
+</div>
+<div class="section" id="advanced-user-guide">
+<span id="advanced-user-guide"></span><h2>Advanced user guide<a 
class="headerlink" href="#advanced-user-guide" title="Permalink to this 
headline">¶</a></h2>
+<div class="section" id="creation">
+<span id="creation"></span><h3>Creation<a class="headerlink" href="#creation" 
title="Permalink to this headline">¶</a></h3>
+<div class="highlight-python"><div class="highlight"><pre>static NeuralNet* 
NeuralNet::Create(const NetProto&amp; np, Phase phase, int num);
+</pre></div>
+</div>
+<p>The above function creates a <code class="docutils literal"><span 
class="pre">NeuralNet</span></code> for a given phase, and returns a
+pointer to the <code class="docutils literal"><span 
class="pre">NeuralNet</span></code> instance. The phase is in {kTrain,
+kValidation, kTest}. <code class="docutils literal"><span 
class="pre">num</span></code> is used for net partitioning which indicates the
+number of partitions.  Typically, a training job includes three neural nets for
+training, validation and test phase respectively. The three neural nets share 
most
+layers except the data layer, loss layer or output layer, etc.. The <code 
class="docutils literal"><span class="pre">Create</span></code>
+function takes in the full net configuration including layers for training,
+validation and test.  It removes layers for phases other than the specified
+phase based on the <code class="docutils literal"><span 
class="pre">exclude</span></code> field in
+<a class="reference external" href="layer.html">layer configuration</a>:</p>
+<div class="highlight-python"><div class="highlight"><pre>layer {
+  ...
+  exclude : kTest # filter this layer for creating test net
+}
+</pre></div>
+</div>
+<p>The filtered net configuration is passed to the constructor of <code 
class="docutils literal"><span class="pre">NeuralNet</span></code>:</p>
+<div class="highlight-python"><div 
class="highlight"><pre>NeuralNet::NeuralNet(NetProto netproto, int npartitions);
+</pre></div>
+</div>
+<p>The constructor creates a graph representing the net structure firstly 
in</p>
+<div class="highlight-python"><div class="highlight"><pre>Graph* 
NeuralNet::CreateGraph(const NetProto&amp; netproto, int npartitions);
+</pre></div>
+</div>
+<p>Next, it creates a layer for each node and connects layers if their nodes 
are
+connected.</p>
+<div class="highlight-python"><div class="highlight"><pre>void 
NeuralNet::CreateNetFromGraph(Graph* graph, int npartitions);
+</pre></div>
+</div>
+<p>Since the <code class="docutils literal"><span 
class="pre">NeuralNet</span></code> instance may be shared among multiple 
workers, the
+<code class="docutils literal"><span class="pre">Create</span></code> function 
returns a pointer to the <code class="docutils literal"><span 
class="pre">NeuralNet</span></code> instance .</p>
+</div>
+<div class="section" id="parameter-sharing">
+<span id="id1"></span><h3>Parameter sharing<a class="headerlink" 
href="#parameter-sharing" title="Permalink to this headline">¶</a></h3>
+<p><code class="docutils literal"><span class="pre">Param</span></code> sharing
+is enabled by first sharing the Param configuration (in <code class="docutils 
literal"><span class="pre">NeuralNet::Create</span></code>)
+to create two similar (e.g., the same shape) Param objects, and then calling
+(in <code class="docutils literal"><span 
class="pre">NeuralNet::CreateNetFromGraph</span></code>),</p>
+<div class="highlight-python"><div class="highlight"><pre>void 
Param::ShareFrom(const Param&amp; from);
+</pre></div>
+</div>
+<p>It is also possible to share <code class="docutils literal"><span 
class="pre">Param</span></code>s of two nets, e.g., sharing parameters of
+the training net and the test net,</p>
+<div class="highlight-python"><div class="highlight"><pre>void 
NeuralNet:ShareParamsFrom(NeuralNet* other);
+</pre></div>
+</div>
+<p>It will call <code class="docutils literal"><span 
class="pre">Param::ShareFrom</span></code> for each Param object.</p>
+</div>
+<div class="section" id="access-functions">
+<span id="access-functions"></span><h3>Access functions<a class="headerlink" 
href="#access-functions" title="Permalink to this headline">¶</a></h3>
+<p><code class="docutils literal"><span class="pre">NeuralNet</span></code> 
provides a couple of access function to get the layers and params
+of the net:</p>
+<div class="highlight-python"><div class="highlight"><pre>const 
std::vector&lt;Layer*&gt;&amp; layers() const;
+const std::vector&lt;Param*&gt;&amp; params() const ;
+Layer* name2layer(string name) const;
+Param* paramid2param(int id) const;
+</pre></div>
+</div>
+</div>
+<div class="section" id="partitioning">
+<span id="partitioning"></span><h3>Partitioning<a class="headerlink" 
href="#partitioning" title="Permalink to this headline">¶</a></h3>
+<div class="section" id="implementation">
+<span id="implementation"></span><h4>Implementation<a class="headerlink" 
href="#implementation" title="Permalink to this headline">¶</a></h4>
+<p>SINGA partitions the neural net in <code class="docutils literal"><span 
class="pre">CreateGraph</span></code> function, which creates one
+node for each (partitioned) layer. For example, if one layer&#8217;s partition
+dimension is 0 or 1, then it creates <code class="docutils literal"><span 
class="pre">npartition</span></code> nodes for it; if the
+partition dimension is -1, a single node is created, i.e., no partitioning.
+Each node is assigned a partition (or location) ID. If the original layer is
+configured with a location ID, then the ID is assigned to each newly created 
node.
+These nodes are connected according to the connections of the original layers.
+Some connection layers will be added automatically.
+For instance, if two connected sub-layers are located at two
+different workers, then a pair of bridge layers is inserted to transfer the
+feature (and gradient) blob between them. When two layers are partitioned on
+different dimensions, a concatenation layer which concatenates feature rows (or
+columns) and a slice layer which slices feature rows (or columns) would be
+inserted. These connection layers help making the network communication and
+synchronization transparent to the users.</p>
+</div>
+<div class="section" id="dispatching-partitions-to-workers">
+<span id="dispatching-partitions-to-workers"></span><h4>Dispatching partitions 
to workers<a class="headerlink" href="#dispatching-partitions-to-workers" 
title="Permalink to this headline">¶</a></h4>
+<p>Each (partitioned) layer is assigned a location ID, based on which it is 
dispatched to one
+worker. Particularly, the pointer to the <code class="docutils literal"><span 
class="pre">NeuralNet</span></code> instance is passed
+to every worker within the same group, but each worker only computes over the
+layers that have the same partition (or location) ID as the worker&#8217;s ID. 
 When
+every worker computes the gradients of the entire model parameters
+(strategy-2), we refer to this process as data parallelism.  When different
+workers compute the gradients of different parameters (strategy-3 or
+strategy-1), we call this process model parallelism.  The hybrid partitioning
+leads to hybrid parallelism where some workers compute the gradients of the
+same subset of model parameters while other workers compute on different model
+parameters.  For example, to implement the hybrid parallelism in for the
+<a class="reference external" href="http://arxiv.org/abs/1404.5997";>DCNN 
model</a>, we set <code class="docutils literal"><span 
class="pre">partition_dim</span> <span class="pre">=</span> <span 
class="pre">0</span></code> for
+lower layers and <code class="docutils literal"><span 
class="pre">partition_dim</span> <span class="pre">=</span> <span 
class="pre">1</span></code> for higher layers.</p>
+</div>
+</div>
+</div>
+</div>
+
+
+           </div>
+          </div>
+          <footer>
+  
+
+  <hr/>
+
+  <div role="contentinfo">
+    <p>
+        &copy; Copyright 2017 The Apache Software Foundation. All rights 
reserved. Apache Singa, Apache, the Apache feather logo, and the Apache Singa 
project logos are trademarks of The Apache Software Foundation. All other marks 
mentioned may be trademarks or registered trademarks of their respective 
owners..
+
+    </p>
+  </div>
+  Built with <a href="http://sphinx-doc.org/";>Sphinx</a> using a <a 
href="https://github.com/snide/sphinx_rtd_theme";>theme</a> provided by <a 
href="https://readthedocs.org";>Read the Docs</a>. 
+
+</footer>
+
+        </div>
+      </div>
+
+    </section>
+
+  </div>
+  
+
+
+  
+
+    <script type="text/javascript">
+        var DOCUMENTATION_OPTIONS = {
+            URL_ROOT:'../',
+            VERSION:'1.1.0',
+            COLLAPSE_INDEX:false,
+            FILE_SUFFIX:'.html',
+            HAS_SOURCE:  true
+        };
+    </script>
+      <script type="text/javascript" src="../_static/jquery.js"></script>
+      <script type="text/javascript" src="../_static/underscore.js"></script>
+      <script type="text/javascript" src="../_static/doctools.js"></script>
+
+  
+
+  
+  
+    <script type="text/javascript" src="../_static/js/theme.js"></script>
+  
+
+  
+  
+  <script type="text/javascript">
+      jQuery(function () {
+          SphinxRtdTheme.StickyNav.enable();
+      });
+  </script>
+  
+
+<div class="rst-versions shift-up" data-toggle="rst-versions" role="note" 
aria-label="versions">
+  <span class="rst-current-version" data-toggle="rst-current-version">
+    <span class="fa fa-book"> incubator-singa </span>
+    v: latest
+    <span class="fa fa-caret-down"></span>
+  </span>
+  <div class="rst-other-versions">
+      <dl>
+          <dt>Languages</dt>
+          <dd><a href="../../en/index.html">English</a></dd>
+          <dd><a href="../../zh/index.html">中文</a></dd>
+      </dl>
+      <dl>
+          <dt>Versions</dt>
+          <dd><a href="http://singa.apache.org/v0.3.0/";>0.3</a></dd>
+          <dd><a href="http://singa.apache.org/v1.1.0/";>1.1</a></dd>
+      </dl>
+
+  </div>
+  <a href="http://incubator.apache.org/";> <img src= "../_static/apache.jpg"> 
</a>
+</div>
+
+ <a href="https://github.com/apache/incubator-singa";>
+    <img style="position: absolute; top: 0; right: 0; border: 0; z-index: 
10000;"
+        
src="https://s3.amazonaws.com/github/ribbons/forkme_right_orange_ff7600.png";
+        alt="Fork me on GitHub">
+</a>
+
+ 
+
+
+</body>
+</html>
\ No newline at end of file

Added: incubator/singa/site/trunk/v1.1.0/docs/notebook/README.html
URL: 
http://svn.apache.org/viewvc/incubator/singa/site/trunk/v1.1.0/docs/notebook/README.html?rev=1782721&view=auto
==============================================================================
--- incubator/singa/site/trunk/v1.1.0/docs/notebook/README.html (added)
+++ incubator/singa/site/trunk/v1.1.0/docs/notebook/README.html Mon Feb 13 
05:13:19 2017
@@ -0,0 +1,240 @@
+
+
+
+<!DOCTYPE html>
+<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
+<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
+<head>
+  <meta charset="utf-8">
+  
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  
+  <title>&lt;no title&gt; &mdash; incubator-singa 1.1.0 documentation</title>
+  
+
+  
+  
+
+  
+
+  
+  
+    
+
+  
+
+  
+  
+    <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" 
/>
+  
+
+  
+
+  
+    <link rel="top" title="incubator-singa 1.1.0 documentation" 
href="../../index.html"/>
+    <link href="../../_static/style.css" rel="stylesheet" type="text/css">
+
+
+  
+  <script src="../../_static/js/modernizr.min.js"></script>
+
+</head>
+
+<body class="wy-body-for-nav" role="document">
+
+  <div class="wy-grid-for-nav">
+
+    
+    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
+      <div class="wy-side-scroll">
+        <div class="wy-side-nav-search">
+          
+
+          
+            <a href="../../index.html" class="icon icon-home"> incubator-singa
+          
+
+          
+            
+            <img src="../../_static/singa.png" class="logo" />
+          
+          </a>
+
+          
+            
+            
+              <div class="version">
+                latest
+              </div>
+            
+          
+
+          
+<div role="search">
+  <form id="rtd-search-form" class="wy-form" action="../../search.html" 
method="get">
+    <input type="text" name="q" placeholder="Search docs" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+
+          
+        </div>
+
+        <div class="wy-menu wy-menu-vertical" data-spy="affix" 
role="navigation" aria-label="main navigation">
+          
+            
+            
+                <ul>
+<li class="toctree-l1"><a class="reference internal" 
href="../../downloads.html">Download SINGA</a></li>
+<li class="toctree-l1"><a class="reference internal" 
href="../index.html">Documentation</a></li>
+</ul>
+<p class="caption"><span class="caption-text">Development</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" 
href="../../develop/schedule.html">Development Schedule</a></li>
+<li class="toctree-l1"><a class="reference internal" 
href="../../develop/how-contribute.html">How to Contribute to SINGA</a></li>
+<li class="toctree-l1"><a class="reference internal" 
href="../../develop/contribute-code.html">How to Contribute Code</a></li>
+<li class="toctree-l1"><a class="reference internal" 
href="../../develop/contribute-docs.html">How to Contribute to 
Documentation</a></li>
+</ul>
+<p class="caption"><span class="caption-text">Community</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" 
href="../../community/source-repository.html">Source Repository</a></li>
+<li class="toctree-l1"><a class="reference internal" 
href="../../community/mail-lists.html">Project Mailing Lists</a></li>
+<li class="toctree-l1"><a class="reference internal" 
href="../../community/issue-tracking.html">Issue Tracking</a></li>
+<li class="toctree-l1"><a class="reference internal" 
href="../../community/team-list.html">The SINGA Team</a></li>
+</ul>
+
+            
+          
+        </div>
+      </div>
+    </nav>
+
+    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
+
+      
+      <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
+        <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
+        <a href="../../index.html">incubator-singa</a>
+      </nav>
+
+
+      
+      <div class="wy-nav-content">
+        <div class="rst-content">
+          
+
+ 
+
+
+
+<div role="navigation" aria-label="breadcrumbs navigation">
+  <ul class="wy-breadcrumbs">
+    <li><a href="../../index.html">Docs</a> &raquo;</li>
+      
+    <li>&lt;no title&gt;</li>
+      <li class="wy-breadcrumbs-aside">
+        
+          
+        
+      </li>
+  </ul>
+  <hr/>
+</div>
+          <div role="main" class="document" itemscope="itemscope" 
itemtype="http://schema.org/Article";>
+           <div itemprop="articleBody">
+            
+  <p>These are some examples in IPython notebooks.</p>
+<p>You can open them in <a class="reference external" 
href="http://nbviewer.jupyter.org/github/apache/incubator-singa/blob/master/doc/en/docs/notebook/index.ipynb";>notebook
 viewer</a>.</p>
+
+
+           </div>
+          </div>
+          <footer>
+  
+
+  <hr/>
+
+  <div role="contentinfo">
+    <p>
+        &copy; Copyright 2017 The Apache Software Foundation. All rights 
reserved. Apache Singa, Apache, the Apache feather logo, and the Apache Singa 
project logos are trademarks of The Apache Software Foundation. All other marks 
mentioned may be trademarks or registered trademarks of their respective 
owners..
+
+    </p>
+  </div>
+  Built with <a href="http://sphinx-doc.org/";>Sphinx</a> using a <a 
href="https://github.com/snide/sphinx_rtd_theme";>theme</a> provided by <a 
href="https://readthedocs.org";>Read the Docs</a>. 
+
+</footer>
+
+        </div>
+      </div>
+
+    </section>
+
+  </div>
+  
+
+
+  
+
+    <script type="text/javascript">
+        var DOCUMENTATION_OPTIONS = {
+            URL_ROOT:'../../',
+            VERSION:'1.1.0',
+            COLLAPSE_INDEX:false,
+            FILE_SUFFIX:'.html',
+            HAS_SOURCE:  true
+        };
+    </script>
+      <script type="text/javascript" src="../../_static/jquery.js"></script>
+      <script type="text/javascript" 
src="../../_static/underscore.js"></script>
+      <script type="text/javascript" src="../../_static/doctools.js"></script>
+
+  
+
+  
+  
+    <script type="text/javascript" src="../../_static/js/theme.js"></script>
+  
+
+  
+  
+  <script type="text/javascript">
+      jQuery(function () {
+          SphinxRtdTheme.StickyNav.enable();
+      });
+  </script>
+  
+
+<div class="rst-versions shift-up" data-toggle="rst-versions" role="note" 
aria-label="versions">
+  <span class="rst-current-version" data-toggle="rst-current-version">
+    <span class="fa fa-book"> incubator-singa </span>
+    v: latest
+    <span class="fa fa-caret-down"></span>
+  </span>
+  <div class="rst-other-versions">
+      <dl>
+          <dt>Languages</dt>
+          <dd><a href="../../../en/index.html">English</a></dd>
+          <dd><a href="../../../zh/index.html">中文</a></dd>
+      </dl>
+      <dl>
+          <dt>Versions</dt>
+          <dd><a href="http://singa.apache.org/v0.3.0/";>0.3</a></dd>
+          <dd><a href="http://singa.apache.org/v1.1.0/";>1.1</a></dd>
+      </dl>
+
+  </div>
+  <a href="http://incubator.apache.org/";> <img src= 
"../../_static/apache.jpg"> </a>
+</div>
+
+ <a href="https://github.com/apache/incubator-singa";>
+    <img style="position: absolute; top: 0; right: 0; border: 0; z-index: 
10000;"
+        
src="https://s3.amazonaws.com/github/ribbons/forkme_right_orange_ff7600.png";
+        alt="Fork me on GitHub">
+</a>
+
+ 
+
+
+</body>
+</html>
\ No newline at end of file

Added: incubator/singa/site/trunk/v1.1.0/docs/optimizer.html
URL: 
http://svn.apache.org/viewvc/incubator/singa/site/trunk/v1.1.0/docs/optimizer.html?rev=1782721&view=auto
==============================================================================
--- incubator/singa/site/trunk/v1.1.0/docs/optimizer.html (added)
+++ incubator/singa/site/trunk/v1.1.0/docs/optimizer.html Mon Feb 13 05:13:19 
2017
@@ -0,0 +1,631 @@
+
+
+
+<!DOCTYPE html>
+<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
+<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
+<head>
+  <meta charset="utf-8">
+  
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  
+  <title>Optimizer &mdash; incubator-singa 1.1.0 documentation</title>
+  
+
+  
+  
+
+  
+
+  
+  
+    
+
+  
+
+  
+  
+    <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
+  
+
+  
+
+  
+    <link rel="top" title="incubator-singa 1.1.0 documentation" 
href="../index.html"/>
+        <link rel="up" title="Documentation" href="index.html"/>
+        <link rel="next" title="Data" href="data.html"/>
+        <link rel="prev" title="Metric" href="metric.html"/>
+    <link href="../_static/style.css" rel="stylesheet" type="text/css">
+
+
+  
+  <script src="../_static/js/modernizr.min.js"></script>
+
+</head>
+
+<body class="wy-body-for-nav" role="document">
+
+  <div class="wy-grid-for-nav">
+
+    
+    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
+      <div class="wy-side-scroll">
+        <div class="wy-side-nav-search">
+          
+
+          
+            <a href="../index.html" class="icon icon-home"> incubator-singa
+          
+
+          
+            
+            <img src="../_static/singa.png" class="logo" />
+          
+          </a>
+
+          
+            
+            
+              <div class="version">
+                latest
+              </div>
+            
+          
+
+          
+<div role="search">
+  <form id="rtd-search-form" class="wy-form" action="../search.html" 
method="get">
+    <input type="text" name="q" placeholder="Search docs" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+
+          
+        </div>
+
+        <div class="wy-menu wy-menu-vertical" data-spy="affix" 
role="navigation" aria-label="main navigation">
+          
+            
+            
+                <ul class="current">
+<li class="toctree-l1"><a class="reference internal" 
href="../downloads.html">Download SINGA</a></li>
+<li class="toctree-l1 current"><a class="reference internal" 
href="index.html">Documentation</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" 
href="installation.html">Installation</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="software_stack.html">Software Stack</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="device.html">Device</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="tensor.html">Tensor</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="layer.html">Layer</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="net.html">FeedForward Net</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="initializer.html">Initializer</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="loss.html">Loss</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="metric.html">Metric</a></li>
+<li class="toctree-l2 current"><a class="current reference internal" 
href="">Optimizer</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="data.html">Data</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="image_tool.html">Image Tool</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="snapshot.html">Snapshot</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="converter.html">Caffe Converter</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="utils.html">Utils</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="model_zoo/index.html">Model Zoo</a></li>
+</ul>
+</li>
+</ul>
+<p class="caption"><span class="caption-text">Development</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" 
href="../develop/schedule.html">Development Schedule</a></li>
+<li class="toctree-l1"><a class="reference internal" 
href="../develop/how-contribute.html">How to Contribute to SINGA</a></li>
+<li class="toctree-l1"><a class="reference internal" 
href="../develop/contribute-code.html">How to Contribute Code</a></li>
+<li class="toctree-l1"><a class="reference internal" 
href="../develop/contribute-docs.html">How to Contribute to 
Documentation</a></li>
+</ul>
+<p class="caption"><span class="caption-text">Community</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" 
href="../community/source-repository.html">Source Repository</a></li>
+<li class="toctree-l1"><a class="reference internal" 
href="../community/mail-lists.html">Project Mailing Lists</a></li>
+<li class="toctree-l1"><a class="reference internal" 
href="../community/issue-tracking.html">Issue Tracking</a></li>
+<li class="toctree-l1"><a class="reference internal" 
href="../community/team-list.html">The SINGA Team</a></li>
+</ul>
+
+            
+          
+        </div>
+      </div>
+    </nav>
+
+    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
+
+      
+      <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
+        <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
+        <a href="../index.html">incubator-singa</a>
+      </nav>
+
+
+      
+      <div class="wy-nav-content">
+        <div class="rst-content">
+          
+
+ 
+
+
+
+<div role="navigation" aria-label="breadcrumbs navigation">
+  <ul class="wy-breadcrumbs">
+    <li><a href="../index.html">Docs</a> &raquo;</li>
+      
+          <li><a href="index.html">Documentation</a> &raquo;</li>
+      
+    <li>Optimizer</li>
+      <li class="wy-breadcrumbs-aside">
+        
+          
+        
+      </li>
+  </ul>
+  <hr/>
+</div>
+          <div role="main" class="document" itemscope="itemscope" 
itemtype="http://schema.org/Article";>
+           <div itemprop="articleBody">
+            
+  <div class="section" id="module-singa.optimizer">
+<span id="optimizer"></span><h1>Optimizer<a class="headerlink" 
href="#module-singa.optimizer" title="Permalink to this headline">¶</a></h1>
+<p>This module includes a set of optimizers for updating model parameters.</p>
+<p>Example usage:</p>
+<div class="highlight-python"><div class="highlight"><pre><span 
class="kn">from</span> <span class="nn">singa</span> <span 
class="kn">import</span> <span class="n">optimizer</span>
+<span class="kn">from</span> <span class="nn">singa</span> <span 
class="kn">import</span> <span class="n">tensor</span>
+
+<span class="n">sgd</span> <span class="o">=</span> <span 
class="n">optimizer</span><span class="o">.</span><span 
class="n">SGD</span><span class="p">(</span><span class="n">lr</span><span 
class="o">=</span><span class="mf">0.01</span><span class="p">,</span> <span 
class="n">momentum</span><span class="o">=</span><span 
class="mf">0.9</span><span class="p">,</span> <span 
class="n">weight_decay</span><span class="o">=</span><span 
class="mf">1e-4</span><span class="p">)</span>
+<span class="n">p</span> <span class="o">=</span> <span 
class="n">tensor</span><span class="o">.</span><span 
class="n">Tensor</span><span class="p">((</span><span class="mi">3</span><span 
class="p">,</span><span class="mi">5</span><span class="p">))</span>
+<span class="n">p</span><span class="o">.</span><span 
class="n">uniform</span><span class="p">(</span><span class="o">-</span><span 
class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span 
class="p">)</span>
+<span class="n">g</span> <span class="o">=</span> <span 
class="n">tensor</span><span class="o">.</span><span 
class="n">Tensor</span><span class="p">((</span><span class="mi">3</span><span 
class="p">,</span><span class="mi">5</span><span class="p">))</span>
+<span class="n">g</span><span class="o">.</span><span 
class="n">gaussian</span><span class="p">(</span><span class="mi">0</span><span 
class="p">,</span> <span class="mf">0.01</span><span class="p">)</span>
+
+<span class="n">sgd</span><span class="o">.</span><span 
class="n">apply</span><span class="p">(</span><span class="mi">1</span><span 
class="p">,</span> <span class="n">g</span><span class="p">,</span> <span 
class="n">p</span><span class="p">,</span> <span 
class="s1">&#39;param&#39;</span><span class="p">)</span>  <span class="c1"># 
use the global lr=0.1 for epoch 1</span>
+<span class="n">sgd</span><span class="o">.</span><span 
class="n">apply_with_lr</span><span class="p">(</span><span 
class="mi">2</span><span class="p">,</span> <span class="mf">0.03</span><span 
class="p">,</span> <span class="n">g</span><span class="p">,</span> <span 
class="n">p</span><span class="p">,</span> <span 
class="s1">&#39;param&#39;</span><span class="p">)</span>  <span class="c1"># 
use lr=0.03 for epoch 2</span>
+</pre></div>
+</div>
+<dl class="class">
+<dt id="singa.optimizer.Optimizer">
+<em class="property">class </em><code 
class="descclassname">singa.optimizer.</code><code 
class="descname">Optimizer</code><span 
class="sig-paren">(</span><em>lr=None</em>, <em>momentum=None</em>, 
<em>weight_decay=None</em>, <em>regularizer=None</em>, 
<em>constraint=None</em><span class="sig-paren">)</span><a class="headerlink" 
href="#singa.optimizer.Optimizer" title="Permalink to this 
definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal"><span 
class="pre">object</span></code></p>
+<p>The base python optimizer class.</p>
+<p>Typically, an optimizer is used as follows:</p>
+<ol class="arabic simple">
+<li>construct the optimizer</li>
+<li>(optional) register each parameter with its specs.</li>
+<li>use the optimizer to update parameter values given parameter gradients
+and other optional info</li>
+</ol>
+<p>The subclasses should override the apply_with_lr function to do the real
+parameter udpate.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td 
class="field-body"><ul class="first last simple">
+<li><strong>lr</strong> (<em>float</em>) &#8211; a constant value for the 
learning rate</li>
+<li><strong>momentum</strong> (<em>float</em>) &#8211; a constant value for 
the momentum value</li>
+<li><strong>weight_decay</strong> (<em>float</em>) &#8211; the coefficent for 
L2 regularizer, which is
+mutually exclusive with &#8216;regularizer&#8217;.</li>
+<li><strong>regularizer</strong> &#8211; an instance of Regularizer or 
RegularizerConf; If set,
+regularization would be applied in apply_with_lr().
+Users can also do regularization outside.</li>
+<li><strong>constraint</strong> &#8211; an instance of Constraint or 
ConstraintConf; If set,
+constraint would be applied inside apply_with_lr(). Users can
+also apply constraint outside.</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+<dl class="method">
+<dt id="singa.optimizer.Optimizer.register">
+<code class="descname">register</code><span 
class="sig-paren">(</span><em>name</em>, <em>specs</em><span 
class="sig-paren">)</span><a class="headerlink" 
href="#singa.optimizer.Optimizer.register" title="Permalink to this 
definition">¶</a></dt>
+<dd><p>Register the param specs, including creating regularizer and
+constraint per param object. Param specific regularizer and constraint
+have higher priority than the global ones. If all parameters share the
+same setting for learning rate, regularizer and constraint, then there
+is no need to call this function.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td 
class="field-body"><ul class="first last simple">
+<li><strong>name</strong> (<em>str</em>) &#8211; parameter name</li>
+<li><strong>specs</strong> (<em>ParamSpec</em>) &#8211; protobuf obj, 
including regularizer and
+constraint, multipliers for learning rate and weight decay.</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="singa.optimizer.Optimizer.apply_regularizer_constraint">
+<code class="descname">apply_regularizer_constraint</code><span 
class="sig-paren">(</span><em>epoch</em>, <em>value</em>, <em>grad</em>, 
<em>name=None</em>, <em>step=-1</em><span class="sig-paren">)</span><a 
class="headerlink" 
href="#singa.optimizer.Optimizer.apply_regularizer_constraint" title="Permalink 
to this definition">¶</a></dt>
+<dd><p>Apply regularization and constraint if available.</p>
+<p>If there are both global regularizer (constraint) and param specific
+regularizer (constraint), it would use the param specific one.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td 
class="field-body"><ul class="first simple">
+<li><strong>epoch</strong> (<em>int</em>) &#8211; training epoch ID</li>
+<li><strong>value</strong> (<a class="reference internal" 
href="tensor.html#singa.tensor.Tensor" 
title="singa.tensor.Tensor"><em>Tensor</em></a>) &#8211; parameter value 
Tensor</li>
+<li><strong>grad</strong> (<a class="reference internal" 
href="tensor.html#singa.tensor.Tensor" 
title="singa.tensor.Tensor"><em>Tensor</em></a>) &#8211; parameter gradient 
Tensor</li>
+<li><strong>name</strong> (<em>string</em>) &#8211; to get parameter specific 
regularizer or constraint</li>
+<li><strong>step</strong> (<em>int</em>) &#8211; iteration ID within one 
epoch</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td 
class="field-body"><p class="first last">the updated gradient Tensor</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="singa.optimizer.Optimizer.apply_with_lr">
+<code class="descname">apply_with_lr</code><span 
class="sig-paren">(</span><em>epoch</em>, <em>lr</em>, <em>grad</em>, 
<em>value</em>, <em>name=None</em>, <em>step=-1</em><span 
class="sig-paren">)</span><a class="headerlink" 
href="#singa.optimizer.Optimizer.apply_with_lr" title="Permalink to this 
definition">¶</a></dt>
+<dd><p>Do update of parameters with given learning rate if the grad is not
+empty.</p>
+<p>The subclass optimizer must override this function.
+This function do nothing if the grad is empty.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td 
class="field-body"><ul class="first simple">
+<li><strong>epoch</strong> (<em>int</em>) &#8211; training epoch ID</li>
+<li><strong>lr</strong> (<em>float</em>) &#8211; learning rate</li>
+<li><strong>grad</strong> (<a class="reference internal" 
href="tensor.html#singa.tensor.Tensor" 
title="singa.tensor.Tensor"><em>Tensor</em></a>) &#8211; parameter gradient</li>
+<li><strong>value</strong> (<em>Tesnor</em>) &#8211; parameter value</li>
+<li><strong>name</strong> (<em>string</em>) &#8211; paramter name to index 
parameter specific
+updating rules (including regularizer and constraint)</li>
+<li><strong>step</strong> (<em>int</em>) &#8211; iteration ID within one 
epoch</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td 
class="field-body"><p class="first last">updated parameter value</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="singa.optimizer.Optimizer.apply">
+<code class="descname">apply</code><span 
class="sig-paren">(</span><em>epoch</em>, <em>grad</em>, <em>value</em>, 
<em>name=None</em>, <em>step=-1</em><span class="sig-paren">)</span><a 
class="headerlink" href="#singa.optimizer.Optimizer.apply" title="Permalink to 
this definition">¶</a></dt>
+<dd><p>Do update assuming the learning rate generator is set.</p>
+<p>The subclass optimizer does not need to override this function.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td 
class="field-body"><ul class="first simple">
+<li><strong>epoch</strong> (<em>int</em>) &#8211; training epoch ID</li>
+<li><strong>grad</strong> (<a class="reference internal" 
href="tensor.html#singa.tensor.Tensor" 
title="singa.tensor.Tensor"><em>Tensor</em></a>) &#8211; parameter gradient</li>
+<li><strong>value</strong> (<em>Tesnor</em>) &#8211; parameter value</li>
+<li><strong>name</strong> (<em>string</em>) &#8211; paramter name to retrieval 
parameter specific
+updating rules (including regularizer and constraint)</li>
+<li><strong>step</strong> (<em>int</em>) &#8211; training iteration ID within 
one epoch</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td 
class="field-body"><p class="first last">updated parameter value</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt id="singa.optimizer.SGD">
+<em class="property">class </em><code 
class="descclassname">singa.optimizer.</code><code 
class="descname">SGD</code><span class="sig-paren">(</span><em>lr=None</em>, 
<em>momentum=None</em>, <em>weight_decay=None</em>, <em>regularizer=None</em>, 
<em>constraint=None</em><span class="sig-paren">)</span><a class="headerlink" 
href="#singa.optimizer.SGD" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <a class="reference internal" href="#singa.optimizer.Optimizer" 
title="singa.optimizer.Optimizer"><code class="xref py py-class docutils 
literal"><span class="pre">singa.optimizer.Optimizer</span></code></a></p>
+<p>The vallina Stochasitc Gradient Descent algorithm with momentum.</p>
+<p>See the base Optimizer for all arguments.</p>
+<dl class="method">
+<dt id="singa.optimizer.SGD.apply_with_lr">
+<code class="descname">apply_with_lr</code><span 
class="sig-paren">(</span><em>epoch</em>, <em>lr</em>, <em>grad</em>, 
<em>value</em>, <em>name</em>, <em>step=-1</em><span 
class="sig-paren">)</span><a class="headerlink" 
href="#singa.optimizer.SGD.apply_with_lr" title="Permalink to this 
definition">¶</a></dt>
+<dd></dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt id="singa.optimizer.Nesterov">
+<em class="property">class </em><code 
class="descclassname">singa.optimizer.</code><code 
class="descname">Nesterov</code><span 
class="sig-paren">(</span><em>lr=None</em>, <em>momentum=0.9</em>, 
<em>weight_decay=None</em>, <em>regularizer=None</em>, 
<em>constraint=None</em><span class="sig-paren">)</span><a class="headerlink" 
href="#singa.optimizer.Nesterov" title="Permalink to this 
definition">¶</a></dt>
+<dd><p>Bases: <a class="reference internal" href="#singa.optimizer.Optimizer" 
title="singa.optimizer.Optimizer"><code class="xref py py-class docutils 
literal"><span class="pre">singa.optimizer.Optimizer</span></code></a></p>
+<p>The SGD with Nesterov momentum.</p>
+<p>See the base Optimizer for all arguments.</p>
+<dl class="method">
+<dt id="singa.optimizer.Nesterov.apply_with_lr">
+<code class="descname">apply_with_lr</code><span 
class="sig-paren">(</span><em>epoch</em>, <em>lr</em>, <em>grad</em>, 
<em>value</em>, <em>name</em>, <em>step=-1</em><span 
class="sig-paren">)</span><a class="headerlink" 
href="#singa.optimizer.Nesterov.apply_with_lr" title="Permalink to this 
definition">¶</a></dt>
+<dd></dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt id="singa.optimizer.RMSProp">
+<em class="property">class </em><code 
class="descclassname">singa.optimizer.</code><code 
class="descname">RMSProp</code><span 
class="sig-paren">(</span><em>rho=0.9</em>, <em>epsilon=1e-08</em>, 
<em>lr=None</em>, <em>weight_decay=None</em>, <em>regularizer=None</em>, 
<em>constraint=None</em><span class="sig-paren">)</span><a class="headerlink" 
href="#singa.optimizer.RMSProp" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <a class="reference internal" href="#singa.optimizer.Optimizer" 
title="singa.optimizer.Optimizer"><code class="xref py py-class docutils 
literal"><span class="pre">singa.optimizer.Optimizer</span></code></a></p>
+<p>RMSProp optimizer.</p>
+<p>See the base Optimizer for all constructor args.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td 
class="field-body"><ul class="first last simple">
+<li><strong>rho</strong> (<em>float</em>) &#8211; float within [0, 1]</li>
+<li><strong>epsilon</strong> (<em>float</em>) &#8211; small value for 
preventing numeric error</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+<dl class="method">
+<dt id="singa.optimizer.RMSProp.apply_with_lr">
+<code class="descname">apply_with_lr</code><span 
class="sig-paren">(</span><em>epoch</em>, <em>lr</em>, <em>grad</em>, 
<em>value</em>, <em>name</em>, <em>step=-1</em><span 
class="sig-paren">)</span><a class="headerlink" 
href="#singa.optimizer.RMSProp.apply_with_lr" title="Permalink to this 
definition">¶</a></dt>
+<dd></dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt id="singa.optimizer.AdaGrad">
+<em class="property">class </em><code 
class="descclassname">singa.optimizer.</code><code 
class="descname">AdaGrad</code><span 
class="sig-paren">(</span><em>epsilon=1e-08</em>, <em>lr=None</em>, 
<em>weight_decay=None</em>, <em>lr_gen=None</em>, <em>regularizer=None</em>, 
<em>constraint=None</em><span class="sig-paren">)</span><a class="headerlink" 
href="#singa.optimizer.AdaGrad" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <a class="reference internal" href="#singa.optimizer.Optimizer" 
title="singa.optimizer.Optimizer"><code class="xref py py-class docutils 
literal"><span class="pre">singa.optimizer.Optimizer</span></code></a></p>
+<p>AdaGrad optimizer.</p>
+<p>See the base Optimizer for all constructor args.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td 
class="field-body"><strong>epsilon</strong> (<em>float</em>) &#8211; small 
number for preventing numeric error.</td>
+</tr>
+</tbody>
+</table>
+<dl class="method">
+<dt id="singa.optimizer.AdaGrad.apply_with_lr">
+<code class="descname">apply_with_lr</code><span 
class="sig-paren">(</span><em>epoch</em>, <em>lr</em>, <em>grad</em>, 
<em>value</em>, <em>name</em>, <em>step=-1</em><span 
class="sig-paren">)</span><a class="headerlink" 
href="#singa.optimizer.AdaGrad.apply_with_lr" title="Permalink to this 
definition">¶</a></dt>
+<dd></dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt id="singa.optimizer.Adam">
+<em class="property">class </em><code 
class="descclassname">singa.optimizer.</code><code 
class="descname">Adam</code><span 
class="sig-paren">(</span><em>beta_1=0.9</em>, <em>beta_2=0.999</em>, 
<em>epsilon=1e-08</em>, <em>lr=None</em>, <em>weight_decay=None</em>, 
<em>regularizer=None</em>, <em>constraint=None</em><span 
class="sig-paren">)</span><a class="headerlink" href="#singa.optimizer.Adam" 
title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <a class="reference internal" href="#singa.optimizer.Optimizer" 
title="singa.optimizer.Optimizer"><code class="xref py py-class docutils 
literal"><span class="pre">singa.optimizer.Optimizer</span></code></a></p>
+<p>Adam optimizer.</p>
+<p>See the base Optimizer for all constructor args.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td 
class="field-body"><ul class="first last simple">
+<li><strong>beta_1</strong> (<em>float</em>) &#8211; coefficient of 
momentum</li>
+<li><strong>beta_2</strong> (<em>float</em>) &#8211; coefficient of aggregated 
squared gradient</li>
+<li><strong>epsilon</strong> (<em>float</em>) &#8211; small value for 
preventing numeric error</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+<dl class="method">
+<dt id="singa.optimizer.Adam.apply_with_lr">
+<code class="descname">apply_with_lr</code><span 
class="sig-paren">(</span><em>epoch</em>, <em>lr</em>, <em>grad</em>, 
<em>value</em>, <em>name</em>, <em>step</em><span class="sig-paren">)</span><a 
class="headerlink" href="#singa.optimizer.Adam.apply_with_lr" title="Permalink 
to this definition">¶</a></dt>
+<dd><p>Update one parameter object.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td 
class="field-body"><strong>step</strong> (<em>int</em>) &#8211; the accumulated 
training iterations, not the iteration ID</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt id="singa.optimizer.Regularizer">
+<em class="property">class </em><code 
class="descclassname">singa.optimizer.</code><code 
class="descname">Regularizer</code><a class="headerlink" 
href="#singa.optimizer.Regularizer" title="Permalink to this 
definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal"><span 
class="pre">object</span></code></p>
+<p>Base Python regularizer for parameter gradients.</p>
+<dl class="method">
+<dt id="singa.optimizer.Regularizer.apply">
+<code class="descname">apply</code><span 
class="sig-paren">(</span><em>epoch</em>, <em>value</em>, <em>grad</em>, 
<em>step=-1</em><span class="sig-paren">)</span><a class="headerlink" 
href="#singa.optimizer.Regularizer.apply" title="Permalink to this 
definition">¶</a></dt>
+<dd></dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt id="singa.optimizer.CppRegularizer">
+<em class="property">class </em><code 
class="descclassname">singa.optimizer.</code><code 
class="descname">CppRegularizer</code><span 
class="sig-paren">(</span><em>conf</em><span class="sig-paren">)</span><a 
class="headerlink" href="#singa.optimizer.CppRegularizer" title="Permalink to 
this definition">¶</a></dt>
+<dd><p>Bases: <a class="reference internal" 
href="#singa.optimizer.Regularizer" title="singa.optimizer.Regularizer"><code 
class="xref py py-class docutils literal"><span 
class="pre">singa.optimizer.Regularizer</span></code></a></p>
+<p>Wrapper for regularizer implemented using C++.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td 
class="field-body"><strong>conf</strong> (<em>RegularizerConf</em>) &#8211; 
protobuf message for the configuration.</td>
+</tr>
+</tbody>
+</table>
+<dl class="method">
+<dt id="singa.optimizer.CppRegularizer.apply">
+<code class="descname">apply</code><span 
class="sig-paren">(</span><em>epoch</em>, <em>value</em>, <em>grad</em>, 
<em>step=-1</em><span class="sig-paren">)</span><a class="headerlink" 
href="#singa.optimizer.CppRegularizer.apply" title="Permalink to this 
definition">¶</a></dt>
+<dd></dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt id="singa.optimizer.L2Regularizer">
+<em class="property">class </em><code 
class="descclassname">singa.optimizer.</code><code 
class="descname">L2Regularizer</code><span 
class="sig-paren">(</span><em>coefficient</em><span 
class="sig-paren">)</span><a class="headerlink" 
href="#singa.optimizer.L2Regularizer" title="Permalink to this 
definition">¶</a></dt>
+<dd><p>Bases: <a class="reference internal" 
href="#singa.optimizer.Regularizer" title="singa.optimizer.Regularizer"><code 
class="xref py py-class docutils literal"><span 
class="pre">singa.optimizer.Regularizer</span></code></a></p>
+<p>L2 regularization</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td 
class="field-body"><strong>coefficient</strong> (<em>float</em>) &#8211; 
regularization coefficient.</td>
+</tr>
+</tbody>
+</table>
+<dl class="method">
+<dt id="singa.optimizer.L2Regularizer.apply">
+<code class="descname">apply</code><span 
class="sig-paren">(</span><em>epoch</em>, <em>value</em>, <em>grad</em>, 
<em>step=-1</em><span class="sig-paren">)</span><a class="headerlink" 
href="#singa.optimizer.L2Regularizer.apply" title="Permalink to this 
definition">¶</a></dt>
+<dd></dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt id="singa.optimizer.Constraint">
+<em class="property">class </em><code 
class="descclassname">singa.optimizer.</code><code 
class="descname">Constraint</code><a class="headerlink" 
href="#singa.optimizer.Constraint" title="Permalink to this 
definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal"><span 
class="pre">object</span></code></p>
+<p>Base Python constraint class for paramter gradients</p>
+<dl class="method">
+<dt id="singa.optimizer.Constraint.apply">
+<code class="descname">apply</code><span 
class="sig-paren">(</span><em>epoch</em>, <em>value</em>, <em>grad</em>, 
<em>step=-1</em><span class="sig-paren">)</span><a class="headerlink" 
href="#singa.optimizer.Constraint.apply" title="Permalink to this 
definition">¶</a></dt>
+<dd></dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt id="singa.optimizer.CppConstraint">
+<em class="property">class </em><code 
class="descclassname">singa.optimizer.</code><code 
class="descname">CppConstraint</code><span 
class="sig-paren">(</span><em>conf</em><span class="sig-paren">)</span><a 
class="headerlink" href="#singa.optimizer.CppConstraint" title="Permalink to 
this definition">¶</a></dt>
+<dd><p>Bases: <a class="reference internal" href="#singa.optimizer.Constraint" 
title="singa.optimizer.Constraint"><code class="xref py py-class docutils 
literal"><span class="pre">singa.optimizer.Constraint</span></code></a></p>
+<p>Wrapper for constraints implemented using C++.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td 
class="field-body"><strong>conf</strong> (<em>ConstraintConf</em>) &#8211; 
protobuf message for the configuration.</td>
+</tr>
+</tbody>
+</table>
+<dl class="method">
+<dt id="singa.optimizer.CppConstraint.apply">
+<code class="descname">apply</code><span 
class="sig-paren">(</span><em>epoch</em>, <em>value</em>, <em>grad</em>, 
<em>step=-1</em><span class="sig-paren">)</span><a class="headerlink" 
href="#singa.optimizer.CppConstraint.apply" title="Permalink to this 
definition">¶</a></dt>
+<dd></dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt id="singa.optimizer.L2Constraint">
+<em class="property">class </em><code 
class="descclassname">singa.optimizer.</code><code 
class="descname">L2Constraint</code><span 
class="sig-paren">(</span><em>threshold=None</em><span 
class="sig-paren">)</span><a class="headerlink" 
href="#singa.optimizer.L2Constraint" title="Permalink to this 
definition">¶</a></dt>
+<dd><p>Bases: <a class="reference internal" href="#singa.optimizer.Constraint" 
title="singa.optimizer.Constraint"><code class="xref py py-class docutils 
literal"><span class="pre">singa.optimizer.Constraint</span></code></a></p>
+<p>Rescale the gradient to make the L2 norm &lt;= a given threshold</p>
+<dl class="method">
+<dt id="singa.optimizer.L2Constraint.apply">
+<code class="descname">apply</code><span 
class="sig-paren">(</span><em>epoch</em>, <em>value</em>, <em>grad</em>, 
<em>step=-1</em><span class="sig-paren">)</span><a class="headerlink" 
href="#singa.optimizer.L2Constraint.apply" title="Permalink to this 
definition">¶</a></dt>
+<dd></dd></dl>
+
+</dd></dl>
+
+</div>
+
+
+           </div>
+          </div>
+          <footer>
+  
+    <div class="rst-footer-buttons" role="navigation" aria-label="footer 
navigation">
+      
+        <a href="data.html" class="btn btn-neutral float-right" title="Data" 
accesskey="n">Next <span class="fa fa-arrow-circle-right"></span></a>
+      
+      
+        <a href="metric.html" class="btn btn-neutral" title="Metric" 
accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous</a>
+      
+    </div>
+  
+
+  <hr/>
+
+  <div role="contentinfo">
+    <p>
+        &copy; Copyright 2017 The Apache Software Foundation. All rights 
reserved. Apache Singa, Apache, the Apache feather logo, and the Apache Singa 
project logos are trademarks of The Apache Software Foundation. All other marks 
mentioned may be trademarks or registered trademarks of their respective 
owners..
+
+    </p>
+  </div>
+  Built with <a href="http://sphinx-doc.org/";>Sphinx</a> using a <a 
href="https://github.com/snide/sphinx_rtd_theme";>theme</a> provided by <a 
href="https://readthedocs.org";>Read the Docs</a>. 
+
+</footer>
+
+        </div>
+      </div>
+
+    </section>
+
+  </div>
+  
+
+
+  
+
+    <script type="text/javascript">
+        var DOCUMENTATION_OPTIONS = {
+            URL_ROOT:'../',
+            VERSION:'1.1.0',
+            COLLAPSE_INDEX:false,
+            FILE_SUFFIX:'.html',
+            HAS_SOURCE:  true
+        };
+    </script>
+      <script type="text/javascript" src="../_static/jquery.js"></script>
+      <script type="text/javascript" src="../_static/underscore.js"></script>
+      <script type="text/javascript" src="../_static/doctools.js"></script>
+
+  
+
+  
+  
+    <script type="text/javascript" src="../_static/js/theme.js"></script>
+  
+
+  
+  
+  <script type="text/javascript">
+      jQuery(function () {
+          SphinxRtdTheme.StickyNav.enable();
+      });
+  </script>
+  
+
+<div class="rst-versions shift-up" data-toggle="rst-versions" role="note" 
aria-label="versions">
+  <span class="rst-current-version" data-toggle="rst-current-version">
+    <span class="fa fa-book"> incubator-singa </span>
+    v: latest
+    <span class="fa fa-caret-down"></span>
+  </span>
+  <div class="rst-other-versions">
+      <dl>
+          <dt>Languages</dt>
+          <dd><a href="../../en/index.html">English</a></dd>
+          <dd><a href="../../zh/index.html">中文</a></dd>
+      </dl>
+      <dl>
+          <dt>Versions</dt>
+          <dd><a href="http://singa.apache.org/v0.3.0/";>0.3</a></dd>
+          <dd><a href="http://singa.apache.org/v1.1.0/";>1.1</a></dd>
+      </dl>
+
+  </div>
+  <a href="http://incubator.apache.org/";> <img src= "../_static/apache.jpg"> 
</a>
+</div>
+
+ <a href="https://github.com/apache/incubator-singa";>
+    <img style="position: absolute; top: 0; right: 0; border: 0; z-index: 
10000;"
+        
src="https://s3.amazonaws.com/github/ribbons/forkme_right_orange_ff7600.png";
+        alt="Fork me on GitHub">
+</a>
+
+ 
+
+
+</body>
+</html>
\ No newline at end of file

Added: incubator/singa/site/trunk/v1.1.0/docs/snapshot.html
URL: 
http://svn.apache.org/viewvc/incubator/singa/site/trunk/v1.1.0/docs/snapshot.html?rev=1782721&view=auto
==============================================================================
--- incubator/singa/site/trunk/v1.1.0/docs/snapshot.html (added)
+++ incubator/singa/site/trunk/v1.1.0/docs/snapshot.html Mon Feb 13 05:13:19 
2017
@@ -0,0 +1,323 @@
+
+
+
+<!DOCTYPE html>
+<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
+<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
+<head>
+  <meta charset="utf-8">
+  
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  
+  <title>Snapshot &mdash; incubator-singa 1.1.0 documentation</title>
+  
+
+  
+  
+
+  
+
+  
+  
+    
+
+  
+
+  
+  
+    <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
+  
+
+  
+
+  
+    <link rel="top" title="incubator-singa 1.1.0 documentation" 
href="../index.html"/>
+        <link rel="up" title="Documentation" href="index.html"/>
+        <link rel="next" title="Caffe Converter" href="converter.html"/>
+        <link rel="prev" title="Image Tool" href="image_tool.html"/>
+    <link href="../_static/style.css" rel="stylesheet" type="text/css">
+
+
+  
+  <script src="../_static/js/modernizr.min.js"></script>
+
+</head>
+
+<body class="wy-body-for-nav" role="document">
+
+  <div class="wy-grid-for-nav">
+
+    
+    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
+      <div class="wy-side-scroll">
+        <div class="wy-side-nav-search">
+          
+
+          
+            <a href="../index.html" class="icon icon-home"> incubator-singa
+          
+
+          
+            
+            <img src="../_static/singa.png" class="logo" />
+          
+          </a>
+
+          
+            
+            
+              <div class="version">
+                latest
+              </div>
+            
+          
+
+          
+<div role="search">
+  <form id="rtd-search-form" class="wy-form" action="../search.html" 
method="get">
+    <input type="text" name="q" placeholder="Search docs" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+
+          
+        </div>
+
+        <div class="wy-menu wy-menu-vertical" data-spy="affix" 
role="navigation" aria-label="main navigation">
+          
+            
+            
+                <ul class="current">
+<li class="toctree-l1"><a class="reference internal" 
href="../downloads.html">Download SINGA</a></li>
+<li class="toctree-l1 current"><a class="reference internal" 
href="index.html">Documentation</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" 
href="installation.html">Installation</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="software_stack.html">Software Stack</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="device.html">Device</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="tensor.html">Tensor</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="layer.html">Layer</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="net.html">FeedForward Net</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="initializer.html">Initializer</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="loss.html">Loss</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="metric.html">Metric</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="optimizer.html">Optimizer</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="data.html">Data</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="image_tool.html">Image Tool</a></li>
+<li class="toctree-l2 current"><a class="current reference internal" 
href="">Snapshot</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="converter.html">Caffe Converter</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="utils.html">Utils</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="model_zoo/index.html">Model Zoo</a></li>
+</ul>
+</li>
+</ul>
+<p class="caption"><span class="caption-text">Development</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" 
href="../develop/schedule.html">Development Schedule</a></li>
+<li class="toctree-l1"><a class="reference internal" 
href="../develop/how-contribute.html">How to Contribute to SINGA</a></li>
+<li class="toctree-l1"><a class="reference internal" 
href="../develop/contribute-code.html">How to Contribute Code</a></li>
+<li class="toctree-l1"><a class="reference internal" 
href="../develop/contribute-docs.html">How to Contribute to 
Documentation</a></li>
+</ul>
+<p class="caption"><span class="caption-text">Community</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" 
href="../community/source-repository.html">Source Repository</a></li>
+<li class="toctree-l1"><a class="reference internal" 
href="../community/mail-lists.html">Project Mailing Lists</a></li>
+<li class="toctree-l1"><a class="reference internal" 
href="../community/issue-tracking.html">Issue Tracking</a></li>
+<li class="toctree-l1"><a class="reference internal" 
href="../community/team-list.html">The SINGA Team</a></li>
+</ul>
+
+            
+          
+        </div>
+      </div>
+    </nav>
+
+    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
+
+      
+      <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
+        <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
+        <a href="../index.html">incubator-singa</a>
+      </nav>
+
+
+      
+      <div class="wy-nav-content">
+        <div class="rst-content">
+          
+
+ 
+
+
+
+<div role="navigation" aria-label="breadcrumbs navigation">
+  <ul class="wy-breadcrumbs">
+    <li><a href="../index.html">Docs</a> &raquo;</li>
+      
+          <li><a href="index.html">Documentation</a> &raquo;</li>
+      
+    <li>Snapshot</li>
+      <li class="wy-breadcrumbs-aside">
+        
+          
+        
+      </li>
+  </ul>
+  <hr/>
+</div>
+          <div role="main" class="document" itemscope="itemscope" 
itemtype="http://schema.org/Article";>
+           <div itemprop="articleBody">
+            
+  <div class="section" id="module-singa.snapshot">
+<span id="snapshot"></span><h1>Snapshot<a class="headerlink" 
href="#module-singa.snapshot" title="Permalink to this headline">¶</a></h1>
+<p>This script includes io::snapshot class and its methods.</p>
+<p>Example usages:</p>
+<div class="highlight-python"><div class="highlight"><pre><span 
class="kn">from</span> <span class="nn">singa</span> <span 
class="kn">import</span> <span class="n">snapshot</span>
+
+<span class="n">sn1</span> <span class="o">=</span> <span 
class="n">snapshot</span><span class="o">.</span><span 
class="n">Snapshot</span><span class="p">(</span><span 
class="s1">&#39;param&#39;</span><span class="p">,</span> <span 
class="bp">False</span><span class="p">)</span>
+<span class="n">params</span> <span class="o">=</span> <span 
class="n">sn1</span><span class="o">.</span><span class="n">read</span><span 
class="p">()</span>  <span class="c1"># read all params as a dictionary</span>
+
+<span class="n">sn2</span> <span class="o">=</span> <span 
class="n">snapshot</span><span class="o">.</span><span 
class="n">Snapshot</span><span class="p">(</span><span 
class="s1">&#39;param_new&#39;</span><span class="p">,</span> <span 
class="bp">False</span><span class="p">)</span>
+<span class="k">for</span> <span class="n">k</span><span class="p">,</span> 
<span class="n">v</span> <span class="ow">in</span> <span 
class="n">params</span><span class="o">.</span><span 
class="n">iteritems</span><span class="p">():</span>
+    <span class="n">sn2</span><span class="o">.</span><span 
class="n">write</span><span class="p">(</span><span class="n">k</span><span 
class="p">,</span> <span class="n">v</span><span class="p">)</span>
+</pre></div>
+</div>
+<dl class="class">
+<dt id="singa.snapshot.Snapshot">
+<em class="property">class </em><code 
class="descclassname">singa.snapshot.</code><code 
class="descname">Snapshot</code><span class="sig-paren">(</span><em>f</em>, 
<em>mode</em>, <em>buffer_size=10</em><span class="sig-paren">)</span><a 
class="headerlink" href="#singa.snapshot.Snapshot" title="Permalink to this 
definition">¶</a></dt>
+<dd><p>Class and member functions for singa::Snapshot.</p>
+<dl class="method">
+<dt id="singa.snapshot.Snapshot.read">
+<code class="descname">read</code><span class="sig-paren">(</span><span 
class="sig-paren">)</span><a class="headerlink" 
href="#singa.snapshot.Snapshot.read" title="Permalink to this 
definition">¶</a></dt>
+<dd><p>Call read method to load all (param_name, param_val)</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Returns:</th><td 
class="field-body">a dict of (parameter name, parameter Tensor)</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="singa.snapshot.Snapshot.write">
+<code class="descname">write</code><span 
class="sig-paren">(</span><em>param_name</em>, <em>param_val</em><span 
class="sig-paren">)</span><a class="headerlink" 
href="#singa.snapshot.Snapshot.write" title="Permalink to this 
definition">¶</a></dt>
+<dd><p>Call Write method to write a parameter</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td 
class="field-body"><ul class="first last simple">
+<li><strong>param_name</strong> (<em>string</em>) &#8211; name of the 
parameter</li>
+<li><strong>param_val</strong> (<a class="reference internal" 
href="tensor.html#singa.tensor.Tensor" 
title="singa.tensor.Tensor"><em>Tensor</em></a>) &#8211; value tensor of the 
parameter</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</dd></dl>
+
+</div>
+
+
+           </div>
+          </div>
+          <footer>
+  
+    <div class="rst-footer-buttons" role="navigation" aria-label="footer 
navigation">
+      
+        <a href="converter.html" class="btn btn-neutral float-right" 
title="Caffe Converter" accesskey="n">Next <span class="fa 
fa-arrow-circle-right"></span></a>
+      
+      
+        <a href="image_tool.html" class="btn btn-neutral" title="Image Tool" 
accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous</a>
+      
+    </div>
+  
+
+  <hr/>
+
+  <div role="contentinfo">
+    <p>
+        &copy; Copyright 2017 The Apache Software Foundation. All rights 
reserved. Apache Singa, Apache, the Apache feather logo, and the Apache Singa 
project logos are trademarks of The Apache Software Foundation. All other marks 
mentioned may be trademarks or registered trademarks of their respective 
owners..
+
+    </p>
+  </div>
+  Built with <a href="http://sphinx-doc.org/";>Sphinx</a> using a <a 
href="https://github.com/snide/sphinx_rtd_theme";>theme</a> provided by <a 
href="https://readthedocs.org";>Read the Docs</a>. 
+
+</footer>
+
+        </div>
+      </div>
+
+    </section>
+
+  </div>
+  
+
+
+  
+
+    <script type="text/javascript">
+        var DOCUMENTATION_OPTIONS = {
+            URL_ROOT:'../',
+            VERSION:'1.1.0',
+            COLLAPSE_INDEX:false,
+            FILE_SUFFIX:'.html',
+            HAS_SOURCE:  true
+        };
+    </script>
+      <script type="text/javascript" src="../_static/jquery.js"></script>
+      <script type="text/javascript" src="../_static/underscore.js"></script>
+      <script type="text/javascript" src="../_static/doctools.js"></script>
+
+  
+
+  
+  
+    <script type="text/javascript" src="../_static/js/theme.js"></script>
+  
+
+  
+  
+  <script type="text/javascript">
+      jQuery(function () {
+          SphinxRtdTheme.StickyNav.enable();
+      });
+  </script>
+  
+
+<div class="rst-versions shift-up" data-toggle="rst-versions" role="note" 
aria-label="versions">
+  <span class="rst-current-version" data-toggle="rst-current-version">
+    <span class="fa fa-book"> incubator-singa </span>
+    v: latest
+    <span class="fa fa-caret-down"></span>
+  </span>
+  <div class="rst-other-versions">
+      <dl>
+          <dt>Languages</dt>
+          <dd><a href="../../en/index.html">English</a></dd>
+          <dd><a href="../../zh/index.html">中文</a></dd>
+      </dl>
+      <dl>
+          <dt>Versions</dt>
+          <dd><a href="http://singa.apache.org/v0.3.0/";>0.3</a></dd>
+          <dd><a href="http://singa.apache.org/v1.1.0/";>1.1</a></dd>
+      </dl>
+
+  </div>
+  <a href="http://incubator.apache.org/";> <img src= "../_static/apache.jpg"> 
</a>
+</div>
+
+ <a href="https://github.com/apache/incubator-singa";>
+    <img style="position: absolute; top: 0; right: 0; border: 0; z-index: 
10000;"
+        
src="https://s3.amazonaws.com/github/ribbons/forkme_right_orange_ff7600.png";
+        alt="Fork me on GitHub">
+</a>
+
+ 
+
+
+</body>
+</html>
\ No newline at end of file


Reply via email to