Minesh A. Jethva
Time Series ML
Published in
2 min readDec 5, 2020

--

U-Time: A Fully Convolutional Network for Time Series Segmentation and Event Detection

U-Time

Implementation of the U-Time model for time-series segmentation as described in:

Mathias Perslev, Michael Hejselbak Jensen, Sune Darkner, Poul Jørgen Jennum, and Christian Igel. U-Time: A Fully Convolutional Network for Time Series Segmentation Applied to Sleep Staging. Advances in Neural Information Processing Systems (NeurIPS 2019)

Pre-print version: https://arxiv.org/abs/1910.11162

TLDR: An end-to-end example

# Clone repo and install
git clone https://github.com/perslev/U-Time
pip3 install -e U-Time
# Obtain a public sleep staging dataset
ut fetch --dataset sleep-EDF-153 --out_dir datasets/sleep-EDF-153
# Prepare a fixed-split experiment
ut cv_split --data_dir 'datasets/sleep-EDF-153' \
--subject_dir_pattern 'SC*' \
--CV 1 \
--validation_fraction 0.20 \
--test_fraction 0.20 \
--common_prefix_length 5 \
--file_list
# Initialize a U-Time project
ut init --name my_utime_project \
--model utime \
--data_dir datasets/sleep-EDF-153/views/fixed_split
# Start training
cd my_utime_project
ut train --num_GPUs=1 --channels 'EEG Fpz-Cz'
# Predict and evaluate
ut evaluate --out_dir eval --one_shot
# Print a confusion matrix
ut cm --true 'eval/test_data/dataset_1/files/*/true.npz' \
--pred 'eval/test_data/dataset_1/files/*/pred.npz'

# Print per-subject summary statistics
ut summary --csv_pattern 'eval/test_data/*/evaluation_dice.csv' \
--print_all
# Output sleep stages for every 3 seconds of 100 Hz signal
# Here, the 'folder_regex' matches 2 files in the dataset
ut predict --folder_regex '../datasets/sleep-EDF-153/SC400[1-2]E0' \
--out_dir high_res_pred \
--data_per_prediction 300 \
--one_shot

--

--

Minesh A. Jethva
Time Series ML

2x Kaggle Expert, Data Scientist working with Sequence Modelling for Time-Series and NLP, and Bioinformatics Researcher @BENGURIONU buymeacoffee.com/MineshJ1291