Welcome to deepy

deepy is a deep learning framework for designing models with complex architectures.

Many important components such as LSTM and Batch Normalization are implemented inside.

Although highly flexible, deepy maintains a clean high-level interface.

Get started in 30 seconds

$ git clone https://github.com/zomux/deepy
$ cd deepy
$ pip install -r requirements.txt
$ source bin/cpu_env.sh
$ python experiments/mnist/mlp_dropout.py

Learn more details in 3 minutes

How to design your first simple neural network

First make a new python file for defining your first model.

$ mkdir my_experiments
$ touch my_experiments/first_model.py

Edit this file, perhaps with vim.

$ vim my_experiments/first_model.py

From now on, you are going to write python codes for defining a neural network.

First import everything from deepy.

from deepy import *

Suppose you want to design a multi-layer feed-forward network to classify MNIST numbers.

Then you have four questions to consider:

  • What cost function to use
  • What is the architecture of the network
  • What optimization method to use
  • Where is your dataset

With deepy you can implement a network easily and intuitive once you got the answers.

Here, we give a simple design of a feed-forward neural network.

model = NeuralClassifier(input_dim=28 * 28)

model.stack(
    Dense(256, 'relu'),
    Dense(256, 'relu'),
    Dense(10, 'linear'),
    Softmax()
)

trainer = AdaDeltaTrainer(model)

trainer.run(MiniBatches(MnistDataset(), batch_size=20))

Now you are done, simple run the following command to train your first model.

$ python my_experiments/first_model.py

You can also save your trained model by add following code:

model.save_params("my_experiments/my_first_model.gz")

Learn more

If you are willing to learn more about how to design a simple neural network, go to Tutorial 1.

A brief overview of the classes in the framework

Here are the components of deepy framework, they are all designed in the spirit of simplicity.

Overview of deepy