A library of trainable and fixed discrete wavelet transform layers
Project description
dwtls: Discrete Wavelet Transform LayerS
dwtls
is a downsampling/pooling layer library of discrete wavelet transform (DWT) layers with fixed and trainable wavelets presented in [1].
The use of DWT has an anti-aliasing filter and the perferct reconstruction property, at least either of which is lacked in conventional pooling layers.
The two properties enables the DWT layers to propagate entire information of an input feature.
The library includes the following layers.
- DWT layers with fixed wavelets (e.g., Haar, CDF22, CDF26, CDF15, and DD4 wavelets)
- DWT layers with trainable wavelets (trainable DWT layers)
- Weight-normalized trainable DWT layers The library works with Python>=3.7 and pytorch>=1.0.
Installation
dwtls
can be installed with:
pip install dwtls
or
git clone git@github.com:TomohikoNakamura/dwtls.git
pip install -e dwtls
How to use
All DWT layers are implemented as subclasses of torch.nn.Module
of PyTorch, so we can use them in many DNNs, using PyTorch scripts.
We prepare a short tutorial notebook, which makes it easy to use our DWT layers in your codes.
Citation
If you use dwtls
in your work, please cite:
@article{TNakamura202104IEEEACMTASLP,
author={Nakamura, Tomohiko and Kozuka, Shihori and Saruwatari, Hiroshi},
title = {Time-Domain Audio Source Separation with Neural Networks Based on Multiresolution Analysis},
journal = {IEEE/ACM Transactions on Audio, Speech, and Language Processing},
volume=29,
pages={1687--1701},
month=apr,
year=2021,
doi={10.1109/TASLP.2021.3072496},
}
References
[1] Tomohiko Nakamura, Shihori Kozuka, and Hiroshi Saruwatari, “Time-Domain Audio Source Separation with Neural Networks Based on Multiresolution Analysis,” IEEE/ACM Transactions on Audio, Speech, and Language Processing, vol. 29, pp. 1687–1701, Apr. 2021. pdf, demo
License
dwtls
is MIT licensed (see LICENSE file).
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.