OTW
Implementation of OTW, presented in [LLSH23]
For more details see : - https://ieeexplore.ieee.org/document/10095915 - https://arxiv.org/abs/2306.00620
- class dtw_loss_functions.otw.otw(m: float = 1, s: int | float = 0.5, beta: float = 1, reduction: str = 'mean')[source]
Bases:
ModuleMethods
forward(x, y)Computes the OTW distance between two time series.
- forward(x: Tensor, y: Tensor) Tensor[source]
Computes the OTW distance between two time series.
- Parameters:
x (torch.Tensor) – First time series, of shape (B, L) where B is the batch size and L is the length of the time series.
y (torch.Tensor) – Second time series, of shape (B, L) where B is the batch size and L is the length of the time series.
- Returns:
OTW distance between the two time series
- Return type:
torch.Tensor
- dtw_loss_functions.otw.otw_distance(x: Tensor, y: Tensor, m: float = 1, s: int | float = 0.5, beta: float = 1, reduction: str = 'mean') Tensor[source]
Implements the OTW distance between two time series, as defined in equation (10) of the paper.
- Parameters:
x (torch.Tensor) – First time series, of shape (B, L) where B is the batch size and L is the length of the time series.
y (torch.Tensor) – Second time series, of shape (B, L) where B is the batch size and L is the length of the time series.
m (float) – Waste cost parameter, default is 1.
s (int | float) – Window size parameter, it can be an integer or a float between 0 and 1. Default is 0.5. If float, it is interpreted as a fraction of the length of the time series. If integer, it is interpreted as the number of time steps.
beta (float) – Hyperparameter for the smooth l1 loss, default is 1.
- Returns:
OTW distance between the two time series
- Return type:
torch.Tensor
- dtw_loss_functions.otw.smooth_l1_loss(x: Tensor, beta: float, reduction='mean') Tensor[source]
Computes the smooth l1 of the input tensor x, as defined in equation (9) of the paper.
- Parameters:
x (torch.Tensor) – Input tensor of shape (B). Each element corresponds to the difference between two time series.
beta (float) – Hyperparameter for the smooth l1 loss.
reduction (str) – Specifies the reduction to apply to the output: ‘none’ | ‘mean’ | ‘sum’. Default: ‘mean’.
- Returns:
Smooth l1 loss of the input tensor. If reduction is ‘none’, the output has the same shape as x. If reduction is ‘mean’ or ‘sum’, the output is a scalar.
- Return type:
torch.Tensor
- dtw_loss_functions.otw.window_cumsum(x: Tensor, s: int) Tensor[source]
Computes the cumulative sum of the input tensor x as defined in equation (7) of the paper.
Given a time series A represented as an array of values
[a1, a2, ..., aL], the window cumsum is computed as :window_cumsum(A) = cumsum(A) - cumsum(A[0:L-s])(i.e. the cumsum of all the array minus the cumsum of the array excluding the last s elements)- Parameters:
x (torch.Tensor) – Input tensor of shape (B, L).
s (int) – Window size.
- Returns:
Cumulative sum over the sliding window, of shape (B).
- Return type:
torch.Tensor