Skip to content

shan18/Flash

Repository files navigation

Flash

progress badge

Link to the platform: https://shan18.github.io/Flash

Flash is an end-to-end Deep Learning platform that allows users to create, train, and deploy their own neural network models in a matter of minutes without writing a single line of code.

The platform currently supports two types of tasks:

Image Classification

Classify images from your own dataset by using them to train a ResNet-34 or MobileNet v2 model. Training happens via transfer learning where models available will be pre-trained on the ImageNet dataset.

image classification gif

Text Classification

Classify sentences by training a LSTM or GRU based sequential model on your own dataset. The models will be trained from scratch.

text classification gif

Motivation

As the applications of AI span across various domains, the demand for deep learning models have exponentially increased. The usage of the popular cloud services becomes quite tedious if a user quickly wants to just test out a simple model or do some quick feasibility analysis on a dataset. Thus, we created Flash, a web-based platform which allows users to quickly train and deploy their models on the cloud. The user just needs to have an idea about the hyperparameters they want, rest everything is handled by Flash.

How It Works

Using Flash is easy. With just a few clicks you can train and deploy your models automatically. You just have to select your model and upload the dataset, and you're good to go. No code or experience required.

Training

For training a model, you'll have to upload your own dataset and select the model parameters. Depending on the size of the dataset, the model can take anywhere between 3 - 10 minutes to train and deploy your model.

After you upload your configuration, the platform will assign you a unique token. Please save the token as it will used to test the model on the inference page.

training snapshots

Inference

You can perform inference on a trained model by using the token provided to you after submitting the training configuration on the training page.

After submitting the token, you'll get a form where you can upload inputs to check the performance of your trained model. The inference page also provides you with the results of the training process by showing you the accuracy of the model on validation set as well as the change in accuracy during training. You are also given the option to download the trained model weights either in PyTorch or ONNX format.

inference snapshots

Playground

Don't have any models to train yet? Don't worry, we have trained some fun models such as Human Pose Estimation and Neural Style Transfer for you to try out in the Playground page. The models are already trained and deployed so that you can directly perform inference on them.

playground snapshots

Behind the Scenes

Flash uses React Js, AWS Lambda, AWS S3 and AWS EC2 to function properly. To know about how flash functions, read the following links in order

  1. Config JSON Files
  2. Training Models
  3. Performing Inference
  4. Playground

Setup Instructions

To setup Flash from scratch, read the following links in order

  1. Install serverless. For reference, check this link
  2. Setup config files
  3. Training server setup
  4. Setting up Infernce
  5. Playground Setup
  6. Frontend using React

Contact/Getting Help

If you need any help or want to report a bug, raise an issue in the repo.