-
Notifications
You must be signed in to change notification settings - Fork 41
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
inverse problem example #27
Comments
Hey, I uploaded one example for the inverse operator learning via DeepONet to my local fork ODE example Notebook. This example shows how to learn the inverse operator solely data driven. |
Hi @TomF98 , Thank you for uploading the example. Can you kindly explain what the following line does in your code, My understanding is u is the unknown variable to be inferred. So in pseduo torch, is this equivalent to u = torch.FloatTensor(...) trained_deeponet_model.eval() Backpropagate a loss against u. Thanks, |
Hey, in the inverse problem, we are generally given some solution data and want to determine some data functions or values, such that a given differential equation is fulfilled. E.g. in the ODE example, we would have the solution Therefore, we now have the solution Once the training is finished, we want to evaluate our DeepONet. And only here the method
But this would internally evaluated the branch net twice, once in each call. But since
This is also explained in the docs. Hope that helps you. |
Hi @TomF98 Thank you for the explanation. That helps. Alex |
Hi @TomF98, If you recall I tried to perform an inversion problem. My problem has 10 parameters. In your example, it's a scalar parameter. I tried to use Rn space to define the parameter, but there doesn't seem to be a corresponding domain class for Rn(?). You have 1D, 2D, and 3D only. Look forward to hearing from you. Thanks, |
Hi @dialuser, But in the case that you still need to define a domain of dimension 10 or higher, this is possible through domains of smaller dimension. In TorchPhysics the domains can be connected over the Cartesian product to get higher dimensional objects. For example:
This above works for all implemented domains (circle, triangle, ....) and should enable you to construct dimensions of arbitrary dimension. |
Hi @TomF98 , Thanks for your clarifications. To your question "Should your output or input be of dimension 10?" the input is of dimension 10 and the dimension of the output is basically infinite. I'm trying to first learn a mapping from input->output and then find the solution. This is kind of different from the initial advice you gave (i.e., backprop the loss function to find the parameters directly). I'm curious which one gives "better" solution. |
“from fdm_heat_equation import FDM, transform_to_points " There is the following error: ModuleNotFoundError: No module named 'fdm_heat_equation' |
Hi
Thanks for releasing the nice package. I'm interested in solving an inverse problem using deeponet. I wonder if you can provide some minimal example, for example, on the ODE problem that you already solved.
A.
The text was updated successfully, but these errors were encountered: