Repository files navigation

AutoTSFlow: An automated code-base for time-series classification

This repository contains the code for time-series (TS) classification with various state-of-the-art TS classification models. The entire pipeline is developed for easy integration of mlflow, hydra, and optuna sweeper, facilitating efficient experimentation, hyperparameter tuning, and configuration management.

The pipeline is developed in a modular way, where the models, datasets, and configurations can be easily added or modified.

  1. The simplest way to run a model on a specific dataset is to run the following command in the terminal in the root directory of the repository:
python main.py

This will run a model on a dataset specified in the config file main_config.yaml, located in the config directory.

  1. To optimize the hyperparameters of a model, run the following command in the terminal in the root directory of the repository:
python main.py --multirun

This will run a model on a dataset specified in the config file main_config.yaml, located in the config directory. However, this time, a search space specified in config/search_space/model_name will be used by optuna to find the optimal hyperparameters. A total number of trials is specified in the main_config.yaml file.

  1. To run a model on a specific dataset, run the following command in the terminal, in the root directory of the repository:
python main.py "dataset_name=[Handwriting]"

For a multirun case:

python main.py --multirun "dataset_name=[Handwriting]"

To run for a specific model:

python main.py --multirun "dataset_name=[Handwriting]""models=LSTM_FCN"

Model name can be anything that is available in the codes/models directory, given corresponding configs are also available.

Similarly, other parameters can also be specified in the terminal, and passed as arguments.

Docker

To run the code in a docker container, run the following command in the terminal, in the root directory of the repository:

docker build -t ts_cl .
docker run -it ts_cl

This will build a docker image named ts_cl, and run a container with the image. The code can be run in the container as described above.

Mlruns

All the runs are stored in the mlruns directory. To visualize the runs, run the following command in the terminal, in the root directory of the repository:

mlflow ui

This will start a server, and the runs can be visualized in the browser at localhost:5000.

Requirements

environment.yaml file contains all the dependencies required to run the code. To install all the dependencies, run the following command in the terminal, given that anaconda is installed:

conda env create -f environment.yaml

This will create a conda environment named ts_cl with all the dependencies installed. It insall Pytorch with CPU support. To install Pytorch with GPU support, follow the instructions given here.

Datasets

This repository uses the datasets from the UEA & UCR Time Series Classification Repository. The datasets are automatically downloaded and stored in the data directory.

Models

We use the classification models available in tsai library. Models can be added to this repository by adding the corresponding config file in the config directory, and the corresponding model file in the codes/models directory.

Results

You can find the results in the following table. Each cell contains the accuracy of the corresponding model on the corresponding dataset. The results are obtained by running the models with the optimal hyperparameters found by optuna.

DatasetGRU_FCNInceptionTimeLSTMLSTM_FCN
ECG2000.910.910.820.92
HandMovementDirection0.459459nan0.4729730.486486
Handwriting0.1011760.09529410.05411760.0752941
ItalyPowerDemand0.9708450.9698740.9659860.910593

Authors

About

An automated code-base for time-series classification

Topics

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

AutoTSFlow: An automated code-base for time-series classification

This repository contains the code for time-series (TS) classification with various state-of-the-art TS classification models. The entire pipeline is developed for easy integration of mlflow, hydra, and optuna sweeper, facilitating efficient experimentation, hyperparameter tuning, and configuration management.

The pipeline is developed in a modular way, where the models, datasets, and configurations can be easily added or modified.

  1. The simplest way to run a model on a specific dataset is to run the following command in the terminal in the root directory of the repository:
python main.py

This will run a model on a dataset specified in the config file main_config.yaml, located in the config directory.

  1. To optimize the hyperparameters of a model, run the following command in the terminal in the root directory of the repository:
python main.py --multirun

This will run a model on a dataset specified in the config file main_config.yaml, located in the config directory. However, this time, a search space specified in config/search_space/model_name will be used by optuna to find the optimal hyperparameters. A total number of trials is specified in the main_config.yaml file.

  1. To run a model on a specific dataset, run the following command in the terminal, in the root directory of the repository:
