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 2016/04/20 07:12:08 UTC
svn commit: r986140 [23/34] - in /websites/staging/singa/trunk/content: ./
community/ develop/ docs/ docs/jp/ docs/kr/ docs/zh/ releases/ v0.1.0/
v0.2.0/ v0.2.0/jp/ v0.2.0/kr/ v0.2.0/zh/ v0.3.0/ v0.3.0/jp/ v0.3.0/kr/
v0.3.0/zh/
Added: websites/staging/singa/trunk/content/v0.3.0/kr/overview.html
==============================================================================
--- websites/staging/singa/trunk/content/v0.3.0/kr/overview.html (added)
+++ websites/staging/singa/trunk/content/v0.3.0/kr/overview.html Wed Apr 20 05:12:03 2016
@@ -0,0 +1,400 @@
+<!DOCTYPE html>
+<!--
+ | Generated by Apache Maven Doxia at 2016-04-20
+ | 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="20160420" />
+ <meta http-equiv="Content-Language" content="en" />
+ <title>Apache SINGA – ê°ì</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" />
+
+
+
+
+
+ <script type="text/javascript" src="../../js/apache-maven-fluido-1.4.min.js"></script>
+
+
+
+<script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script>
+
+
+<script type="text/x-mathjax-config">MathJax.Hub.Config({tex2jax: {inlineMath: [['$','$'], ['\\(','\\)']]}});</script>
+
+
+<meta content="Apache SINGA" name="author"/>
+
+
+<meta content="SINGA, Deep Learning, Distributed training" name="keywords"/>
+
+ </head>
+ <body class="topBarEnabled">
+
+
+
+
+
+
+ <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>
+
+
+
+
+
+ <div id="topbar" class="navbar navbar-fixed-top navbar-inverse">
+ <div class="navbar-inner">
+ <div class="container-fluid">
+ <a data-target=".nav-collapse" data-toggle="collapse" class="btn btn-navbar">
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ </a>
+
+ <ul class="nav">
+ <li class="dropdown">
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">Apache SINGA <b class="caret"></b></a>
+ <ul class="dropdown-menu">
+
+ <li> <a href="../../docs/overview.html" title="Introduction">Introduction</a>
+</li>
+
+ <li> <a href="../../docs/quick-start.html" title="Quick Start">Quick Start</a>
+</li>
+
+ <li> <a href="../../downloads.html" title="Downloads">Downloads</a>
+</li>
+ </ul>
+ </li>
+ <li class="dropdown">
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">Documentaion <b class="caret"></b></a>
+ <ul class="dropdown-menu">
+
+ <li class="dropdown-submenu">
+ <a href="../../docs/index.html" title="v0.3.0">v0.3.0</a>
+ <ul class="dropdown-menu">
+ <li> <a href="../../docs/index.html" title="English">English</a>
+</li>
+ <li> <a href="../../docs/zh/index.html" title="ä¸æ">ä¸æ</a>
+</li>
+ <li> <a href="../../docs/jp/index.html" title="æ¥æ¬èª">æ¥æ¬èª</a>
+</li>
+ <li> <a href="../../docs/kr/index.html" title="íêµì´">íêµì´</a>
+</li>
+ </ul>
+ </li>
+
+ <li> <a href="../../v0.2.0/index.html" title="v0.2.0">v0.2.0</a>
+</li>
+
+ <li> <a href="../../v0.1.0/index.html" title="v0.1.0">v0.1.0</a>
+</li>
+ </ul>
+ </li>
+ <li class="dropdown">
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">Development <b class="caret"></b></a>
+ <ul class="dropdown-menu">
+
+ <li> <a href="../../develop/schedule.html" title="Schedule">Schedule</a>
+</li>
+
+ <li class="dropdown-submenu">
+ <a href="../../develop/how-contribute.html" title="How to Contribute">How to Contribute</a>
+ <ul class="dropdown-menu">
+ <li> <a href="../../develop/contribute-code.html" title="Code">Code</a>
+</li>
+ <li> <a href="../../develop/contribute-docs.html" title="Documentation">Documentation</a>
+</li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <li class="dropdown">
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">Community <b class="caret"></b></a>
+ <ul class="dropdown-menu">
+
+ <li> <a href="../../community/source-repository.html" title="Source Repository">Source Repository</a>
+</li>
+
+ <li> <a href="../../community/mail-lists.html" title="Mailing Lists">Mailing Lists</a>
+</li>
+
+ <li> <a href="../../community/issue-tracking.html" title="Issue Tracking">Issue Tracking</a>
+</li>
+
+ <li> <a href="../../community/team-list.html" title="SINGA Team">SINGA Team</a>
+</li>
+ </ul>
+ </li>
+ <li class="dropdown">
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">External Links <b class="caret"></b></a>
+ <ul class="dropdown-menu">
+
+ <li> <a href="http://www.apache.org/" title="Apache Software Foundation">Apache Software Foundation</a>
+</li>
+
+ <li> <a href="http://www.comp.nus.edu.sg/~dbsystem/singa/" title="NUS Site">NUS Site</a>
+</li>
+ </ul>
+ </li>
+ </ul>
+
+
+
+
+ </div>
+
+ </div>
+ </div>
+ </div>
+
+ <div class="container-fluid">
+ <div id="banner">
+ <div class="pull-left">
+ <a href="../../index.html" id="bannerLeft" title="Apache SINGA">
+ <img src="../../images/singa-logo.png" alt="Apache SINGA"/>
+ </a>
+ </div>
+ <div class="pull-right"> <div id="bannerRight">
+ <img src="../../images/singa-title.png" alt="Apache SINGA"/>
+ </div>
+ </div>
+ <div class="clear"><hr/></div>
+ </div>
+
+ <div id="breadcrumbs">
+ <ul class="breadcrumb">
+
+
+ <li class="">
+ <a href="../../index.html" title="Apache SINGA">
+ Apache SINGA</a>
+ <span class="divider">/</span>
+ </li>
+ <li class="active ">ê°ì</li>
+
+
+
+
+ </ul>
+ </div>
+
+
+ <div class="row-fluid">
+ <div id="leftColumn" class="span2">
+ <div class="well sidebar-nav">
+
+
+ <ul class="nav nav-list">
+ <li class="nav-header">Apache SINGA</li>
+
+ <li>
+
+ <a href="../../docs/overview.html" title="Introduction">
+ <span class="none"></span>
+ Introduction</a>
+ </li>
+
+ <li>
+
+ <a href="../../docs/quick-start.html" title="Quick Start">
+ <span class="none"></span>
+ Quick Start</a>
+ </li>
+
+ <li>
+
+ <a href="../../downloads.html" title="Downloads">
+ <span class="none"></span>
+ Downloads</a>
+ </li>
+ <li class="nav-header">Documentaion</li>
+
+ <li>
+
+ <a href="../../docs/index.html" title="v0.3.0">
+ <span class="icon-chevron-right"></span>
+ v0.3.0</a>
+ </li>
+
+ <li>
+
+ <a href="../../v0.2.0/index.html" title="v0.2.0">
+ <span class="none"></span>
+ v0.2.0</a>
+ </li>
+
+ <li>
+
+ <a href="../../v0.1.0/index.html" title="v0.1.0">
+ <span class="none"></span>
+ v0.1.0</a>
+ </li>
+ <li class="nav-header">Development</li>
+
+ <li>
+
+ <a href="../../develop/schedule.html" title="Schedule">
+ <span class="none"></span>
+ Schedule</a>
+ </li>
+
+ <li>
+
+ <a href="../../develop/how-contribute.html" title="How to Contribute">
+ <span class="icon-chevron-right"></span>
+ How to Contribute</a>
+ </li>
+ <li class="nav-header">Community</li>
+
+ <li>
+
+ <a href="../../community/source-repository.html" title="Source Repository">
+ <span class="none"></span>
+ Source Repository</a>
+ </li>
+
+ <li>
+
+ <a href="../../community/mail-lists.html" title="Mailing Lists">
+ <span class="none"></span>
+ Mailing Lists</a>
+ </li>
+
+ <li>
+
+ <a href="../../community/issue-tracking.html" title="Issue Tracking">
+ <span class="none"></span>
+ Issue Tracking</a>
+ </li>
+
+ <li>
+
+ <a href="../../community/team-list.html" title="SINGA Team">
+ <span class="none"></span>
+ SINGA Team</a>
+ </li>
+ <li class="nav-header">External Links</li>
+
+ <li>
+
+ <a href="http://www.apache.org/" class="externalLink" title="Apache Software Foundation">
+ <span class="none"></span>
+ Apache Software Foundation</a>
+ </li>
+
+ <li>
+
+ <a href="http://www.comp.nus.edu.sg/~dbsystem/singa/" class="externalLink" title="NUS Site">
+ <span class="none"></span>
+ NUS Site</a>
+ </li>
+ </ul>
+
+
+
+ <hr />
+
+ <div id="poweredBy">
+ <div class="clear"></div>
+ <div class="clear"></div>
+ <div class="clear"></div>
+ <div class="clear"></div>
+ <a href="http://incubator.apache.org" title="apache-incubator" class="builtBy">
+ <img class="builtBy" alt="Apache Incubator" src="http://incubator.apache.org/images/egg-logo.png" />
+ </a>
+ </div>
+ </div>
+ </div>
+
+
+ <div id="bodyColumn" class="span10" >
+
+ <h1>개요</h1>
+<hr />
+<p>SINGA는 대규모 데이터 분석을 위한 딥러닝 모델의 트레이닝을 목적으로 한 “분산 딥러닝 플랫폼” 입니다. 모델이 되는 뉴럴네트워크의 “Layer” 개념에 따라서 직관적인 프로그래밍을 할 수 있도록 디자인되어 있습니다.</p>
+
+<ul>
+
+<li>
+<p>Convolutional Neural Network 와 같은 피드포워드 네트워크와 Restricted Boltzmann Machine 과 같은 에너지 모델, Recurrent Neural Network 모델 등 다양한 모델을 지원합니다.</p></li>
+
+<li>
+<p>다양한 기능을 가지는 “Layer”들이 Built-in Layer 로 준비되어 있습니다.</p></li>
+
+<li>
+<p>SINGA 아키텍처는 synchronous (동기), asynchronous (비동기), 그리고 hybrid (하이브리드) 트레이닝을 할 수 있도록 설계되어 있습니다.</p></li>
+
+<li>
+<p>대형 모델의 트레이닝을 병렬화하는 다양한 partition 스킴 (배치 및 특징 분할)을 지원합니다.</p></li>
+</ul>
+<div class="section">
+<h2><a name="a"></a>목적</h2>
+<p>확장성 : 분산 시스템으로써 더 많은 자원을 이용하여 특정 정밀도에 도달 할 때까지 트레이닝 속도를 향상시킨다.</p>
+<p>유용성 : 대규모 분산 모델의 효율적인 트레이닝에 필요한 데이터와 모델의 분할, 네트워크 통신등 프로그래머의 작업을 단순화하고, 복잡한 모델 및 알고리즘의 구축을 쉽게 한다.</p></div>
+<div class="section">
+<h2><a name="a_"></a>설계 이념</h2>
+<p>확장성은 분산 딥러닝에서 중요한 연구 과제입니다. SINGA는 다양한 트레이닝 프레임워크의 확장성을 유지할 수 있도록 설계되어 있습니다.</p>
+
+<ul>
+
+<li>
+<p>Synchronous (동기) : 트레이닝의 1단계에서 얻을 수있는 효과를 높입니다.</p></li>
+
+<li>
+<p>Asynchronous (비동기) : 트레이닝의 수렴 속도를 향상시킵니다.</p></li>
+
+<li>
+<p>Hybrid (하이브리드) : 코스트 및 리소스 (클러스터 크기 등)에 맞는 효과와 수렴 속도의 균형을 잡고 확장성을 향상시킵니다.</p></li>
+</ul>
+<p>SINGA는 딥러닝 모델의 네트워크 “레이어” 개념에 따라 직관적으로 프로그래밍을 할 수 있도록 디자인되어 있습니다. 다양한 모델을 쉽게 구축하고 트레이닝 할 수 있습니다.</p></div>
+<div class="section">
+<h2><a name="a_"></a>시스템 개요</h2>
+<p><img src="../../images/sgd.png" align="center" width="400px" alt="" /> <span><b> Figure 1 - SGD Flow </b></span></p>
+<p>“딥러닝 모델을 학습한다”는 것은 특정 작업(분류, 예측 등)을 달성하기 위하여 사용되는 특징량(feature)을 생성하는 변환 함수의 최적 파라미터를 찾는다는 것입니다. 그 변수의 좋고 나쁨은, Cross-Entropy Loss (<a class="externalLink" href="https://en.wikipedia.org/wiki/Cross_entropy">https://en.wikipedia.org/wiki/Cross_entropy</a>) 등의 loss function (손실 함수)으로 확인합니다. 이 함수는 일반적으로 비선형 
610;는 비 볼록 함수이므로 閉解을 찾기가 힘듭니다.</p>
+<p>그래서 Stochastic Gradient Descent (확률적구배강하법)을 이용합니다. Figure 1과 같이 랜덤으로 초기화 된 파라미터 값을, 손실 함수가 작아 지도록 반복 업데이트하고 있습니다.</p>
+<p><img src="../../images/overview.png" align="center" width="400px" alt="" /> <span> <b> Figure 2 - SINGA Overview </b> </span></p>
+<p>트레이닝에 필요한 워크로드는 workers 와 servers 에 분산됩니다. Figure 2와 같이 루프(iteration)마다 workers 는 <i>TrainOneBatch</i> 함수를 불러서 파라미터 구배를 계산합니다. <i>TrainOneBatch</i> 는 뉴럴네트워크의 구조가 기술 된 <i>NeuralNet</i> 정보에 따라서 “Layer”를 차례로 둘러봅니다. 계산 된 구배는 로컬노드의 stub 에 보내져 집계 된 후, 해당 servers 에 전송됩니다.
Servers 는 업데이트 된 파라미터 값을 workers 한테 되돌려주고, 다음 루프(iteration)를 진행합니다.</p></div>
+<div class="section">
+<h2><a name="Job"></a>Job</h2>
+<p>SINGA에서 “Job”이란 뉴럴네트워크 모델과 데이터 트레이닝 방법, 클러스터 토폴로지 등이 기술 된 “Job Configuration”을 말합니다. Job configuration 은 Figure 2에 그려진 다음의 4가지 요소를 가집니다.</p>
+
+<ul>
+
+<li><a href="neural-net.html">NeuralNet</a> : 뉴럴네트워크의 구조와 각 “레이어”의 설정을 기술합니다.</li>
+
+<li><a href="train-one-batch.html">TrainOneBatch</a> : 모델 카테고리에 적합한 알고리즘을 기술합니다.</li>
+
+<li><a href="updater.html">Updater</a> : server에서 매개 변수를 업데이트하는 방법을 기술합니다.</li>
+
+<li><a href="distributed-training.html">Cluster Topology</a> : workers와 servers 분산 토폴로지를 기술합니다.</li>
+</ul>
+<p><a href="programming-guide.html">main 함수</a>의 SINGA 드라이버를 써서 Job 을 넘깁니다.</p>
+<p>이 프로세스는 Hadoop에서의 Job 서브미션과 비슷합니다. 유저가 main 함수에서 작업 설정을 합니다. Hadoop 유저는 자신의 mapper와 reducer를 설정하지만 SINGA 에서는 유저의 Layer 나 Updater 등을 설정합니다.</p></div>
+ </div>
+ </div>
+ </div>
+
+ <hr/>
+
+ <footer>
+ <div class="container-fluid">
+ <div class="row-fluid">
+
+<p>Copyright © 2015 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>
+
+
+ </div>
+ </footer>
+ </body>
+</html>
Added: websites/staging/singa/trunk/content/v0.3.0/kr/param.html
==============================================================================
--- websites/staging/singa/trunk/content/v0.3.0/kr/param.html (added)
+++ websites/staging/singa/trunk/content/v0.3.0/kr/param.html Wed Apr 20 05:12:03 2016
@@ -0,0 +1,525 @@
+<!DOCTYPE html>
+<!--
+ | Generated by Apache Maven Doxia at 2016-04-20
+ | 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="20160420" />
+ <meta http-equiv="Content-Language" content="en" />
+ <title>Apache SINGA – Parameters</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" />
+
+
+
+
+
+ <script type="text/javascript" src="../../js/apache-maven-fluido-1.4.min.js"></script>
+
+
+
+<script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script>
+
+
+<script type="text/x-mathjax-config">MathJax.Hub.Config({tex2jax: {inlineMath: [['$','$'], ['\\(','\\)']]}});</script>
+
+
+<meta content="Apache SINGA" name="author"/>
+
+
+<meta content="SINGA, Deep Learning, Distributed training" name="keywords"/>
+
+ </head>
+ <body class="topBarEnabled">
+
+
+
+
+
+
+ <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>
+
+
+
+
+
+ <div id="topbar" class="navbar navbar-fixed-top navbar-inverse">
+ <div class="navbar-inner">
+ <div class="container-fluid">
+ <a data-target=".nav-collapse" data-toggle="collapse" class="btn btn-navbar">
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ </a>
+
+ <ul class="nav">
+ <li class="dropdown">
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">Apache SINGA <b class="caret"></b></a>
+ <ul class="dropdown-menu">
+
+ <li> <a href="../../docs/overview.html" title="Introduction">Introduction</a>
+</li>
+
+ <li> <a href="../../docs/quick-start.html" title="Quick Start">Quick Start</a>
+</li>
+
+ <li> <a href="../../downloads.html" title="Downloads">Downloads</a>
+</li>
+ </ul>
+ </li>
+ <li class="dropdown">
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">Documentaion <b class="caret"></b></a>
+ <ul class="dropdown-menu">
+
+ <li class="dropdown-submenu">
+ <a href="../../docs/index.html" title="v0.3.0">v0.3.0</a>
+ <ul class="dropdown-menu">
+ <li> <a href="../../docs/index.html" title="English">English</a>
+</li>
+ <li> <a href="../../docs/zh/index.html" title="ä¸æ">ä¸æ</a>
+</li>
+ <li> <a href="../../docs/jp/index.html" title="æ¥æ¬èª">æ¥æ¬èª</a>
+</li>
+ <li> <a href="../../docs/kr/index.html" title="íêµì´">íêµì´</a>
+</li>
+ </ul>
+ </li>
+
+ <li> <a href="../../v0.2.0/index.html" title="v0.2.0">v0.2.0</a>
+</li>
+
+ <li> <a href="../../v0.1.0/index.html" title="v0.1.0">v0.1.0</a>
+</li>
+ </ul>
+ </li>
+ <li class="dropdown">
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">Development <b class="caret"></b></a>
+ <ul class="dropdown-menu">
+
+ <li> <a href="../../develop/schedule.html" title="Schedule">Schedule</a>
+</li>
+
+ <li class="dropdown-submenu">
+ <a href="../../develop/how-contribute.html" title="How to Contribute">How to Contribute</a>
+ <ul class="dropdown-menu">
+ <li> <a href="../../develop/contribute-code.html" title="Code">Code</a>
+</li>
+ <li> <a href="../../develop/contribute-docs.html" title="Documentation">Documentation</a>
+</li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <li class="dropdown">
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">Community <b class="caret"></b></a>
+ <ul class="dropdown-menu">
+
+ <li> <a href="../../community/source-repository.html" title="Source Repository">Source Repository</a>
+</li>
+
+ <li> <a href="../../community/mail-lists.html" title="Mailing Lists">Mailing Lists</a>
+</li>
+
+ <li> <a href="../../community/issue-tracking.html" title="Issue Tracking">Issue Tracking</a>
+</li>
+
+ <li> <a href="../../community/team-list.html" title="SINGA Team">SINGA Team</a>
+</li>
+ </ul>
+ </li>
+ <li class="dropdown">
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">External Links <b class="caret"></b></a>
+ <ul class="dropdown-menu">
+
+ <li> <a href="http://www.apache.org/" title="Apache Software Foundation">Apache Software Foundation</a>
+</li>
+
+ <li> <a href="http://www.comp.nus.edu.sg/~dbsystem/singa/" title="NUS Site">NUS Site</a>
+</li>
+ </ul>
+ </li>
+ </ul>
+
+
+
+
+ </div>
+
+ </div>
+ </div>
+ </div>
+
+ <div class="container-fluid">
+ <div id="banner">
+ <div class="pull-left">
+ <a href="../../index.html" id="bannerLeft" title="Apache SINGA">
+ <img src="../../images/singa-logo.png" alt="Apache SINGA"/>
+ </a>
+ </div>
+ <div class="pull-right"> <div id="bannerRight">
+ <img src="../../images/singa-title.png" alt="Apache SINGA"/>
+ </div>
+ </div>
+ <div class="clear"><hr/></div>
+ </div>
+
+ <div id="breadcrumbs">
+ <ul class="breadcrumb">
+
+
+ <li class="">
+ <a href="../../index.html" title="Apache SINGA">
+ Apache SINGA</a>
+ <span class="divider">/</span>
+ </li>
+ <li class="active ">Parameters</li>
+
+
+
+
+ </ul>
+ </div>
+
+
+ <div class="row-fluid">
+ <div id="leftColumn" class="span2">
+ <div class="well sidebar-nav">
+
+
+ <ul class="nav nav-list">
+ <li class="nav-header">Apache SINGA</li>
+
+ <li>
+
+ <a href="../../docs/overview.html" title="Introduction">
+ <span class="none"></span>
+ Introduction</a>
+ </li>
+
+ <li>
+
+ <a href="../../docs/quick-start.html" title="Quick Start">
+ <span class="none"></span>
+ Quick Start</a>
+ </li>
+
+ <li>
+
+ <a href="../../downloads.html" title="Downloads">
+ <span class="none"></span>
+ Downloads</a>
+ </li>
+ <li class="nav-header">Documentaion</li>
+
+ <li>
+
+ <a href="../../docs/index.html" title="v0.3.0">
+ <span class="icon-chevron-right"></span>
+ v0.3.0</a>
+ </li>
+
+ <li>
+
+ <a href="../../v0.2.0/index.html" title="v0.2.0">
+ <span class="none"></span>
+ v0.2.0</a>
+ </li>
+
+ <li>
+
+ <a href="../../v0.1.0/index.html" title="v0.1.0">
+ <span class="none"></span>
+ v0.1.0</a>
+ </li>
+ <li class="nav-header">Development</li>
+
+ <li>
+
+ <a href="../../develop/schedule.html" title="Schedule">
+ <span class="none"></span>
+ Schedule</a>
+ </li>
+
+ <li>
+
+ <a href="../../develop/how-contribute.html" title="How to Contribute">
+ <span class="icon-chevron-right"></span>
+ How to Contribute</a>
+ </li>
+ <li class="nav-header">Community</li>
+
+ <li>
+
+ <a href="../../community/source-repository.html" title="Source Repository">
+ <span class="none"></span>
+ Source Repository</a>
+ </li>
+
+ <li>
+
+ <a href="../../community/mail-lists.html" title="Mailing Lists">
+ <span class="none"></span>
+ Mailing Lists</a>
+ </li>
+
+ <li>
+
+ <a href="../../community/issue-tracking.html" title="Issue Tracking">
+ <span class="none"></span>
+ Issue Tracking</a>
+ </li>
+
+ <li>
+
+ <a href="../../community/team-list.html" title="SINGA Team">
+ <span class="none"></span>
+ SINGA Team</a>
+ </li>
+ <li class="nav-header">External Links</li>
+
+ <li>
+
+ <a href="http://www.apache.org/" class="externalLink" title="Apache Software Foundation">
+ <span class="none"></span>
+ Apache Software Foundation</a>
+ </li>
+
+ <li>
+
+ <a href="http://www.comp.nus.edu.sg/~dbsystem/singa/" class="externalLink" title="NUS Site">
+ <span class="none"></span>
+ NUS Site</a>
+ </li>
+ </ul>
+
+
+
+ <hr />
+
+ <div id="poweredBy">
+ <div class="clear"></div>
+ <div class="clear"></div>
+ <div class="clear"></div>
+ <div class="clear"></div>
+ <a href="http://incubator.apache.org" title="apache-incubator" class="builtBy">
+ <img class="builtBy" alt="Apache Incubator" src="http://incubator.apache.org/images/egg-logo.png" />
+ </a>
+ </div>
+ </div>
+ </div>
+
+
+ <div id="bodyColumn" class="span10" >
+
+ <h1>Parameters</h1>
+<hr />
+<p>A <tt>Param</tt> object in SINGA represents a set of parameters, e.g., a weight matrix or a bias vector. <i>Basic user guide</i> describes how to configure for a <tt>Param</tt> object, and <i>Advanced user guide</i> provides details on implementing users’ parameter initialization methods.</p>
+<div class="section">
+<h2><a name="Basic_user_guide"></a>Basic user guide</h2>
+<p>The configuration of a Param object is inside a layer configuration, as the <tt>Param</tt> are associated with layers. An example configuration is like</p>
+
+<div class="source">
+<div class="source"><pre class="prettyprint">layer {
+ ...
+ param {
+ name : "p1"
+ init {
+ type : kConstant
+ value: 1
+ }
+ }
+}
+</pre></div></div>
+<p>The <a href="overview.html">SGD algorithm</a> starts with initializing all parameters according to user specified initialization method (the <tt>init</tt> field). For the above example, all parameters in <tt>Param</tt> “p1” will be initialized to constant value 1. The configuration fields of a Param object is defined in <a href="../api/classsinga_1_1ParamProto.html">ParamProto</a>:</p>
+
+<ul>
+
+<li>name, an identifier string. It is an optional field. If not provided, SINGA will generate one based on layer name and its order in the layer.</li>
+
+<li>init, field for setting initialization methods.</li>
+
+<li>share_from, name of another <tt>Param</tt> object, from which this <tt>Param</tt> will share configurations and values.</li>
+
+<li>lr_scale, float value to be multiplied with the learning rate when <a href="updater.html">updating the parameters</a></li>
+
+<li>wd_scale, float value to be multiplied with the weight decay when <a href="updater.html">updating the parameters</a></li>
+</ul>
+<p>There are some other fields that are specific to initialization methods.</p>
+<div class="section">
+<h3><a name="Initialization_methods"></a>Initialization methods</h3>
+<p>Users can set the <tt>type</tt> of <tt>init</tt> use the following built-in initialization methods,</p>
+
+<ul>
+
+<li>
+<p><tt>kConst</tt>, set all parameters of the Param object to a constant value</p>
+
+<div class="source">
+<div class="source"><pre class="prettyprint">type: kConst
+value: float # default is 1
+</pre></div></div></li>
+
+<li>
+<p><tt>kGaussian</tt>, initialize the parameters following a Gaussian distribution.</p>
+
+<div class="source">
+<div class="source"><pre class="prettyprint">type: kGaussian
+mean: float # mean of the Gaussian distribution, default is 0
+std: float # standard variance, default is 1
+value: float # default 0
+</pre></div></div></li>
+
+<li>
+<p><tt>kUniform</tt>, initialize the parameters following an uniform distribution</p>
+
+<div class="source">
+<div class="source"><pre class="prettyprint">type: kUniform
+low: float # lower boundary, default is -1
+high: float # upper boundary, default is 1
+value: float # default 0
+</pre></div></div></li>
+
+<li>
+<p><tt>kGaussianSqrtFanIn</tt>, initialize <tt>Param</tt> objects with two dimensions (i.e., matrix) using <tt>kGaussian</tt> and then multiple each parameter with <tt>1/sqrt(fan_in)</tt>, where<tt>fan_in</tt> is the number of columns of the matrix.</p></li>
+
+<li>
+<p><tt>kUniformSqrtFanIn</tt>, the same as <tt>kGaussianSqrtFanIn</tt> except that the distribution is an uniform distribution.</p></li>
+
+<li>
+<p><tt>kUniformFanInOut</tt>, initialize matrix <tt>Param</tt> objects using <tt>kUniform</tt> and then multiple each parameter with <tt>sqrt(6/(fan_in + fan_out))</tt>, where<tt>fan_in +
+ fan_out</tt> sums up the number of columns and rows of the matrix.</p></li>
+</ul>
+<p>For all above initialization methods except <tt>kConst</tt>, if their <tt>value</tt> is not 1, every parameter will be multiplied with <tt>value</tt>. Users can also implement their own initialization method following the <i>Advanced user guide</i>.</p></div></div>
+<div class="section">
+<h2><a name="Advanced_user_guide"></a>Advanced user guide</h2>
+<p>This sections describes the details on implementing new parameter initialization methods.</p>
+<div class="section">
+<h3><a name="Base_ParamGenerator"></a>Base ParamGenerator</h3>
+<p>All initialization methods are implemented as subclasses of the base <tt>ParamGenerator</tt> class.</p>
+
+<div class="source">
+<div class="source"><pre class="prettyprint">class ParamGenerator {
+ public:
+ virtual void Init(const ParamGenProto&);
+ void Fill(Param*);
+
+ protected:
+ ParamGenProto proto_;
+};
+</pre></div></div>
+<p>Configurations of the initialization method is in <tt>ParamGenProto</tt>. The <tt>Fill</tt> function fills the <tt>Param</tt> object (passed in as an argument).</p></div>
+<div class="section">
+<h3><a name="New_ParamGenerator_subclass"></a>New ParamGenerator subclass</h3>
+<p>Similar to implement a new Layer subclass, users can define a configuration protocol message,</p>
+
+<div class="source">
+<div class="source"><pre class="prettyprint"># in user.proto
+message FooParamProto {
+ optional int32 x = 1;
+}
+extend ParamGenProto {
+ optional FooParamProto fooparam_conf =101;
+}
+</pre></div></div>
+<p>The configuration of <tt>Param</tt> would be</p>
+
+<div class="source">
+<div class="source"><pre class="prettyprint">param {
+ ...
+ init {
+ user_type: 'FooParam" # must use user_type for user defined methods
+ [fooparam_conf] { # must use brackets for configuring user defined messages
+ x: 10
+ }
+ }
+}
+</pre></div></div>
+<p>The subclass could be declared as,</p>
+
+<div class="source">
+<div class="source"><pre class="prettyprint">class FooParamGen : public ParamGenerator {
+ public:
+ void Fill(Param*) override;
+};
+</pre></div></div>
+<p>Users can access the configuration fields in <tt>Fill</tt> by</p>
+
+<div class="source">
+<div class="source"><pre class="prettyprint">int x = proto_.GetExtension(fooparam_conf).x();
+</pre></div></div>
+<p>To use the new initialization method, users need to register it in the <a href="programming-guide.html">main function</a>.</p>
+
+<div class="source">
+<div class="source"><pre class="prettyprint">driver.RegisterParamGenerator<FooParamGen>("FooParam") # must be consistent with the user_type in configuration
+</pre></div></div>
+<p>{% comment %}</p></div>
+<div class="section">
+<h3><a name="Base_Param_class"></a>Base Param class</h3></div>
+<div class="section">
+<h3><a name="Members"></a>Members</h3>
+
+<div class="source">
+<div class="source"><pre class="prettyprint">int local_version_;
+int slice_start_;
+vector<int> slice_offset_, slice_size_;
+
+shared_ptr<Blob<float>> data_;
+Blob<float> grad_;
+ParamProto proto_;
+</pre></div></div>
+<p>Each Param object has a local version and a global version (inside the data Blob). These two versions are used for synchronization. If multiple Param objects share the same values, they would have the same <tt>data_</tt> field. Consequently, their global version is the same. The global version is updated by <a href="communication.html">the stub thread</a>. The local version is updated in <tt>Worker::Update</tt> function which assigns the global version to the local version. The <tt>Worker::Collect</tt> function is blocked until the global version is larger than the local version, i.e., when <tt>data_</tt> is updated. In this way, we synchronize workers sharing parameters.</p>
+<p>In Deep learning models, some Param objects are 100 times larger than others. To ensure the load-balance among servers, SINGA slices large Param objects. The slicing information is recorded by <tt>slice_*</tt>. Each slice is assigned a unique ID starting from 0. <tt>slice_start_</tt> is the ID of the first slice of this Param object. <tt>slice_offset_[i]</tt> is the offset of the i-th slice in this Param object. <tt>slice_size_[i]</tt> is the size of the i-th slice. These slice information is used to create messages for transferring parameter values or gradients to different servers.</p>
+<p>Each Param object has a <tt>grad_</tt> field for gradients. Param objects do not share this Blob although they may share <tt>data_</tt>. Because each layer containing a Param object would contribute gradients. E.g., in RNN, the recurrent layers share parameters values, and the gradients used for updating are averaged from all recurrent these recurrent layers. In SINGA, the stub thread will aggregate local gradients for the same Param object. The server will do a global aggregation of gradients for the same Param object.</p>
+<p>The <tt>proto_</tt> field has some meta information, e.g., name and ID. It also has a field called <tt>owner</tt> which is the ID of the Param object that shares parameter values with others.</p></div>
+<div class="section">
+<h3><a name="Functions"></a>Functions</h3>
+<p>The base Param class implements two sets of functions,</p>
+
+<div class="source">
+<div class="source"><pre class="prettyprint">virtual void InitValues(int version = 0); // initialize values according to `init_method`
+void ShareFrom(const Param& other); // share `data_` from `other` Param
+--------------
+virtual Msg* GenGetMsg(bool copy, int slice_idx);
+virtual Msg* GenPutMsg(bool copy, int slice_idx);
+... // other message related functions.
+</pre></div></div>
+<p>Besides the functions for processing the parameter values, there is a set of functions for generating and parsing messages. These messages are for transferring parameter values or gradients between workers and servers. Each message corresponds to one Param slice. If <tt>copy</tt> is false, it means the receiver of this message is in the same process as the sender. In such case, only pointers to the memory of parameter value (or gradient) are wrapped in the message; otherwise, the parameter values (or gradients) should be copied into the message.</p></div></div>
+<div class="section">
+<h2><a name="Implementing_Param_subclass"></a>Implementing Param subclass</h2>
+<p>Users can extend the base Param class to implement their own parameter initialization methods and message transferring protocols. Similar to implementing a new Layer subclasses, users can create google protocol buffer messages for configuring the Param subclass. The subclass, denoted as FooParam should be registered in main.cc,</p>
+
+<div class="source">
+<div class="source"><pre class="prettyprint">dirver.RegisterParam<FooParam>(kFooParam); // kFooParam should be different to 0, which is for the base Param type
+</pre></div></div>
+
+<ul>
+
+<li>type, an integer representing the <tt>Param</tt> type. Currently SINGA provides one <tt>Param</tt> implementation with type 0 (the default type). If users want to use their own Param implementation, they should extend the base Param class and configure this field with <tt>kUserParam</tt></li>
+</ul>
+<p>{% endcomment %}</p></div>
+ </div>
+ </div>
+ </div>
+
+ <hr/>
+
+ <footer>
+ <div class="container-fluid">
+ <div class="row-fluid">
+
+<p>Copyright © 2015 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>
+
+
+ </div>
+ </footer>
+ </body>
+</html>
Added: websites/staging/singa/trunk/content/v0.3.0/kr/programmer-guide.html
==============================================================================
--- websites/staging/singa/trunk/content/v0.3.0/kr/programmer-guide.html (added)
+++ websites/staging/singa/trunk/content/v0.3.0/kr/programmer-guide.html Wed Apr 20 05:12:03 2016
@@ -0,0 +1,418 @@
+<!DOCTYPE html>
+<!--
+ | Generated by Apache Maven Doxia at 2016-04-20
+ | 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="20160420" />
+ <meta http-equiv="Content-Language" content="en" />
+ <title>Apache SINGA – Programmer Guide</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" />
+
+
+
+
+
+ <script type="text/javascript" src="../../js/apache-maven-fluido-1.4.min.js"></script>
+
+
+
+<script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script>
+
+
+<script type="text/x-mathjax-config">MathJax.Hub.Config({tex2jax: {inlineMath: [['$','$'], ['\\(','\\)']]}});</script>
+
+
+<meta content="Apache SINGA" name="author"/>
+
+
+<meta content="SINGA, Deep Learning, Distributed training" name="keywords"/>
+
+ </head>
+ <body class="topBarEnabled">
+
+
+
+
+
+
+ <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>
+
+
+
+
+
+ <div id="topbar" class="navbar navbar-fixed-top navbar-inverse">
+ <div class="navbar-inner">
+ <div class="container-fluid">
+ <a data-target=".nav-collapse" data-toggle="collapse" class="btn btn-navbar">
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ </a>
+
+ <ul class="nav">
+ <li class="dropdown">
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">Apache SINGA <b class="caret"></b></a>
+ <ul class="dropdown-menu">
+
+ <li> <a href="../../docs/overview.html" title="Introduction">Introduction</a>
+</li>
+
+ <li> <a href="../../docs/quick-start.html" title="Quick Start">Quick Start</a>
+</li>
+
+ <li> <a href="../../downloads.html" title="Downloads">Downloads</a>
+</li>
+ </ul>
+ </li>
+ <li class="dropdown">
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">Documentaion <b class="caret"></b></a>
+ <ul class="dropdown-menu">
+
+ <li class="dropdown-submenu">
+ <a href="../../docs/index.html" title="v0.3.0">v0.3.0</a>
+ <ul class="dropdown-menu">
+ <li> <a href="../../docs/index.html" title="English">English</a>
+</li>
+ <li> <a href="../../docs/zh/index.html" title="ä¸æ">ä¸æ</a>
+</li>
+ <li> <a href="../../docs/jp/index.html" title="æ¥æ¬èª">æ¥æ¬èª</a>
+</li>
+ <li> <a href="../../docs/kr/index.html" title="íêµì´">íêµì´</a>
+</li>
+ </ul>
+ </li>
+
+ <li> <a href="../../v0.2.0/index.html" title="v0.2.0">v0.2.0</a>
+</li>
+
+ <li> <a href="../../v0.1.0/index.html" title="v0.1.0">v0.1.0</a>
+</li>
+ </ul>
+ </li>
+ <li class="dropdown">
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">Development <b class="caret"></b></a>
+ <ul class="dropdown-menu">
+
+ <li> <a href="../../develop/schedule.html" title="Schedule">Schedule</a>
+</li>
+
+ <li class="dropdown-submenu">
+ <a href="../../develop/how-contribute.html" title="How to Contribute">How to Contribute</a>
+ <ul class="dropdown-menu">
+ <li> <a href="../../develop/contribute-code.html" title="Code">Code</a>
+</li>
+ <li> <a href="../../develop/contribute-docs.html" title="Documentation">Documentation</a>
+</li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <li class="dropdown">
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">Community <b class="caret"></b></a>
+ <ul class="dropdown-menu">
+
+ <li> <a href="../../community/source-repository.html" title="Source Repository">Source Repository</a>
+</li>
+
+ <li> <a href="../../community/mail-lists.html" title="Mailing Lists">Mailing Lists</a>
+</li>
+
+ <li> <a href="../../community/issue-tracking.html" title="Issue Tracking">Issue Tracking</a>
+</li>
+
+ <li> <a href="../../community/team-list.html" title="SINGA Team">SINGA Team</a>
+</li>
+ </ul>
+ </li>
+ <li class="dropdown">
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">External Links <b class="caret"></b></a>
+ <ul class="dropdown-menu">
+
+ <li> <a href="http://www.apache.org/" title="Apache Software Foundation">Apache Software Foundation</a>
+</li>
+
+ <li> <a href="http://www.comp.nus.edu.sg/~dbsystem/singa/" title="NUS Site">NUS Site</a>
+</li>
+ </ul>
+ </li>
+ </ul>
+
+
+
+
+ </div>
+
+ </div>
+ </div>
+ </div>
+
+ <div class="container-fluid">
+ <div id="banner">
+ <div class="pull-left">
+ <a href="../../index.html" id="bannerLeft" title="Apache SINGA">
+ <img src="../../images/singa-logo.png" alt="Apache SINGA"/>
+ </a>
+ </div>
+ <div class="pull-right"> <div id="bannerRight">
+ <img src="../../images/singa-title.png" alt="Apache SINGA"/>
+ </div>
+ </div>
+ <div class="clear"><hr/></div>
+ </div>
+
+ <div id="breadcrumbs">
+ <ul class="breadcrumb">
+
+
+ <li class="">
+ <a href="../../index.html" title="Apache SINGA">
+ Apache SINGA</a>
+ <span class="divider">/</span>
+ </li>
+ <li class="active ">Programmer Guide</li>
+
+
+
+
+ </ul>
+ </div>
+
+
+ <div class="row-fluid">
+ <div id="leftColumn" class="span2">
+ <div class="well sidebar-nav">
+
+
+ <ul class="nav nav-list">
+ <li class="nav-header">Apache SINGA</li>
+
+ <li>
+
+ <a href="../../docs/overview.html" title="Introduction">
+ <span class="none"></span>
+ Introduction</a>
+ </li>
+
+ <li>
+
+ <a href="../../docs/quick-start.html" title="Quick Start">
+ <span class="none"></span>
+ Quick Start</a>
+ </li>
+
+ <li>
+
+ <a href="../../downloads.html" title="Downloads">
+ <span class="none"></span>
+ Downloads</a>
+ </li>
+ <li class="nav-header">Documentaion</li>
+
+ <li>
+
+ <a href="../../docs/index.html" title="v0.3.0">
+ <span class="icon-chevron-right"></span>
+ v0.3.0</a>
+ </li>
+
+ <li>
+
+ <a href="../../v0.2.0/index.html" title="v0.2.0">
+ <span class="none"></span>
+ v0.2.0</a>
+ </li>
+
+ <li>
+
+ <a href="../../v0.1.0/index.html" title="v0.1.0">
+ <span class="none"></span>
+ v0.1.0</a>
+ </li>
+ <li class="nav-header">Development</li>
+
+ <li>
+
+ <a href="../../develop/schedule.html" title="Schedule">
+ <span class="none"></span>
+ Schedule</a>
+ </li>
+
+ <li>
+
+ <a href="../../develop/how-contribute.html" title="How to Contribute">
+ <span class="icon-chevron-right"></span>
+ How to Contribute</a>
+ </li>
+ <li class="nav-header">Community</li>
+
+ <li>
+
+ <a href="../../community/source-repository.html" title="Source Repository">
+ <span class="none"></span>
+ Source Repository</a>
+ </li>
+
+ <li>
+
+ <a href="../../community/mail-lists.html" title="Mailing Lists">
+ <span class="none"></span>
+ Mailing Lists</a>
+ </li>
+
+ <li>
+
+ <a href="../../community/issue-tracking.html" title="Issue Tracking">
+ <span class="none"></span>
+ Issue Tracking</a>
+ </li>
+
+ <li>
+
+ <a href="../../community/team-list.html" title="SINGA Team">
+ <span class="none"></span>
+ SINGA Team</a>
+ </li>
+ <li class="nav-header">External Links</li>
+
+ <li>
+
+ <a href="http://www.apache.org/" class="externalLink" title="Apache Software Foundation">
+ <span class="none"></span>
+ Apache Software Foundation</a>
+ </li>
+
+ <li>
+
+ <a href="http://www.comp.nus.edu.sg/~dbsystem/singa/" class="externalLink" title="NUS Site">
+ <span class="none"></span>
+ NUS Site</a>
+ </li>
+ </ul>
+
+
+
+ <hr />
+
+ <div id="poweredBy">
+ <div class="clear"></div>
+ <div class="clear"></div>
+ <div class="clear"></div>
+ <div class="clear"></div>
+ <a href="http://incubator.apache.org" title="apache-incubator" class="builtBy">
+ <img class="builtBy" alt="Apache Incubator" src="http://incubator.apache.org/images/egg-logo.png" />
+ </a>
+ </div>
+ </div>
+ </div>
+
+
+ <div id="bodyColumn" class="span10" >
+
+ <h1>Programmer Guide</h1>
+<hr />
+<p>To submit a training job, users must provide the configuration of the four components shown in Figure 1:</p>
+
+<ul>
+
+<li>a <a href="neural-net.html">NeuralNet</a> describing the neural net structure with the detailed layer setting and their connections;</li>
+
+<li>a <a href="train-one-batch.html">TrainOneBatch</a> algorithm which is tailored for different model categories;</li>
+
+<li>an <a href="updater.html">Updater</a> defining the protocol for updating parameters at the server side;</li>
+
+<li>a <a href="distributed-training.html">Cluster Topology</a> specifying the distributed architecture of workers and servers.</li>
+</ul>
+<p>The <i>Basic user guide</i> section describes how to submit a training job using built-in components; while the <i>Advanced user guide</i> section presents details on writing user’s own main function to register components implemented by themselves. In addition, the training data must be prepared, which has the same <a href="data.html">process</a> for both advanced users and basic users.</p>
+<p><img src="../../images/overview.png" align="center" width="400px" alt="" /> <span><b>Figure 1 - SINGA overview.</b></span></p>
+<div class="section">
+<h2><a name="Basic_user_guide"></a>Basic user guide</h2>
+<p>Users can use the default main function provided by SINGA to submit the training job. For this case, a job configuration file written as a google protocol buffer message for the <a href="../api/classsinga_1_1JobProto.html">JobProto</a> must be provided in the command line,</p>
+
+<div class="source">
+<div class="source"><pre class="prettyprint">./bin/singa-run.sh -conf <path to job conf> [-resume] [-test]
+</pre></div></div>
+
+<ul>
+
+<li><tt>-resume</tt> is for continuing the training from last <a href="checkpoint.html">checkpoint</a>.</li>
+
+<li><tt>-test</tt> is for testing the performance of previously trained model and extracting features for new data, more details are available <a href="test.html">here</a>.</li>
+</ul>
+<p>The <a href="mlp.html">MLP</a> and <a href="cnn.html">CNN</a> examples use built-in components. Please read the corresponding pages for their job configuration files. The subsequent pages will illustrate the details on each component of the configuration.</p></div>
+<div class="section">
+<h2><a name="Advanced_user_guide"></a>Advanced user guide</h2>
+<p>If a user’s model contains some user-defined components, e.g., <a href="updater.html">Updater</a>, he has to write a main function to register these components. It is similar to Hadoop’s main function. Generally, the main function should</p>
+
+<ul>
+
+<li>
+<p>initialize SINGA, e.g., setup logging.</p></li>
+
+<li>
+<p>register user-defined components.</p></li>
+
+<li>
+<p>create and pass the job configuration to SINGA driver</p></li>
+</ul>
+<p>An example main function is like</p>
+
+<div class="source">
+<div class="source"><pre class="prettyprint">#include <string>
+#include "singa.h"
+#include "user.h" // header for user code
+
+int main(int argc, char** argv) {
+ singa::Driver driver;
+ driver.Init(argc, argv);
+ bool resume;
+ // parse resume option from argv.
+
+ // register user defined layers
+ driver.RegisterLayer<FooLayer, std::string>("kFooLayer");
+ // register user defined updater
+ driver.RegisterUpdater<FooUpdater, std::string>("kFooUpdater");
+ ...
+ auto jobConf = driver.job_conf();
+ // update jobConf
+
+ driver.Submit(resume, jobConf);
+ return 0;
+}
+</pre></div></div>
+<p>The Driver class’ <tt>Init</tt> method will load a job configuration file provided by users as a command line argument (<tt>-conf <job conf></tt>). It contains at least the cluster topology and returns the <tt>jobConf</tt> for users to update or fill in configurations of neural net, updater, etc. If users define subclasses of Layer, Updater, Worker and Param, they should register them through the driver. Finally, the job configuration is submitted to the driver which starts the training.</p>
+<p>We will provide helper functions to make the configuration easier in the future, like <a class="externalLink" href="https://github.com/fchollet/keras">keras</a>.</p>
+<p>Users need to compile and link their code (e.g., layer implementations and the main file) with SINGA library (<i>.libs/libsinga.so</i>) to generate an executable file, e.g., with name <i>mysinga</i>. To launch the program, users just pass the path of the <i>mysinga</i> and base job configuration to <i>./bin/singa-run.sh</i>.</p>
+
+<div class="source">
+<div class="source"><pre class="prettyprint">./bin/singa-run.sh -conf <path to job conf> -exec <path to mysinga> [other arguments]
+</pre></div></div>
+<p>The <a href="rnn.html">RNN application</a> provides a full example of implementing the main function for training a specific RNN model.</p></div>
+ </div>
+ </div>
+ </div>
+
+ <hr/>
+
+ <footer>
+ <div class="container-fluid">
+ <div class="row-fluid">
+
+<p>Copyright © 2015 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>
+
+
+ </div>
+ </footer>
+ </body>
+</html>
Added: websites/staging/singa/trunk/content/v0.3.0/kr/programming-guide.html
==============================================================================
--- websites/staging/singa/trunk/content/v0.3.0/kr/programming-guide.html (added)
+++ websites/staging/singa/trunk/content/v0.3.0/kr/programming-guide.html Wed Apr 20 05:12:03 2016
@@ -0,0 +1,411 @@
+<!DOCTYPE html>
+<!--
+ | Generated by Apache Maven Doxia at 2016-04-20
+ | 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="20160420" />
+ <meta http-equiv="Content-Language" content="en" />
+ <title>Apache SINGA – íë¡ê·¸ëë° ê°ì´ë</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" />
+
+
+
+
+
+ <script type="text/javascript" src="../../js/apache-maven-fluido-1.4.min.js"></script>
+
+
+
+<script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script>
+
+
+<script type="text/x-mathjax-config">MathJax.Hub.Config({tex2jax: {inlineMath: [['$','$'], ['\\(','\\)']]}});</script>
+
+
+<meta content="Apache SINGA" name="author"/>
+
+
+<meta content="SINGA, Deep Learning, Distributed training" name="keywords"/>
+
+ </head>
+ <body class="topBarEnabled">
+
+
+
+
+
+
+ <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>
+
+
+
+
+
+ <div id="topbar" class="navbar navbar-fixed-top navbar-inverse">
+ <div class="navbar-inner">
+ <div class="container-fluid">
+ <a data-target=".nav-collapse" data-toggle="collapse" class="btn btn-navbar">
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ </a>
+
+ <ul class="nav">
+ <li class="dropdown">
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">Apache SINGA <b class="caret"></b></a>
+ <ul class="dropdown-menu">
+
+ <li> <a href="../../docs/overview.html" title="Introduction">Introduction</a>
+</li>
+
+ <li> <a href="../../docs/quick-start.html" title="Quick Start">Quick Start</a>
+</li>
+
+ <li> <a href="../../downloads.html" title="Downloads">Downloads</a>
+</li>
+ </ul>
+ </li>
+ <li class="dropdown">
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">Documentaion <b class="caret"></b></a>
+ <ul class="dropdown-menu">
+
+ <li class="dropdown-submenu">
+ <a href="../../docs/index.html" title="v0.3.0">v0.3.0</a>
+ <ul class="dropdown-menu">
+ <li> <a href="../../docs/index.html" title="English">English</a>
+</li>
+ <li> <a href="../../docs/zh/index.html" title="ä¸æ">ä¸æ</a>
+</li>
+ <li> <a href="../../docs/jp/index.html" title="æ¥æ¬èª">æ¥æ¬èª</a>
+</li>
+ <li> <a href="../../docs/kr/index.html" title="íêµì´">íêµì´</a>
+</li>
+ </ul>
+ </li>
+
+ <li> <a href="../../v0.2.0/index.html" title="v0.2.0">v0.2.0</a>
+</li>
+
+ <li> <a href="../../v0.1.0/index.html" title="v0.1.0">v0.1.0</a>
+</li>
+ </ul>
+ </li>
+ <li class="dropdown">
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">Development <b class="caret"></b></a>
+ <ul class="dropdown-menu">
+
+ <li> <a href="../../develop/schedule.html" title="Schedule">Schedule</a>
+</li>
+
+ <li class="dropdown-submenu">
+ <a href="../../develop/how-contribute.html" title="How to Contribute">How to Contribute</a>
+ <ul class="dropdown-menu">
+ <li> <a href="../../develop/contribute-code.html" title="Code">Code</a>
+</li>
+ <li> <a href="../../develop/contribute-docs.html" title="Documentation">Documentation</a>
+</li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <li class="dropdown">
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">Community <b class="caret"></b></a>
+ <ul class="dropdown-menu">
+
+ <li> <a href="../../community/source-repository.html" title="Source Repository">Source Repository</a>
+</li>
+
+ <li> <a href="../../community/mail-lists.html" title="Mailing Lists">Mailing Lists</a>
+</li>
+
+ <li> <a href="../../community/issue-tracking.html" title="Issue Tracking">Issue Tracking</a>
+</li>
+
+ <li> <a href="../../community/team-list.html" title="SINGA Team">SINGA Team</a>
+</li>
+ </ul>
+ </li>
+ <li class="dropdown">
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">External Links <b class="caret"></b></a>
+ <ul class="dropdown-menu">
+
+ <li> <a href="http://www.apache.org/" title="Apache Software Foundation">Apache Software Foundation</a>
+</li>
+
+ <li> <a href="http://www.comp.nus.edu.sg/~dbsystem/singa/" title="NUS Site">NUS Site</a>
+</li>
+ </ul>
+ </li>
+ </ul>
+
+
+
+
+ </div>
+
+ </div>
+ </div>
+ </div>
+
+ <div class="container-fluid">
+ <div id="banner">
+ <div class="pull-left">
+ <a href="../../index.html" id="bannerLeft" title="Apache SINGA">
+ <img src="../../images/singa-logo.png" alt="Apache SINGA"/>
+ </a>
+ </div>
+ <div class="pull-right"> <div id="bannerRight">
+ <img src="../../images/singa-title.png" alt="Apache SINGA"/>
+ </div>
+ </div>
+ <div class="clear"><hr/></div>
+ </div>
+
+ <div id="breadcrumbs">
+ <ul class="breadcrumb">
+
+
+ <li class="">
+ <a href="../../index.html" title="Apache SINGA">
+ Apache SINGA</a>
+ <span class="divider">/</span>
+ </li>
+ <li class="active ">íë¡ê·¸ëë° ê°ì´ë</li>
+
+
+
+
+ </ul>
+ </div>
+
+
+ <div class="row-fluid">
+ <div id="leftColumn" class="span2">
+ <div class="well sidebar-nav">
+
+
+ <ul class="nav nav-list">
+ <li class="nav-header">Apache SINGA</li>
+
+ <li>
+
+ <a href="../../docs/overview.html" title="Introduction">
+ <span class="none"></span>
+ Introduction</a>
+ </li>
+
+ <li>
+
+ <a href="../../docs/quick-start.html" title="Quick Start">
+ <span class="none"></span>
+ Quick Start</a>
+ </li>
+
+ <li>
+
+ <a href="../../downloads.html" title="Downloads">
+ <span class="none"></span>
+ Downloads</a>
+ </li>
+ <li class="nav-header">Documentaion</li>
+
+ <li>
+
+ <a href="../../docs/index.html" title="v0.3.0">
+ <span class="icon-chevron-right"></span>
+ v0.3.0</a>
+ </li>
+
+ <li>
+
+ <a href="../../v0.2.0/index.html" title="v0.2.0">
+ <span class="none"></span>
+ v0.2.0</a>
+ </li>
+
+ <li>
+
+ <a href="../../v0.1.0/index.html" title="v0.1.0">
+ <span class="none"></span>
+ v0.1.0</a>
+ </li>
+ <li class="nav-header">Development</li>
+
+ <li>
+
+ <a href="../../develop/schedule.html" title="Schedule">
+ <span class="none"></span>
+ Schedule</a>
+ </li>
+
+ <li>
+
+ <a href="../../develop/how-contribute.html" title="How to Contribute">
+ <span class="icon-chevron-right"></span>
+ How to Contribute</a>
+ </li>
+ <li class="nav-header">Community</li>
+
+ <li>
+
+ <a href="../../community/source-repository.html" title="Source Repository">
+ <span class="none"></span>
+ Source Repository</a>
+ </li>
+
+ <li>
+
+ <a href="../../community/mail-lists.html" title="Mailing Lists">
+ <span class="none"></span>
+ Mailing Lists</a>
+ </li>
+
+ <li>
+
+ <a href="../../community/issue-tracking.html" title="Issue Tracking">
+ <span class="none"></span>
+ Issue Tracking</a>
+ </li>
+
+ <li>
+
+ <a href="../../community/team-list.html" title="SINGA Team">
+ <span class="none"></span>
+ SINGA Team</a>
+ </li>
+ <li class="nav-header">External Links</li>
+
+ <li>
+
+ <a href="http://www.apache.org/" class="externalLink" title="Apache Software Foundation">
+ <span class="none"></span>
+ Apache Software Foundation</a>
+ </li>
+
+ <li>
+
+ <a href="http://www.comp.nus.edu.sg/~dbsystem/singa/" class="externalLink" title="NUS Site">
+ <span class="none"></span>
+ NUS Site</a>
+ </li>
+ </ul>
+
+
+
+ <hr />
+
+ <div id="poweredBy">
+ <div class="clear"></div>
+ <div class="clear"></div>
+ <div class="clear"></div>
+ <div class="clear"></div>
+ <a href="http://incubator.apache.org" title="apache-incubator" class="builtBy">
+ <img class="builtBy" alt="Apache Incubator" src="http://incubator.apache.org/images/egg-logo.png" />
+ </a>
+ </div>
+ </div>
+ </div>
+
+
+ <div id="bodyColumn" class="span10" >
+
+ <h1>프로그래밍 가이드</h1>
+<hr />
+<p>Figure 1에 그려진 다음과 같은 4가지 Components 를 설정하여 트레이닝을 시작합니다.</p>
+
+<ul>
+
+<li><a href="neural-net.html">NeuralNet</a> : 뉴럴네트워크의 구조와 각 “레이어”의 설정을 기술합니다.</li>
+
+<li><a href="train-one-batch.html">TrainOneBatch</a> : 모델 카테고리에 적합한 알고리즘을 기술합니다.</li>
+
+<li><a href="updater.html">Updater</a> : server에서 매개 변수를 업데이트하는 방법을 기술합니다.</li>
+
+<li><a href="distributed-training.html">Cluster Topology</a> : workers와 servers 분산 토폴로지를 기술합니다.</li>
+</ul>
+<p><i>Basic 유저 가이드</i> 에서 built-in components 를 써서 트레이닝을 시작하는 방법을 설명합니다. <i>Advanced 유저 가이드</i> 에서는 유저가 임플리멘트한 모델, 함수, 알고리듬을 써서 트레이닝을 시작하는 방법을 설병합니다. 트레이닝 데이타는 <a href="data.html">process</a> 를 참고로 준비를 해주세요.</p>
+<p><img src="../../images/overview.png" align="center" width="400px" alt="" /> <span><b>Figure 1 - SINGA Overview </b></span></p>
+<div class="section">
+<h2><a name="Basic__"></a>Basic 유저 가이드</h2>
+<p>SINGA 에서 준비된 main 함수를 써서 쉽게 트레이닝을 시작할수 있습니다. 이 경우 <a href="../api/classsinga_1_1JobProto.html">JobProto</a> 를 위하여 google protocol buffer message 로 씌여진 job configuration 파일을 준비합니다. 그리고 아래의 커맨드라인을 실행합니다.</p>
+
+<div class="source">
+<div class="source"><pre class="prettyprint">./bin/singa-run.sh -conf <path to job conf> [-resume]
+</pre></div></div>
+<p><tt>-resume</tt> 는 저번 <a href="checkpoint.html">checkpoint</a> 부터 다시 트레이닝을 계속할때 쓰는 인수 입니다. <a href="mlp.html">MLP</a> 와 <a href="cnn.html">CNN</a> 샘플들은 built-in 컴포넌트를 이용하고 있습니다. Please read the corresponding pages for their job configuration files. The subsequent pages will illustrate the details on each component of the configuration.</p></div>
+<div class="section">
+<h2><a name="Advanced__"></a>Advanced 유저 가이드</h2>
+<p>If a user’s model contains some user-defined components, e.g., <a href="updater.html">Updater</a>, he has to write a main function to register these components. It is similar to Hadoop’s main function. Generally, the main function should</p>
+
+<ul>
+
+<li>
+<p>SINGA 초기화, e.g., setup logging.</p></li>
+
+<li>
+<p>유저 컴포넌트의 등록</p></li>
+
+<li>
+<p>job configuration 을 작성하고 SINGA driver 에서 설정</p></li>
+</ul>
+<p>main 함수의 샘플입니다.</p>
+
+<div class="source">
+<div class="source"><pre class="prettyprint">#include "singa.h"
+#include "user.h" // header for user code
+
+int main(int argc, char** argv) {
+ singa::Driver driver;
+ driver.Init(argc, argv);
+ bool resume;
+ // parse resume option from argv.
+
+ // register user defined layers
+ driver.RegisterLayer<FooLayer>(kFooLayer);
+ // register user defined updater
+ driver.RegisterUpdater<FooUpdater>(kFooUpdater);
+ ...
+ auto jobConf = driver.job_conf();
+ // update jobConf
+
+ driver.Train(resume, jobConf);
+ return 0;
+}
+</pre></div></div>
+<p>Driver class’ <tt>Init</tt> method 는 커맨드라인 인수 <tt>-conf <job conf></tt> 에서 주어진 job configuration 파일을 읽습니다. 그 파일에는 cluster topology 정보가 기술 되어있고, 유저가 neural net, updater 등을 업데이트 혹은 설정 하기위한 <tt>jobConf</tt>를 리턴합니다. 유저가 Layer, Updater, Worker, Param 등의 subclass를 정의하면, driver 에 등록을 해야합니다. 트레이닝을 시작하기 위하여 job configuration 즉 <tt>jobConf</tt>를 driver.Train
에 넘겨줍니다.</p>
+<!-- We will provide helper functions to make the configuration easier in the
+future, like [keras](https://github.com/fchollet/keras). -->
+<p>유저코드를 compile 하고 SINGA library (<i>.libs/libsinga.so</i>) 와 링크시켜 실행파일, e.g., <i>mysinga</i>, 을 생성합니다. 프로그램은 다음과 같이 실행합니다.</p>
+
+<div class="source">
+<div class="source"><pre class="prettyprint">./bin/singa-run.sh -conf <path to job conf> -exec <path to mysinga> [other arguments]
+</pre></div></div>
+<p><a href="rnn.html">RNN application</a> 에서 RNN 모델의 트레이닝을 위한 함수의 프로그램 예를 설명합니다.</p></div>
+ </div>
+ </div>
+ </div>
+
+ <hr/>
+
+ <footer>
+ <div class="container-fluid">
+ <div class="row-fluid">
+
+<p>Copyright © 2015 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>
+
+
+ </div>
+ </footer>
+ </body>
+</html>