Giter Club home page Giter Club logo

medicalai's Introduction

MedicalAI

Medical-AI is a AI framework for rapid protyping for Medical Applications


Documentation: https://aibharata.github.io/medicalAI/

Source Code: https://github.com/aibharata/medicalai

Youtube Tutorial: https://www.youtube.com/V4nCX-kLACg


Downloads Downloads Documentation Status Gitter

Medical-AI is a AI framework for rapid prototyping of AI for Medical Applications.

Installation

pip install medicalai
## Requirements Python Version : 3.5-3.7 (Doesn't Work on 3.8 Since Tensorflow does not support 3.8 yet.

Dependencies: Numpy, Tensorflow, Seaborn, Matplotlib, Pandas

NOTE: Dependency libraries are automatically installed. No need for user to install them manually.

Usage

Getting Started Tutorial: Google Colab Google Colab Notebook Link

Importing the Library

import medicalai as ai

Using Templates

You can use the following templates to perform specific Tasks

Load Dataset From Folder

Set the path of the dataset and set the target dimension of image that will be input to AI network.

trainSet,testSet,labelNames =ai.datasetFromFolder(datasetFolderPath, targetDim = (96,96)).load_dataset()
- trainSet contains 'data' and 'labels' accessible by trainSet.data and trainSet.labels
- testSet contains 'data' and 'labels' accessible by testSet.data and testSet.labels
- labelNames contains class names/labels

Check Loaded Dataset Size

print(trainSet.data.shape)
print(trainSet.labels.shape)

Run Training and Save Model

trainer = ai.TRAIN_ENGINE()
trainer.train_and_save_model(AI_NAME= 'tinyMedNet', MODEL_SAVE_NAME='PATH_WHERE_MODEL_IS_SAVED_TO', trainSet, testSet, OUTPUT_CLASSES, RETRAIN_MODEL= True, BATCH_SIZE= 32, EPOCHS= 10, LEARNING_RATE= 0.001)

Plot Training Loss and Accuracy

trainer.plot_train_acc_loss()

Generate a comprehensive evaluation PDF report

trainer.generate_evaluation_report()

PDF report will be generated with model sensitivity, specificity, accuracy, confidence intervals, ROC Curve Plot, Precision Recall Curve Plot, and Confusion Matrix Plot for each class. This function can be used when evaluating a model with Test or Validation Data Set.

Explain the Model on a sample

trainer.explain(testSet.data[0:1], layer_to_explain='CNN3')

Loading Model for Prediction

infEngine = ai.INFERENCE_ENGINE(modelName = 'PATH_WHERE_MODEL_IS_SAVED_TO')

Predict With Labels

infEngine.predict_with_labels(testSet.data[0:2], top_preds=3)

Get Just Values of Prediction without postprocessing

infEngine.predict(testSet.data[0:2])

Alternatively, use a faster prediction method in production

infEngine.predict_pipeline(testSet.data[0:1])

Advanced Usage

Code snippet for Training Using Medical-AI

## Setup AI Model Manager with required AI. 
model = ai.modelManager(AI_NAME= AI_NAME, modelName = MODEL_SAVE_NAME, x_train = train_data, OUTPUT_CLASSES = OUTPUT_CLASSES, RETRAIN_MODEL= RETRAIN_MODEL)

# Start Training
result = ai.train(model, train_data, train_labels, BATCH_SIZE, EPOCHS, LEARNING_RATE, validation_data=(test_data, test_labels), callbacks=['tensorboard'])

# Evaluate Trained Model on Test Data
model.evaluate(test_data, test_labels)

# Plot Accuracy vs Loss for Training
ai.plot_training_metrics(result)

#Save the Trained Model
ai.save_model_and_weights(model, outputName= MODEL_SAVE_NAME)

Automated Tests

To Check the tests

    pytest

To See Output of Print Statements

    pytest -s 

Author

Dr. Vinayaka Jyothi

medicalai's People

Contributors

aibharata avatar asr-aditya avatar iamvnie avatar robsteneha avatar trellixvulnteam avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

medicalai's Issues

Medicalai ErrorStoppping Not Working

Hi @aibharata

When we want to stop the training early with medicalai via a callback called EarlyStopping, it gives an error at line 209 in the file "medicalai/chief/core.py".
How should the data be defined here, because it is desired to behave like a string first and then a dictionary.
Can you share sample data?

Error line

if bestModelCond is not None and bestModelCond.lower() != 'default':
print('\n[INFO]: ENGINE INITIALIZED WITH "SAVING BEST MODEL" and Early Stopping MODE\n')
earlystop_callback = tf.keras.callbacks.EarlyStopping(
monitor=bestModelCond['monitor'],
min_delta=bestModelCond['min_delta'],
patience=bestModelCond['patience']
)
if callbacks is None:
callbacks=[earlystop_callback]
else:
callbacks.append(earlystop_callback)

Predict function might go into infinite loop on some systems

Solution 1:

Try reinstalling medicalai+ TensorFlow in a new and clean virtual environment.

Solution 2: Use the following modifications

For Prediction:

predictions = infEngine.model.predict(testGen.generator,verbose=1, steps=testGen.STEP_SIZE)
predictions = trainer.model.predict(testGen.generator,verbose=1, steps=testGen.STEP_SIZE)

For generate_evaluation_report:

generate_evaluation_report(testSet=testGen, predictions = infEngine.model.predict( testGen.generator, verbose=1, steps=testGen.STEP_SIZE ) )

[Security] Workflow deploy-docs.yml is using vulnerable action actions/checkout

The workflow deploy-docs.yml is referencing action actions/checkout using references v1. However this reference is missing the commit a6747255bd19d7a757dbdda8c654a9f84db19839 which may contain fix to the some vulnerability.
The vulnerability fix that is missing by actions version could be related to:
(1) CVE fix
(2) upgrade of vulnerable dependency
(3) fix to secret leak and others.
Please consider to update the reference to the action.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.