GithubHelp home page GithubHelp logo

segan-cat's Introduction

SegAN-CAT

Environment setup instructions

The project is provided as a repository of python scripts and a pre-configured docker environment running Jupyter Lab.

For running the environment with GPU support you will need nvidia-docker, cuda=10.0

1 - Clone the repo 2 - Within the repo root folder launch the script build_docker_[cpu|gpu].sh according to your gpu availability. This will build a docker image tagged edoardogiacomello/deepmri2:latest-[gpu|cpu] 3 - For running the environment for the first time, launch the script first_run_[cpu|gpu].sh according to your gpu availability. This will run a container named deepmri2. 4 - run tmux for managing multiple bash sessions. 5 - Run Jupyter lab with jupyter lab --ip=0.0.0.0 --allow-root

Jupyter will be available at :8887. You can optionally run tensorboard on port 6006.

Use ctrl+p+q to detach from the docker environment. Use docker attach deepmri2 to re-attach to the environment.

Paths description

  • train_<arch>_<dataset>_options.py: Scripts for training the base models
  • transfer_<arch>_<dataset>_options.py: Scripts for performing transfer learning. Edit your script to your needs
  • dataset_helpers.py: Helper functions for managing the dataset (both conversion/pre-processing from raw to .tfrecords and to load the dataset during training/evaluation)
  • DeepMRI.py main class that implements the training/validation/testing process.
  • SegAN_IO_arch.pydefinition of our proposed architecture to be used in DeepMRI.py
  • SegAN_no_dice_arch.pydefinition of the baseline architecture to be used in DeepMRI.py
  • SegAN_arch.pydefinition of the SegAN \w Dice Loss architecture to be used in DeepMRI.py
  • TestScores.ipynb Notebook for evaluating the networks.
  • DatasetPreprocessing.ipynb: Example of how to run the pre-processing to convert from .mha to .tfrecords
  • MajorityVoting*.ipynb Notebook for performing majority voting between multiple models
  • NegotiationTools.py class needed for Majority voting experiments
  • PredictOnChallenge.ipynb notebook for end-to-end prediction from .mha files. Saves the results in the brats2015 name format
  • /models/<run_name>/: This folders will be created upon the first training. It contains the checkpoints, a csv for training and validation steps and the tensorboard data for each run.

segan-cat's People

Contributors

edoardogiacomello avatar

Watchers

Daniele Loiacono avatar  avatar Ivan Sanzeni avatar

segan-cat's Issues

Import Brats2019 Dataset

  • Review the updates on the dataset
  • Check the follow-ups, consider splitting on a patient base, possibly stratifying also on real patients vs synthetic

Add multilabel segmentation

This will require to redefine the evaluation metrics:

  • TF evaluation will be done per-slice and per-label (output a vector [batch, merics, labels] )
  • They will be merged afterward (on a MRI basis) according to the BRATS evaluation metrics

Port correct Evaluation also to Model Selection

Per-MRI Evaluation should also be used for model selection during training.

  • Fix or Replace Logger class with an evaluation procedure similar to the current evaluate() behavior (based on DataFrames for aggregating metrics over each MRI).
  • Review save and load functions.
  • Eventually move to TensorBoard for easier inspection (now it can be run inside the notebook itself)
  • Simplify unnecessary Progressbars and metrics running averages (It's not necessary to show averages on progressbars, just current batchwise metrics for easier debug)
  • Update evaluation() function

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.