Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

pritamqu/SSL-ECG

Open more actions menu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
20 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Self-supervised ECG Representation Learning for Emotion Recognition (TF v1.14.0)

Folllowing are the papers associated with this project:

Journal version: Self-supervised ECG Representation Learning for Emotion Recognition Authors: Sarkar and Etemad

Conference version: Self-Supervised Learning for ECG-Based Emotion Recognition Authors: Sarkar and Etemad

Proposed architecture

our proposed architecture

Requirements

  • Python >=3.6
  • TensorFlow = 1.14.0
  • TensorBoard = 1.14.0
  • Scikit-Learn = 0.22.2
  • NumPy = 1.18.4
  • Tqdm = 4.36.1
  • Pandas = 0.25.1
  • Mlxtend = 0.17.0

Usage

  • implementation: this directory contains all of our source codes.
    • Please create similar directory structure in your working directory:
      • data_folder: Keep your data in numpy format here.
      • implementation: Keep the codes here.
      • summaries: Tensorboard summaries will be saved here.
      • output: Loss and Results will be stored here.
      • models: Self-supervised models will be stored here.

  • load_model: this directory contains the pretrained self-supervised model and sample codes to use it.

    • The saved pretrained model can be used in order to extract features from raw ECG signals, which can be further used to perform downstream tasks.
    • We provide sample code for the above: extract_features.py.
    • In order to extract features, the input arrays must be in format of batch_size x window_size. We selected window_size of 10 seconds X 256 Hz = 2560 samples, where 256 Hz refers to the sampling rate. A sample ECG signal is given here.
    • We also provide sample code in order to save the weights of our pretrained network: save_weights.py
  • tips:

    • Try using larger batch size in the downstream task, that would boost performance.
    • Try full fine-tuning rather than fc-tuning (which I did) to boost up performance.
    • Try using larger batch for pre-training as well, this may help!
  • note:

    • I have received few emails and messages regarding missing processed data. As per the EULA of the original dataset, I am not allowed to share the processed data, so I could not upload them in this repo. Originally, I processed the datasets in Matlab separately, I added separately the preprocessing codes in written in Python, you may use this as reference: #1 (comment).

Citation

Please cite our papers for any purpose of usage.

@misc{sarkar2020selfsupervised,
    title={Self-supervised ECG Representation Learning for Emotion Recognition},
    author={Pritam Sarkar and Ali Etemad},
    year={2020},
    eprint={2002.03898},
    archivePrefix={arXiv},
    primaryClass={eess.SP}
}

@INPROCEEDINGS{sarkar2019selfsupervised,
  author={P. {Sarkar} and A. {Etemad}},
  booktitle={ICASSP 2020 - 2020 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP)}, 
  title={Self-Supervised Learning for ECG-Based Emotion Recognition}, 
  year={2020},
  volume={},
  number={},
  pages={3217-3221},}
  

Question

If you have any query or want to chat with me regarding our work please reach me at pritam.sarkar@queensu.ca or connect me in LinkedIN.

About

Self-supervised ECG Representation Learning - ICASSP 2020 and IEEE T-AFFC

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

Morty Proxy This is a proxified and sanitized view of the page, visit original site.