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

svn commit: r958953 - in /websites/staging/singa/trunk/content: ./ community/ develop/ docs/

Author: buildbot
Date: Sun Jul 19 15:19:56 2015
New Revision: 958953

Log:
Staging update by buildbot for singa

Modified:
    websites/staging/singa/trunk/content/   (props changed)
    websites/staging/singa/trunk/content/community.html
    websites/staging/singa/trunk/content/community/issue-tracking.html
    websites/staging/singa/trunk/content/community/mail-lists.html
    websites/staging/singa/trunk/content/community/source-repository.html
    websites/staging/singa/trunk/content/community/team-list.html
    websites/staging/singa/trunk/content/develop/contribute-code.html
    websites/staging/singa/trunk/content/develop/contribute-docs.html
    websites/staging/singa/trunk/content/develop/how-contribute.html
    websites/staging/singa/trunk/content/develop/schedule.html
    websites/staging/singa/trunk/content/docs.html
    websites/staging/singa/trunk/content/docs/architecture.html
    websites/staging/singa/trunk/content/docs/cnn.html
    websites/staging/singa/trunk/content/docs/code-structure.html
    websites/staging/singa/trunk/content/docs/communication.html
    websites/staging/singa/trunk/content/docs/examples.html
    websites/staging/singa/trunk/content/docs/installation.html
    websites/staging/singa/trunk/content/docs/mlp.html
    websites/staging/singa/trunk/content/docs/neuralnet-partition.html
    websites/staging/singa/trunk/content/docs/programming-model.html
    websites/staging/singa/trunk/content/index.html
    websites/staging/singa/trunk/content/introduction.html
    websites/staging/singa/trunk/content/quick-start.html

Propchange: websites/staging/singa/trunk/content/
------------------------------------------------------------------------------
--- cms:source-revision (original)
+++ cms:source-revision Sun Jul 19 15:19:56 2015
@@ -1 +1 @@
-1691207
+1691832

Modified: websites/staging/singa/trunk/content/community.html
==============================================================================
--- websites/staging/singa/trunk/content/community.html (original)
+++ websites/staging/singa/trunk/content/community.html Sun Jul 19 15:19:56 2015
@@ -1,13 +1,13 @@
 <!DOCTYPE html>
 <!--
- | Generated by Apache Maven Doxia at 2015-07-15 
+ | Generated by Apache Maven Doxia at 2015-07-19 
  | Rendered using Apache Maven Fluido Skin 1.4
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20150715" />
+    <meta name="Date-Revision-yyyymmdd" content="20150719" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache SINGA &#x2013; Community</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4.min.css" />

Modified: websites/staging/singa/trunk/content/community/issue-tracking.html
==============================================================================
--- websites/staging/singa/trunk/content/community/issue-tracking.html (original)
+++ websites/staging/singa/trunk/content/community/issue-tracking.html Sun Jul 19 15:19:56 2015
@@ -1,13 +1,13 @@
 <!DOCTYPE html>
 <!--
- | Generated by Apache Maven Doxia at 2015-07-15 
+ | Generated by Apache Maven Doxia at 2015-07-19 
  | Rendered using Apache Maven Fluido Skin 1.4
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20150715" />
+    <meta name="Date-Revision-yyyymmdd" content="20150719" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache SINGA &#x2013; Issue Tracking</title>
     <link rel="stylesheet" href="../css/apache-maven-fluido-1.4.min.css" />

Modified: websites/staging/singa/trunk/content/community/mail-lists.html
==============================================================================
--- websites/staging/singa/trunk/content/community/mail-lists.html (original)
+++ websites/staging/singa/trunk/content/community/mail-lists.html Sun Jul 19 15:19:56 2015
@@ -1,13 +1,13 @@
 <!DOCTYPE html>
 <!--
- | Generated by Apache Maven Doxia at 2015-07-15 
+ | Generated by Apache Maven Doxia at 2015-07-19 
  | Rendered using Apache Maven Fluido Skin 1.4
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20150715" />
+    <meta name="Date-Revision-yyyymmdd" content="20150719" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache SINGA &#x2013; Project Mailing Lists</title>
     <link rel="stylesheet" href="../css/apache-maven-fluido-1.4.min.css" />

Modified: websites/staging/singa/trunk/content/community/source-repository.html
==============================================================================
--- websites/staging/singa/trunk/content/community/source-repository.html (original)
+++ websites/staging/singa/trunk/content/community/source-repository.html Sun Jul 19 15:19:56 2015
@@ -1,13 +1,13 @@
 <!DOCTYPE html>
 <!--
