<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>singa-incubating-1.0.0 Release Notes · Apache SINGA</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file to you under the Apache License, Version 2.0 (the &quot;License&quot;); you may not use this file except in compliance with the License.  You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the specific language governing permissions and limitations under the License.  --&gt;"/><meta name="docsearch:version" content="2.0.0"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="singa-incubating-1.0.0 Release Notes · Apache SINGA"/><meta property="og:type" content="website"/><meta property="og:url" content="https://feynmandna.github.io/"/><meta property="og:description" content="&lt;!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file to you under the Apache License, Version 2.0 (the &quot;License&quot;); you may not use this file except in compliance with the License.  You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the specific language governing permissions and limitations under the License.  --&gt;"/><meta property="og:image" content="https://feynmandna.github.io/img/singa_twitter_banner.jpeg"/><meta name="twitter:card" content="summary"/><meta name="twitter:image" content="https://feynmandna.github.io/img/singa_twitter_banner.jpeg"/><link rel="shortcut icon" href="/img/favicon.ico"/><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/atom-one-dark.min.css"/><link rel="alternate" type="application/atom+xml" href="https://feynmandna.github.io/blog/atom.xml" title="Apache SINGA Blog ATOM Feed"/><link rel="alternate" type="application/rss+xml" href="https://feynmandna.github.io/blog/feed.xml" title="Apache SINGA Blog RSS Feed"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script src="https://unpkg.com/vanilla-back-to-top@7.1.14/dist/vanilla-back-to-top.min.js"></script><script>
        document.addEventListener('DOMContentLoaded', function() {
          addBackToTop(
            {"zIndex":100}
          )
        });
        </script><script src="/js/scrollSpy.js"></script><link rel="stylesheet" href="/css/main.css"/><script src="/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/singa.png" alt="Apache SINGA"/></a><a href="/versions"><h3>2.0.0</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-internal"><li class=""><a href="/docs/2.0.0/installation" target="_self">Docs</a></li><li class=""><a href="/docs/2.0.0/source-repository" target="_self">Community</a></li><li class=""><a href="/blog/" target="_self">News</a></li><li class=""><a href="https://apache-singa.readthedocs.io/en/latest/" target="_self">API</a></li><li class=""><a target="_self"></a></li><li class=""><a href="https://github.com/apache/singa-doc" target="_self">GitHub</a></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/singa-doc/blob/master/docs/releases/RELEASE_NOTES_1.0.0.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 id="__docusaurus" class="postHeaderTitle">singa-incubating-1.0.0 Release Notes</h1></header><article><div><span><!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.  You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the specific language governing permissions and limitations under the License.  -->
