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

Potential overlap of objectives and functionalities #4

Open
prisae opened this issue May 25, 2019 · 3 comments
Open

Potential overlap of objectives and functionalities #4

prisae opened this issue May 25, 2019 · 3 comments

Comments

@prisae
Copy link
Member

prisae commented May 25, 2019

Hi @leouieda!

I had a chat with @mrava87. We think that the objectives and the current implemented features of deeplook are more or less what PyLops, by heavily utilising scipy.sparse.linalg.LinearOperator, is trying to achieve; https://pylops.readthedocs.io.

Do you agree with us, or do you think deeplook is significantly different (from the current Project Goals it looks like an almost complete overlap)?

If you agree, what do you think of joining forces, in the spirit of open-source collaboration? I think PyLops is at a much more mature level currently than deeplook, so we could focus on implementing in PyLops any feature that it is currently missing in comparison with deeplook.

Just reaching out for your opinion.

@leouieda
Copy link
Contributor

Hi @prisae thanks for pointing this out! I haven't given this repo much attention and don't really know what I would want from it right now. I've had my eye on PyLops and will definitely check it out before proceeding any further on this.

I'll go back to working more on inversions soon. I would have no problem investing in PyLops :)

@leouieda
Copy link
Contributor

@prisae does pylops have any intention of support non-linear inversions?

@mrava87
Copy link

mrava87 commented Jun 26, 2019

Hi Leo,
yes, we would like to start supporting nonlinear inversion. So far I would say there two main ideas floating around in my mind:

  • support for nonlinear functionals in pylops with a NonLinearOperator class for different functionals with misfit + grad/jac/hessian being the equivalents LinearOperator and allowing basic operations like sum/subtraction of two functionals... In this case things could look very similar to what you have started doing in this repo but we will try to fully integrate it with pylops linear operators so that if you have a mixed linear/nonlinear cost function the linear terms can be just implemented with alreadyy existing pylops linear operators. A small example looking in that direction is https://github.com/mrava87/pylops_notebooks/blob/master/developement/SparseSolvers_Regression.ipynb. The person with more experience in this topic is Tristan (no idea why I can't tag him) and he is also keen to contribute to this part of the library, we will use the knowledge from https://www.slim.eos.ubc.ca/Publications/Public/TechReport/2012/vanleeuwen2012SEGparallel/vanleeuwen2012SEGparallel.pdf.
  • this is more early days but pylops is moving to GPUs (https://github.com/equinor/pylops-gpu) and using PyTorch to do so. While the idea of using PyTorch is that it has optimised linear algebra stuff for GPU computation, PyTorch allows also for Automatic Differentiation, which would probably make the nonlinear part even easier - instead of analytic gradients just get them from the PyTorch graph. I think this requires lots of testing but if you are interested I am very keen on making this happen :)

Did you have in mind anything along those lines? Or any different idea is welcome now that nothing is in place yet :)

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

No branches or pull requests

3 participants