- | Generated by Apache Maven Doxia at 2015-07-15 
+ | Generated by Apache Maven Doxia at 2015-07-19 
  | Rendered using Apache Maven Fluido Skin 1.4
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20150715" />
+    <meta name="Date-Revision-yyyymmdd" content="20150719" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache SINGA &#x2013; Source Repository</title>
     <link rel="stylesheet" href="../css/apache-maven-fluido-1.4.min.css" />

Modified: websites/staging/singa/trunk/content/community/team-list.html
==============================================================================
--- websites/staging/singa/trunk/content/community/team-list.html (original)
+++ websites/staging/singa/trunk/content/community/team-list.html Sun Jul 19 15:19:56 2015
@@ -1,13 +1,13 @@
 <!DOCTYPE html>
 <!--
- | Generated by Apache Maven Doxia at 2015-07-15 
+ | Generated by Apache Maven Doxia at 2015-07-19 
  | Rendered using Apache Maven Fluido Skin 1.4
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20150715" />
+    <meta name="Date-Revision-yyyymmdd" content="20150719" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache SINGA &#x2013; The SINGA Team</title>
     <link rel="stylesheet" href="../css/apache-maven-fluido-1.4.min.css" />

Modified: websites/staging/singa/trunk/content/develop/contribute-code.html
==============================================================================
--- websites/staging/singa/trunk/content/develop/contribute-code.html (original)
+++ websites/staging/singa/trunk/content/develop/contribute-code.html Sun Jul 19 15:19:56 2015
@@ -1,13 +1,13 @@
 <!DOCTYPE html>
 <!--
- | Generated by Apache Maven Doxia at 2015-07-15 
+ | Generated by Apache Maven Doxia at 2015-07-19 
  | Rendered using Apache Maven Fluido Skin 1.4
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20150715" />
+    <meta name="Date-Revision-yyyymmdd" content="20150719" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache SINGA &#x2013; How to Contribute Code</title>
     <link rel="stylesheet" href="../css/apache-maven-fluido-1.4.min.css" />

Modified: websites/staging/singa/trunk/content/develop/contribute-docs.html
==============================================================================
--- websites/staging/singa/trunk/content/develop/contribute-docs.html (original)
+++ websites/staging/singa/trunk/content/develop/contribute-docs.html Sun Jul 19 15:19:56 2015
@@ -1,13 +1,13 @@
 <!DOCTYPE html>
 <!--
- | Generated by Apache Maven Doxia at 2015-07-15 
+ | Generated by Apache Maven Doxia at 2015-07-19 
  | Rendered using Apache Maven Fluido Skin 1.4
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20150715" />
+    <meta name="Date-Revision-yyyymmdd" content="20150719" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache SINGA &#x2013; How to Contribute Documentation</title>
     <link rel="stylesheet" href="../css/apache-maven-fluido-1.4.min.css" />

Modified: websites/staging/singa/trunk/content/develop/how-contribute.html
==============================================================================
--- websites/staging/singa/trunk/content/develop/how-contribute.html (original)
+++ websites/staging/singa/trunk/content/develop/how-contribute.html Sun Jul 19 15:19:56 2015
@@ -1,13 +1,13 @@
 <!DOCTYPE html>
 <!--
- | Generated by Apache Maven Doxia at 2015-07-15 
+ | Generated by Apache Maven Doxia at 2015-07-19 
  | Rendered using Apache Maven Fluido Skin 1.4
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20150715" />
+    <meta name="Date-Revision-yyyymmdd" content="20150719" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache SINGA &#x2013; How to Contribute to SINGA</title>
     <link rel="stylesheet" href="../css/apache-maven-fluido-1.4.min.css" />

Modified: websites/staging/singa/trunk/content/develop/schedule.html
==============================================================================
--- websites/staging/singa/trunk/content/develop/schedule.html (original)
+++ websites/staging/singa/trunk/content/develop/schedule.html Sun Jul 19 15:19:56 2015
@@ -1,13 +1,13 @@
 <!DOCTYPE html>
 <!--
- | Generated by Apache Maven Doxia at 2015-07-15 
+ | Generated by Apache Maven Doxia at 2015-07-19 
  | Rendered using Apache Maven Fluido Skin 1.4
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20150715" />
+    <meta name="Date-Revision-yyyymmdd" content="20150719" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache SINGA &#x2013; Development Schedule</title>
     <link rel="stylesheet" href="../css/apache-maven-fluido-1.4.min.css" />

Modified: websites/staging/singa/trunk/content/docs.html
==============================================================================
--- websites/staging/singa/trunk/content/docs.html (original)
+++ websites/staging/singa/trunk/content/docs.html Sun Jul 19 15:19:56 2015
@@ -1,13 +1,13 @@
 <!DOCTYPE html>
 <!--