<p>SINGA is a general distributed deep learning platform for training big deep learning models over large datasets. It is designed with an intuitive programming model based on the layer abstraction. SINGA supports a wide variety of popular deep learning models.</p>
<p>This release includes following features:</p>
<ul>
<li>Core abstractions including Tensor and Device
<ul>
<li>[SINGA-207] Update Tensor functions for matrices</li>
<li>[SINGA-205] Enable slice and concatenate operations for Tensor objects</li>
<li>[SINGA-197] Add CNMem as a submodule in lib/</li>
<li>[SINGA-196] Rename class Blob to Block</li>
<li>[SINGA-194] Add a Platform singleton</li>
<li>[SINGA-175] Add memory management APIs and implement a subclass using CNMeM</li>
<li>[SINGA-173] OpenCL Implementation</li>
<li>[SINGA-171] Create CppDevice and CudaDevice</li>
<li>[SINGA-168] Implement Cpp Math functions APIs</li>
<li>[SINGA-162] Overview of features for V1.x</li>
<li>[SINGA-165] Add cross-platform timer API to singa</li>
<li>[SINGA-167] Add Tensor Math function APIs</li>
<li>[SINGA-166] light built-in logging for making glog optional</li>
<li>[SINGA-164] Add the base Tensor class</li>
</ul></li>
</ul>
<ul>
<li>IO components for file read/write, network and data pre-processing
<ul>
<li>[SINGA-233] New communication interface</li>
<li>[SINGA-215] Implement Image Transformation for Image Pre-processing</li>
<li>[SINGA-214] Add LMDBReader and LMDBWriter for LMDB</li>
<li>[SINGA-213] Implement Encoder and Decoder for CSV</li>
<li>[SINGA-211] Add TextFileReader and TextFileWriter for CSV files</li>
<li>[SINGA-210] Enable checkpoint and resume for v1.0</li>
<li>[SINGA-208] Add DataIter base class and a simple implementation</li>
<li>[SINGA-203] Add OpenCV detection for cmake compilation</li>
<li>[SINGA-202] Add reader and writer for binary file</li>
<li>[SINGA-200] Implement Encoder and Decoder for data pre-processing</li>
</ul></li>
</ul>
<ul>
<li>Module components including layer classes, training algorithms and Python binding
<ul>
<li>[SINGA-235] Unify the engines for cudnn and singa layers</li>
<li>[SINGA-230] OpenCL Convolution layer and Pooling layer</li>
<li>[SINGA-222] Fixed bugs in IO</li>
<li>[SINGA-218] Implementation for RNN CUDNN version</li>
<li>[SINGA-204] Support the training of feed-forward neural nets</li>
<li>[SINGA-199] Implement Python classes for SGD optimizers</li>
<li>[SINGA-198] Change Layer::Setup API to include input Tensor shapes</li>
<li>[SINGA-193] Add Python layers</li>
<li>[SINGA-192] Implement optimization algorithms for SINGA v1 (nesterove, adagrad, rmsprop)</li>
<li>[SINGA-191] Add &quot;autotune&quot; for CudnnConvolution Layer</li>
<li>[SINGA-190] Add prelu layer and flatten layer</li>
<li>[SINGA-189] Generate python outputs of proto files</li>
<li>[SINGA-188] Add Dense layer</li>
<li>[SINGA-187] Add popular parameter initialization methods</li>
<li>[SINGA-186] Create Python Tensor class</li>
<li>[SINGA-184] Add Cross Entropy loss computation</li>
<li>[SINGA-183] Add the base classes for optimizer, constraint and regularizer</li>
<li>[SINGA-180] Add Activation layer and Softmax layer</li>
<li>[SINGA-178] Add Convolution layer and Pooling layer</li>
<li>[SINGA-176] Add loss and metric base classes</li>
<li>[SINGA-174] Add Batch Normalization layer and Local Response Nomalization layer.</li>
<li>[SINGA-170] Add Dropout layer and CudnnDropout layer.</li>
<li>[SINGA-169] Add base Layer class for V1.0</li>
</ul></li>
</ul>
<ul>
<li><p>Examples</p>
<ul>
<li>[SINGA-232] Alexnet on Imagenet</li>
<li>[SINGA-231] Batchnormlized VGG model for cifar-10</li>
<li>[SINGA-228] Add Cpp Version of Convolution and Pooling layer</li>
<li>[SINGA-227] Add Split and Merge Layer and add ResNet Implementation</li>
</ul></li>
<li><p>Documentation</p>
<ul>
<li>[SINGA-239] Transfer documentation files of v0.3.0 to github</li>
<li>[SINGA-238] RBM on mnist</li>
<li>[SINGA-225] Documentation for installation and Cifar10 example</li>
<li>[SINGA-223] Use Sphinx to create the website</li>
</ul></li>
<li><p>Tools for compilation and some utility code</p>
<ul>
<li>[SINGA-229] Complete install targets</li>
<li>[SINGA-221] Support for Travis-CI</li>
<li>[SINGA-217] build python package with setup.py</li>
<li>[SINGA-216] add jenkins for CI support</li>
<li>[SINGA-212] Disable the compilation of libcnmem if USE_CUDA is OFF</li>
<li>[SINGA-195] Channel for sending training statistics</li>
<li>[SINGA-185] Add CBLAS and GLOG detection for singav1</li>
<li>[SINGA-181] Add NVCC supporting for .cu files</li>
<li>[SINGA-177] Add fully cmake supporting for the compilation of singa_v1</li>
<li>[SINGA-172] Add CMake supporting for Cuda and Cudnn libs</li>
</ul></li>
</ul>
</span></div></article></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/singa-logo-square.png" alt="Apache SINGA" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/installation">Getting Started</a><a href="/docs/device">Guides</a><a href="/en/#">API Reference (coming soon)</a><a href="/docs/model-zoo-cnn-cifar10">Model Zoo</a><a href="/docs/download-singa">Development</a></div><div><h5>Community</h5><a href="/en/users.html">User Showcase</a><a href="/docs/history-singa">SINGA History</a><a href="/docs/team-list">SINGA Team</a><a href="/news">SINGA News</a><a href="https://github.com/apache/singa-doc">GitHub</a><div class="social"><a class="github-button" href="https://github.com/apache/singa-doc" data-count-href="/apache/singa/stargazers" data-show-count="true" data-count-aria-label="# stargazers on GitHub" aria-label="Star this project on GitHub">apache/singa-doc</a></div><div class="social"><a href="https://twitter.com/ApacheSINGA" class="twitter-follow-button">Follow @ApacheSINGA</a></div></div><div><h5>Apache Software Foundation</h5><a href="https://apache.org/" target="_blank" rel="noreferrer noopener">Foundation</a><a href="http://www.apache.org/licenses/" target="_blank" rel="noreferrer noopener">License</a><a href="http://www.apache.org/foundation/sponsorship.html" target="_blank" rel="noreferrer noopener">Sponsorship</a><a href="http://www.apache.org/foundation/thanks.html" target="_blank" rel="noreferrer noopener">Thanks</a><a href="http://www.apache.org/events/current-event" target="_blank" rel="noreferrer noopener">Events</a><a href="http://www.apache.org/security/" target="_blank" rel="noreferrer noopener">Security</a></div></section><div style="width:100%;text-align:center"><a href="https://apache.org/" target="_blank" rel="noreferrer noopener" class="ApacheOpenSource"><img src="/img/asf_logo_wide.svg" alt="Apache Open Source"/></a><section class="copyright" style="max-width:60%;margin:0 auto">Copyright © 2020
   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.</section></div></footer></div><script>window.twttr=(function(d,s, id){var js,fjs=d.getElementsByTagName(s)[0],t=window.twttr||{};if(d.getElementById(id))return t;js=d.createElement(s);js.id=id;js.src='https://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js, fjs);t._e = [];t.ready = function(f) {t._e.push(f);};return t;}(document, 'script', 'twitter-wjs'));</script></body></html>