How to get Deeperama?

In this section, we describe the two main ways for you to get Deeperama.

Gitlab

The code base is available in out gitlab page. Open a command line in a location where you want to create your project and then execute the following commands:

                        
git clone git@gitlab.com:deeperama/deeperama-project.git
cd deeperama-project
python manage.py runserver
                    

By cloning the project into your local folder, it is necessary to verify all required the python packages are already installed in your computer.

Windows Installer (.exe)

Alternatively, you can also download the Windows installer below:

cloud_download deeperama_installer_v1.0-beta.exe (Will be released on 31 January 2020)

By choosing the installer option, you need to define a local folder in order to define your scripts.

Structure

Deeperama is a framework that uses the web-based platform Django as the main structure. The good thing is that you don't have to learn how to use Django in order to use Deeperama. This documentation explains everything you need to know to make the good usage of Django functionalities in our platform.

On top of Django framework, Deeperama provides a ready-to-use structure to deploy keras and tensorflow open-source frameworks.

What is Django?

Django is an open-source framework for web development in Python. The basic structure of a Django applications (apps) consists of:

  • appsApplication (app.py)
  • descriptionModels (models.py)
  • view_listViews (views.py)
  • cloudDatabase (migrations.py)
  • webStatics (css, js, html)
Keras and Tensorflow

These are by far the most used deep learning frameworks by academic and industry applications. If you don't have these two packages installed in your computer, just run the following commands in your terminal:

                        
pip install keras
pip install tensorflow
                    

In case you wish to run these two frameworks with GPUs, then run the following command:

                        
pip install tensorflow-gpu
pip install tf-nightly
                    

In this page, you can check the requirements to run tensorflow with NVIDIA GPUs. As a remark, tensorflow-2.0 requires CUDA 10 and cuDNN SDK (>= 7.4.1).

Features

At this point, you might be questioning yourself if it is worthy to try Deeperama or not. In the end, if you already have your deep learning project up and running in your machine, why should you consider something else?

First of all, let me try to list what we implemented on Deeperama to make your life easier and later you decide by yourself if our framework is useful for you or not. These are some of the nice things that Deeperama can help you:

Beautiful visualization: the localhost application provides you with very nice visualization pages to observe charts, tables and list of tasks. Everything is exportable to many different formats.

Local or remote databases: here we provide a very simple manner to save all your results in local or server databases. This way, you can create a project and share it with many users. If your database is accessible by these users, they can have instantaneous access to deep learning results without any need to deploy code in online servers. Run locally, share remotely.

Structured scripts: scripts are the main structure of Deeperama. They are implemented in a way to provide a very easy and compact integration of deep learning models, callbacks, metrics to be visualized (plots and tables) in the web user interface and, most important, your datasets.

The basic script has structure shown below. By default, it is created with classes Script and MyCallback.

                        
class Script:

    def __init__(self, db_filename, analysis_id, number_of_epochs):
        ...

    def run_script(self):
        ...

    def metrics(self):
        ...

    def custom_metrics(self):
        ...

class MyCallback(Callback):
    def __init__(self, ...):

    def on_epoch_end(self, epoch, logs={}):
        ...
                        
                    

Deeperama API: if you consider to deploy Deeperama in a web server, you don't even need to implement an API to provide access to your scripts that are running in this server. An entire API is already implemented for you. You can also edit and create custom commands for your application.

Scheduler: this is another very useful feature that we implemented in this framework. Some analysis requires the training and configuration of different deep learning models. Instead of waiting one by one to be ready in order to modify your, e.g., hyper-parameters, Deeperama provides the Scheduler which is a a way to create tasks that will run automatically in a queued way. Indeed, you can create conditional modifications for the next run based on the results obtained in the previous run (e.g., if accuracy is lower than 80%, increase number of epochs by 10).