Skip to content

Latest commit

 

History

History
63 lines (50 loc) · 1.82 KB

README.md

File metadata and controls

63 lines (50 loc) · 1.82 KB

auto-isoTNS

project
│   README.md
│
└───tests
│
└───jax_opt
│   │
│   └───manifolds
│   │   │   base_manifold.py
│   │   │   stiefel.py
│   │   │   util.py
│   │  
│   └───optimizers
│       │   rsgd.py
│       │   rmom.py
│       │   radam.py
│       │   CG.py  (Not here yet)
│       │   ...
│   
└───tf_opt ( fork from QGOpt )
│   
└───disentangler
│   │   jax_disentangling.py
│   │   tf_disentangling.py
│
└───mosesmove
    │   tri_splitter.py
    │   greedy.py
    │   als.py
    │   gd.py

 

Idea

  • We separate out the implementations for optimizer classes, which are backend dependent.

  • The optimizer classes implement the Riemannian optimization on manifold choosen. We focus particularly on Stiefel manifold which is manifold of isometry. For standard optimizer, one can directly call from tf,jax,... instead.

  • The disentangler part is harder to implement in backend independent fashion and also is not necessary. Operation missing in implementing disentangling and direct reference from backend require. For example, to get the diagonal of a matrix, the norm of a tensor, ... I plan to have disentangler: tensor --> tensor. So basically, having disentangler implemented in all different backends.

  • The tri-splitter and mosesmove part should be completed within the tensornetwork library and should be backend independent, i.e. all function be: Node --> Node. (gd.py probbly not)

Target project

TODO:

  • setup test for optimizer and disentangler
  • fix the package module import
  • write jax opt README page
  • write disentangler README page