python main.py "dataset_name=[Handwriting]"

For a multirun case:

python main.py --multirun "dataset_name=[Handwriting]"

To run for a specific model:

python main.py --multirun "dataset_name=[Handwriting]""models=LSTM_FCN"

Model name can be anything that is available in the codes/models directory, given corresponding configs are also available.

Similarly, other parameters can also be specified in the terminal, and passed as arguments.

Docker

To run the code in a docker container, run the following command in the terminal, in the root directory of the repository:

docker build -t ts_cl .
docker run -it ts_cl

This will build a docker image named ts_cl, and run a container with the image. The code can be run in the container as described above.

Mlruns

All the runs are stored in the mlruns directory. To visualize the runs, run the following command in the terminal, in the root directory of the repository:

mlflow ui

This will start a server, and the runs can be visualized in the browser at localhost:5000.

Requirements

environment.yaml file contains all the dependencies required to run the code. To install all the dependencies, run the following command in the terminal, given that anaconda is installed:

conda env create -f environment.yaml

This will create a conda environment named ts_cl with all the dependencies installed. It insall Pytorch with CPU support. To install Pytorch with GPU support, follow the instructions given here.

Datasets

This repository uses the datasets from the UEA & UCR Time Series Classification Repository. The datasets are automatically downloaded and stored in the data directory.

Models

We use the classification models available in tsai library. Models can be added to this repository by adding the corresponding config file in the config directory, and the corresponding model file in the codes/models directory.

Results

You can find the results in the following table. Each cell contains the accuracy of the corresponding model on the corresponding dataset. The results are obtained by running the models with the optimal hyperparameters found by optuna.

DatasetGRU_FCNInceptionTimeLSTMLSTM_FCN
ECG2000.910.910.820.92
HandMovementDirection0.459459nan0.4729730.486486
Handwriting0.1011760.09529410.05411760.0752941
ItalyPowerDemand0.9708450.9698740.9659860.910593

Authors

About

An automated code-base for time-series classification

Topics

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

AutoTSFlow: An automated code-base for time-series classification

This repository contains the code for time-series (TS) classification with various state-of-the-art TS classification models. The entire pipeline is developed for easy integration of mlflow, hydra, and optuna sweeper, facilitating efficient experimentation, hyperparameter tuning, and configuration management.

The pipeline is developed in a modular way, where the models, datasets, and configurations can be easily added or modified.

  1. The simplest way to run a model on a specific dataset is to run the following command in the terminal in the root directory of the repository:
python main.py

This will run a model on a dataset specified in the config file main_config.yaml, located in the config directory.

  1. To optimize the hyperparameters of a model, run the following command in the terminal in the root directory of the repository:
python main.py --multirun

This will run a model on a dataset specified in the config file main_config.yaml, located in the config directory. However, this time, a search space specified in config/search_space/model_name will be used by optuna to find the optimal hyperparameters. A total number of trials is specified in the main_config.yaml file.

  1. To run a model on a specific dataset, run the following command in the terminal, in the root directory of the repository:
python main.py "dataset_name=[Handwriting]"

For a multirun case:

python main.py --multirun "dataset_name=[Handwriting]"

To run for a specific model:

python main.py --multirun "dataset_name=[Handwriting]""models=LSTM_FCN"

Model name can be anything that is available in the codes/models directory, given corresponding configs are also available.

Similarly, other parameters can also be specified in the terminal, and passed as arguments.

Docker

To run the code in a docker container, run the following command in the terminal, in the root directory of the repository:

docker build -t ts_cl .
docker run -it ts_cl

This will build a docker image named ts_cl, and run a container with the image. The code can be run in the container as described above.

Mlruns

All the runs are stored in the mlruns directory. To visualize the runs, run the following command in the terminal, in the root directory of the repository:

mlflow ui

This will start a server, and the runs can be visualized in the browser at localhost:5000.

Requirements

environment.yaml file contains all the dependencies required to run the code. To install all the dependencies, run the following command in the terminal, given that anaconda is installed:

conda env create -f environment.yaml

This will create a conda environment named ts_cl with all the dependencies installed. It insall Pytorch with CPU support. To install Pytorch with GPU support, follow the instructions given here.

Datasets

This repository uses the datasets from the UEA & UCR Time Series Classification Repository. The datasets are automatically downloaded and stored in the data directory.

Models

We use the classification models available in tsai library. Models can be added to this repository by adding the corresponding config file in the config directory, and the corresponding model file in the codes/models directory.

Results

You can find the results in the following table. Each cell contains the accuracy of the corresponding model on the corresponding dataset. The results are obtained by running the models with the optimal hyperparameters found by optuna.

DatasetGRU_FCNInceptionTimeLSTMLSTM_FCN
ECG2000.910.910.820.92
HandMovementDirection0.459459nan0.4729730.486486
Handwriting0.1011760.09529410.05411760.0752941
ItalyPowerDemand0.9708450.9698740.9659860.910593

Authors

About

An automated code-base for time-series classification

Topics

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

AutoTSFlow: An automated code-base for time-series classification

This repository contains the code for time-series (TS) classification with various state-of-the-art TS classification models. The entire pipeline is developed for easy integration of mlflow, hydra, and optuna sweeper, facilitating efficient experimentation, hyperparameter tuning, and configuration management.

The pipeline is developed in a modular way, where the models, datasets, and configurations can be easily added or modified.

  1. The simplest way to run a model on a specific dataset is to run the following command in the terminal in the root directory of the repository:
python main.py

This will run a model on a dataset specified in the config file main_config.yaml, located in the config directory.

  1. To optimize the hyperparameters of a model, run the following command in the terminal in the root directory of the repository:
python main.py --multirun

This will run a model on a dataset specified in the config file main_config.yaml, located in the config directory. However, this time, a search space specified in config/search_space/model_name will be used by optuna to find the optimal hyperparameters. A total number of trials is specified in the main_config.yaml file.

  1. To run a model on a specific dataset, run the following command in the terminal, in the root directory of the repository:
python main.py "dataset_name=[Handwriting]"

For a multirun case:

python main.py --multirun "dataset_name=[Handwriting]"

To run for a specific model:

python main.py --multirun "dataset_name=[Handwriting]""models=LSTM_FCN"

Model name can be anything that is available in the codes/models directory, given corresponding configs are also available.

Similarly, other parameters can also be specified in the terminal, and passed as arguments.

Docker

To run the code in a docker container, run the following command in the terminal, in the root directory of the repository:

docker build -t ts_cl .
docker run -it ts_cl

This will build a docker image named ts_cl, and run a container with the image. The code can be run in the container as described above.

Mlruns

All the runs are stored in the mlruns directory. To visualize the runs, run the following command in the terminal, in the root directory of the repository:

mlflow ui

This will start a server, and the runs can be visualized in the browser at localhost:5000.

Requirements

environment.yaml file contains all the dependencies required to run the code. To install all the dependencies, run the following command in the terminal, given that anaconda is installed:

conda env create -f environment.yaml

This will create a conda environment named ts_cl with all the dependencies installed. It insall Pytorch with CPU support. To install Pytorch with GPU support, follow the instructions given here.

Datasets

This repository uses the datasets from the UEA & UCR Time Series Classification Repository. The datasets are automatically downloaded and stored in the data directory.

Models

We use the classification models available in tsai library. Models can be added to this repository by adding the corresponding config file in the config directory, and the corresponding model file in the codes/models directory.

Results

You can find the results in the following table. Each cell contains the accuracy of the corresponding model on the corresponding dataset. The results are obtained by running the models with the optimal hyperparameters found by optuna.

DatasetGRU_FCNInceptionTimeLSTMLSTM_FCN
ECG2000.910.910.820.92
HandMovementDirection0.459459nan0.4729730.486486
Handwriting0.1011760.09529410.05411760.0752941
ItalyPowerDemand0.9708450.9698740.9659860.910593

Authors

About

An automated code-base for time-series classification

Topics

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

AutoTSFlow: An automated code-base for time-series classification

This repository contains the code for time-series (TS) classification with various state-of-the-art TS classification models. The entire pipeline is developed for easy integration of mlflow, hydra, and optuna sweeper, facilitating efficient experimentation, hyperparameter tuning, and configuration management.

The pipeline is developed in a modular way, where the models, datasets, and configurations can be easily added or modified.

  1. The simplest way to run a model on a specific dataset is to run the following command in the terminal in the root directory of the repository:
python main.py

This will run a model on a dataset specified in the config file main_config.yaml, located in the config directory.

  1. To optimize the hyperparameters of a model, run the following command in the terminal in the root directory of the repository:
python main.py --multirun

This will run a model on a dataset specified in the config file main_config.yaml, located in the config directory. However, this time, a search space specified in config/search_space/model_name will be used by optuna to find the optimal hyperparameters. A total number of trials is specified in the main_config.yaml file.

  1. To run a model on a specific dataset, run the following command in the terminal, in the root directory of the repository:
python main.py "dataset_name=[Handwriting]"

For a multirun case:

python main.py --multirun "dataset_name=[Handwriting]"

To run for a specific model:

python main.py --multirun "dataset_name=[Handwriting]""models=LSTM_FCN"

Model name can be anything that is available in the codes/models directory, given corresponding configs are also available.

Similarly, other parameters can also be specified in the terminal, and passed as arguments.

Docker

To run the code in a docker container, run the following command in the terminal, in the root directory of the repository:

docker build -t ts_cl .
docker run -it ts_cl

This will build a docker image named ts_cl, and run a container with the image. The code can be run in the container as described above.

Mlruns

All the runs are stored in the mlruns directory. To visualize the runs, run the following command in the terminal, in the root directory of the repository:

mlflow ui

This will start a server, and the runs can be visualized in the browser at localhost:5000.

Requirements

environment.yaml file contains all the dependencies required to run the code. To install all the dependencies, run the following command in the terminal, given that anaconda is installed:

conda env create -f environment.yaml

This will create a conda environment named ts_cl with all the dependencies installed. It insall Pytorch with CPU support. To install Pytorch with GPU support, follow the instructions given here.

Datasets

This repository uses the datasets from the UEA & UCR Time Series Classification Repository. The datasets are automatically downloaded and stored in the data directory.

Models

We use the classification models available in tsai library. Models can be added to this repository by adding the corresponding config file in the config directory, and the corresponding model file in the codes/models directory.

Results

You can find the results in the following table. Each cell contains the accuracy of the corresponding model on the corresponding dataset. The results are obtained by running the models with the optimal hyperparameters found by optuna.

DatasetGRU_FCNInceptionTimeLSTMLSTM_FCN
ECG2000.910.910.820.92
HandMovementDirection0.459459nan0.4729730.486486
Handwriting0.1011760.09529410.05411760.0752941
ItalyPowerDemand0.9708450.9698740.9659860.910593

Authors

About

An automated code-base for time-series classification

Topics

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

AutoTSFlow: An automated code-base for time-series classification

This repository contains the code for time-series (TS) classification with various state-of-the-art TS classification models. The entire pipeline is developed for easy integration of mlflow, hydra, and optuna sweeper, facilitating efficient experimentation, hyperparameter tuning, and configuration management.

The pipeline is developed in a modular way, where the models, datasets, and configurations can be easily added or modified.

  1. The simplest way to run a model on a specific dataset is to run the following command in the terminal in the root directory of the repository:
python main.py

This will run a model on a dataset specified in the config file main_config.yaml, located in the config directory.

  1. To optimize the hyperparameters of a model, run the following command in the terminal in the root directory of the repository:
python main.py --multirun

This will run a model on a dataset specified in the config file main_config.yaml, located in the config directory. However, this time, a search space specified in config/search_space/model_name will be used by optuna to find the optimal hyperparameters. A total number of trials is specified in the main_config.yaml file.

  1. To run a model on a specific dataset, run the following command in the terminal, in the root directory of the repository:
