Skin cancer detection using IBM PowerAI Vision

Skin cancer detection using IBM PowerAI Vision

Skin cancer detection using IBM PowerAI Vision

308c44d9a8939c8253a81a7afca54793?s=128

Kacper Łukawski

May 15, 2019
Tweet

Transcript

  1. Skin cancer detection using IBM PowerAI Vision May 15, 2019

  2. Agenda: Problem definition Handling the dataset with IBM PowerAI Vision

    Custom model creation Training the model One-click production deployment
  3. Problem definition ISIC dataset

  4. Problem definition

  5. One of the classes is overrepresented in the dataset. Handling

    the dataset with IBM PowerAI Vision • Undersampling • Oversampling Solution
  6. One of the classes is overrepresented in the dataset. Handling

    the dataset with IBM PowerAI Vision • Undersampling • Oversampling with data augmentation Solution
  7. Handling the dataset with IBM PowerAI Vision

  8. Handling the dataset with IBM PowerAI Vision ISIC dataset augmented

    with PVAI
  9. Handling the dataset with IBM PowerAI Vision

  10. Custom model creation • IBM PowerAI Vision delivers some pretrained

    models to be used for transfer learning
  11. Custom model creation • IBM PowerAI Vision delivers some pretrained

    models to be used for transfer learning • But, sometimes they might not be enough - that’s where custom models come to the game
  12. Custom model creation from train_interface import TrainCallback class MyTrain(TrainCallback): def

    __init__(self): pass def onPreprocessing(self, labels, images, workspace_path, params): pass def onTraining(self, monitor_handler): pass def onCompleted(self, model_path): pass def onFailed(self, train_status, e, tb_message): pass • All the logic is kept in a single class • Tensorflow is available by default, with a GPU support • It is possible to perform a preprocessing of the data, e.g. resize the images • Train/test loss and accuracy tracking done simple and exposed to UI
  13. Custom model creation from deploy_interface import DeployCallback class MyDeploy(DeployCallback): def

    __init__(self): pass def onModelLoading(self, model_path, labels, workspace_path): pass def onTest(self): pass def onInference(self, image_url, params): pass def onFailed(self, deploy_status, e, tb_message): pass • Deployment preparation done as a separate class • Trained models are loaded and then used for the classification
  14. Training the model • Called on a selected dataset •

    Two types of training: image classification and object detection • A possibility to adapt model hyperparameters • Launched on GPUs, in exactly same way like built-in pretrained models
  15. Training the model • Live tracking of the training progress

    • A summary of model hyperparameters • Train/test loss and test accuracy preview
  16. Training the model • A summary of achieved accuracy and

    hyperparameters • A chart of loss vs iteration • Easy one-click deployment of the trained model • Possibility to export the model to .zip file and to use it outside the platform (e.g. mobile device)
  17. Training the model • Due the usage of high-performance GPUs,

    it is possible to reduce the training time
  18. One-click production deployment • Deployment done just by clicking at

    the button • Trained models exposed as an endpoint in the HTTP REST API • A possibility to test created model from UI, by uploading the images
  19. Summary • IBM PowerAI Vision allows to perform really fast

    ML training for image classification and object detection • Dataset management and labelling integrated in the tool • A deep knowledge of Machine Learning is not necessary • It is possible to extend the platform by providing some custom models, what makes it great for transfer learning, for instance • If you are interested in hearing some more technical details, there is a workshop at Rise of AI tomorrow, 16th March, 4:00pm
  20. Thank you! Kacper Łukawski Data Science Lead kacper.lukawski@codete.com