


<!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>Download SINGA &mdash; incubator-singa 1.1.0 documentation</title>
  

  
  

  

  
  
    

  

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

  

  
    <link rel="top" title="incubator-singa 1.1.0 documentation" href="index.html"/>
        <link rel="next" title="Documentation" href="docs/index.html"/>
        <link rel="prev" title="Welcome to Apache Singa" href="index.html"/>
    <link href="_static/style.css" rel="stylesheet" type="text/css">


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

</head>

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

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

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

          
            <a href="index.html" class="icon icon-home"> incubator-singa
          

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

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

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

          
        </div>

        <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
          
            
            
                <ul class="current">
<li class="toctree-l1 current"><a class="current reference internal" href="">Download SINGA</a></li>
<li class="toctree-l1"><a class="reference internal" href="docs/index.html">Documentation</a></li>
</ul>
<p class="caption"><span class="caption-text">Development</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="develop/schedule.html">Development Schedule</a></li>
<li class="toctree-l1"><a class="reference internal" href="develop/how-contribute.html">How to Contribute to SINGA</a></li>
<li class="toctree-l1"><a class="reference internal" href="develop/contribute-code.html">How to Contribute Code</a></li>
<li class="toctree-l1"><a class="reference internal" href="develop/contribute-docs.html">How to Contribute to Documentation</a></li>
</ul>
<p class="caption"><span class="caption-text">Community</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="community/source-repository.html">Source Repository</a></li>
<li class="toctree-l1"><a class="reference internal" href="community/mail-lists.html">Project Mailing Lists</a></li>
<li class="toctree-l1"><a class="reference internal" href="community/issue-tracking.html">Issue Tracking</a></li>
<li class="toctree-l1"><a class="reference internal" href="community/team-list.html">The SINGA Team</a></li>
</ul>

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

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

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


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

 



<div role="navigation" aria-label="breadcrumbs navigation">
  <ul class="wy-breadcrumbs">
    <li><a href="index.html">Docs</a> &raquo;</li>
      
    <li>Download 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="download-singa">
