#singa-incubating-1.1.0 Release Notes

---

SINGA is a general distributed deep learning platform for training big deep
learning models over large datasets.

This release includes following features:

  * Core components
      * [SINGA-296] Add sign and to_host function for pysinga tensor module

  * Model components
      * [SINGA-254] Implement Adam for V1
      * [SINGA-264] Extend the FeedForwardNet to accept multiple inputs
      * [SINGA-267] Add spatial mode in batch normalization layer
      * [SINGA-271] Add Concat and Slice layers
      * [SINGA-275] Add Cross Entropy Loss for multiple labels
      * [SINGA-278] Convert trained caffe parameters to singa
      * [SINGA-287] Add memory size check for cudnn convolution

  * Utility functions and CI
      * [SINGA-242] Compile all source files into a single library.
      * [SINGA-244] Separating swig interface and python binding files
      * [SINGA-246] Imgtool for image augmentation
      * [SINGA-247] Add windows support for singa
      * [SINGA-251] Implement image loader for pysinga
      * [SINGA-252] Use the snapshot methods to dump and load models for pysinga
      * [SINGA-255] Compile mandatory dependent libaries together with SINGA code
      * [SINGA-259] Add maven pom file for building java classes
      * [SINGA-261] Add version ID into the checkpoint files
      * [SINGA-266] Add Rafiki python toolkits
      * [SINGA-273] Improve license and contributions
      * [SINGA-284] Add python unittest into Jenkins and link static libs into whl file
      * [SINGA-280] Jenkins CI support
      * [SINGA-288] Publish wheel of PySINGA generated by Jenkins to public servers

  * Documentation and usability
      * [SINGA-263] Create Amazon Machine Image
      * [SINGA-268] Add IPython notebooks to the documentation
      * [SINGA-276] Create docker images
      * [SINGA-289] Update SINGA website automatically using Jenkins
      * [SINGA-295] Add an example of image classification using GoogleNet

  * Bugs fixed
      * [SINGA-245] float as the first operand can not multiply with a tensor object
      * [SINGA-293] Bug from compiling PySINGA on Mac OS X with multiple version of Python