python main.py "dataset_name=[Handwriting]"

For a multirun case:

python main.py --multirun "dataset_name=[Handwriting]"

To run for a specific model:

python main.py --multirun "dataset_name=[Handwriting]""models=LSTM_FCN"

Model name can be anything that is available in the codes/models directory, given corresponding configs are also available.

Similarly, other parameters can also be specified in the terminal, and passed as arguments.

Docker

To run the code in a docker container, run the following command in the terminal, in the root directory of the repository:

docker build -t ts_cl .
docker run -it ts_cl

This will build a docker image named ts_cl, and run a container with the image. The code can be run in the container as described above.

Mlruns

All the runs are stored in the mlruns directory. To visualize the runs, run the following command in the terminal, in the root directory of the repository:

mlflow ui

This will start a server, and the runs can be visualized in the browser at localhost:5000.

Requirements

environment.yaml file contains all the dependencies required to run the code. To install all the dependencies, run the following command in the terminal, given that anaconda is installed:

conda env create -f environment.yaml

This will create a conda environment named ts_cl with all the dependencies installed. It insall Pytorch with CPU support. To install Pytorch with GPU support, follow the instructions given here.

Datasets

This repository uses the datasets from the UEA & UCR Time Series Classification Repository. The datasets are automatically downloaded and stored in the data directory.

Models

We use the classification models available in tsai library. Models can be added to this repository by adding the corresponding config file in the config directory, and the corresponding model file in the codes/models directory.

Results

You can find the results in the following table. Each cell contains the accuracy of the corresponding model on the corresponding dataset. The results are obtained by running the models with the optimal hyperparameters found by optuna.

DatasetGRU_FCNInceptionTimeLSTMLSTM_FCN
ECG2000.910.910.820.92
HandMovementDirection0.459459nan0.4729730.486486
Handwriting0.1011760.09529410.05411760.0752941
ItalyPowerDemand0.9708450.9698740.9659860.910593

Authors

About

An automated code-base for time-series classification

Topics

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

AutoTSFlow: An automated code-base for time-series classification

This repository contains the code for time-series (TS) classification with various state-of-the-art TS classification models. The entire pipeline is developed for easy integration of mlflow, hydra, and optuna sweeper, facilitating efficient experimentation, hyperparameter tuning, and configuration management.

The pipeline is developed in a modular way, where the models, datasets, and configurations can be easily added or modified.

  1. The simplest way to run a model on a specific dataset is to run the following command in the terminal in the root directory of the repository:
python main.py

This will run a model on a dataset specified in the config file main_config.yaml, located in the config directory.

  1. To optimize the hyperparameters of a model, run the following command in the terminal in the root directory of the repository:
python main.py --multirun

This will run a model on a dataset specified in the config file main_config.yaml, located in the config directory. However, this time, a search space specified in config/search_space/model_name will be used by optuna to find the optimal hyperparameters. A total number of trials is specified in the main_config.yaml file.

  1. To run a model on a specific dataset, run the following command in the terminal, in the root directory of the repository:
python main.py "dataset_name=[Handwriting]"

For a multirun case:

python main.py --multirun "dataset_name=[Handwriting]"

To run for a specific model:

python main.py --multirun "dataset_name=[Handwriting]""models=LSTM_FCN"

Model name can be anything that is available in the codes/models directory, given corresponding configs are also available.

Similarly, other parameters can also be specified in the terminal, and passed as arguments.

Docker

To run the code in a docker container, run the following command in the terminal, in the root directory of the repository:

docker build -t ts_cl .
docker run -it ts_cl

This will build a docker image named ts_cl, and run a container with the image. The code can be run in the container as described above.

Mlruns

All the runs are stored in the mlruns directory. To visualize the runs, run the following command in the terminal, in the root directory of the repository:

mlflow ui

This will start a server, and the runs can be visualized in the browser at localhost:5000.

Requirements

environment.yaml file contains all the dependencies required to run the code. To install all the dependencies, run the following command in the terminal, given that anaconda is installed:

