


<!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="SINGA 中文文档" 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">SINGA 中文文档</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="SINGA 中文文档" 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>