All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Make the function remove_spikes_naive in torch_ecg.utils.utils_signal support 2D and 3D input signals.
- Correctly update the _df_metadata attribute of the PTBXL database reader classes after filtering records.
- Enhance the save method of the torch_ecg.utils.utils_nn.CkptMixin class: non-safe items in the configs are removed before saving the model.
- Fix errors when monitor is specified while the validation dataloader is not provided in the torch_ecg.components.BaseTrainer class.
- Enhance the save_checkpoint method of the torch_ecg.components.BaseTrainer class: non-safe items in the configs are removed before saving the model.
0.0.31 - 2025-01-28
- Add functions for downloading PhysioNet data from AWS S3. It is now made the default way to download data from PhysioNet.
- Add
easydict
as a dependency for backward compatibility (loading old models using safe-modetorch.load
withweights_only=True
. Extra dependencies are added withtorch.serialization.add_safe_globals
).
- Test files (in the
sample-data
directory) are updated. - Add keyword argument
weights_only
tofrom_checkpoint
andfrom_remote
methods of the models (indeed theCkptMixin
class). The default value is"auto"
, which means the behavior is the same as before. It checks iftorch.serialization
hasadd_safe_globals
attribute. If it does, it will use safe-modetorch.load
withweights_only=True
. Otherwise, it will usetorch.load
withweights_only=False
.
- Support for Python 3.7, 3.8 is deprecated. The minimum supported Python
version is now 3.9. In the
pyproject.toml
file, the fieldrequires-python
is updated from>=3.7
to>=3.9
.
- Restrictions on the version of
wfdb
andnumpy
packages are removed.
- Fix IO issues with several PhysioNet databases.
- Models are now loaded using safe-mode
torch.load
withweights_only=True
by default.
0.0.30 - 2024-10-10
- Add support for AWS S3 in the download utility function
http_get
in thetorch_ecg.utils.download
module. PhysioNet now provides data download links from AWS S3, and the download utility function can now handle these links if AWS CLI is installed. This feature is implemented but not put into use yet.
- Change the default value of the
method
argument of thetorch_ecg.utils.utils_signal.resample_irregular_timeseries
function from"spline"
to"interp1d"
. The former is probably not correctly implemented. - Update the logger classes: add checking of the write access of the
log_dir
. If the directory is not writable, the default log dir~/.cache/torch_ecg/logs
is used (ref.torch_ecg.cfg.DEFAULTS.log_dir
). - Update the selection mechanism of the final model for the trainer classes: if no monitor is specified, the last model is selected by default (previously, no model was selected and saved).
- The main part of the
_setup_criterion
method of theBaseTrainer
class is moved to the functionsetup_criterion
in thetorch_ecg.models.loss
module. The method is simplified and enhanced.
- Script
setup.py
is deprecated. The package building system is switched tohatch
.
- Remove redundancy in base trainer classes: identical
if
blocks are removed from the_setup_criterion
method of theBaseTrainer
class.
- Fix potential error in getting model name in the trainer classes.
- Fix bugs in the
CINC2020
andCINC2021
database reader classes for parsing the header files.
0.0.29 - 2024-07-21
- Add keyword argument
with_suffix
to functiontorch_ecg.utils.misc.get_record_list_recursive3
. - Add function
_download_from_google_drive
to thetorch_ecg.utils.download
module for downloading files from Google Drive. - Add
gdown
as a dependency in therequirements.txt
file. - Add database reader class
PTBXLPlus
for the PTB-XL+ database intorch_ecg.databases.physionet_databases
. - Add github-release job to the publish action for creating a release on GitHub automatically.
- Improve the main training loop method of the base trainer class
torch_ecg.components.trainers.BaseTrainer
. - Allow passing additional keyword arguments to pass to
requests.head
in theurl_is_reachable
function of thetorch_ecg.utils.download
module (via adding the**kwargs
argument). - Restrict version of
numpy
to be<=2.0.0
in therequirements.txt
file.numpy
version2.0.0
is a breaking update, and a large proportion of the dependencies of this project are not compatible with it yet. - Enhance the
cls_to_bin
function and rename it toone_hot_encode
in thetorch_ecg.utils.utils_data
module.
- Enhance compatibility for different
pandas
versions. - Fix errors for taking length of an empty database reader class.
- Fix code scanning alert - Incomplete regular expression for hostnames #21.
- Fix code scanning alert - Incomplete URL substring sanitization #23.
0.0.28 - 2024-04-02
- Add CD workflow for the publish action with GitHub Action.
- Add an optional argument
return_fs
for theload_data
method for the database reader classes. IfTrue
, the sampling frequency of the record is returned along with the data as a tuple. To keep the behavior consistent, the default value isFalse
. - Add an optional parameter
fs
for the functioncompute_receptive_field
in thetorch_ecg.utils.utils_nn
module. Iffs
is provided, the receptive field is computed based on the sampling frequency. - Add method
compute_receptive_field
for several convolutional neural network models (layers) in thetorch_ecg.models._nets
module. - Add helper function
make_serializable
in thetorch_ecg.utils.misc
module for making an object serializable (with thejson
package). It will convert allnumpy
arrays tolist
in an object, and also convertnumpy
data types to python data types in the object recursively. - Add helper function
url_is_reachable
in thetorch_ecg.utils.download
module for checking if a URL is reachable. - Add database reader class
PTBXL
for the PTB-XL database intorch_ecg.databases.physionet_databases
. - Add class method
from_remote
forCkptMixin
classes. It is used to load a model from a remote location (e.g., a URL) directly. - Add
sphinx-emoji-favicon
as a dependency for generating the favicon for the documentation. - Add utility function
ecg_plot
from ecg-image-kit. - Add
pyarrow
as a dependency in therequirements.txt
file. - Add benchmark study
train_crnn_cinc2023
for the CinC2023 challenge.
- Change the default value
reset_index
of the utility functiontorch_ecg.utils.utils_data.stratified_train_test_split
fromTrue
toFalse
. - Enhance the decorator
torch_ecg.utils.misc.add_kwargs
so that the signature of the decorated function is also updated. - Update the documentation: use
sphinx_toolbox.collapse
andsphinxcontrib.bibtex
; add citation info in the index page. - Make
Dataset
classes accept slice index for the__getitem__
method.
- Support for Python 3.6 is deprecated. The minimum supported Python version is updated to 3.7.
- Remove broken links in the docstrings of the database reader classes.
- Remove unused scripts
formatting.sh
andpush2pypi.sh
.
- Fix errors in the decorator
torch_ecg.utils.misc.add_kwargs
when a bound method is decorated. - Fix bugs related to data overflow for preprocessor classes that
work with
numpy
arrays as reported in issue #12. - Fix bugs in augmentor class
StretchCompress
in thetorch_ecg.augmenters
module. - Fix dtype error when calling
compute_class_weight
fromsklearn.utils
. - Fix the issue when handling nan values in in computing metrics.
- Fix errors for the
ApneaECG
database reader class when passing a path that does not exist or a path that contains no records at initialization.
0.0.27 - 2023-03-14
- Add default configs for blocks of the
ResNet
model in thetorch_ecg.models.cnn
module. - Add
RegNet
model in thetorch_ecg.models.cnn
module. - Add
CutMix
augmentor in thetorch_ecg.augmenters
module. - Add support for
torch.nn.Dropout1d
in the models. - Add
.readthedocs.yml
to the project. The documentation is now hosted on Read the Docs besides GitHub Pages.
- Move
torch_ecg.utils.preproc
totorch_ecg.utils._preproc
. - Allow
embed_dim
ofSelfAttention
layer not divisible bynum_heads
via adding a linear projection layer before the multi-head attention layer. - Documentation is largely improved.
- Drop compability for older versions of
torch
(1.5 and below).
- Remove
protobuf
from therequirements.txt
file. - Clear unused methods in the
CINC2020
andCINC2021
database reader classes. - Clear unused layers in the
torch_ecg.models._nets
module. - Remove the
torch_ecg.utils._pantompkins
module. It contains the implementation of the Pan-Tompkins algorithm for QRS detection, modified from old versions of thewfdb
package. It is moved to thelegacy
folder of the project. - Remove
WandbLogger
class from thetorch_ecg.components.loggers
module.
- Fix bugs when passing
units=None
for theload_data
method of the PhysioNet database reader classes.
0.0.26 - 2022-12-25
- Add a default
load_data
method for physionet databases reader classes in the base classPhysioNetDataBase
. In most cases, in the inherited classes, one does not need to implement theload_data
method, as the default method is sufficient. This method is a slight improvement overwfdb.rdrecord
. - Add decorator
add_kwargs
in thetorch_ecg.utils.misc
module for adding keyword arguments to a function or method. - Add functions
list_databases
,list_datasets
in thetorch_ecg.datasets
module for listing available databases reader classes andDataset
classes. - Add
save
method for theCkptMixin
class. It is used to save the model to a file. - Add
_normalize_leads
a method of the base_DataBase
class in thetorch_ecg.databases.base
module. It is used to normalize the names of the ECG leads. - Add subsampling functionality for database reader classes.
- Add benchmark study
train_mtl_cinc2022
for the CinC2022 challenge. - Add
CITATIONS.bib
file for storing BibTeX entries of the papers related to the project. - Add 10 sample data from the CPSC2018 database for testing in the
sample-data
directory.
- Use
CitationMixin
from thebib-lookup
package as the base class for theDataBaseInfo
class intorch_ecg.databases.base
. - Use
CitationMixin
as one of the base classes for the models intorch_ecg.models
. - Allow dummy (empty) preprocessor managers, a warning instead of an error is raised in such cases.
- Enhance error message for the computation of metrics.
- Add keyword argument
requires_grad
andinclude_buffers
to thetorch_ecg.utils.utils_nn.compute_module_size
function. Thedtype
argument is removed as the data type of the model is now inferred from the model itself. - Improve several database reader classes:
CPSC2018
,CPSC2021
,CINC2017
,ApneaECG
,MITDB
,SPH
. - Add asymmetric zero pad for convolution layers, so that when
stride = 1
andkernel_size
is even, strict"same"
padding is conducted. - Use loggers instead of
print
in database reader classes. - Integrate code coverage into the CI workflow. The coverage report is generated and uploaded to Codecov.
- More unit tests are added, and the existing ones are updated. Code coverage is largely improved.
- Drop compatibility for
tqdm
< 4.29.1
- Remove unused rpeaks detection methods in the
torch_ecg.utils.rpeaks
module. - Remove
_normalize_leads
method inLUDB
database reader class. - Remove unused functions in the file of the
CPSC2020
database reader class.
- Fix bugs in the config class
torch_ecg.cfg.CFG
. - Fix errors in the
plot
method ofCINC2020
andCINC2021
database reader classes.
- CVE-2007-4559
patch: Fix a potential security vulnerability in the
torch_ecg.utils.download.http_get
function.
0.0.25 - 2022-10-08
- Add docstring utility function
remove_parameters_returns_from_docstring
intorch_ecg.utils.misc
. - Add abstract property
database_info
to the base class_DataBase
intorch_ecg.databases.base
so that when implementing a new database reader class that inherits from the base class, itsDataBaseInfo
must be implemented and assigned to the property. - Add method
get_citation
to the base abstract class_DataBase
intorch_ecg.databases.base
which enhances the process for getting citations for the databases. - Add database reader class
CACHET_CADB
for the CACHET-CADB database intorch_ecg.databases.other_databases
. - Add
download
method for the base abstract classCPSCDataBase
intorch_ecg.databases.base
.
- Improve the warning message for passing an non-existing path when initializing a database reader class.
- Change the default behavior of the
download
method forPhysioNetDataBase
class: default to download the compressed version of the database. - Update the
README
file in thetorch_ecg/databases
directory.
- Use
register_buffer
in custom loss classes for constant tensors to avoid potential device mismatch issues. - Rename and update the data file
physionet_dbs.csv.tar.gz
tophysionet_dbs.csv.gz
to comply with the changement of thepandas.read_csv
function from version 1.4.x to 1.5.x. - Fix the incorrect usage of
NoReturn
type hints. It is replaced withNone
to indicate that the function/method does not return anything.
This release was yanked.
0.0.23 - 2022-08-09
- Add
collate_fn
as an optional argument forBaseTrainer
class intorch_ecg.components.trainers
.
- Let
db_dir
attribute of the database reader classes be absolute when instantiated, to avoid potentialpathlib
errors. - Update utility function torch_ecg.utils.utils_nn.adjust_cnn_filter_lengths`:
avoid assigning unnecessary fs to dict-type config items; change default
value of the
pattern
argument from"filter_length|filt_size"
to"filter_length|filter_size"
to avoid unintended changement of configs forBlurPool
(intorch_ecg.models._nets
). - Enhance error message for
BlurPool
intorch_ecg.models._nets
.
0.0.22 - 2022-08-05
- Make utility function
torch_ecg.utils.utils_data.default_collate_fn
supportdict
type batched data. - Update docstrings of several metrics utility functions in
torch_ecg.utils.utils_metrics
.
0.0.21 - 2022-08-01
- Add utility function
get_kwargs
intorch_ecg.utils.misc
for getting (keyword) arguments from a function/method. - Add AHA diagnosis statements in
torch_ecg.databases.aux_data
. - Add argument
reset_index
to the utility functiontorch_ecg.utils.utils_data.stratified_train_test_split
. - Add
typing-extensions
as a dependency in therequirements.txt
file. - Add database reader class
QTDB
for the QTDB database intorch_ecg.databases.physionet_databases
.
- Enhance data handling (typicall when using the
load_data
method of the database reader classes) with precise dtypes viatorch_ecg.cfg.DEFAUTLS
. - Update the setup of optimizer for the base trainer class
torch_ecg.components.trainers.BaseTrainer
. - Update the
DataBaseInfo
class for theSPH
database. - Update the
README
file in thetorch_ecg/databases
directory. - Update plotted figures of the benchmark studies.
- Rename
SequenceLabelingOutput
toSequenceLabellingOutput
(typo fixed) in thetorch_ecg.components.outputs
module. - Enhance docstring of
LUDB
database reader class via updating itsDataBaseInfo
class. - Append the
_ls_rec
method as the last step in thedownload
method of the database reader classes. - Change
torch_ecg.utils.utils_data.ECGWaveForm
from anamedtuple
to adataclass
.
bib_lookup.py
is removed from the project. It is now delivered in an isolated packagebib_lookup
published on PyPI, and added as a dependency in therequirements.txt
file.- Remove unnecessary script
exec_git.py
. - Remove
joblib
in therequirements.txt
file.
0.0.20 - 2022-06-15
- Add database reader class
SPH
for the SPH database intorch_ecg.databases.other_databases
. - Add
dataclass
DataBaseInfo
for storing information of a database. It has attributestitle
,about
,note
,usage
,issues
,reference
, etc., and has a methodformat_database_docstring
for formatting the docstring of a database reader class. The generated docstring can be assigned to corresponding database reader class via theadd_docstring
decorator (intorch_ecg.utils.misc
). - Add default cache directory
~/.cache/torch_ecg
for storing downloaded data files, model weight files, etc. - Add helper function
is_compressed_file
for checking if a file is compressed intorch_ecg.utils.download
.
0.0.19 - 2022-06-09
- Add argument
relative
to the utility functionget_record_list_recursive3
. - Add attribute
_df_records
to the database reader classes. The attribute stores the DataFrame of the records of the database, containing paths to the records and other information (labels, demographics, etc.).
- Fix bugs in the download utility function
http_get
. - Fix bugs in the database reader classe
CPSC2021
.
0.0.18 - 2022-06-05
- Add property
in_channels
for the models.The number of input channels is stored as a private attribute_in_channels
, and the propertyin_channels
makes it easier to access the value. - Add warning message to the
download
method of theCPSC2019
database reader class. - Add
get_absolute_path
method for the database reader classes to uniformly handle the path operations.
- All all absolute imports are replaced with relative imports.
- Update citation and images for several benchmark studies
- Update the
downlaod
link for theCPSC2019
database reader class (ref. propertytorch_ecg.databases.CPSC2019.url
).
- Remove the
torch_ecg.utils.misc.deprecate_kwargs
decorator. It is delivered in an isolated packagedeprecate_kwargs
published on PyPI, and added as a dependency in therequirements.txt
file.
- Fix errors in the
_ls_rec
method of theCPSC2019
database reader class. - Fix bugs in the
torch_ecg.utils.misc.deprecate_kwargs
decorator. - Fix the issue that
tensorboardX
is incompatible with the latest version ofprotobuf
.
This release was yanked.
0.0.16 - 2022-04-28
- Add method
_categorize_records
for theMITDB
database reader class, categorize records by specific attributes. Related helper propertiesbeat_types_records
andrhythm_types_records
are added. - Add method
_aggregate_stats
for theMITDB
database reader class. Related helper propertiesdf_stats
anddb_stats
are added. - Add function
cls_to_bin
for converting categorical (typically multi-label) class labels to binary class labels (2D array with 0/1 values). - Add context manager
torch_ecg.utils.misc.timeout
for setting a timeout for a block of code. - Add context manager
torch_ecg.utils.misc.Timer
to time the execution of a block of code. - Add module
torch_ecg.components.inputs
for input data classes. - Add class
Spectrogram
(intorch_ecg.utils
) for generating spectrogram input data. This class is modified from thetorchaudio.transforms.Spectrogram
. - Add decorator
torch_ecg.utils.misc.deprecate_kwargs
for deprecating keyword arguments of a function/method. - Top-level module
torch_ecg.ssl
for self-supervised learning methods and models is introduced, but not implemented yet. - Add helper function
torch_ecg.utils.utils_nn.compute_sequential_output_shape
to simplify the computation of output shape of sequential models. mobilenet_v3
model is added to thetorch_ecg.models
module. It is now available as a cnn backbone choice for theECG_CRNN
model (and for other downstream task models).
- Use
numpy
's defaultrng
for random number generation in place ofnp.random
and Python built-inrandom
module. - Update the
README
file. - Move the function
generate_weight_mask
fromCPSC2021
dataset totorch_ecg.utils.utils_data
. - Database reader
MITDB
is enhanced: add propertiesdf_stats_expanded
; add argumentsbeat_types
andrhythm_types
to the data and annotation loading methods. - Downloading function
http_get
is enhanced to support downloading normal files other than compressed files. - Update
__init__
file of thetorch_ecg.utils
module. - Database reader class
CinC2017
is updated: add property_validation_set
. - The
ECG_UNET
model is simplified by removing the unnecessary zero padding along the channel axis. - Update the
README
file.
- Keyword argument
batch_norm
in model building blocks (ref.torch_ecg.models
) is deprecated. Usenorm
instead.
- Redundant functions in
torch_ecg.utils.utils_interval
are removed:diff_with_step
,mask_to_intervals
.
- Remove redudant code for the
ECG_UNET
model which might cause error in computing output shapes.
0.0.15 - 2022-04-14
- Use
pathlib.Path.parents
instead of sequence ofpathlib.Path..parent
to get the parent directory of a file path. - Type hints and docstrings of some database reader classes are enhanced:
ApneaECG
,CINC2020
,CINC2021
. - Update the
README
file: add citation information for the package.
0.0.14 - 2022-04-10
- Implements the lead-wise mechanism (as a method
_assign_weights_lead_wise
) for theConv_Bn_Activation
layer in thetorch_ecg.models._nets
module. - Implements
assign_weights_lead_wise
for modelMultiScopicCNN
(intorch_ecg.models
). - Zenodo configuration file
.zenodo.json
is added.
- Update the
README
file: add:point_right: [Back to TOC](#torch_ecg)
to the end of long sections.
- Fix errors in the computation of classification metrics.
0.0.13 - 2022-04-09
- Add metrics computation class
WaveDelineationMetrics
for evaluating the performance of ECG wave delineation models. - Add methods for computing the metrics to the output classes (in the module
torch_ecg.components.outputs
). - Add script
push2pypi.sh
for pushing the package to PyPI. - Add attribute
global_pool_size
to the configuration of the classification models (torch_ecg.models.ECG_CRNN
).
flake8
check ignore list is updated.README
is updated.
- Usage of
easydict
is removed. Now we usetorch_ecg.cfg.CFG
for configuration.
- Computation of the metric of mean_error for ECG wave delineation is corrected.
- Fix bugs in
SpaceToDepth
layer (torch_ecg.models.resnet
).
0.0.12 - 2022-04-05
- Some out-of-date
sample-data
files are updated, unnecessary files are removed. - Passing a path that does not exist to a database reader class now raises no error, but a warning is issued instead.
- Include
isort
andflake8
in the code formatting and linting steps. Code are reformatted and linted.
0.0.11 - 2022-04-03
- Docstrings are cleaned up.
- Unit tests are updated.
0.0.10 - 2022-04-01
- Add
BibLookup
class for looking up BibTeX entries from DOIs of papers related to datasets and models. - Add
RPeaksDetectionMetrics
class to thetorch_ecg.components.metrics
module for evaluating the performance of R-peaks detection models. - Add CI workflow for running tests via GitHub Actions.
- The loading methods (
load_data
,load_ann
, etc.) of the database reader classes are enhanced to acceptint
type record name argument (rec
), which redirects to the record with the corresponding index in theall_records
attribute of the database reader class.
0.0.9 - 2023-03-30
- Add decorator
add_docstring
for adding/modifying docstrings of functions and classes. - Add method
append
for theBaseOutput
class. - Add several metrics computation functions in
torch_ecg/utils/utils_metrics.py
: confusion_matrix
ovr_confusion_matrix
auc
accuracy
f_measure
QRS_score
- Add several metrics computation functions in
- Add top-level module
torch_ecg.components
. - Add classes for metrics computation to the
torch_ecg.components.metrics
module.
Dataset
classes and corresponding config classes are added to the__init__.py
file of thetorch_ecg.databases.dataset
module so that they can be imported directly from the module.- Logger classes, output classes, and trainer classes are moved to the new
module
torch_ecg.components
. - Callbacks in
BaseTrainer
are enhanced, allowing empty monitor, and allowing non-positive number of checkpoints to be saved (i.e., no checkpoint is saved).
0.0.8 - 2022-03-29
- Bugs in extracting compressed files in the
http_get
function of theutils.download
module.
0.0.7 - 2022-03-28
- Import errors for early versions of pytorch.
- Cached table of PhysioNet databases is added as
package_data
insetup.py
to avoid the error of missing the table file when installing the package.
0.0.6 - 2022-03-28
- Add methods
__len__
and__getitem__
for the base classtorch_ecg.databases.base._DataBase
.
- The base class of
CPSC2021
is changed fromCPSCDataBase
toPhysioNetDataBase
. - Function
compute_output_shape
is enhanced to support different paddings in two ends of the input signal. README
is updated.- Docstrings of many classes and functions are updated.
black
is used for code formatting.
0.0.5 - 2022-03-27
- Add cached table of PhysioNet databases as a data file stored in the package.
- Add
requests
as a dependency in therequirements.txt
file.
- An optional argument
btype
is added to the functionbutter_bandpass_filter
to specify the type of the filter:"lohi"
,"hilo"
. - A
compressed
argument is added to thedownload
method of thePhysioNetDataBase
class to specify whether to download the compressed version of the database.
- Fix bugs in the function
preprocess_multi_lead_signal
.
0.0.4 - 2022-03-26
- Add
ReprMixin
class for better representation of the classes (e.g., models, preprocessors, database readers, etc.). - Added model_dir to default config.
- Add
Dataset
classes for generating input data for the models: CINC2020
CINC2021
CPSC2019
CPSC2021
LUDB
- Add
- Add
sample-data
directory for storing sample data for testing. - Add
url
property to the database classes. - Add utility functions for the computation of metrics.
- Add
BeatAnn
class for better annotation of ECG beats. - Add download utility functions.
- Add
Output
classes for the models. The output classes are used to store the output of the models and provide methods for post-processing.
- Manipulation of custom preprocessor classes is enhanced.
SizeMixin
class is improved for better computation of the sizes of the models.- Replace
os
withpathlib
, which is more flexible for path operations. - Several database reader classes are updated: mitdb, ltafdb.
- Improve
PhysioNetDataBase
by using wfdb built-in methods of getting database version string and downloading the database. - Update the
README
file.
- Unnecessary imports are removed.
- Fix bugs in the
flush
method of theTxtLogger
.
This release was yanked.
0.0.2 - 2022-03-04
Add
Preprocessor
classes for ECG data preprocessing (ref.torch_ecg.preprocessors
).Add
Augmenter
classes for ECG data augmentation (ref.torch_ecg.augmenters
).Add database reader classes for reading ECG data from different sources (ref.
torch_ecg.databases
).Add model classes for ECG signal analysis, including classification, segmentation (R-peak detection, wave delineation, etc., ref.
torch_ecg.models
).Add several benchmark studies for ECG signal analysis tasks:
- CinC2020, multi-label classification.
- CinC2021, multi-label classification.
- CPSC2019, QRS detection.
- CPSC2020, single-label classification.
- CPSC2021, single-label classification.
- LUDB, wave delineation.
ref. the
benchmarks
directory of the project.Add documentation for the project (ref.
docs
directory).Add CodeQL action for security analysis (ref.
.github/workflows
).Add unit tests for the project (ref.
test
directory).
This release was yanked.