v0lta/PyTorch-Wavelet-Toolbox

[JMLR] Differentiable fast wavelet transforms in PyTorch with GPU support.

解决的问题

提供 PyTorch 原生的离散(DWT)和连续(CWT)小波变换实现,使这些变换能够集成到深度学习工作流中。与标准库不同,它支持 GPU 加速和自动微分(梯度支持)。

工作原理

该工具箱使用 PyTorch 后端实现多种小波操作:

  • 基于卷积的变换:使用 conv1dconv2d 及其转置版本,对 1D、2D 和 3D 数据实现快速小波变换(fwt)。
  • 稀疏矩阵变换:使用 torch.sparse.mm 实现边界小波,避免在数据边缘添加额外像素。
  • 自适应小波:提供实验性支持,可在神经网络中作为层训练可学习的乘积滤波器和可优化的正交小波。
  • 集成:扩展了 PyWavelets 的功能,同时确保与 PyTorch 张量的兼容性。

适用人群

需要多分辨率分析和可微小波变换的信号处理、图像分析或神经网络架构研究者与开发者。

主要亮点

  • 多维支持:支持 1D、2D 和 3D 数据的分析与合成。
  • 硬件加速:通过 PyTorch 实现完整的 GPU 支持。
  • 可微分:支持梯度,适合集成到可训练的机器学习模型中。
  • 边界处理:提供基于稀疏矩阵的变换,无需填充即可处理边界。
  • 小波包:支持一维和二维小波包变换。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目