# Example Models

---

Different models are provided as examples to help users get familiar with SINGA.
[Neural Network](neural-net.html) gives details on the models that are
supported by SINGA.


### Feed-forward neural networks

  * [MultiLayer Perceptron](mlp.html) trained on MNIST dataset for handwritten
  digits recognition.

  * [Convolutional Neural Network](cnn.html) trained on MNIST and CIFAR10 for
  image classification.

  * [Deep Auto-Encoders](rbm.html) trained on MNIST for dimensionality


### Recurrent neural networks (RNN)

 * [RNN language model](rnn.html) trained on plain text for language modelling.

### Energy models

 * [RBM](rbm.html) used to pre-train deep auto-encoders for dimensionality
 reduction.

