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 支援。
  • 可微分:支援梯度,適合整合至可訓練的機器學習模型中。
  • 邊界處理:提供基於稀疏矩陣的轉換,無需填充即可處理邊界。
  • 小波包:支援一維與二維小波包轉換。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案