EDWARD is a solution to 2016 IBM Watson Hackathon. In this work, we developed a graphical user interface for training Convolutional Neural Networks (CNNs), specifically design to support training on biomedical images (X-rays, MRI scans etc). The goal is to create tools that would increase the quality of medical imaging analysis.
Classifiers:
- logistic_sgd.py Multi-class logistic regression
- mlp.py Multilayer perceptron
- convolutional_mlp.py Convolutional Neural Network
Interface:
- tryconsole.py Starts calculations on the console
- testdesign.py Graphical interface
- executework.py Execution code
Step 1
Run executework to launch interface
Step 2
Press "Create!"
Step 3
Specify the parameters, searching for the best combination to fit your data
Step 4
In "Import Data" and specify the path to your .zip file
Note: EDWARD allows you to create classifiers with unlimited amount of classes in the most simple way. Just create one folder per class and name it numericalluy (i.e. 0, 1, 2, etc.), then place all the .jpg images from each class to corresponding folder. After converting the directory to .zip file, your dataset is ready. Just select the path to the file in EDWARD and press "Submit"
Step 5
Press "Submit"
Step 6
After the appearance of the console output window, press "Start" and wait for the model to train. As it is done, you will be able to scroll the window and analyse the performance
Important Note: Currently, load_data function of the model is still under development. So in order to run the model, one has to specify the path manually. This can be done by setting dataset=" " variable in convolutional_mlp script to the correct path to the unzipped folder (if you want to use our demo-data, provide a path to the 'testing' folder that you download from the "data" folder)
Packages: theano, numpy, scipy, pillow, six
pip install theano
pip install numpy
pip install scipy
pip install pillow
pip install six
Python version: at least 3.4.X
Data Format: zip. file
IMG format: .jpg
Basic settings:
- Amount of layers: № of convolutional layers.
- Batch size: № of training examples in a forward-back pass.
- Amount of epochs: № of forward-backward pass of all the training examples.
- Size of pooling: Pooling partitions the input image into a set of non-overlapping rectangles.
Advanced:
- GPU: For higher performance GPU might be used.
- Size of filter: Size of a matrix looking for a particular feature (depends of image size).
- Learning rate: Control of weights and biases.
Note:
We restric parameters to optimal numbers in order to minimize human error.
Sincerely,
Stayin' Alive Team.