VolterraSys: Multidimensional linear and nonlinear Volterra kernel layers in wavelet and natural bases
VolterraSys provides TensorFlow/Keras layers for trainable multidimensional linear and quadratic Volterra kernels in wavelet and natural bases.
Copyright 2025 Kishore Kumar Tarafdar.
Licensed under the Apache License, Version 2.0. See LICENSE.
Capabilities
- linear Volterra kernel layer for 1D data (shift variant):
linearVolterra1D. - Linear shift invariant wavelet and natural basis Volterra kernel layers for 1D, 2D, 3D data:
LSIVolterra1D,LSIVolterra2D,LSIVolterra3D. - Quadratic shift invariant wavelet and natural basis Volterra kernel layers for 1D, 2D, 3D data:
QSIVolterra1D,QSIVolterra2D,QSIVolterra3D. - Multiresolution Volterra kernels with orthogonal wavelets such as
wave="haar"(default) and biorthogonal waveletswave="bior1.3". Supports wavelet families: "db", "sym", "coif", "bior", "rbio" - Natural-domain kernels have
wave=None.
Dependencies
- TensorFlow (>=2.15)
- Inputs are TensorFlow tensors with channel-last layout.
- Wavelet domain requires the
TFDWTpackage which can be installed viapip install TFDWT.
Installation
pip install VolterraSys
Minimal Example
import tensorflow as tf
# Linear shift invariant wavelet bases Volterra kernels
from volterrasys.LSIVolterra1D import LSIVolterra1D
from volterrasys.LSIVolterra2D import LSIVolterra2D
from volterrasys.LSIVolterra3D import LSIVolterra3D
# Quadratic shift invariant wavelet bases Volterra kernels
from volterrasys.QSIVolterra1D import QSIVolterra1D
from volterrasys.QSIVolterra2D import QSIVolterra2D
from volterrasys.QSIVolterra3D import QSIVolterra3D
# Natural-domain linear and quadratic kernels layer examples
# Linear
x1d = tf.random.normal([1, 32, 1])
y1d = LSIVolterra1D(filters=2, kernel_size=3, wave=None)(x1d)
# Quadratic
x2d = tf.random.normal([1, 8, 8, 1])
yq2d = QSIVolterra2D(filters=2, kernel_size=2, wave=None)(x2d)
x3d = tf.random.normal([1, 6, 6, 6, 1])
yq3d = QSIVolterra3D(filters=2, kernel_size=2, wave=None)(x3d)
print(y1d.shape, yq2d.shape, yq3d.shape)
Wavelet domain kernel layer examples
# Linear layers
layer1d = LSIVolterra1D(filters=1, kernel_size=4, wave="haar")
layer2d = LSIVolterra2D(filters=1, kernel_size=4, wave="haar")
layer3d = LSIVolterra3D(filters=1, kernel_size=4, wave="haar")
# Quadratic layers
qlayer1d = QSIVolterra1D(filters=1, kernel_size=4, wave='haar')
qlayer2d = QSIVolterra2D(filters=1, kernel_size=4, wave='haar')
qlayer3d = QSIVolterra3D(filters=1, kernel_size=4, wave='haar')
Citation
This software is released for broad research, educational, and engineering use. If this package proves useful in related work, please cite the following thesis, whose Chapter 2 presents the underlying theory and computational details:
@misc{tarafdar2026interpretablefrugallearningsystems,
title={Interpretable and Frugal Learning Systems Employing Multiresolution Pyramids and Volterra Kernels},
author={Kishore Kumar Tarafdar},
year={2026},
eprint={2606.15011},
archivePrefix={arXiv},
primaryClass={eess.SP},
url={https://arxiv.org/abs/2606.15011},
}
License
Apache License 2.0. See LICENSE.
VolterraSys (C) 2026 Kishore Kumar Tarafdar, भारत 🇮🇳
Metadata
Release files for VolterraSys 0.0.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| volterrasys-0.0.2.tar.gz | 15.7 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| volterrasys-0.0.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 43.4 kB
Release files / volterrasys-0.0.2.tar.gz
| Download URL | volterrasys-0.0.2.tar.gz |
|---|---|
| Size | 15.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
331f5b3f291abb1a371893856c96b32a9217a2751ae4c5fc6e57dab638f2e2e7
|
|
BLAKE2b-256 checksum How to use checksums |
6dbee4d5d13d7ca3db0204cc7df263b381b7f6f27d48acfbdb2ed689b545ccfd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.13
|
Release files / volterrasys-0.0.2-py3-none-any.whl
| Download URL | volterrasys-0.0.2-py3-none-any.whl |
|---|---|
| Size | 27.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
00137137097ca8f79a30cd110c5e9cd07fb03740908b6e430fd7871036b39489
|
|
BLAKE2b-256 checksum How to use checksums |
8341627f4147863d0f452be7c3568696c7e91e1961ffbcb65065f307b0076f2d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.13
|
Security for VolterraSys 0.0.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.