Development status Active Operating system | Written in C++, Python, Java | |
![]() | ||
Developer(s) Apache Software Foundation Initial release October 8, 2015; 16 months ago (2015-10-08) Stable release 1.1.0 / February 12, 2017; 6 days ago (2017-02-12) |
Singa is an Apache Incubating project for developing an open source deep learning library. It provides a flexible architecture for scalable distributed training, is extensible to run over a wide range of hardware, and has a focus on health-care applications.
Contents
History
The Singa project was initiated by the DB System Group at National University of Singapore in 2014. It focused on distributed deep learning by partitioning the model and data onto nodes in a cluster and parallelize the training. The prototype was accepted by Apache Incubator in March 2015. Five versions have been released as shown in the following table. Since V1.0, SINGA is general to support traditional machine learning models such as logistic regression.
Software Stack
Singa's software stack includes three major components, namely, core, IO and model. The following figure illustrates these components together with the hardware. The core component provides memory management and tensor operations; IO has classes for reading (and writing) data from (to) disk and network; The model component provides data structures and algorithms for machine learning models, e.g., layers for neural network models, optimizers/initializer/metric/loss for general machine learning models.