Closed xizhongchen closed 4 years ago
Could you try a smaller time, e.g., from 0 to 1?
It works for smaller time, (0 to 1) ! Why and how to make it work for 0~3?
The training sometimes could be tricky. When the time domain is small, it is easy to train. But the training becomes hard for long time prediction, and hyperparameters have to be carefully tuned.
On the other hand, for inverse problems, because we have extra points for the solution, which will make the training easier, although we have unknown coefficients. That is why in this case the inverse problem is easier to solve than the forward problem.
Thanks for the reply. Do you have any suggestions for tuning the hyperparameters. In fact, I also fail in predicting another ode system and thus turn to see how it works for the simple lorenz system. Is there a method that make time dimensionless and scale back later? Or seperate it into serveral small time interverals, I mean predict later time based on the previous time like the time advance Euler scheme?
I don't have a rule for the hyperparameter tuning. Each case is different. Besides the common hyperparameters, other things you can consider:
[1, 1, 1, 100]
model.compile(..., loss_weights=[1, 1, 1, 100])
I did try to adjust the loss weight as you can see in the above code. As you mentioned in one of the issues thread that good to check the train loss at step 0. It is good to scale the loss to be at the same order? Any reason why you give 100 for IC here? I will try the residual-based adaptive refinemen
I just use 100 as an example. Usually the IC/BC requires a larger weight than PDE.
I just use 100 as an example. Usually the IC/BC requires a larger weight than PDE.
I also notice this phenomenon numerically. Is there any theoretical explanation for this phenomenon?
@xizhongchen you could try to create a causal structure to the NN as shown in https://arxiv.org/pdf/2203.07404.pdf. In that paper they solve the lorenz attractor.
Or even just solving the interval from [0,1] and then expanding the domain gradually may work also.
Hi, Lu, thanks for the great work. I try to learn the examples and the code. To start, I modified the lorenz_inverse.py to be forward prolem. However, I cannot get the correct predictions for this simple ode system. I searched your answers to the issues here and tried serveral things, i.e. scale the solution, modified the loss_weight, increase the epochs. Still it is not working. Could you please have a look and tell me how to solve? Many thanks.