conda env create -f environment.yaml

This will create a conda environment named ts_cl with all the dependencies installed. It insall Pytorch with CPU support. To install Pytorch with GPU support, follow the instructions given here.

Datasets

This repository uses the datasets from the UEA & UCR Time Series Classification Repository. The datasets are automatically downloaded and stored in the data directory.

Models

We use the classification models available in tsai library. Models can be added to this repository by adding the corresponding config file in the config directory, and the corresponding model file in the codes/models directory.

Results

You can find the results in the following table. Each cell contains the accuracy of the corresponding model on the corresponding dataset. The results are obtained by running the models with the optimal hyperparameters found by optuna.

DatasetGRU_FCNInceptionTimeLSTMLSTM_FCN
ECG2000.910.910.820.92
HandMovementDirection0.459459nan0.4729730.486486
Handwriting0.1011760.09529410.05411760.0752941
ItalyPowerDemand0.9708450.9698740.9659860.910593

Authors

About

An automated code-base for time-series classification

Topics

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

AutoTSFlow: An automated code-base for time-series classification

This repository contains the code for time-series (TS) classification with various state-of-the-art TS classification models. The entire pipeline is developed for easy integration of mlflow, hydra, and optuna sweeper, facilitating efficient experimentation, hyperparameter tuning, and configuration management.

The pipeline is developed in a modular way, where the models, datasets, and configurations can be easily added or modified.

  1. The simplest way to run a model on a specific dataset is to run the following command in the terminal in the root directory of the repository:
python main.py

This will run a model on a dataset specified in the config file main_config.yaml, located in the config directory.

  1. To optimize the hyperparameters of a model, run the following command in the terminal in the root directory of the repository:
python main.py --multirun

This will run a model on a dataset specified in the config file main_config.yaml, located in the config directory. However, this time, a search space specified in config/search_space/model_name will be used by optuna to find the optimal hyperparameters. A total number of trials is specified in the main_config.yaml file.

  1. To run a model on a specific dataset, run the following command in the terminal, in the root directory of the repository:
python main.py "dataset_name=[Handwriting]"

For a multirun case:

python main.py --multirun "dataset_name=[Handwriting]"

To run for a specific model:

python main.py --multirun "dataset_name=[Handwriting]""models=LSTM_FCN"

Model name can be anything that is available in the codes/models directory, given corresponding configs are also available.

Similarly, other parameters can also be specified in the terminal, and passed as arguments.

Docker

To run the code in a docker container, run the following command in the terminal, in the root directory of the repository:

docker build -t ts_cl .
docker run -it ts_cl

This will build a docker image named ts_cl, and run a container with the image. The code can be run in the container as described above.

Mlruns

All the runs are stored in the mlruns directory. To visualize the runs, run the following command in the terminal, in the root directory of the repository:

mlflow ui

This will start a server, and the runs can be visualized in the browser at localhost:5000.

Requirements

environment.yaml file contains all the dependencies required to run the code. To install all the dependencies, run the following command in the terminal, given that anaconda is installed:

conda env create -f environment.yaml

This will create a conda environment named ts_cl with all the dependencies installed. It insall Pytorch with CPU support. To install Pytorch with GPU support, follow the instructions given here.

Datasets

This repository uses the datasets from the UEA & UCR Time Series Classification Repository. The datasets are automatically downloaded and stored in the data directory.

Models

We use the classification models available in tsai library. Models can be added to this repository by adding the corresponding config file in the config directory, and the corresponding model file in the codes/models directory.

Results

You can find the results in the following table. Each cell contains the accuracy of the corresponding model on the corresponding dataset. The results are obtained by running the models with the optimal hyperparameters found by optuna.

DatasetGRU_FCNInceptionTimeLSTMLSTM_FCN
ECG2000.910.910.820.92
HandMovementDirection0.459459nan0.4729730.486486
Handwriting0.1011760.09529410.05411760.0752941
ItalyPowerDemand0.9708450.9698740.9659860.910593

Authors

About

An automated code-base for time-series classification

Topics

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages