This work and code is developed by the awesome team of Awni et al, StanfordML Group. I have just modified it to work with python3 and few other changes for my comfort of use.
Clone the repository
git clone [email protected]:manideep2510/ECG-acquisition-classification.git
Python 3.5 or higher is required to run the code. To test the code the with the pretrained models, Python 3.5 is the only one it supports
Install the requirements (this may take a few minutes).
For CPU only support run
cd ecg
./setup.sh
To install with GPU support run
env TF=gpu ./setup.sh
In the repo root direcotry (ecg
) make a new directory called saved
.
mkdir saved
To train a model use the following command, replacing path_to_config.json
with an actual config:
python ecg/train.py path_to_config.json
Note that after each epoch the model is saved in
ecg/saved/<experiment_id>/<timestamp>/<model_id>.hdf5
.
For an actual example of how to run this code on a real dataset, you can follow the instructions in the cinc17 README. This will walk through downloading the Physionet 2017 challenge dataset and training and evaluating a model.
After training the model for a few epochs, you can make predictions with.
python ecg/predict.py <dataset>.json <model>.hdf5
replacing <dataset>
with an actual path to the dataset and <model>
with the
path to the model.
This work is published in the following paper in Nature Medicine
If you find this codebase useful for your research please cite:
@article{hannun2019cardiologist,
title={Cardiologist-level arrhythmia detection and classification in ambulatory electrocardiograms using a deep neural network},
author={Hannun, Awni Y and Rajpurkar, Pranav and Haghpanahi, Masoumeh and Tison, Geoffrey H and Bourn, Codie and Turakhia, Mintu P and Ng, Andrew Y},
journal={Nature Medicine},
volume={25},
number={1},
pages={65},
year={2019},
publisher={Nature Publishing Group}
}