Skip to content

v1.1

Choose a tag to compare

@cako cako released this 30 Dec 02:44
· 17 commits to main since this release
1e4e674

What's Changed

🎉 New Features

PyTorch UDCT API Refactor & MNIST Example

  • Simplified UDCT Construction - The PyTorch UDCT class now uses simplified construction via num_scales and wedges_per_direction parameters, with optional angular_wedges_config. Window overlap is now auto-computed, and parameter/window initialization has been refactored for better usability.
  • Tensor Migration Support - Added UDCT.apply_to_tensors and UDCTModule._apply methods, enabling proper tensor migration so .to(), .half(), .float(), and .double() methods now correctly propagate to internal windows and ratios.
  • New MNIST Classification Example - Added examples/plot_10_udct_mnist.py, a complete MNIST classifier using UDCTModule as a feature extractor. The example includes:
    • Training and test loss/accuracy curves
    • t-SNE visualization of curvelet features
    • Misclassification analysis with worst-case examples
    • Demonstrates how curvelet coefficients can replace traditional convolutional layers
  • Modernized Autograd Bridge - Updated _UDCTFunction to use setup_context for modern PyTorch compatibility and enabled functorch vmap compatibility for efficient batch processing.
  • Enhanced Type System - Introduced _from_sparse helper to densify windows, updated typing to include MUDCTCoefficients, and preserved monogenic placeholders (NotImplemented in torch).

Full details: #47 by @cako

📚 Documentation Improvements

Major Documentation Refresh

  • README Enhancements - Revamped README with:
    • Added example links for direction_resolution, curvelet_vs_wavelet, and udct_module_gradcheck
    • Clarified FAQs wording
    • Expanded "Related Projects" table with language/invertible columns
    • Added Curvelet.jl to related projects
  • Documentation Structure - Replaced docs entry with docs/curvelet_faqs.rst in docs/index.rst, updated FAQs content and citations, switched to docs/table.md and removed obsolete docs/table.csv
  • Sphinx Documentation - Exposed curvelets.torch.UDCTModule in Sphinx docs, added :no-index: directives, and added torchvision and scikit-learn to documentation requirements
  • Licensing & Copyright - Clarified Curvelab licensing notes, updated reference access year to 2026, and updated copyright year to 2026 in LICENSE and src/curvelets/__init__.py

Full details: #45 by @cako

Documentation Polish

  • Standardization - Standardized "MATLAB" capitalization across README.md, docs/index.rst, and docs/table.md, including the related projects table
  • Formatting - Minor wording and formatting tweaks to Credits sections

Full details: #46 by @cako

🧪 Testing & Configuration

  • New Test Coverage - Added numpy↔torch UDCT parity tests, struct/vect round-trip tests, and dtype-transfer tests for UDCTModule
  • Configuration Updates - Updated .gitignore to ignore data/ directory, added mypy ignores for torchvision.* and sklearn.* imports

🔧 Code Quality

  • Streamlined Examples - Cleaned up unnecessary comments and results sections in example files to improve readability
  • Type Safety - Enhanced type hints throughout the codebase for better IDE support and static analysis

Contributors

Full Changelog: v...v...