


<!DOCTYPE html>
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
<head>
  <meta charset="utf-8">
  
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  
  <title>Welcome to Apache Singa &mdash; incubator-singa 0.3.0 documentation</title>
  

  
  

  

  
  
    

  

  
  
    <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
  

  

  
    <link rel="top" title="incubator-singa 0.3.0 documentation" href="#"/>
        <link rel="next" title="최신 문서" href="docs/index.html"/> 

  
  <script src="_static/js/modernizr.min.js"></script>

</head>

<body class="wy-body-for-nav" role="document">

  <div class="wy-grid-for-nav">

    
    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
      <div class="wy-side-scroll">
        <div class="wy-side-nav-search">
          

          
            <a href="#" class="icon icon-home"> incubator-singa
          

          
            
            <img src="_static/singa.png" class="logo" />
          
          </a>

          
            
            
              <div class="version">
                0.3.0
              </div>
            
          

          
<div role="search">
  <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
    <input type="text" name="q" placeholder="Search docs" />
    <input type="hidden" name="check_keywords" value="yes" />
    <input type="hidden" name="area" value="default" />
  </form>
</div>

          
        </div>

        <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
          
            
            
                <ul>
<li class="toctree-l1"><a class="reference internal" href="docs/index.html">최신 문서</a></li>
</ul>
<p class="caption"><span class="caption-text">Development</span></p>
<ul class="simple">
</ul>
<p class="caption"><span class="caption-text">Community</span></p>
<ul class="simple">
</ul>

            
          
        </div>
      </div>
    </nav>

    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">

      
      <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
        <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
        <a href="#">incubator-singa</a>
      </nav>


      
      <div class="wy-nav-content">
        <div class="rst-content">
          

 



<div role="navigation" aria-label="breadcrumbs navigation">
  <ul class="wy-breadcrumbs">
    <li><a href="#">Docs</a> &raquo;</li>
      
    <li>Welcome to Apache Singa</li>
      <li class="wy-breadcrumbs-aside">
        
          
        
      </li>
  </ul>
  <hr/>
</div>
          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
           <div itemprop="articleBody">
            
  <div class="section" id="welcome-to-apache-singa">
<h1>Welcome to Apache Singa<a class="headerlink" href="#welcome-to-apache-singa" title="Permalink to this headline">¶</a></h1>
</div>
<div class="section" id="recent-news">
<h1>Recent News<a class="headerlink" href="#recent-news" title="Permalink to this headline">¶</a></h1>
<ul class="simple">
<li>The <strong>third release</strong> is now available, 20 April, 2016. <a class="reference external" href="downloads.html">Download SINGA v0.3.0</a></li>
<li>The <strong>second release</strong> is now available, 14 Jan, 2016. <a class="reference external" href="downloads.html">Download SINGA v0.2.0</a>.</li>
<li>SINGA will be presented at <a class="reference external" href="http://strataconf.com/big-data-conference-sg-2015/public/schedule/detail/45123">Strata+Hadoop</a> on 2 Dec, 2015</li>
<li>SINGA was presented at <a class="reference external" href="http://www.acmmm.org/2015/at-a-glance/">ACM Multimedia</a> Best Paper session and Open Source Software Competition session, 26-30 Oct, 2015 (<a class="reference external" href="http://www.comp.nus.edu.sg/~dbsystem/singa//assets/file/mm2015.ppt">Slides</a>)</li>
<li>The <strong>first release</strong> is now available, 8 Oct, 2015. <a class="reference external" href="downloads.html">Download SINGA v0.1.0</a>.</li>
<li>SINGA was presented at <a class="reference external" href="http://www.comp.nus.edu.sg/~dbsystem/singa/workshop">workshop on deep learning</a>  held on 16 Sep, 2015</li>
<li>SINGA was presented at <a class="reference external" href="http://boss.dima.tu-berlin.de/">BOSS</a> of <a class="reference external" href="http://www.vldb.org/2015/">VLDB 2015</a> at Hawaii, 4 Sep, 2015. (slides: <a class="reference external" href="http://www.comp.nus.edu.sg/~dbsystem/singa/assets/file/singa-vldb-boss.pptx">overview</a>, <a class="reference external" href="http://www.comp.nus.edu.sg/~dbsystem/singa/assets/file/basic-user-guide.pptx">basic</a>, <a class="reference external" href="http://www.comp.nus.edu.sg/~dbsystem/singa/assets/file/advanced-user-guide.pptx">advanced</a>)</li>
<li>SINGA was presented at <a class="reference external" href="http://adsc.illinois.edu/contact-us">ADSC/I2R Deep Learning Workshop</a>, 25 Aug, 2015.</li>
<li>A tutorial on SINGA was given at VLDB summer school at Tsinghua University,  25-31 July, 2015.</li>
<li>A half day tutorial on SINGA was given at I2R, 29 June, 2015.</li>
<li>SINGA was presented at <a class="reference external" href="http://danac.org/">DanaC</a> of <a class="reference external" href="http://www.sigmod2015.org/index.shtml">SIGMOD 2015</a> at Melbourne, 31 May - 4 June, 2015.</li>
<li>SINGA has been accepted by <a class="reference external" href="http://incubator.apache.org/">Apache Incubator</a>, 17 March, 2015.</li>
</ul>
</div>
<div class="section" id="getting-started">
<h1>Getting Started<a class="headerlink" href="#getting-started" title="Permalink to this headline">¶</a></h1>
<ul class="simple">
<li>The <a class="reference external" href="docs/overview.html">Introduction</a> page gives an overview of SINGA.</li>
<li>The <a class="reference external" href="docs/installation.html">Installation</a> guide describes details on downloading and installing SINGA.</li>
<li>Please follow the <a class="reference external" href="docs/quick-start.html">Quick Start</a> guide to run simple applications on SINGA.</li>
</ul>
</div>
<div class="section" id="documentation">
<h1>Documentation<a class="headerlink" href="#documentation" title="Permalink to this headline">¶</a></h1>
<ul class="simple">
<li>Documentations are listed <a class="reference external" href="docs.html">here</a>.</li>
<li>Code API can be found <a class="reference external" href="api/index.html">here</a>.</li>
<li>Research publication list is available <a class="reference external" href="http://www.comp.nus.edu.sg/~dbsystem/singa/research/publication/">here</a>.</li>
</ul>
</div>
<div class="section" id="how-to-contribute">
<h1>How to contribute<a class="headerlink" href="#how-to-contribute" title="Permalink to this headline">¶</a></h1>
<ul class="simple">
<li>Please subscribe to our development mailing list <a class="reference external" href="mailto:dev-subscribe&#37;&#52;&#48;singa&#46;incubator&#46;apache&#46;org">dev-subscribe<span>&#64;</span>singa<span>&#46;</span>incubator<span>&#46;</span>apache<span>&#46;</span>org</a>.</li>
<li>If you find any issues using SINGA, please report it to the <a class="reference external" href="https://issues.apache.org/jira/browse/singa">Issue Tracker</a>.</li>
<li>You can also contact with <a class="reference external" href="community.html">SINGA committers</a> directly.</li>
</ul>
<p>More details on contributing to SINGA is described <a class="reference external" href="develop/how-contribute.html">here</a> .</p>
</div>
<div class="section" id="citing-singa">
<h1>Citing SINGA<a class="headerlink" href="#citing-singa" title="Permalink to this headline">¶</a></h1>
<p>Please cite the following two papers if you use SINGA in your research:</p>
<ul class="simple">
<li><ol class="first upperalpha" start="2">
<li><ol class="first upperalpha" start="3">
<li>Ooi, K.-L. Tan, S. Wang, W. Wang, Q. Cai, G. Chen, J. Gao, Z. Luo, A. K. H. Tung, Y. Wang, Z. Xie, M. Zhang, and K. Zheng. <a class="reference external" href="http://www.comp.nus.edu.sg/~ooibc/singaopen-mm15.pdf">SINGA: A distributed deep learning platform</a>. ACM Multimedia (Open Source Software Competition) 2015 (<a class="reference external" href="http://www.comp.nus.edu.sg/~dbsystem/singa//assets/file/bib-oss.txt">BibTex</a>).</li>
</ol>
</li>
</ol>
</li>
<li><ol class="first upperalpha" start="23">
<li>Wang, G. Chen, T. T. A. Dinh, B. C. Ooi, K.-L.Tan, J. Gao, and S. Wang. <a class="reference external" href="http://www.comp.nus.edu.sg/~ooibc/singa-mm15.pdf">SINGA: putting deep learning in the hands of multimedia users</a>. ACM Multimedia 2015 (<a class="reference external" href="http://www.comp.nus.edu.sg/~dbsystem/singa//assets/file/bib-singa.txt">BibTex</a>, <a class="reference external" href="files/mm2015.ppt">Slides</a>).</li>
</ol>
</li>
</ul>
<div class="toctree-wrapper compound">
</div>
<div class="toctree-wrapper compound" id="development">
</div>
<div class="toctree-wrapper compound" id="community">
</div>
</div>
<div class="section" id="license">
<h1>License<a class="headerlink" href="#license" title="Permalink to this headline">¶</a></h1>
<p>SINGA is released under <a class="reference external" href="http://www.apache.org/licenses/LICENSE-2.0">Apache License Version 2.0</a>.</p>
</div>
<div class="section" id="disclaimers">
<h1>Disclaimers<a class="headerlink" href="#disclaimers" title="Permalink to this headline">¶</a></h1>
<p>Apache SINGA is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.</p>
</div>


           </div>
          </div>
          <footer>
  
    <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
      
        <a href="docs/index.html" class="btn btn-neutral float-right" title="최신 문서" accesskey="n">Next <span class="fa fa-arrow-circle-right"></span></a>
      
      
    </div>
  

  <hr/>

  <div role="contentinfo">
    <p>
        &copy; Copyright 2016 The Apache Software Foundation. All rights reserved. Apache Singa, Apache, the Apache feather logo, and the Apache Singa project logos are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners..

    </p>
  </div>
  Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. 

</footer>

        </div>
      </div>

    </section>

  </div>
  


  

    <script type="text/javascript">
        var DOCUMENTATION_OPTIONS = {
            URL_ROOT:'./',
            VERSION:'0.3.0',
            COLLAPSE_INDEX:false,
            FILE_SUFFIX:'.html',
            HAS_SOURCE:  true
        };
    </script>
      <script type="text/javascript" src="_static/jquery.js"></script>
      <script type="text/javascript" src="_static/underscore.js"></script>
      <script type="text/javascript" src="_static/doctools.js"></script>

  

  
  
    <script type="text/javascript" src="_static/js/theme.js"></script>
  

  
  
  <script type="text/javascript">
      jQuery(function () {
          SphinxRtdTheme.StickyNav.enable();
      });
  </script>
  


<div class="rst-versions shift-up" data-toggle="rst-versions" role="note" aria-label="versions">
    <img src="_static/apache.jpg">

    <span class="rst-current-version" data-toggle="rst-current-version">
    <span class="fa fa-book"> incubator-singa </span>
    v: 0.3.0
    <span class="fa fa-caret-down"></span>
  </span>
    <div class="rst-other-versions">
        <dl>
            <dt>Languages</dt>
            <dd><a href="../en/index.html">English</a></dd>
            <dd><a href="../zh/index.html">中文</a></dd>
            <dd><a href="../jp/index.html">日本語</a></dd>
            <dd><a href="../kr/index.html">한국어</a></dd>
        </dl>
    </div>
</div>

<a href="https://github.com/apache/incubator-singa">
    <img style="position: absolute; top: 0; right: 0; border: 0; z-index: 10000;"
         src="https://s3.amazonaws.com/github/ribbons/forkme_right_orange_ff7600.png"
         alt="Fork me on GitHub">
</a>

 


</body>
</html>