- | Generated by Apache Maven Doxia at 2015-07-15 
+ | Generated by Apache Maven Doxia at 2015-07-19 
  | Rendered using Apache Maven Fluido Skin 1.4
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20150715" />
+    <meta name="Date-Revision-yyyymmdd" content="20150719" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache SINGA &#x2013; Documentation</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4.min.css" />

Modified: websites/staging/singa/trunk/content/docs/architecture.html
==============================================================================
--- websites/staging/singa/trunk/content/docs/architecture.html (original)
+++ websites/staging/singa/trunk/content/docs/architecture.html Sun Jul 19 15:19:56 2015
@@ -1,13 +1,13 @@
 <!DOCTYPE html>
 <!--
- | Generated by Apache Maven Doxia at 2015-07-15 
+ | Generated by Apache Maven Doxia at 2015-07-19 
  | Rendered using Apache Maven Fluido Skin 1.4
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20150715" />
+    <meta name="Date-Revision-yyyymmdd" content="20150719" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache SINGA &#x2013; System Architecture</title>
     <link rel="stylesheet" href="../css/apache-maven-fluido-1.4.min.css" />

Modified: websites/staging/singa/trunk/content/docs/cnn.html
==============================================================================
--- websites/staging/singa/trunk/content/docs/cnn.html (original)
+++ websites/staging/singa/trunk/content/docs/cnn.html Sun Jul 19 15:19:56 2015
@@ -1,13 +1,13 @@
 <!DOCTYPE html>
 <!--
- | Generated by Apache Maven Doxia at 2015-07-15 
+ | Generated by Apache Maven Doxia at 2015-07-19 
  | Rendered using Apache Maven Fluido Skin 1.4
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20150715" />
+    <meta name="Date-Revision-yyyymmdd" content="20150719" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache SINGA &#x2013; </title>
     <link rel="stylesheet" href="../css/apache-maven-fluido-1.4.min.css" />

Modified: websites/staging/singa/trunk/content/docs/code-structure.html
==============================================================================
--- websites/staging/singa/trunk/content/docs/code-structure.html (original)
+++ websites/staging/singa/trunk/content/docs/code-structure.html Sun Jul 19 15:19:56 2015
@@ -1,13 +1,13 @@
 <!DOCTYPE html>
 <!--
- | Generated by Apache Maven Doxia at 2015-07-15 
+ | Generated by Apache Maven Doxia at 2015-07-19 
  | Rendered using Apache Maven Fluido Skin 1.4
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20150715" />
+    <meta name="Date-Revision-yyyymmdd" content="20150719" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache SINGA &#x2013; Code Structure</title>
     <link rel="stylesheet" href="../css/apache-maven-fluido-1.4.min.css" />

Modified: websites/staging/singa/trunk/content/docs/communication.html
==============================================================================
--- websites/staging/singa/trunk/content/docs/communication.html (original)
+++ websites/staging/singa/trunk/content/docs/communication.html Sun Jul 19 15:19:56 2015
@@ -1,13 +1,13 @@
 <!DOCTYPE html>
 <!--
- | Generated by Apache Maven Doxia at 2015-07-15 
+ | Generated by Apache Maven Doxia at 2015-07-19 
  | Rendered using Apache Maven Fluido Skin 1.4
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20150715" />
+    <meta name="Date-Revision-yyyymmdd" content="20150719" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache SINGA &#x2013; Communication</title>
     <link rel="stylesheet" href="../css/apache-maven-fluido-1.4.min.css" />

Modified: websites/staging/singa/trunk/content/docs/examples.html
==============================================================================
--- websites/staging/singa/trunk/content/docs/examples.html (original)
+++ websites/staging/singa/trunk/content/docs/examples.html Sun Jul 19 15:19:56 2015
@@ -1,13 +1,13 @@
 <!DOCTYPE html>
 <!--
- | Generated by Apache Maven Doxia at 2015-07-15 
+ | Generated by Apache Maven Doxia at 2015-07-19 
  | Rendered using Apache Maven Fluido Skin 1.4
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20150715" />
+    <meta name="Date-Revision-yyyymmdd" content="20150719" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache SINGA &#x2013; </title>
     <link rel="stylesheet" href="../css/apache-maven-fluido-1.4.min.css" />

Modified: websites/staging/singa/trunk/content/docs/installation.html
==============================================================================
--- websites/staging/singa/trunk/content/docs/installation.html (original)
+++ websites/staging/singa/trunk/content/docs/installation.html Sun Jul 19 15:19:56 2015
@@ -1,13 +1,13 @@
 <!DOCTYPE html>
 <!--
- | Generated by Apache Maven Doxia at 2015-07-15 
+ | Generated by Apache Maven Doxia at 2015-07-19 
  | Rendered using Apache Maven Fluido Skin 1.4
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20150715" />
+    <meta name="Date-Revision-yyyymmdd" content="20150719" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache SINGA &#x2013; Installation</title>
     <link rel="stylesheet" href="../css/apache-maven-fluido-1.4.min.css" />

Modified: websites/staging/singa/trunk/content/docs/mlp.html
==============================================================================
--- websites/staging/singa/trunk/content/docs/mlp.html (original)
+++ websites/staging/singa/trunk/content/docs/mlp.html Sun Jul 19 15:19:56 2015
@@ -1,13 +1,13 @@
 <!DOCTYPE html>
 <!--
- | Generated by Apache Maven Doxia at 2015-07-15 
+ | Generated by Apache Maven Doxia at 2015-07-19 
  | Rendered using Apache Maven Fluido Skin 1.4
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20150715" />
+    <meta name="Date-Revision-yyyymmdd" content="20150719" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache SINGA &#x2013; </title>
     <link rel="stylesheet" href="../css/apache-maven-fluido-1.4.min.css" />

Modified: websites/staging/singa/trunk/content/docs/neuralnet-partition.html
==============================================================================
--- websites/staging/singa/trunk/content/docs/neuralnet-partition.html (original)
+++ websites/staging/singa/trunk/content/docs/neuralnet-partition.html Sun Jul 19 15:19:56 2015
@@ -1,13 +1,13 @@
 <!DOCTYPE html>
 <!--
- | Generated by Apache Maven Doxia at 2015-07-15 
+ | Generated by Apache Maven Doxia at 2015-07-19 
  | Rendered using Apache Maven Fluido Skin 1.4
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20150715" />
+    <meta name="Date-Revision-yyyymmdd" content="20150719" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache SINGA &#x2013; Neural Network Partition</title>
     <link rel="stylesheet" href="../css/apache-maven-fluido-1.4.min.css" />

Modified: websites/staging/singa/trunk/content/docs/programming-model.html
==============================================================================
--- websites/staging/singa/trunk/content/docs/programming-model.html (original)
+++ websites/staging/singa/trunk/content/docs/programming-model.html Sun Jul 19 15:19:56 2015
@@ -1,15 +1,15 @@
 <!DOCTYPE html>
 <!--
- | Generated by Apache Maven Doxia at 2015-07-15 
+ | Generated by Apache Maven Doxia at 2015-07-19 
  | Rendered using Apache Maven Fluido Skin 1.4
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20150715" />
+    <meta name="Date-Revision-yyyymmdd" content="20150719" />
     <meta http-equiv="Content-Language" content="en" />
-    <title>Apache SINGA &#x2013; Programming Model</title>
+    <title>Apache SINGA &#x2013; Model Configuration</title>
     <link rel="stylesheet" href="../css/apache-maven-fluido-1.4.min.css" />
     <link rel="stylesheet" href="../css/site.css" />
     <link rel="stylesheet" href="../css/print.css" media="print" />
@@ -173,7 +173,7 @@
         Apache SINGA</a>
                     <span class="divider">/</span>
       </li>
-        <li class="active ">Programming Model</li>
+        <li class="active ">Model Configuration</li>
         
                 
                     
@@ -364,106 +364,241 @@
         <div id="bodyColumn"  class="span10" >
                                   
             <div class="section">
-<h2><a name="Programming_Model"></a>Programming Model</h2>
-<p>We describe the programming model of SINGA in this article. Base data structures are introduced firstly, and then we show examples for users with different levels of deep learning background.</p>
+<h2><a name="Model_Configuration"></a>Model Configuration</h2>
+<p>SINGA uses the stochastic gradient descent (SGD) algorithm to train parameters of deep learning models. For each SGD iteration, there is a [Worker] computing gradients of parameters from the NeuralNet and a [Updater] updating parameter values based on gradients. Hence the model configuration mainly consists these three parts. We will introduce the NeuralNet, Worker and Updater in the following paragraphs and describe the configurations for them.</p></div>
 <div class="section">
-<h3><a name="Base_Data_Structures"></a>Base Data Structures</h3>
+<h2><a name="NeuralNet"></a>NeuralNet</h2>
 <div class="section">
