<!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="3.0.0.rc1"/><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>3.0.0.rc1</h3></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-internal"><li class=""><a href="/docs/installation" target="_self">Docs</a></li><li class=""><a href="/docs/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="docLastUpdate"><em>Last updated on 4/2/2020</em></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>