pic1 pic2

pic3 pic4

Kymatio is a Python module for computing wavelet and scattering transforms.

It is built on top of PyTorch, but also has a fast CUDA backend via cupy and skcuda.

Use kymatio if you need a library that:

  • integrates wavelet scattering in a deep learning architecture,
  • supports 1-D, 2-D, and 3-D scattering transforms
  • differentiable transforms for applications in generative modeling, reconstruction and more!
  • runs seamlessly on CPU and GPU hardware.

A brief intro to wavelet scattering is provided in User Guide. For a list of publications see Publications.

Quick Start

On Linux or macOS, open a shell and run:

pip install kymatio

More instructions are available on .

In the Python interpreter, you may then call:

import kymatio

which should run without error if the package has been correctly installed.

Apply 2D scattering to a 32x32 random image

The following code imports torch and the Scattering2D class, which implements the 2D scattering transform. It then creates an instance of this class to compute the scattering transform at scale J = 2 of a 32x32 image consisting of Gaussian white noise:

import torch
from kymatio import Scattering2D
scattering = Scattering2D(J=2, shape=(32, 32))
x = torch.randn(1, 1, 32, 32)
Sx = scattering(x)

This should output:

torch.Size([1, 1, 81, 8, 8])

This corresponds to 81 scattering coefficients, each corresponding to an 8x8 image.

Check out the User Guide for more scattering transform examples.

The performance of the scattering transform depends on the specific backend that’s in use. For more information on switching backends to improve performance, see the Backend section.