Home

Awesome

Deep Dashboard

A better visualization tool for training machine learning models.

Introduction

Tired of watching un-informative command line console?

Tired of the line limit of ssh screen?

Deep dashboard helps you visualize the training process better, and provides with more diagnostics.

It currently supports displaying three types of visualizations:

Benefits of Deep Dashboard

Installation

For Ubuntu,

sudo apt-get install apache2
set APACHE_ROOT=/var/www/html
cd $APACHE_ROOT
git clone https://github.com/renmengye/deep-dashboard.git
mkdir results
cp -R deep-dashboard/example results
chmod -R +777 deep-dashboard
chmod -R +777 results

Real-time demo

This repository includes a demo for training a variational auto-encoder. To run this demo, you will need some extra dependencies:

Now run the demo.

cd demo
python vae.py -logs $APACHE_ROOT/results

The command line will print the web address to visualize the training process like below:

INFO: 13:59:36 vae.py:263 Dashboard: http://localhost/deep-dashboard?id=vae_mnist-20160211135936

Couple with your training program

Now you are ready to add your own job to the dashboard! This section will brief you through the architecture of dashboard, so you know what is going on under the hood.

File structure

To visualize experiment_id_1, you can always go to http://localhost/deep-dashboard?id=experiment_id_1

Frontend (javascript)

You can customize the dashboard through modifying index.html. The following code is currently in index.html to initialize the dashboard object.

$(function(){
    var params = getSearchParameters();
    var dashboard = new Dashboard("../results/", params.id, "#content", {
        xKey: "time",
        timeout: 5000,
        maxLines: 500,
        maxDatapoints: 500
    });
});

There are four arguments to initialize a new dashboard object.

Backend (your program)

Last step to hook up the dashboard is to modify your training program. In short, to add your own job, you simply need to write some files to the right place, e.g. the training data points to a CSV file.

Catalog format

Each experiment folder contains a catalog file. It is in the following CSV format.

filename,type,name
xent1.csv,csv,training cross entropy
xent2.csv,csv,validation cross entropy
img.png,image,output
...

Each row contains three columns, the path to the file, the type of the file, and the name of the visualization.

The type of the file can be one of the three:

Every time you add a new visualization, remember to register it in the catalog.

Adding time series visualization

  1. Register in catalog.
  2. Write a CSV file of the following format:
step,time,$y-axis$
0,2016-02-09T22:46:10.788732,0.886523685455
1,2016-02-09T22:46:12.329840,0.884593292039
...

Replace $y-axis$ with the name of the y-axis.

Add plain text visualization

  1. Register in catalog.
  2. Write a plain text file of any content.

Add image visualization

  1. Register in catalog.
  2. Write a image file.

Once you update the files existing in the catalog, the dashboard will soon refresh to the newest version of the file.