<span id="download-singa"></span><h1>Download SINGA<a class="headerlink" href="#download-singa" title="Permalink to this headline">¶</a></h1>
<ul class="simple">
<li>Latest code: please clone the dev branch from <a class="reference external" href="https://github.com/apache/incubator-singa">Github</a></li>
<li>v1.1.0 (12 February 2017):<ul>
<li><a class="reference external" href="http://www.apache.org/dyn/closer.cgi/incubator/singa/1.1.0/apache-singa-incubating-1.1.0.tar.gz">Apache SINGA 1.1.0</a>
<a class="reference external" href="https://dist.apache.org/repos/dist/release/incubator/singa/1.1.0/apache-singa-incubating-1.1.0.tar.gz.md5">[MD5]</a>
<a class="reference external" href="https://dist.apache.org/repos/dist/release/incubator/singa/1.1.0/KEYS">[KEYS]</a></li>
<li><a class="reference external" href="releases/RELEASE_NOTES_1.1.0.html">Release Notes 1.1.0</a></li>
<li>New features and major updates,<ul>
<li>Create Docker images (CPU and GPU versions)</li>
<li>Create Amazon AMI for SINGA (CPU version)</li>
<li>Integrate with Jenkins for automatically generating Wheel and Debian packages (for installation), and updating the website.</li>
<li>Enhance the FeedFowardNet, e.g., multiple inputs and verbose mode for debugging</li>
<li>Add Concat and Slice layers</li>
<li>Extend CrossEntropyLoss to accept instance with multiple labels</li>
<li>Add image_tool.py with image augmentation methods</li>
<li>Support model loading and saving via the Snapshot API</li>
<li>Compile SINGA source on Windows</li>
<li>Compile mandatory dependent libraries together with SINGA code</li>
<li>Enable Java binding (basic) for SINGA</li>
<li>Add version ID in checkpointing files</li>
<li>Add Rafiki toolkit for providing RESTFul APIs</li>
<li>Add examples pretrained from Caffe, including GoogleNet</li>
</ul>
</li>
</ul>
</li>
</ul>
<ul class="simple">
<li>v1.0.0 (8 September 2016):<ul>
<li><a class="reference external" href="https://archive.apache.org/dist/incubator/singa/1.0.0/apache-singa-incubating-1.0.0.tar.gz">Apache SINGA 1.0.0</a>
<a class="reference external" href="https://archive.apache.org/dist/incubator/singa/1.0.0/apache-singa-incubating-1.0.0.tar.gz.md5">[MD5]</a>
<a class="reference external" href="https://archive.apache.org/dist/incubator/singa//1.0.0/KEYS">[KEYS]</a></li>
<li><a class="reference external" href="releases/RELEASE_NOTES_1.0.0.html">Release Notes 1.0.0</a></li>
<li>New features and major updates,<ul>
<li>Tensor abstraction for supporting more machine learning models.</li>
<li>Device abstraction for running on different hardware devices, including CPU, (Nvidia/AMD) GPU and FPGA (to be tested in later versions).</li>
<li>Replace GNU autotool with cmake for compilation.</li>
<li>Support Mac OS</li>
<li>Improve Python binding, including installation and programming</li>
<li>More deep learning models, including VGG and ResNet</li>
<li>More IO classes for reading/writing files and encoding/decoding data</li>
<li>New network communication components directly based on Socket.</li>
<li>Cudnn V5 with Dropout and RNN layers.</li>
<li>Replace website building tool from maven to Sphinx</li>
<li>Integrate Travis-CI</li>
</ul>
</li>
</ul>
</li>
</ul>
<ul class="simple">
<li>v0.3.0 (20 April 2016):<ul>
<li><a class="reference external" href="https://archive.apache.org/dist/incubator/singa/0.3.0/apache-singa-incubating-0.3.0.tar.gz">Apache SINGA 0.3.0</a>
<a class="reference external" href="https://archive.apache.org/dist/incubator/singa/0.3.0/apache-singa-incubating-0.3.0.tar.gz.md5">[MD5]</a>
<a class="reference external" href="https://archive.apache.org/dist/incubator/singa/0.3.0/KEYS">[KEYS]</a></li>
<li><a class="reference external" href="releases/RELEASE_NOTES_0.3.0.html">Release Notes 0.3.0</a></li>
<li>New features and major updates,<ul>
<li><a class="reference external" href="v0.3.0/gpu.html">Training on GPU cluster</a> enables training of deep learning models over a GPU cluster.</li>
<li><a class="reference external" href="v0.3.0/python.html">Python wrapper improvement</a> makes it easy to configure the job, including neural net and SGD algorithm.</li>
<li><a class="reference external" href="v0.3.0/updater.html">New SGD updaters</a> are added, including Adam, AdaDelta and AdaMax.</li>
<li><a class="reference external" href="v0.3.0/installation.html">Installation</a> has fewer dependent libraries for single node training.</li>
<li>Heterogeneous training with CPU and GPU.</li>
<li>Support cuDNN V4.</li>
<li>Data prefetching.</li>
<li>Fix some bugs.</li>
</ul>
</li>
</ul>
</li>
</ul>
<ul class="simple">
<li>v0.2.0 (14 January 2016):<ul>
<li><a class="reference external" href="https://archive.apache.org/dist/incubator/singa/0.2.0/apache-singa-incubating-0.2.0.tar.gz">Apache SINGA 0.2.0</a>
<a class="reference external" href="https://archive.apache.org/dist/incubator/singa/0.2.0/apache-singa-incubating-0.2.0.tar.gz.md5">[MD5]</a>
<a class="reference external" href="https://archive.apache.org/dist/incubator/singa/0.2.0/KEYS">[KEYS]</a></li>
<li><a class="reference external" href="releases/RELEASE_NOTES_0.2.0.html">Release Notes 0.2.0</a></li>
<li>New features and major updates,<ul>
<li><a class="reference external" href="v0.2.0/gpu.html">Training on GPU</a> enables training of complex models on a single node with multiple GPU cards.</li>
<li><a class="reference external" href="v0.2.0/hybrid.html">Hybrid neural net partitioning</a> supports data and model parallelism at the same time.</li>
<li><a class="reference external" href="v0.2.0/python.html">Python wrapper</a> makes it easy to configure the job, including neural net and SGD algorithm.</li>
<li><a class="reference external" href="v0.2.0/general-rnn.html">RNN model and BPTT algorithm</a> are implemented to support applications based on RNN models, e.g., GRU.</li>
<li><a class="reference external" href="v0.2.0/distributed-training.html">Cloud software integration</a> includes Mesos, Docker and HDFS.</li>
<li>Visualization of neural net structure and layer information, which is helpful for debugging.</li>
<li>Linear algebra functions and random functions against Blobs and raw data pointers.</li>
<li>New layers, including SoftmaxLayer, ArgSortLayer, DummyLayer, RNN layers and cuDNN layers.</li>
<li>Update Layer class to carry multiple data/grad Blobs.</li>
<li>Extract features and test performance for new data by loading previously trained model parameters.</li>
<li>Add Store class for IO operations.</li>
</ul>
</li>
</ul>
</li>
</ul>
<ul class="simple">
<li>v0.1.0 (8 October 2015):<ul>
<li><a class="reference external" href="https://archive.apache.org/dist/incubator/singa/apache-singa-incubating-0.1.0.tar.gz">Apache SINGA 0.1.0</a>
<a class="reference external" href="https://archive.apache.org/dist/incubator/singa/apache-singa-incubating-0.1.0.tar.gz.md5">[MD5]</a>
<a class="reference external" href="https://archive.apache.org/dist/incubator/singa/KEYS">[KEYS]</a></li>
<li><a class="reference external" href="https://console.aws.amazon.com/ec2/v2/home?region=ap-southeast-1#LaunchInstanceWizard:ami=ami-b41001e6">Amazon EC2 image</a></li>
<li><a class="reference external" href="releases/RELEASE_NOTES_0.1.0.html">Release Notes 0.1.0</a></li>
<li>Major features include,<ul>
<li>Installation using GNU build utility</li>
<li>Scripts for job management with zookeeper</li>
<li>Programming model based on NeuralNet and Layer abstractions.</li>
<li>System architecture based on Worker, Server and Stub.</li>
<li>Training models from three different model categories, namely, feed-forward models, energy models and RNN models.</li>
<li>Synchronous and asynchronous distributed training frameworks using CPU</li>
<li>Checkpoint and restore</li>
<li>Unit test using gtest</li>
</ul>
</li>
</ul>
</li>
</ul>
<p><strong>Disclaimer</strong></p>
<p>Apache SINGA is an effort undergoing incubation at The Apache Software
Foundation (ASF), sponsored by the name of Apache Incubator PMC. 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="Documentation" accesskey="n">Next <span class="fa fa-arrow-circle-right"></span></a>
      
      
        <a href="index.html" class="btn btn-neutral" title="Welcome to Apache Singa" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous</a>
      
    </div>
  

  <hr/>

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

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

</footer>

        </div>
      </div>

    </section>

  </div>
  


  

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

  

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

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

<div class="rst-versions shift-up" data-toggle="rst-versions" role="note" aria-label="versions">
  <span class="rst-current-version" data-toggle="rst-current-version">
    <span class="fa fa-book"> incubator-singa </span>
    v: latest
    <span class="fa fa-caret-down"></span>
  </span>
  <div class="rst-other-versions">
      <dl>
          <dt>Languages</dt>
          <dd><a href="../en/index.html">English</a></dd>
          <dd><a href="../zh/index.html">中文</a></dd>
      </dl>
      <dl>
          <dt>Versions</dt>
          <dd><a href="http://singa.apache.org/v0.3.0/">0.3</a></dd>
          <dd><a href="http://singa.apache.org/v1.1.0/">1.1</a></dd>
      </dl>

  </div>
  <a href="http://incubator.apache.org/"> <img src= "_static/apache.jpg"> </a>
</div>

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

 


</body>
</html>