Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tensor Train Optimiser #31

Merged
merged 30 commits into from
May 1, 2023
Merged

Tensor Train Optimiser #31

merged 30 commits into from
May 1, 2023

Conversation

VolodyaCO
Copy link
Contributor

@VolodyaCO VolodyaCO commented Dec 29, 2022

Description

Recently, @ArtemStrashko gave a talk on a tensor train optimiser for continuous functions. There's a library out there for it. This PR wraps this library to expose TTOpt as an optimiser.

Please verify that you have completed the following steps

  • I have self-reviewed my code.
  • I have included test cases validating introduced feature/fix.
  • I have updated documentation.

@VolodyaCO VolodyaCO self-assigned this Dec 29, 2022
@VolodyaCO VolodyaCO marked this pull request as ready for review January 2, 2023 14:14
@VolodyaCO
Copy link
Contributor Author

ttopt does not have type hints, which is why mypy is complaining. I'm not sure what to do here...

@VolodyaCO VolodyaCO requested review from AthenaCaesura and removed request for mstechly January 13, 2023 14:18

from orquestra.opt.api.functions import CallableWithGradient
from orquestra.opt.optimizers.pso.continuous_pso_optimizer import (
Bounds, # TODO: where should these Bounds live?
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are these bounds specific to the pso optimizer? if so then I think they're living in the correct place, we might just want to change the name to PSOBounds or something like that. Either way, we should take care of this to avoid having TODO's in our product code. 😆

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think they are also used here in TTOpt, so I'd think this Bounds class should be in a higher level of the directory tree, but am unsure where they should be.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Perhaps the bounds type could live in the __init__.py? Seems like a decent place for it.

src/orquestra/opt/optimizers/tensor_train_optimizer.py Outdated Show resolved Hide resolved
@AthenaCaesura
Copy link
Contributor

Sorry I left this here for so long! Getting back on it now!


from orquestra.opt.api.functions import CallableWithGradient
from orquestra.opt.optimizers.pso.continuous_pso_optimizer import (
Bounds, # TODO: where should these Bounds live?
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Perhaps the bounds type could live in the __init__.py? Seems like a decent place for it.

@AthenaCaesura
Copy link
Contributor

ok! Once tests pass you should be good to merge!

@VolodyaCO VolodyaCO merged commit ab6cd25 into main May 1, 2023
@VolodyaCO VolodyaCO deleted the feature/volodyaco/ttopt branch May 1, 2023 19:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants