Skip to content

Dataset

Pure PyTorch Dataset for windowed time series from source files.

WindowedDataset

WindowedDataset(sources: list[SourceEntry], inputs, targets, win_sz: int | None = None, stp_sz: int = 1)

Bases: Dataset

Pure PyTorch Dataset for windowed time series from source files.

Parameters:

Name Type Description Default
sources list[SourceEntry]

list of SourceEntry (path + resampling factor); one file at several rates is several entries, one per factor

required
inputs

single reader or tuple of readers for input signals

required
targets

single reader or tuple of readers for target signals

required
win_sz int | None

window size in (resampled) samples, None = full-file mode

None
stp_sz int

step size between windows

1
Source code in tsfast/tsdata/dataset.py
def __init__(
    self,
    sources: list[SourceEntry],
    inputs,
    targets,
    win_sz: int | None = None,
    stp_sz: int = 1,
):
    self.sources = sources
    self._inputs = (inputs,) if not isinstance(inputs, tuple) else inputs
    self._targets = (targets,) if not isinstance(targets, tuple) else targets
    self._single_input = not isinstance(inputs, tuple)
    self._single_target = not isinstance(targets, tuple)
    self.win_sz = win_sz
    self.stp_sz = stp_sz
    self._ref_block = self._find_temporal(*self._inputs, *self._targets)

    if sources:
        for block in (*self._inputs, *self._targets):
            if hasattr(block, "probe"):
                block.probe(sources[0])

    if win_sz is not None:
        ref_block = self._ref_block
        counts = []
        for e in sources:
            eff_len = ref_block.file_len(e)  # already in resampled coords
            n = max(0, (eff_len - win_sz) // stp_sz + 1)
            counts.append(n)
        self._cumsum = np.cumsum(counts)
        self._counts = np.array(counts)