Fast
Available wavelet families ―
Haar (haar)
Daubechies (db)
Symlets (sym)
Coiflets (coif)
Biorthogonal (bior)
Reverse biorthogonal (rbio)Note ― Shape requirements
- Single‑level: dimensions must be even. For 1D,
Nis even; for 2D and 3D, each side is even and the input is square/cubic respectively. - Multilevel (L levels): each side must be divisible by
$2^L$ . In practice, pad to the nearest multiple of$2^L$ when needed. - Our examples and tests center‑pad rather than crop, to preserve data.
The installation of the TFDWT package is recommended inside a virtual environment with tensorflow[and-cuda] installed at first.
Pre-installation checks (Tested in Gentoo and Debian bookworm)
- Create a new virtual enironment with a specific Python version (use the Python version supported by TensorFlow)
conda info --envs
env_name='tf219'
conda create -n $env_name python=3.12 ipykernel
# activate virtual environment
conda activate tf219- Install TensorFlow using official guide in https://www.tensorflow.org/install/pip
# For GPU users
pip install tensorflow[and-cuda]
# Verify setup
python3 -c "import tensorflow as tf; print(f'{tf.config.list_physical_devices('GPU')}, \nTF version {tf.__version__}')"Install TFDWT from PyPI (Option
pip install TFDWTInstall TFDWT from Github (Option
Download the package
git clone https://github.com/kkt-ee/TFDWT.gitChange directory to the downloaded TFDWT
cd TFDWTRun the following command to install the TFDWT package
pip install .Compute $\text{DWT}$ $1\text{D}$ and $\text{IDWT}$ $1\text{D}$ of batched, multichannel $x$ of shape $(\text{batch, length, channels})$
"""Perfect Reconstruction 1D DWT level-1 Filter bank"""
from TFDWT.DWT1DFB import DWT1D, IDWT1D
LH = DWT1D(wave='bior3.1')(x) # Analysis
x_hat = IDWT1D(wave='bior3.1')(LH) # SynthesisCompute $\text{DWT}$ $2\text{D}$ and $\text{IDWT}$ $2\text{D}$ of batched, multichannel $x$ of shape $(\text{batch, height, width, channels})$
"""Perfect Reconstruction 2D DWT level-1 Filter bank"""
from TFDWT.DWT2DFB import DWT2D, IDWT2D
LLLHHLHH = DWT2D(wave='bior1.3')(x) # Analysis
x_hat = IDWT2D(wave='bior1.3')(LLLHHLHH) # Synthesis
# `wave` can be any supported orthogonal or biorthogonal waveletCompute $\text{DWT}$ $3\text{D}$ and $\text{IDWT}$ $3\text{D}$ of batched, multichannel $x$ of shape $(\text{batch, height, width, depth, channels})$
"""Perfect Reconstruction 3D DWT level-1 Filter bank"""
from TFDWT.DWT3DFB import DWT3D, IDWT3D
LLLLLHLHLLHHHLLHLHHHLHHH = DWT3D(wave='bior1.3')(x) # Analysis
x_hat = IDWT3D(wave='bior1.3')(LLLLLHLHLLHHHLLHLHHHLHHH) # Synthesis
# `wave` can be any supported orthogonal or biorthogonal waveletNOTE ― Using the above forward and inverse transforms the above
The package also provides simple helpers for building multilevel pyramids using the single‑level layers internally.
1D
from TFDWT.multilevel.dwt import dwt, idwt
level = 3
subbands = dwt(x, level=level, Ψ='haar') # returns [H1, H2, ..., HL, LL]
x_hat = idwt(subbands, level=level, Ψ='haar')2D
from TFDWT.multilevel.dwt2 import dwt2, idwt2
level = 3
subbands = dwt2(x, level=level, Ψ='haar') # [H1, H2, ..., HL, LL]
x_hat = idwt2(subbands, level=level, Ψ='haar')3D
from TFDWT.multilevel.dwt3 import dwt3, idwt3
level = 3
subbands = dwt3(x, level=level, Ψ='haar') # [H1, H2, ..., HL, LL]
x_hat = idwt3(subbands, level=level, Ψ='haar')Each Hi contains all high‑pass subbands at level i (1 for 1D, 3 for 2D, 7 for 3D), concatenated along the channel axis; the last element is the final low‑pass LL.
Python 3.12.7
TensorFlow 2.15+ (verified on 2.21.0)
Keras 2 and 3
CUDA 12+pip uninstall TFDWTTFDWT (C) 2026 Kishore Kumar Tarafdar, भारत 🇮🇳