TensorKitchen.jl: tensor decompositions in Julia

TensorKitchen.jl

TensorKitchen.jl is a Julia package for tensor decompositions.

Notes

The package is currently an early version and will be updated frequently in the near future.

The implementation is based on combining algebraic algorithms like ALS (see, e.g., the textbook by Kolda and Ballard) and Riemannian optimization from Manopt.jl.

What currently works is

  • Canonical Polyadic Decomposition (CPD)
  • Tucker Decomposition
  • Nonnegative Canonical Polyadic Decomposition (NNCPD)
  • Block Term Decomposition (BTD)
  • Join Decompositions

The next updates will include

  • Handling of swamps/plateaus in the optimization step
  • Documentation
  • Improved User Interface
  • GPU Support
  • LL1 Decomposition (3-way specialized BTD)
  • Symmetric CP / Waring Decomposition
  • Partially Symmetric CP
  • Tensor Trains