Skip to main content

Boundary conditions and real transforms in PyTorch

Project description

torch-bounds

Boundary conditions (circulant, mirror, reflect) and real transforms (DCT, DST) in PyTorch.

Overview

This small package implements a wide range of boundary conditions used to extrapolate a given discrete signal outside of its native bounds.

Based on these additional boundary conditions, it implements:

  • pad: an extension of torch.nn.functional.pad
  • roll: an extension of torch.roll

It also implements discrete sine and cosine transforms (variants 1, 2 and 3), using a trick similar to cupy.

Finally, it implements additional utilities:

  • ensure_shape crops or pads a tensor (with any boundary condition) so that it matches a give shape.
  • indexing is a module that implements functions to tranforms out-of-bounds coordinates into in-bounds coordinates according to any boundary condition.
  • types is a module that defines names and aliases for different boundary conditions, as well as tools to convert between different naming conventions.

Documentation

See our documentation and notebooks.

Installation

Dependency

  • torch >= 1.3
  • torch >= 1.8 if real transforms are needed (dct, dst)

Conda

conda install torch-bounds -c balbasty -c pytorch

Pip

pip install torch-bounds

Related packages

  • torch-interpol: B-spline interpolation with the same boundary conditions as those implemented here.
  • torch-distmap: Euclidean distance transform.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

torch_bounds-0.1.1.tar.gz (42.5 kB view hashes)

Uploaded Source

Built Distribution

torch_bounds-0.1.1-py3-none-any.whl (26.0 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page