-<h4><a name="Layer"></a>Layer</h4>
-<p>Layer is the first class citizen in SINGA. Users construct their deep learning models by creating layer objects and combining them. SINGA takes care of running BackPropagation (or Contrastive Divergence) algorithms to calculate the gradients for parameters and calling <a href="#updater">Updaters</a> to update them.</p>
+<h3><a name="Deep_learning_training"></a>Deep learning training</h3>
+<p>Deep learning is labeled as a feature learning technique, which usually consists of multiple layers. Each layer is associated a feature transformation function. After going through all layers, the raw input feature (e.g., pixels of images) would be converted into a high-level feature that is easier for tasks like classification. </p>
+<p>Training a deep learning model is to find the optimal parameters involved in the transformation functions that generates good features for specific tasks. The goodness of a set of parameters is measured by a loss function, e.g., [Cross-Entropy Loss]. Since the loss functions are usually non-linear and non-convex, it is difficult to get a closed form solution. Normally, people uses the SGD algorithm which randomly initializes the parameters and then iteratively update them to reduce the loss.</p></div>
+<div class="section">
+<h3><a name="Uniform_model_representation"></a>Uniform model representation</h3>
+<p>Many deep learning models have being proposed. Figure 1 is a categorization of popular deep learning models based on the layer connections. The NeuralNet abstraction of SINGA consists of multiple directed connected layers. This abstraction is able to represent models from all the three categorizations.</p>
+<p>*For the feed-forward models, their connections are already directed. </p>
+<p>*For the RNN models, we unroll them into directed connections, as shown in Figure 2.</p>
+<p>*For the undirected connections in RBM, DBM, etc., we replace each undirected connection with two  directed connection, as shown in Figure 3.</p>
+<p>In specific, the NeuralNet class is defined in [neuralnet.h] :</p>
 
 <div class="source">
-<div class="source"><pre class="prettyprint">class Layer{
-  /**
-   * Setup layer properties.
-   * Setup the shapes for data and parameters, also setup some properties
-   * based on the layer configuration and connected src layers.
-   * @param conf user defined layer configuration of type [LayerProto](#netproto)
-   * @param srclayers layers connecting to this layer
-   */
-  Setup(conf, srclayers);
-  /**
-   * Setup the layer properties.
-   * This function is called if the model is partitioned due to distributed
-   * training. Shape of the layer is already set by the partition algorithm,
-   * and is passed in to set other properties.
-   * @param conf user defined layer configuration of type [LayerProto](#netproto)
-   * @param shape shape set by partition algorithm (for distributed training).
-   * @param srclayers layers connecting to this layer
-   */
-  SetupAfterPartition(conf, shape, srclayers);
-  /**
-   * Compute features of this layer based on connected layers.
-   * BP and CD will call this to calculate gradients
-   * @param training boolean phase indicator for training or test
-   * @param srclayers layers connecting to this layer
-   */
-  ComputeFeature(training, srclayers);
-  /**
-   * Compute gradients for parameters and connected layers.
-   * BP and CD will call this to calculate gradients
-   * @param srclayers layers connecting to this layer.
-   */
-  ComputeGradient(srclayers)=0;
-}
+<div class="source"><pre class="prettyprint">...
+vector&lt;Layer*&gt; layers_;
+...
+</pre></div></div>
+<p>The Layer class is defined in [base_layer.h]:</p>
+
+<div class="source">
+<div class="source"><pre class="prettyprint">vector&lt;Layer*&gt; srclayers_, dstlayers_;
+LayerProto layer_proto_;  // layer configuration, including meta info, e.g., name
+... 
 </pre></div></div>
-<p>The above pseudo code shows the base Layer class. Users override these methods to implement their own layer classes. For example, we have implemented popular layers like ConvolutionLayer, InnerProductLayer. We also provide a DataLayer which is a base layer for loading (and prefetching) data from disk or HDFS. A base ParserLayer is created for parsing the raw data and convert it into records that are recognizable by SINGA.</p></div>
+<p>The connection with other layers are kept in the <tt>srclayers_</tt> and <tt>dstlayers_</tt>. Since there are many different feature transformations, there are many different [Layer implementations] correspondingly. For those layers which have parameters in their feature transformation functions, they would have Param instances in the layer class, e.g.,</p>
+
+<div class="source">
+<div class="source"><pre class="prettyprint">Param weight;
+</pre></div></div></div>
 <div class="section">
-<h4><a name="NetProto"></a>NetProto</h4>
-<p>Since deep learning models consist of multiple layers. The model structure includes the properties of each layer and the connections between layers. SINGA uses google protocol buffer for users to configure the model structure. The protocol buffer message for the model structure is defined as:</p>
+<h3><a name="Configure_the_structure_of_a_NeuralNet_instance"></a>Configure the structure of a NeuralNet instance</h3>
+<p>To train a deep learning model, the first step is to write the configurations for the model structure, i.e., the layers and connections for the NeuralNet. Like Caffe, we use the [Google Protocol Buffer] to define the configuration schema, the NetProto specifies the configuration fields for a NeuralNet instance,</p>
+<p>message NetProto {  repeated LayerProto layer = 1;  &#x2026; }</p>
+<p>The configuration is then</p>
 
 <div class="source">
-<div class="source"><pre class="prettyprint">NetProto{
-  repeated LayerProto layer;
+<div class="source"><pre class="prettyprint">layer {
+  // layer configuration
+}
+layer {
+  // layer configuration
 }
+...
+</pre></div></div>
+<p>To configure the model structure, we just configure each layer involved in the model.</p>
 
-LayerProto{
-  string name; // user defined layer name for displaying
-  string type; // One layer class has a unique type.
-  repeated string srclayer_name; // connected layer names;
-  repeated ParamProto param; // parameter configurations
+<div class="source">
+<div class="source"><pre class="prettyprint">message LayerProto {
+  // the layer name used for identification
+  required string name = 1;
+  // source layer names
+  repeated string srclayers = 3;
+  // parameters, e.g., weight matrix or bias vector
+  repeated ParamProto param = 12;
+  // the layer type from the enum above
+  required LayerType type = 20;
+  // configuration for convolution layer
+  optional ConvolutionProto convolution_conf = 30;
+  // configuration for concatenation layer
+  optional ConcateProto concate_conf = 31;
+  // configuration for dropout layer
+  optional DropoutProto dropout_conf = 33;
   ...
 }
 </pre></div></div>
-<p>Users can create a plain text file and fill it with the configurations. SINGA parses it according to user provided path.</p></div>
-<div class="section">
-<h4><a name="Param"></a>Param</h4>
-<p>The Param class is shown below. Users do not need to extend the Param class for most cases. We make it a base class just for future extension. For example, if a new initialization trick is proposed in the future, we can override the <tt>Init</tt> method to implement it.</p>
+<p>A sample configuration for a feed-forward model is like</p>
 
 <div class="source">
-<div class="source"><pre class="prettyprint">Param{
-  /**
-   * Set properties of the parameter.
-   * @param conf user defined parameter configuration of type ParamProto
-   * @param shape shape of the parameter
-  Setup(conf, shape);
-  /**
-   * Initialize the data of the parameter.
-   /
-  Init();
-  ...// methods to handle synchronizations with parameter servers and other workers
+<div class="source"><pre class="prettyprint">layer {
+  name : &quot;data&quot;
+  type : kDataShard
 }
-</pre></div></div></div>
+layer {
+  name : &quot;image&quot;
+  type : kImageParser
+  srclayers : &quot;data&quot;
+}
+layer {
+  name : &quot;conv&quot;
+  type : kConvolution
+  srclayers : &quot;image&quot;
+  param {
+    // configuration for parameter
+  }
+  conv_conf {
+    // configuration for convolution operations
+  }
+  ...
+}
+</pre></div></div>
+<p>The layer type list is defined in [model.proto]. One type (kFoo) corresponds to one child class of Layer (FooLayer) and one configuration field (foo<i>conf). SINGA will infer the dstlayers</i> of each layer after reading the configuration for all layers. Developers can implement new layers and update the type list, then users can use the layer. [layer] describes the configurations of current built-in layers.</p>
+<p>Figure 4 shows the model structure corresponding to the neural network configuration in [cifar10/model.conf].</p></div></div>
 <div class="section">
-<h4><a name="Updater"></a>Updater</h4>
-<p>There are many SGD extensions for updating parameters, like <a class="externalLink" href="http://arxiv.org/pdf/1212.5701v1.pdf">AdaDelta</a>, <a class="externalLink" href="http://www.magicbroom.info/Papers/DuchiHaSi10.pdf">AdaGrad</a>, <a class="externalLink" href="http://www.cs.toronto.edu/~tijmen/csc321/slides/lecture_slides_lec6.pdf">RMSProp</a>, <a class="externalLink" href="http://scholar.google.com/citations?view_op=view_citation&amp;hl=en&amp;user=DJ8Ep8YAAAAJ&amp;citation_for_view=DJ8Ep8YAAAAJ:hkOj_22Ku90C">Nesterov</a> and SGD with momentum. We provide a base Updater to deal with these algorithms. New parameter updating algorithms can be added by extending the base Updater.</p>
+<h2><a name="Worker"></a>Worker</h2>
+<p>At the beginning, the Work will initialize the values of Param instances of each layer either randomly (according to user configured distribution) or load from a [checkpoint file]. For each training iteration, the worker visits layers of the neural network to compute gradients of Param instances of each layer. Corresponding to the three categories of models, there are three different algorithm to compute the gradients of a neural network. </p>
+
+<ol style="list-style-type: decimal">
+  
+<li>Back-propagation (BP) for feed-forward models</li>
+  
+<li>Back-propagation through time (BPTT) for recurrent neural networks</li>
+  
+<li>Contrastive divergence (CD) for RBM, DBM, etc models.</li>
+</ol>
+<p>SINGA has provided these three algorithms as three Worker implementations. Users only need to configure in the model.conf file to specify which algorithm should be used. The configuration protocol is</p>
 
 <div class="source">
-<div class="source"><pre class="prettyprint">Updater{
-  /**
-  * @param proto user configuration for the updater.
-  Init(conf);
-  /**
-  * Update parameter based on its gradient
-  * @param step training step
-  * @param param the Param object
+<div class="source"><pre class="prettyprint">message ModelProto {
+  ...
+  enum GradCalcAlg {
+  // BP algorithm for feed-forward models, e.g., CNN, MLP, RNN
+  kBP = 1;
+  // BPTT for recurrent neural networks
+  kBPTT = 2;
+  // CD algorithm for RBM, DBM etc., models
+  kCd = 3;
+  }
+  // gradient calculation algorithm
+  required GradCalcAlg alg = 8 [default = kBackPropagation];
+  ...
+}
+</pre></div></div>
+<p>These algorithms override the TrainOneBatch function of the Worker, e.g., the BPWorker implement it as</p>
+
+<div class="source">
+<div class="source"><pre class="prettyprint">void BPWorker::TrainOneBatch(int step, Metric* perf) {
+  Forward(step, kTrain, train_net_, perf);
+  Backward(step, train_net_);
+}
+</pre></div></div>
+<p>The Forward function pass the raw input features of one mini-batch through all layers, and the Backward function visits the layers in reverse order to compute the gradients of the loss w.r.t each layer&#x2019;s feature and each layer&#x2019;s Param objects. Different algorithms would visit the layers in different orders. Some may traverses the neural network multiple times, e.g., the CDWorker&#x2019;s TrainOneBatch function is:</p>
+
+<div class="source">
+<div class="source"><pre class="prettyprint">void CDWorker::TrainOneBatch(int step, Metric* perf) {
+  PostivePhase(step, kTrain, train_net_, perf);
+  NegativePhase(step, kTran, train_net_, perf);
+  GradientPhase(step, train_net_);
+}
+</pre></div></div>
+<p>But all algorithms will finally call the two functions of the Layer class:</p>
+
+<div class="source">
+<div class="source"><pre class="prettyprint"> /**
+  * Transform features from connected layers into features of this layer.
+  *
+  * @param phase kTrain, kTest, kPositive, etc.
+  */
+ virtual void ComputeFeature(Phase phase, Metric* perf) = 0;
+ /**
+  * Compute gradients for parameters (and connected layers).
+  *
+  * @param phase kTrain, kTest, kPositive, etc.
   */
-  Update(step, param);
+ virtual void ComputeGradient(Phase phase) = 0;
+</pre></div></div>
+<p>All Layer implementation must implement the above two functions. </p></div>
+<div class="section">
+<h2><a name="Updater"></a>Updater</h2>
+<p>Once the gradients of parameters are computed, the Updater will update parameter values. There are many SGD variants for updating parameters, like <a class="externalLink" href="http://arxiv.org/pdf/1212.5701v1.pdf">AdaDelta</a>, <a class="externalLink" href="http://www.magicbroom.info/Papers/DuchiHaSi10.pdf">AdaGrad</a>, <a class="externalLink" href="http://www.cs.toronto.edu/~tijmen/csc321/slides/lecture_slides_lec6.pdf">RMSProp</a>, <a class="externalLink" href="http://scholar.google.com/citations?view_op=view_citation&amp;hl=en&amp;user=DJ8Ep8YAAAAJ&amp;citation_for_view=DJ8Ep8YAAAAJ:hkOj_22Ku90C">Nesterov</a> and SGD with momentum. The core function of the Updater is</p>
+
+<div class="source">
+<div class="source"><pre class="prettyprint">/**
+ * Update parameter values based on gradients
+ * @param step training step
+ * @param param pointer to the Param object
+ * @param grad_scale scaling factor for the gradients
+ */
+void Update(int step, Param* param, float grad_scale=1.0f);
+/**
+ * @param step training step
+ * @return the learning rate for this step
+ */
+float GetLearningRate(int step);
+</pre></div></div>
+<p>SINGA provides several built-in updaters and learning rate change methods, users can configure them according the the [UpdaterProto]</p>
+
+<div class="source">
+<div class="source"><pre class="prettyprint">message UpdaterProto {
+  enum UpdaterType{
+    // noraml SGD with momentum and weight decay
+    kSGD = 1;
+    // adaptive subgradient, http://www.magicbroom.info/Papers/DuchiHaSi10.pdf
+    kAdaGrad = 2;
+    // http://www.cs.toronto.edu/~tijmen/csc321/slides/lecture_slides_lec6.pdf
+    kRMSProp = 3;
+    // Nesterov first optimal gradient method
+    kNesterov = 4;
+  }
+  // updater type
+  required UpdaterType type = 1 [default=kSGD];
+  // configuration for RMSProp algorithm
+  optional RMSPropProto rmsprop_conf = 50;
+
+  enum ChangeMethod {
+    kFixed = 0;
+    kInverseT = 1;
+    kInverse = 2;
+    kExponential = 3;
+    kLinear = 4;
+    kStep = 5;
+    kFixedStep = 6;
+  }
+  // change method for learning rate
+  required ChangeMethod lr_change= 2 [default = kFixed];
+
+  optional FixedStepProto fixedstep_conf=40;
+  ... 
+  optional float momentum = 31 [default = 0];
+  optional float weight_decay = 32 [default = 0];
+  // base learning rate
+  optional float base_lr = 34 [default = 0];  
 }
-</pre></div></div></div></div>
+</pre></div></div></div>
 <div class="section">
-<h3><a name="Examples"></a>Examples</h3>
-<p>The <a href="..">MLP example</a> shows how to configure the model through google protocol buffer.</p></div></div>
+<h2><a name="Other_model_configuration_fields"></a>Other model configuration fields</h2>
+<p>Some other important configuration fields for training a deep learning model is listed:</p>
+
+<div class="source">
+<div class="source"><pre class="prettyprint">// model name, e.g., &quot;cifar10-dcnn&quot;, &quot;mnist-mlp&quot;
+required string name = 1;
+// frequency of displaying training info
+required int32 display_frequency = 3 ;
+// total num of steps for training
+required int32 train_steps = 5;
+... // step, frequency for validation and test
+// frequency of checkpoint
+optional int32 checkpoint_frequency = 34 [default = 0];
+// checkpoint path
+optional bool resume = 36 [default = false];
+</pre></div></div>
+<p>The pages of [checkpoint and restore], [validation and test] have more details on related fields.</p></div>
                   </div>
             </div>
           </div>

Modified: websites/staging/singa/trunk/content/index.html
==============================================================================
--- websites/staging/singa/trunk/content/index.html (original)
+++ websites/staging/singa/trunk/content/index.html Sun Jul 19 15:19:56 2015
@@ -1,13 +1,13 @@
 <!DOCTYPE html>
 <!--
- | Generated by Apache Maven Doxia at 2015-07-15 
+ | Generated by Apache Maven Doxia at 2015-07-19 
  | Rendered using Apache Maven Fluido Skin 1.4
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20150715" />
+    <meta name="Date-Revision-yyyymmdd" content="20150719" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache SINGA &#x2013; Welcome to Apache SINGA</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4.min.css" />

Modified: websites/staging/singa/trunk/content/introduction.html
==============================================================================
--- websites/staging/singa/trunk/content/introduction.html (original)
+++ websites/staging/singa/trunk/content/introduction.html Sun Jul 19 15:19:56 2015
@@ -1,13 +1,13 @@
 <!DOCTYPE html>
 <!--
- | Generated by Apache Maven Doxia at 2015-07-15 
+ | Generated by Apache Maven Doxia at 2015-07-19 
  | Rendered using Apache Maven Fluido Skin 1.4
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20150715" />
+    <meta name="Date-Revision-yyyymmdd" content="20150719" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache SINGA &#x2013; Introduction</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4.min.css" />

Modified: websites/staging/singa/trunk/content/quick-start.html
==============================================================================
--- websites/staging/singa/trunk/content/quick-start.html (original)
+++ websites/staging/singa/trunk/content/quick-start.html Sun Jul 19 15:19:56 2015
@@ -1,13 +1,13 @@
 <!DOCTYPE html>
 <!--
- | Generated by Apache Maven Doxia at 2015-07-15 
+ | Generated by Apache Maven Doxia at 2015-07-19 
  | Rendered using Apache Maven Fluido Skin 1.4
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20150715" />
+    <meta name="Date-Revision-yyyymmdd" content="20150719" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache SINGA &#x2013; Quick Start</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4.min.css" />