Skip to content

ShHsLin/auto_isoTNS

Repository files navigation

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

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages