Skip to main content

DTW Inspired Loss Functions

Python package with the implementation of various DTW-inspired loss functions. Each implementation is compatible with PyTorch and can be used for training.

Loss Functions Currently Implemented

Documentation

You can read the package documentation at the link

Note that for now the documentation is generated automatically from the docstrings in the code, through sphinx autodoc. It will be improved in the future, with more examples and explanations.

Installation

pip installation

The easiest way to use this package is to install it via pip

pip install dtw-loss-function

Build from source

Alternatively, you can download the repository and compile it locally via hatchling

pip install hatchling
git clone https://github.com/jesus-333/dtw_loss_functions.git
cd dtw_loss_functions
hatchling build && pip install .

Usage Examples

Each loss function is implemented as a module inside the package.

Block-DTW Example

from dtw_loss_functions import block_dtw
import torch

block_size = 25
use_cuda = torch.cuda.is_available()
block_dtw_loss = block_dtw.block_dtw(block_size, sdtw_config = {'use_cuda' : use_cuda})

batch_size = 5
time_samples = 300
channels = 1

device = 'cuda' if use_cuda else 'cpu'
x   = torch.randn(batch_size, time_samples, channels).to(device)
x_r = torch.randn(batch_size, time_samples, channels).to(device)

output_block_dtw = block_dtw_loss(x, x_r)

SoftDTW Example

This package offer several implementations for the SoftDTW algorithm.

Mehran Maghoumi's (mag) implementation

import torch
from dtw_loss_functions import soft_dtw

use_cuda = torch.cuda.is_available()

sdtw_loss = soft_dtw.soft_dtw(implementation = 'mag', sdtw_config = {'use_cuda' : use_cuda, 'gamma' : 0.1})

batch_size = 5
time_samples = 300
channels = 1

device = 'cuda' if use_cuda else 'cpu'
x   = torch.randn(batch_size, time_samples, channels).to(device)
x_r = torch.randn(batch_size, time_samples, channels).to(device)

output_sdtw = sdtw_loss(x, x_r)

Ron Shapira Weber's (ron) implementation

import torch
from dtw_loss_functions import soft_dtw

sdtw_loss = soft_dtw.soft_dtw(implementation = 'ron', sdtw_config = {'gamma' : 0.1, 'dist' : 'sqeuclidean'})

batch_size = 5
time_samples = 300
channels = 1

device = 'cuda' if torch.cuda.is_available() else 'cpu'
x   = torch.randn(batch_size, time_samples, channels).to(device)
x_r = torch.randn(batch_size, time_samples, channels).to(device)

output_sdtw = sdtw_loss(x, x_r)

Citation

If you use this package refer to the citation page for all the info regarding the works to cite.

Benchmark

The benchmark page offers some comparison between the different loss functions included in this package and show how to use the benchmark module.

Important notes about Repository Name

The original name of this repository was block-sdtw because it was initially created to develop only the code related to block-DTW loss function. As with many academic projects, the code was initially "not very well organized", so I decided to refactor it and transform it into a Python package for easier use. Since my implementation of Block-DTW relies on Mehran Maghoumi's implementation SoftDTW, I decided to also include his SoftDTW inside the package. Due to some testing, I also had the opportunity to implement the OTW loss function.

At this point, given the presence of 3 different loss functions within the code base, the name block-sdtw for the package seemed a bit misleading to me. So, I decided to change the name from block-sdtw to dtw-loss-function.

Metadata

Release files for dtw-loss-functions 1.0.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dtw-loss-functions 1.0.5
File Size Uploaded
dtw_loss_functions-1.0.5.tar.gz 8.5 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for dtw-loss-functions 1.0.5
File Interpreter ABI Platform
dtw_loss_functions-1.0.5-py2.py3-none-any.whl Python 3, Python 2 none any Details

Total release size: 8.5 MB

Release files / dtw_loss_functions-1.0.5.tar.gz

Download URL dtw_loss_functions-1.0.5.tar.gz
Size 8.5 MB
Tags Source
SHA-256 checksum
How to use checksums
9843989e3f746619ef8b93649645bd293b227a7ad2c810326a1e1e591db3ca8f
BLAKE2b-256 checksum
How to use checksums
2dc2dd66f3b06ee2b62e88bdfcf6345d3948e92187eae80bf58f31e09faaef7c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 13, 2026.

Transparency log

Release files / dtw_loss_functions-1.0.5-py2.py3-none-any.whl

Download URL dtw_loss_functions-1.0.5-py2.py3-none-any.whl
Size 40.7 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
282f984d7f46bc843a93f664a171e0abac4f5c676206cd87c94e3fd6ded8d017
BLAKE2b-256 checksum
How to use checksums
cf988373c8b37f30424ddeea249583ec07c23f28a8047045f525246d0888ee52
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 13, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.0.5 This release

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page