diff --git a/docs/source/_rst/_tutorial.rst b/docs/source/_rst/_tutorial.rst index 87e6d9f6f..82a33adad 100644 --- a/docs/source/_rst/_tutorial.rst +++ b/docs/source/_rst/_tutorial.rst @@ -30,6 +30,7 @@ Neural Operator Learning :titlesonly: Two dimensional Darcy flow using the Fourier Neural Operator + One dimensional advection problem with data driven DeepONet neural operator Supervised Learning ------------------- diff --git a/docs/source/_rst/tutorials/tutorial8/tutorial.rst b/docs/source/_rst/tutorials/tutorial8/tutorial.rst new file mode 100644 index 000000000..91ae11f0c --- /dev/null +++ b/docs/source/_rst/tutorials/tutorial8/tutorial.rst @@ -0,0 +1,343 @@ +Tutorial: Advection Equation with data driven DeepONet neural operator +====================================================================== + +In this tutorial we will show how to solve the advection neural operator +problem using ``DeepONet``. Specifically, we will follow the original +formulation of Lu Lu, et al. in `DeepONet: Learning nonlinear operators +for identifying differential equations based on the universal +approximation theorem of operator `__. + +We import the relevant modules first. + +.. code:: ipython3 + + import matplotlib.pyplot as plt + from pina import Trainer, Condition + from pina.model import FeedForward, DeepONet + from pina.solvers import SupervisedSolver + from pina.problem import AbstractProblem + from pina.loss import LpLoss + import torch + +The advection mathematical problem and data loading +--------------------------------------------------- + +Consider the one dimensional advection problem: + +.. math:: + + + \frac{\partial u}{\partial t} + \frac{\partial u}{\partial x} = 0, \quad x\in[0,2], \;t\in[0,1] + +with periodic boundary condition. We choose the initial condition as a +Gaussian wave centered in :math:`\mu` and of width +:math:`\sigma^2=0.02`. We choose :math:`\mu` to be distributed according +to a Uniform distribution in :math:`[0.05, 1]`. Hence the initial +condition is: + +.. math:: + + + u_0(x) = \frac{1}{\sqrt{\pi\sigma^2}}e^{-\frac{(x - \mu)^2}{2\sigma^2}}, \quad \mu\sim U(0.05, 1), \; x\in[0,2]. + +The final objective is to learn the operator: + +.. math:: \mathcal{G} : u_0(x) → u(x, t = \delta) = u_0(x - \delta) + +where we set :math:`\delta=0.5` just for sake of the tutorial. Notice +that a general problem is to lear the operator mapping the initial +condition to a specific time instance. By fixing :math:`\delta` dataset +is composed of trajectories containing initial conditions as input, and +the same trajectories after :math:`\delta` time as output. + +The input/output shape will be ``[T, Nx, D]``, where ``T`` is the number +of trajectories, ``Nx`` the discretization along the spatial dimension, +and ``D`` the dimension of the input. In this case ``D=1`` since the +input is the one dimensional field value ``u``. The data for training +are stored in ``advection_input_training.pt``, +``advection_output_training.pt``; while the one for testing in +``advection_input_testing.pt``, ``advection_output_testing.pt``. We +train on ``T=100`` trajectories, and test on ``T=1000``. Notice that the +discretization in the spatial dimension is fixed to ``Nx=100``. + +We start by loading the data and perform some plotting. + +.. code:: ipython3 + + # loading training data + data_0_training = torch.load('advection_input_training.pt') + data_dt_training = torch.load('advection_output_training.pt') + + # loading testing data + data_0_testing = torch.load('advection_input_testing.pt') + data_dt_testing = torch.load('advection_output_testing.pt') + +The data are loaded, let’s visualize a few of the initial conditions! + +.. code:: ipython3 + + # storing the discretization in space: + Nx = data_0_training.shape[1] + + for idx, i in enumerate(torch.randint(0, data_0_training.shape[0], (3,))): + u0 = data_0_training[i].extract('ui') + u = data_dt_training[i].extract('u') + x = torch.linspace(0, 2, Nx) # the discretization in the spatial dimension is fixed + plt.subplot(3, 1, idx+1) + plt.plot(x, u0.flatten(), label=fr'$u_0(x)$') + plt.plot(x, u.flatten(), label=fr'$u(x, t=\delta)$') + plt.xlabel(fr'$x$') + plt.tight_layout() + plt.legend() + + + +.. image:: tutorial_files/tutorial_5_0.png + + +Great! We have created a travellig wave and we have visualized few +examples. Now we are going to use the data to train the network. + +DeepONet +-------- + +The classical formulation of DeepONet has two networks, namely +**trunck** and **branch** net (see below figure). + +.. raw:: html + +
+ +.. raw:: html + +
+ +.. raw:: html + +
+ +Image from: Moya, C.; Lin, G. Fed-DeepONet: Stochastic Gradient-Based +Federated Training of Deep Operator Networks. Algorithms 2022, 15, 325. + +.. raw:: html + +
+ +In our example the branch net will take as input a vector ``[B, Nx]`` +representing for each trajectory the field solution at time zero +discretize by ``Nx``. The trunk net will take as input ``[B, 1]`` +representing the temporal coordinate to evaluate the network. Here ``B`` +is the number of training samples in a batch of the total trajectories. + +Let us now write the advection problem. + +.. code:: ipython3 + + class AdvectionProblem(AbstractProblem): + + output_variables = ['u'] + input_variables = ['ui'] + + # problem condition statement + conditions = { + 'data': Condition(input_points = data_0_training, output_points = data_dt_training) + } + +Notice that the problem inherits from ``AbstractProblem``, since we only +train our model in a datadriven mode. + +We now proceede to create the trunk and branch networks. + +.. code:: ipython3 + + # create Trunck model + class TrunkNet(torch.nn.Module): + def __init__(self, **kwargs): + super().__init__() + self.trunk = FeedForward(**kwargs) + def forward(self, x): + t = torch.zeros(size=(x.shape[0], 1), requires_grad=False) + 0.5 # create an input of only 0.5 + return self.trunk(t) + + # create Branch model + class BranchNet(torch.nn.Module): + def __init__(self, **kwargs): + super().__init__() + self.branch = FeedForward(**kwargs) + def forward(self, x): + return self.branch(x.flatten(-2)) + +The ``TrunckNet`` is a simple ``FeedForward`` neural network with a +modified ``forward`` pass. In the forward pass we simply create a tensor +of :math:`0.5` repeated for each trajectory. + +The ``BranchNet`` is a simple ``FeedForward`` neural network with a +modified ``forward`` pass as well. The input is flatten across the last +dimension to obtain a vector of the same dimension as the +discretization, which represents the initial condition at the sensor +points. + +We now proceed to create the DeepONet model using the ``DeepONet`` class +from ``pina.model`` + +.. code:: ipython3 + + # initialize truck and branch net + trunk = TrunkNet( + layers=[256] * 4, + output_dimensions=Nx, # output the spatial discretization, must be equal to the one of branch net + input_dimensions=1, # time variable + func=torch.nn.ReLU + ) + branch = BranchNet( + layers=[256] * 4, + output_dimensions=Nx, # output the spatial discretization, must be equal to the one of trunck net + input_dimensions=Nx, # spatial discretization (supposing) data is alligned + func=torch.nn.ReLU + ) + + # initialize the DeepONet model + model = DeepONet(branch_net=branch, + trunk_net=trunk, + input_indeces_branch_net=['ui'], + input_indeces_trunk_net=['ui'], + reduction = lambda x : x, + aggregator = lambda x : torch.einsum('bm,bm->bm', x[0], x[1]) + ) + +The aggregation + reduction functions combine the output of the two +networks. In this case the output of the networks ar multiplied element +wise and the corresponding vector is not reduced (i.e. we obtain as +output the same as the trunck and branch output). + +The solver, as in the `FNO +tutorial `__, +is simply a ``SupervisedSolver`` trained with ``MSE`` loss. In the next +lines we define the solver first, and then we define the trainer which +is used for training the solver. + +The neural network training as been shown to better converge if some +tricks are applied during training. As an example, we will use batch +training with batch accumulation; and gradient clipping of the norm +(acting as regularizer to prevent overfitting). Thanks to the `PyTorch +Lightning `__ API, this +complex techniques are achieved by only changing some flags in the +Trainer. Notice that we do not hypersearch the best values, and we do +this optimizations just for demonstration. + +.. code:: ipython3 + + # define solver + solver = SupervisedSolver(problem=AdvectionProblem(), model=model) + + # define the trainer and train + # we train on cpu -> accelerator='cpu' + # we do not display model summary -> enable_model_summary=False + # we train for 100 epochs -> max_epochs=100 + # we use batch size 5 -> batch_size=5 + # we accumulate the gradient accross 20 batches -> accumulate_grad_batches=20 + # we clip the gradient norm to a max of 1 -> gradient_clip_algorithm='norm', gradient_clip_val=1 + trainer = Trainer(solver=solver, max_epochs=500, enable_model_summary=False, + accelerator='cpu', accumulate_grad_batches=20, batch_size=5, + gradient_clip_algorithm='norm', gradient_clip_val=1) + trainer.train() + + +.. parsed-literal:: + + GPU available: False, used: False + TPU available: False, using: 0 TPU cores + IPU available: False, using: 0 IPUs + HPU available: False, using: 0 HPUs + /Users/dariocoscia/anaconda3/envs/pina/lib/python3.9/site-packages/torch/_tensor.py:1295: UserWarning: The use of `x.T` on tensors of dimension other than 2 to reverse their shape is deprecated and it will throw an error in a future release. Consider `x.mT` to transpose batches of matrices or `x.permute(*torch.arange(x.ndim - 1, -1, -1))` to reverse the dimensions of a tensor. (Triggered internally at /Users/runner/work/_temp/anaconda/conda-bld/pytorch_1682343673238/work/aten/src/ATen/native/TensorShape.cpp:3575.) + ret = func(*args, **kwargs) + + +.. parsed-literal:: + + Epoch 499: : 20it [00:00, 364.36it/s, v_num=31, mean_loss=3.09e-5] + +.. parsed-literal:: + + `Trainer.fit` stopped: `max_epochs=500` reached. + + +.. parsed-literal:: + + Epoch 499: : 20it [00:00, 318.64it/s, v_num=31, mean_loss=3.09e-5] + + +Let us see the final train and test errors: + +.. code:: ipython3 + + # the l2 error + l2 = LpLoss() + + with torch.no_grad(): + train_err = l2(trainer.solver.neural_net(data_0_training), data_dt_training) + test_err = l2(trainer.solver.neural_net(data_0_testing), data_dt_testing) + + print(f'Training error: {float(train_err.mean()):.2%}') + print(f'Tresting error: {float(test_err.mean()):.2%}') + + +.. parsed-literal:: + + Training error: 0.39% + Tresting error: 1.03% + + +We can see that the testing error is slightly higher than the training +one, maybe due to overfitting. We now plot some results trajectories. + +.. code:: ipython3 + + for i in [1, 2, 3]: + plt.subplot(3, 1, i) + plt.plot(torch.linspace(0, 2, Nx), solver.neural_net(data_0_training)[10*i].detach().flatten(), label=r'$u_{NN}$') + plt.plot(torch.linspace(0, 2, Nx), data_dt_training[10*i].extract('u').flatten(), label=r'$u$') + plt.xlabel(r'$x$') + plt.legend(loc='upper right') + plt.show() + + + +.. image:: tutorial_files/tutorial_17_0.png + + + +.. image:: tutorial_files/tutorial_17_1.png + + + +.. image:: tutorial_files/tutorial_17_2.png + + +As we can see, they are barely indistinguishable. To better understand +the difference, we now plot the residuals, i.e. the difference of the +exact solution and the predicted one. + +.. code:: ipython3 + + for i in [1, 2, 3]: + plt.subplot(3, 1, i) + plt.plot(torch.linspace(0, 2, Nx), data_dt_training[10*i].extract('u').flatten() - solver.neural_net(data_0_training)[10*i].detach().flatten(), label=r'$u - u_{NN}$') + plt.xlabel(r'$x$') + plt.tight_layout() + plt.legend(loc='upper right') + + + +.. image:: tutorial_files/tutorial_19_0.png + + +What’s next? +------------ + +We have made a very simple example on how to use the ``DeepONet`` for +learning the advection neural operator. We suggest to extend the +tutorial using more complex problems and train for longer, to see the +full potential of neural operators. Another possible extension of the +tutorial is to train the network to be able to learn the general +operator, :math:`\mathcal{G}_t : u_0(x) → u(x, t) = u_0(x - t)`. diff --git a/docs/source/_rst/tutorials/tutorial8/tutorial_files/tutorial_17_0.png b/docs/source/_rst/tutorials/tutorial8/tutorial_files/tutorial_17_0.png new file mode 100644 index 000000000..57a373a34 Binary files /dev/null and b/docs/source/_rst/tutorials/tutorial8/tutorial_files/tutorial_17_0.png differ diff --git a/docs/source/_rst/tutorials/tutorial8/tutorial_files/tutorial_17_1.png b/docs/source/_rst/tutorials/tutorial8/tutorial_files/tutorial_17_1.png new file mode 100644 index 000000000..fb8fc89f6 Binary files /dev/null and b/docs/source/_rst/tutorials/tutorial8/tutorial_files/tutorial_17_1.png differ diff --git a/docs/source/_rst/tutorials/tutorial8/tutorial_files/tutorial_17_2.png b/docs/source/_rst/tutorials/tutorial8/tutorial_files/tutorial_17_2.png new file mode 100644 index 000000000..91522d0f0 Binary files /dev/null and b/docs/source/_rst/tutorials/tutorial8/tutorial_files/tutorial_17_2.png differ diff --git a/docs/source/_rst/tutorials/tutorial8/tutorial_files/tutorial_19_0.png b/docs/source/_rst/tutorials/tutorial8/tutorial_files/tutorial_19_0.png new file mode 100644 index 000000000..9b4f25a62 Binary files /dev/null and b/docs/source/_rst/tutorials/tutorial8/tutorial_files/tutorial_19_0.png differ diff --git a/docs/source/_rst/tutorials/tutorial8/tutorial_files/tutorial_5_0.png b/docs/source/_rst/tutorials/tutorial8/tutorial_files/tutorial_5_0.png new file mode 100644 index 000000000..d29aa6e03 Binary files /dev/null and b/docs/source/_rst/tutorials/tutorial8/tutorial_files/tutorial_5_0.png differ diff --git a/pina/model/deeponet.py b/pina/model/deeponet.py index 290c87787..c6873824d 100644 --- a/pina/model/deeponet.py +++ b/pina/model/deeponet.py @@ -5,6 +5,7 @@ from functools import partial + class MIONet(torch.nn.Module): """ The PINA implementation of MIONet network. @@ -62,6 +63,11 @@ def __init__(self, only a list of integers can be passed for ``input_indeces_branch_net`` and ``input_indeces_trunk_net``. + .. warning:: + In the forward pass we do not check if the network outputs of the single networks + are the same, and if this does not happen unwanted behaviour could result in the + forward pass not correctly extecuted. + :Example: >>> branch_net1 = FeedForward(input_dimensons=1, output_dimensions=10) >>> branch_net2 = FeedForward(input_dimensons=2, output_dimensions=10) @@ -112,17 +118,18 @@ def __init__(self, check_consistency(scale, bool) check_consistency(translation, bool) - # check trunk branch nets consistency - shapes = [] - for key, value in networks.items(): - check_consistency(value, (str, int)) - check_consistency(key, torch.nn.Module) - input_ = torch.rand(10, len(value)) - shapes.append(key(input_).shape[-1]) + # TODO: Fix it does not work + # # check trunk branch nets consistency + # shapes = [] + # for key, value in networks.items(): + # check_consistency(value, (str, int)) + # check_consistency(key, torch.nn.Module) + # input_ = torch.rand(10, len(value)) + # shapes.append(key(input_).shape[-1]) - if not all(map(lambda x: x == shapes[0], shapes)): - raise ValueError('The passed networks have not the same ' - 'output dimension.') + # if not all(map(lambda x: x == shapes[0], shapes)): + # raise ValueError('The passed networks have not the same ' + # 'output dimension.') # assign trunk and branch net with their input indeces self.models = torch.nn.ModuleList(networks.keys()) @@ -153,9 +160,11 @@ def _symbol_functions(**kwargs): } def _init_aggregator(self, aggregator): - aggregator_funcs = DeepONet._symbol_functions(dim=2) + aggregator_funcs = DeepONet._symbol_functions(dim=-1) if aggregator in aggregator_funcs: - aggregator_func = aggregator_funcs[aggregator] + def aggregator_func(tensors): + out_ = torch.stack(tensors, dim=-1) + return aggregator_funcs[aggregator](out_) elif isinstance(aggregator, nn.Module) or is_function(aggregator): aggregator_func = aggregator else: @@ -207,10 +216,13 @@ def forward(self, x): ] # aggregation - aggregated = self._aggregator(torch.dstack(output_)) + aggregated = self._aggregator(output_) + + # before apply the reduction we clone the tensor for backprop + aggregated = aggregated.as_subclass(torch.Tensor).clone() # reduce - output_ = self._reduction(aggregated).reshape(-1, 1) + output_ = self._reduction(aggregated).unsqueeze(-1) # scale and translate output_ *= self._scale @@ -330,6 +342,11 @@ def __init__(self, only a list of integers can be passed for ``input_indeces_branch_net`` and ``input_indeces_trunk_net``. + .. warning:: + In the forward pass we do not check if the network outputs of the single networks + are the same, and if this does not happen unwanted behaviour could result in the + forward pass not correctly extecuted. + :Example: >>> branch_net = FeedForward(input_dimensons=1, output_dimensions=10) >>> trunk_net = FeedForward(input_dimensons=1, output_dimensions=10) diff --git a/tests/test_model/test_deeponet.py b/tests/test_model/test_deeponet.py index cfba6149c..3892251cd 100644 --- a/tests/test_model/test_deeponet.py +++ b/tests/test_model/test_deeponet.py @@ -21,16 +21,19 @@ def test_constructor(): aggregator='*') -def test_constructor_fails_when_invalid_inner_layer_size(): - branch_net = FeedForward(input_dimensions=1, output_dimensions=10) - trunk_net = FeedForward(input_dimensions=2, output_dimensions=8) - with pytest.raises(ValueError): - DeepONet(branch_net=branch_net, - trunk_net=trunk_net, - input_indeces_branch_net=['a'], - input_indeces_trunk_net=['b', 'c'], - reduction='+', - aggregator='*') +# This test is wrong! The user could define a custom network and do a +# reshape at the end! A more general way to check input and output is +# needed +# def test_constructor_fails_when_invalid_inner_layer_size(): +# branch_net = FeedForward(input_dimensions=1, output_dimensions=10) +# trunk_net = FeedForward(input_dimensions=2, output_dimensions=8) +# with pytest.raises(ValueError): +# DeepONet(branch_net=branch_net, +# trunk_net=trunk_net, +# input_indeces_branch_net=['a'], +# input_indeces_trunk_net=['b', 'c'], +# reduction='+', +# aggregator='*') def test_forward_extract_str(): diff --git a/tests/test_model/test_mionet.py b/tests/test_model/test_mionet.py index 4e9c03c32..fbb234996 100644 --- a/tests/test_model/test_mionet.py +++ b/tests/test_model/test_mionet.py @@ -18,13 +18,13 @@ def test_constructor(): MIONet(networks=networks, reduction='+', aggregator='*') -def test_constructor_fails_when_invalid_inner_layer_size(): - branch_net1 = FeedForward(input_dimensions=1, output_dimensions=10) - branch_net2 = FeedForward(input_dimensions=2, output_dimensions=10) - trunk_net = FeedForward(input_dimensions=1, output_dimensions=12) - networks = {branch_net1: ['x'], branch_net2: ['x', 'y'], trunk_net: ['z']} - with pytest.raises(ValueError): - MIONet(networks=networks, reduction='+', aggregator='*') +# def test_constructor_fails_when_invalid_inner_layer_size(): +# branch_net1 = FeedForward(input_dimensions=1, output_dimensions=10) +# branch_net2 = FeedForward(input_dimensions=2, output_dimensions=10) +# trunk_net = FeedForward(input_dimensions=1, output_dimensions=12) +# networks = {branch_net1: ['x'], branch_net2: ['x', 'y'], trunk_net: ['z']} +# with pytest.raises(ValueError): +# MIONet(networks=networks, reduction='+', aggregator='*') def test_forward_extract_str(): diff --git a/tutorials/README.md b/tutorials/README.md index 601b5e160..447a5f0b1 100644 --- a/tutorials/README.md +++ b/tutorials/README.md @@ -21,6 +21,7 @@ Resolution of a 2D Poisson inverse problem |[[.ipynb](tutorial7/tutorial.ipynb), | Description | Tutorial | |---------------|-----------| Two dimensional Darcy flow using the Fourier Neural Operator         |[[.ipynb](tutorial5/tutorial.ipynb), [.py](tutorial5/tutorial.py), [.html](http://mathlab.github.io/PINA/_rst/tutorial5/tutorial.html)]| +One dimensional advection problem with data driven DeepONet neural operator         |[[.ipynb](tutorial8/tutorial.ipynb), [.py](tutorial8/tutorial.py), [.html](http://mathlab.github.io/PINA/_rst/tutorial8/tutorial.html)]| ## Supervised Learning | Description | Tutorial | diff --git a/tutorials/tutorial8/advection_input_testing.pt b/tutorials/tutorial8/advection_input_testing.pt new file mode 100644 index 000000000..d0e469d94 Binary files /dev/null and b/tutorials/tutorial8/advection_input_testing.pt differ diff --git a/tutorials/tutorial8/advection_input_training.pt b/tutorials/tutorial8/advection_input_training.pt new file mode 100644 index 000000000..e64d3af32 Binary files /dev/null and b/tutorials/tutorial8/advection_input_training.pt differ diff --git a/tutorials/tutorial8/advection_output_testing.pt b/tutorials/tutorial8/advection_output_testing.pt new file mode 100644 index 000000000..80210ea3d Binary files /dev/null and b/tutorials/tutorial8/advection_output_testing.pt differ diff --git a/tutorials/tutorial8/advection_output_training.pt b/tutorials/tutorial8/advection_output_training.pt new file mode 100644 index 000000000..f561ff534 Binary files /dev/null and b/tutorials/tutorial8/advection_output_training.pt differ diff --git a/tutorials/tutorial8/deeponet.png b/tutorials/tutorial8/deeponet.png new file mode 100644 index 000000000..acab017de Binary files /dev/null and b/tutorials/tutorial8/deeponet.png differ diff --git a/tutorials/tutorial8/tutorial.ipynb b/tutorials/tutorial8/tutorial.ipynb new file mode 100644 index 000000000..a1b84c381 --- /dev/null +++ b/tutorials/tutorial8/tutorial.ipynb @@ -0,0 +1,441 @@ +{ + "cells": [ + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Tutorial: Advection Equation with data driven DeepONet neural operator\n", + "\n", + "In this tutorial we will show how to solve the advection neural operator problem using `DeepONet`. Specifically, we will follow the original formulation of Lu Lu, et al. in [*DeepONet: Learning nonlinear operators for identifying differential equations based on the universal approximation theorem of operator*](https://arxiv.org/abs/1910.03193).\n", + "\n", + "We import the relevant modules first." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import matplotlib.pyplot as plt\n", + "from pina import Trainer, Condition\n", + "from pina.model import FeedForward, DeepONet\n", + "from pina.solvers import SupervisedSolver\n", + "from pina.problem import AbstractProblem\n", + "from pina.loss import LpLoss\n", + "import torch" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## The advection mathematical problem and data loading\n", + "\n", + "Consider the one dimensional advection problem:\n", + "$$\n", + "\\frac{\\partial u}{\\partial t} + \\frac{\\partial u}{\\partial x} = 0, \\quad x\\in[0,2], \\;t\\in[0,1]\n", + "$$\n", + "with periodic boundary condition. We choose the initial condition as a Gaussian wave centered in\n", + "$\\mu$ and of width $\\sigma^2=0.02$. We choose $\\mu$ to be distributed according to a Uniform distribution in $[0.05, 1]$. Hence the initial condition is:\n", + "$$\n", + "u_0(x) = \\frac{1}{\\sqrt{\\pi\\sigma^2}}e^{-\\frac{(x - \\mu)^2}{2\\sigma^2}}, \\quad \\mu\\sim U(0.05, 1), \\; x\\in[0,2].\n", + "$$\n", + "\n", + "The final objective is to learn the operator:\n", + "\n", + "$$\\mathcal{G} : u_0(x) → u(x, t = \\delta) = u_0(x - \\delta)$$\n", + "\n", + "where we set $\\delta=0.5$ just for sake of the tutorial. Notice that a general problem is to lear the operator mapping the initial condition to a specific time instance. By fixing $\\delta$ dataset is composed of trajectories containing initial conditions as input, and the same trajectories after $\\delta$ time as output. \n", + "\n", + "The input/output shape will be `[T, Nx, D]`, where `T` is the number of trajectories, `Nx` the discretization along the spatial dimension, and `D` the dimension of the input. In this case `D=1` since the input is the one dimensional field value `u`. The data for training are stored in `advection_input_training.pt`, `advection_output_training.pt`; while the one for testing in `advection_input_testing.pt`, `advection_output_testing.pt`. We train on `T=100` trajectories, and test on `T=1000`. Notice that the discretization in the spatial dimension is fixed to `Nx=100`.\n", + "\n", + "We start by loading the data and perform some plotting." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "# loading training data\n", + "data_0_training = torch.load('advection_input_training.pt')\n", + "data_dt_training = torch.load('advection_output_training.pt')\n", + "\n", + "# loading testing data\n", + "data_0_testing = torch.load('advection_input_testing.pt')\n", + "data_dt_testing = torch.load('advection_output_testing.pt')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The data are loaded, let's visualize a few of the initial conditions!" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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/z15eXkMHz78puexh2vDWjf7vqiIa83eLF68mJEjR7J48eIiw9/cSGZmJseOHXOo6+JGdu/ebfmc1fHa2Lx5M0ePHi3VH4L2cl2oqsq4ceNYsWIFGzdupGHDhjfdx2bzjErrllHBlixZorq6uqoLFy5U9+/fr44ZM0b19fVVk5KSVFVV1UcffVSdOHGipfzWrVtVJycnddasWeqBAwfUyZMnq87OzurevXstZd555x3V19dX/fHHH9W///5bHTRokNqwYUM1Jyenyj+fNayti3feeUd1cXFRf/jhB/Xs2bOWJSMjQ1VVVc3IyFBffvllddu2bWp8fLy6fv16tV27duott9yi5ubm6vIZS8vaupgyZYq6Zs0a9dixY+quXbvUoUOHqm5ubuq+ffssZez1ulBV6+vjittvv1196KGHrttur9dGRkaGGhsbq8bGxqqA+sEHH6ixsbHqyZMnVVVV1YkTJ6qPPvqopfzx48dVDw8PdcKECeqBAwfUuXPnqkajUY2KirKUuVnd2jJr6+N///uf6uTkpM6dO7fId0ZqaqqlzEsvvaRGR0er8fHx6tatW9VevXqpfn5+anJycpV/PmtYWxcffvihunLlSvXIkSPq3r171eeff141GAzq+vXrLWXs9dqwti6uGD58uNqxY8dij2mv18Uzzzyj+vj4qNHR0UWu+ezsbEsZe8kz7CaxU1VVnTNnjlq/fn3VxcVFjYyMVLdv3255r1u3buqIESOKlF+6dKkaFhamuri4qC1btlR//fXXIu+bzWb1zTffVAMCAlRXV1e1Z8+e6qFDh6rio5SbNXURGhqqAtctkydPVlVVVbOzs9U+ffqoderUUZ2dndXQ0FD1ySeftPkvpSusqYvx48dbygYEBKh33XWXGhMTU+R49nxdqKr1/04OHjyoAuratWuvO5a9XhtXhqj453Lls48YMULt1q3bdfu0adNGdXFxURs1aqR++eWX1x23pLq1ZdbWR7du3Uosr6racDBBQUGqi4uLWrduXfWhhx5Sjx49WrUfrAysrYt3331Xbdy4serm5qbWqlVL7d69u7px48brjmuP10ZZ/p2kpqaq7u7u6qefflrsMe31uiiuHoAi3wP2kmcolz+QEEIIIYSwc3bxjJ0QQgghhLg5SeyEEEIIIRyEJHZCCCGEEA5CEjshhBBCCAchiZ0QQgghhIOQ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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# storing the discretization in space:\n", + "Nx = data_0_training.shape[1]\n", + "\n", + "for idx, i in enumerate(torch.randint(0, data_0_training.shape[0], (3,))):\n", + " u0 = data_0_training[i].extract('ui')\n", + " u = data_dt_training[i].extract('u')\n", + " x = torch.linspace(0, 2, Nx) # the discretization in the spatial dimension is fixed\n", + " plt.subplot(3, 1, idx+1)\n", + " plt.plot(x, u0.flatten(), label=fr'$u_0(x)$')\n", + " plt.plot(x, u.flatten(), label=fr'$u(x, t=\\delta)$')\n", + " plt.xlabel(fr'$x$')\n", + " plt.tight_layout()\n", + " plt.legend()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Great! We have created a travellig wave and we have visualized few examples. Now we are going to use the data to train the network.\n", + "\n", + "## DeepONet\n", + "The classical formulation of DeepONet has two networks, namely **trunck** and **branch** net (see below figure).\n", + "\n", + "
\n", + "\"image\n", + "
\n", + "
\n", + "\n", + "Image from: Moya, C.; Lin, G. Fed-DeepONet: Stochastic Gradient-Based Federated Training of Deep Operator Networks. Algorithms 2022, 15, 325.\n", + "\n", + "
\n", + "\n", + "In our example the branch net will take as input a vector `[B, Nx]` representing for each trajectory the field solution at time zero discretize by `Nx`. The trunk net will take as input `[B, 1]` representing the temporal coordinate to evaluate the network. Here `B` is the number of training samples in a batch of the total trajectories.\n", + "\n", + "Let us now write the advection problem.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "class AdvectionProblem(AbstractProblem):\n", + "\n", + " output_variables = ['u']\n", + " input_variables = ['ui']\n", + "\n", + " # problem condition statement\n", + " conditions = {\n", + " 'data': Condition(input_points = data_0_training, output_points = data_dt_training)\n", + " }" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Notice that the problem inherits from `AbstractProblem`, since we only train our model in a datadriven mode.\n", + "\n", + "We now proceede to create the trunk and branch networks." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "# create Trunck model\n", + "class TrunkNet(torch.nn.Module):\n", + " def __init__(self, **kwargs):\n", + " super().__init__()\n", + " self.trunk = FeedForward(**kwargs)\n", + " def forward(self, x):\n", + " t = torch.zeros(size=(x.shape[0], 1), requires_grad=False) + 0.5 # create an input of only 0.5\n", + " return self.trunk(t)\n", + "\n", + "# create Branch model\n", + "class BranchNet(torch.nn.Module):\n", + " def __init__(self, **kwargs):\n", + " super().__init__()\n", + " self.branch = FeedForward(**kwargs)\n", + " def forward(self, x):\n", + " return self.branch(x.flatten(-2)) " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The `TrunckNet` is a simple `FeedForward` neural network with a modified `forward` pass. In the forward pass we simply create a tensor of $0.5$ repeated for each trajectory.\n", + "\n", + "The `BranchNet` is a simple `FeedForward` neural network with a modified `forward` pass as well. The input is flatten across the last dimension to obtain a vector of the same dimension as the discretization, which represents the initial condition at the sensor points.\n", + "\n", + "We now proceed to create the DeepONet model using the `DeepONet` class from `pina.model`" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "# initialize truck and branch net\n", + "trunk = TrunkNet(\n", + " layers=[256] * 4,\n", + " output_dimensions=Nx, # output the spatial discretization, must be equal to the one of branch net \n", + " input_dimensions=1, # time variable\n", + " func=torch.nn.ReLU\n", + ")\n", + "branch = BranchNet(\n", + " layers=[256] * 4,\n", + " output_dimensions=Nx, # output the spatial discretization, must be equal to the one of trunck net \n", + " input_dimensions=Nx, # spatial discretization (supposing) data is alligned\n", + " func=torch.nn.ReLU\n", + ")\n", + "\n", + "# initialize the DeepONet model\n", + "model = DeepONet(branch_net=branch,\n", + " trunk_net=trunk,\n", + " input_indeces_branch_net=['ui'],\n", + " input_indeces_trunk_net=['ui'],\n", + " reduction = lambda x : x, \n", + " aggregator = lambda x : torch.einsum('bm,bm->bm', x[0], x[1])\n", + " )" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The aggregation + reduction functions combine the output of the two networks. In this case the output of the networks ar multiplied element wise and the corresponding vector is not reduced (i.e. we obtain as output the same as the trunck and branch output).\n", + "\n", + "The solver, as in the [FNO tutorial](https://mathlab.github.io/PINA/_rst/tutorials/tutorial5/tutorial.html), is simply a `SupervisedSolver` trained with `MSE` loss. In the next lines we define the solver first, and then we define the trainer which is used for training the solver. \n", + "\n", + "The neural network training as been shown to better converge if some tricks are applied during training. As an example, we will use batch training with batch accumulation; and gradient clipping of the norm (acting as regularizer to prevent overfitting). Thanks to the [PyTorch Lightning](https://lightning.ai/docs/pytorch/stable/) API, this complex techniques are achieved by only changing some flags in the Trainer. Notice that we do not hypersearch the best values, and we do this optimizations just for demonstration." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "GPU available: False, used: False\n", + "TPU available: False, using: 0 TPU cores\n", + "IPU available: False, using: 0 IPUs\n", + "HPU available: False, using: 0 HPUs\n", + "/Users/dariocoscia/anaconda3/envs/pina/lib/python3.9/site-packages/torch/_tensor.py:1295: UserWarning: The use of `x.T` on tensors of dimension other than 2 to reverse their shape is deprecated and it will throw an error in a future release. Consider `x.mT` to transpose batches of matrices or `x.permute(*torch.arange(x.ndim - 1, -1, -1))` to reverse the dimensions of a tensor. (Triggered internally at /Users/runner/work/_temp/anaconda/conda-bld/pytorch_1682343673238/work/aten/src/ATen/native/TensorShape.cpp:3575.)\n", + " ret = func(*args, **kwargs)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 499: : 20it [00:00, 364.36it/s, v_num=31, mean_loss=3.09e-5] " + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "`Trainer.fit` stopped: `max_epochs=500` reached.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 499: : 20it [00:00, 318.64it/s, v_num=31, mean_loss=3.09e-5]\n" + ] + } + ], + "source": [ + "# define solver \n", + "solver = SupervisedSolver(problem=AdvectionProblem(), model=model)\n", + "\n", + "# define the trainer and train\n", + "# we train on cpu -> accelerator='cpu'\n", + "# we do not display model summary -> enable_model_summary=False\n", + "# we train for 100 epochs -> max_epochs=100\n", + "# we use batch size 5 -> batch_size=5\n", + "# we accumulate the gradient accross 20 batches -> accumulate_grad_batches=20\n", + "# we clip the gradient norm to a max of 1 -> gradient_clip_algorithm='norm', gradient_clip_val=1\n", + "trainer = Trainer(solver=solver, max_epochs=500, enable_model_summary=False,\n", + " accelerator='cpu', accumulate_grad_batches=20, batch_size=5,\n", + " gradient_clip_algorithm='norm', gradient_clip_val=1)\n", + "trainer.train()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let us see the final train and test errors:" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Training error: 0.39%\n", + "Tresting error: 1.03%\n" + ] + } + ], + "source": [ + "# the l2 error\n", + "l2 = LpLoss()\n", + "\n", + "with torch.no_grad():\n", + " train_err = l2(trainer.solver.neural_net(data_0_training), data_dt_training)\n", + " test_err = l2(trainer.solver.neural_net(data_0_testing), data_dt_testing)\n", + "\n", + "print(f'Training error: {float(train_err.mean()):.2%}')\n", + "print(f'Tresting error: {float(test_err.mean()):.2%}')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can see that the testing error is slightly higher than the training one, maybe due to overfitting. We now plot some results trajectories." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAhYAAACsCAYAAAAnieXpAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/SrBM8AAAACXBIWXMAAA9hAAAPYQGoP6dpAAAsNklEQVR4nO3de3gU1f0/8PfM7C0JCSEJuUGICZcghAQBEwERkJuIlOhXRCqIqLX1C63+rK0XnsqX0hasVq0UxaqI1gqKFrAqQUQCIqAICRAUJDFgIAn33JO9zJzfH5ssrElINtnNbML79Tz7JDtzduZz9szsfObMTRJCCBARERF5gax3AERERNR5MLEgIiIir2FiQURERF7DxIKIiIi8hokFEREReQ0TCyIiIvIaJhZERETkNUwsiIiIyGsM7TkzTdNQVFSE4OBgSJLUnrMmIiKiVhJCoKKiArGxsZDly/dJtGtiUVRUhLi4uPacJREREXlJYWEhevbsedkybUosli5diieeeAIPPfQQXnjhhWbLBwcHuwILCQlpy6yJiIionZSXlyMuLs61Hb+cVicWe/bswSuvvIKUlJQWf6b+8EdISAgTCyIiog6mJacxtOrkzcrKStx111149dVX0a1bt9ZMgkh3miZQa1f1DoOIqFNpVY/FvHnzMGXKFIwfPx5/+tOfmixntVphtVpd78vLy1szOyKvcagavs4rxsFvtsGavxOqw474ifNx68hknlBMROQFHicWa9aswb59+7Bnz55myy5ZsgSLFi1qVWBE3lRaegF71vwJYSVfYojIwwjJ7hwhA2c2f4JVhx7C7Xf/BsEBJn0DJSLq4CQhhGhp4cLCQgwbNgybN292nVsxZswYDB48uNGTNxvrsYiLi0NZWRnPsaB2U1lVhaMvTME19uyLw5RQ1MRcC+V8HsKqCwAAu5Uh6Hr7i7j66kF6hUpEPqSqKux2u95h+C2j0QhFURodV15ejq5du7Zo++1RYrF+/XrceuutbjNWVRWSJEGWZVit1iaD8jQwIm+otVqx//nbkF67A9Uw48S1TyJx2GQYIvsBkgQ4rDj58VJ0z34RJjhQLcw4OHgh0m+dp3foROQlQgiUlJSgtLRU71D8XmhoKKKjoxscGvZZYlFRUYHjx4+7DZs7dy769++Pxx57DMnJyZf9PBMLak92h4rdL/wcoyozYRMGFE5+E72vu6XRshWF36L4379Cv9r9sAkFBbf+F0mDR7ZzxETkC8XFxSgtLUVkZCQCAwN5PlUjhBCorq7G6dOnERoaipiYGLfxnmy/PTrHIjg4uEHyEBQUhPDw8GaTCqL2pKkadrz0IMZWZkIVEgrGvIikJpIKAAiOG4Auv89Czt9+hsFVX8C04Zeo7LMLXbo0f802EfkvVVVdSUV4eLje4fi1gIAAAMDp06cRGRl52SMQl8NnhVCntHXlAow9/y4A4HDaX5A09q5mPyPJMhLvfQ1n0Q0JohD7Xn/I12ESkY/Vn1MRGBiocyQdQ/331JZzUdqcWGRlZbXorptE7eVo7h6MPrECAHAw+TEMnPK/Lf5sSHg0zk94HgBww4UP8OWmNT6JkYjaFw9/tIw3vif2WFCnU/XRkzBIGg50GYlBtz/p8ef7jbwV2TEzAAB9dz6OwhOF3g6RiKjTYmJBncqhLzZgcO3XsAsFERlPt3o6g+Y8jxNKL0RKF1D41gOwO3iHTiKilmBiQZ2GUB0IzFoIANgbeRti+7T+fhQGSxBMM16DHQpG2HZix4crvRUmEVGnxsSCOo3cT1YgQS1AmQhCn+mL2zy9yH7pOJx4LwCg58FlsPLGOkTUzjIzMxEUFARN01zDcnNzIUkSzp49q2NkTWNiQZ2Co6YcsfueBQDkXHU/IiJjmvlEy/TNeBxVsKCvOI7dG//tlWkSEbVUdnY2kpOTIcsXN9c5OTmIjY1FRESEjpE1jYkFdQqHP/gzwsUFFCIKQ6b/3mvTtYREIO+qnwMAIrOX8VwLok5ACIFqm0OXlwf3pATgTCJSU1Pdhu3fv9817LnnnoMsyzh9+jQAwOFwIDIy0lW2ufG+0KqnmxL5k9pzheiT5zwH4vtBj2Jcly5enX6/aY+j9u9v42qRhy82v4dRk2d6dfpE1L5q7CoGPLVJl3l/+8dJCDS1fNObnZ2N3/zmN27DcnJyMGzYMADOwyIpKSnYtGkTZs+ejSNHjqBv376uss2N9wX2WFCHl7fuz7DAhv1Sf4yceq/Xpx/QLQpHek4HAHTb8wJUVWvmE0REbVdVVYX8/Hy3HgtN05Cdne0alpubi0cffRSffPKJ6/2gQRdPXG9uvC+wx4I6NEfVBSSeWAcAODfs/8HiwZ6AJ/rc+iSsy95DsnYYO7eux4jxt/lkPkTkewFGBd/+cZJu826pgoICaJqG/v37u4Zt2rQJ586dQ2pqKoQQKCgowIwZM7B48WJomobc3FzXIzaaG+8r7LGgDu3oplcQiFrkoydGTLjdZ/MJCu+JwzEZAIDAXc9B0zw7TkpE/kOSJASaDLq8PLmzZXh4OCRJwp49ewAAu3fvxvz582GxWNCvXz8UFBQgLi4ORqMRQ4cOxe7du3Hw4EFXj0Rz432FiQV1XJqKbofeAAD8kDjLZ70V9RIyFsAuFAxWD+Lr7R/7dF5ERDExMVi8eDFmzZqF+Ph4rFixAtOnT0dycjIURXHrfZg8eTI2btyIQ4cOuYY1N95XeCiEOqyCnR8gQS1BqQhC6pRf+nx+IVEJOBB1C1JOb4Dxy79BjJ7C5w8QkU8tWLAACxYsaHTcpYnDpEmT8PTTT6Ompsb1FNfmxvsKeyyow7LvfAkAsDdiGiLDw9plnr1+tgCakDDUvg+HD2W3yzyJiBpzaeIQGRkJi8WCAQMGtHi8r7DHgjqks3l70a86Gw4ho+fE3zT/AS8J7ZmEQ8HXYWDlLpzNWgEk/7Pd5k1EdKl33nnH7f0333zj0XhfYY8FdUhFm5yPNt8TMBJJSVe367wNac5LWged+RiVlRXtOm8iIn/HxII6nJoLp5B0JhMAIF33v+0+/34jb8MpqTtCpUoc+PStdp8/EZE/Y2JBHc73n7wIM+z4Tu6Da0fd1O7zlxQDChPuAACEfvuvdp8/EZE/Y2JBHYpw2NAjz3nc8NTVc6Eo+izCvSf9CnahYIDjOxzdv1uXGIiI/BETC+pQju74ABHiPM6Krhh681zd4ugW1Qu5wdcDAM5tX6FbHERE/oaJBXUo9m+c5zTkdr8ZwUFBusZiuu4+AEDy2UxUVZTqGgsRkb9gYkEdRuWZH9G/YhcAIGLUfTpHAwwYcQsKpVh0kWpwaNNKvcMhIvILTCyow/hh86tQJIEDygAMTBmmdziQZAWFiXcCAMIPvw0IPj+EiIiJBXUMmobu+WsBAOf63uE3t9JOuukBWIURvR35+GH/dr3DISLSHRML6hBO7t+MGLUYFSIAAyferXc4LuHdY5ATMgYAcP6L1/QNhojIDzCxoA7hwo7XAQD7Qm5EZJhvH6DjKVPaHABA/3ObYa0u1zkaIiJ9MbEgv2evuoA+57YCAMxp9+gbTCNSRkxBIaLRBTU4svXfeodDRKQrJhbk9/I+WwkLbMhDLwwdPk7vcBpQFBkFPacBAEwHV+scDRF1JpmZmQgKCoKmaa5hubm5kCQJZ8+e1TGypvHppuT3Ag8577RZ0Ot/0Meg6BxN43qNvQ/aW/9E/9r9OFt4GBFx/fUOiYiaIgRgr9Zn3sZAwIOTz7Ozs5GcnAxZvtgPkJOTg9jYWERERPgiwjZjYkF+7XzeHsTb8mAVBvQef6/e4TTpqt5JyDZdg2vs+/DjltcQcc+zeodERE2xVwN/idVn3k8WAaaW39wvJycHqampbsP279/fYJg/4aEQ8mtFW/8JANhjGYHEXr10jubyKgc472nR8/g6CNWhczRE1BlkZ2cjJSXFbVhjyYY/YY8F+S1hr0H8yY8BAPaUu3SOpnkp436OspxFiMRZFOzZiITrpuodEhE1xhjo7DnQa94tVFVVhfz8fLckQtM0ZGdn47779L/7cFOYWJDf+nHn+4hHFYpEOIaOzdA7nGZ1DQnGttAJGF22HpW7VwFMLIj8kyR5dDhCLwUFBdA0Df37Xzxna9OmTTh37pxf91jwUAj5LVvdA8cORkxBSKBF52haJug65z0t+pVug7XinM7REFFHFh4eDkmSsGfPHgDA7t27MX/+fFgsFvTr10/n6JrGxIL8Uu3Z4+hd4VyZwkbeo28wHrgmbQyOSvEww468Lav0DoeIOrCYmBgsXrwYs2bNQnx8PFasWIHp06cjOTkZiuKfV8gBPBRCfur4lteQBIFvpGQMGTxE73BaTFFkHI+7FX1/fAFB364GMn6rd0hE1IEtWLAACxYs0DsMj7DHgvyPpqHbUecDx071/h8osn88cKylEsfdC5tQcJXtKM7n79U7HCKidsXEgvzOhe+2ItLhfODYgBtn6x2OxxLj47HHPBzAxctliYiuFEwsyO+c2e584NiuwDFIiO2uczStY627PDb+xH8hbDrd4Y+ISAceJRZLlizBtddei+DgYERGRiIjIwNHjhzxVWx0BRK1Zeh1arPzzTWz9A2mDYaOvQ1FIhzBqMKPO9/TOxwionbjUWKxbds2zJs3D7t378bmzZtht9sxceJEVFVV+So+usKc+OId5wPHRA9cN2qi3uG0WtcgC/ZH3AIAcNRdNktEdCXw6KqQzMxMt/erVq1CZGQk9u7dixtuuMGrgdGVSWT/CwCQGzkVGQEmnaNpm/Dr74W2/i30rtwL6+k8mCP76B0S0RXr0qeDUtO88T216XLTsrIyAEBYWFij461WK6xWq+t9eXl5W2ZHnZytOBe9qg/BIWREj7pH73DabGhqKvZ8mIp0kYPjW/6JfjP/qndIRFcck8kEWZZRVFSE7t27w2QyQfLg6aJXCiEEbDYbzpw5A1mWYTK1fseu1YmFpml4+OGHMXLkSCQnJzdaZsmSJVi0aFGrg6Mry4nNLyERwJfKMFyf3PEfO67IEk73vQP4Pgfd894H1L8ACm8dQ9SeZFlGQkICiouLUVSk0/NBOpDAwED06tXL7THtnpKEEKI1H3zwwQexceNG7NixAz179my0TGM9FnFxcSgrK0NISEjrIqbOyVaNqiV9ECSqsG7gP3Dr9I53mWljjp06j+CXUhAuVeDCtH+h2zU/0zskoiuSEAIOhwOqquodit9SFAUGg6HRHp3y8nJ07dq1RdvvVu0+zZ8/Hx999BG2b9/eZFIBAGazGWazuTWzoCvMqV3vIEpU4biIxPAJ/6N3OF5zVVQYPgoaj1uq1+HCjteZWBDpRJIkGI1GGI1GvUPp9Dzq6xBCYP78+Vi3bh0+//xzJCQk+CouusLYv3Leu+Kb8GmIDm35Y4U7AsO1zgeTxZ/bDlFRonM0RES+5VFiMW/ePLz99tt45513EBwcjJKSEpSUlKCmpsZX8dEVoPbHfehZ/S1sQkHMmPv1DsfrRo0YhWzRDwo0nMx6Xe9wiIh8yqPE4uWXX0ZZWRnGjBmDmJgY1+vdd9/1VXx0BTj52UsAgO2G4bguOUnnaLwvyGzAkR63AQACD7wFaDzGS0Sdl8eHQhp73XPPPT4Kjzq92nLE/vhfAEDloDmQO9gDx1oqafw9OC+6IMxegvL9H+odDhGRz/BZIaSroi/eQgBqkS9icf24znti4+CEaHweOBkAULZtuc7REBH5DhML0o8QkPauBABkR92GiGCLzgH5jiRJ6HL9A1CFhLjSPbAX5+odEhGRTzCxIN1U/bAbMbX5qBVGxI+9T+9wfO7G9GHYJqcBAE5uelHnaIiIfIOJBemmZMs/AABZxlEY1r/zX7psMsg4lzwXABB9bD1Qc0HfgIiIfICJBelCLT2B+KKNAADrNfdeMffuHz0hA4dFHCyw4uTW1/QOh4jI65hYkC6Of/wsDFCxBwNx47ib9A6n3USGBGB/zAwAgCX7dV56SkSdDhMLanei5gKij64BAJwY8AsEW66sW+xePel+lIoghNuLUXrgI73DISLyKiYW1O7yNy5DIGrwvYjD2Ck/1zucdpeSEIOtQc5emrIsXnpKRJ0LEwtqV8Jeg7Bc5yWmR3rfi9CgK/MhdV2ufxCqkBBf+hVsJw/oHQ4RkdcwsaB2lf/ZSoRpF1AkwnHdzx7QOxzdjEkfis+VEQCA4g8X6RwNEZH3MLGg9qNpCPzG+VyQAz1/ju6hXXQOSD9GRUZV+v+DJiTEn/oMtqKDeodEROQVTCyo3eTteA+x6gmUiSCkTHtI73B0d9ONN2KLPBwAULyBvRZE1DkwsaD2IQSw4wUAwN7I2xAb2V3fePyAxaig6rpH6notNsPOXgsi6gSYWFC7yN+zEX1s38EqjOh7y2/1DsdvXNprUfThH3WOhoio7ZhYkM8JTYX06R8AAHvCbkFcfOe/fXdLWYwKKq97BAAQX/Ip7EV8OBkRdWxMLMjnDmx8DYmOPFSIAPSZvljvcPzO5BtvxGdSfa8Fz7Ugoo6NiQX5lLWmEtHf/BUAkBN/L6Jj43SOyP9YjAoq0p29FnElm9lrQUQdGhML8qn9a5cgSpxFMSIw5I4n9A7Hb00eNw6fScMhQ6Bk/QK9wyEiajUmFuQz50+dwID81wEAxwc/iqAuwTpH5L8sRgVl1/0OdqEg7nQWqvZ/qHdIREStwsSCfObo2j+gi1SD75W+SJt65d5ls6WmjhuLteYMAID9o0cBW5W+ARERtQITC/KJY4f3YeiZ9QAA+7g/QlYUfQPqAEwGGYm3LUKh1h2h9lM4/REvPyWijoeJBXmd0DSUrf8dDJKGnMARGDjiZr1D6jCu6x+Hjb2cJ3KGHXgVajFP5CSijoWJBXndnvefRWrtN7AKIyJuXap3OB1Oxox7sRlpMEDFuXfnAZqmd0hERC3GxIK8quhoDlIOOS8vzU56CD37puocUccTGWxB2eg/oVJYEFmag4pdb+gdEhFRizGxIK/R7FbUvnsvLJId+01DkDbjSb1D6rBuHZ2G1UGzAADKloVAebHOERERtQwTC/Kag2//HomOfFwQwYiYvZInbLaBIktIm/EEcrWrEKhV4PwbMwCHVe+wiIiaxcSCvOJkdiYGHXsTAHBw6GL0iOPzQNoqNT4CO655BmUiEGEX9qN49TznU2KJiPwYEwtqM0fFWZj+Ow+yJJAVdDNGTb1H75A6jQemTcA7cQuhCgkx+WtxYvM/9A6JiOiymFhQm4jaMhS/dAu6a2dxDDG4eu4/IEmS3mF1GrIs4b57HsDa0PsAAFE7F6Jo/2c6R0VE1DQmFtRqwlaFwuXTEFfzHc6LLjgx8VVERYTrHVanYzLIuOXBpdhuugFGqAhYNxdnTubrHRYRUaOYWFDrOKz48eXb0asiG+UiAN+MWonrR4zSO6pOq4vFiAG/ehN5cgK6oRzVr/0MJ48d1TssIqIGmFiQ51QHfnx1JuIv7ES1MGPbsJcwcfwkvaPq9CLCwhB497s4jXDEixMwrJqIwwe+1jssIiI3TCzIM7YqnHj9LvQ6tQVWYcBHA/6GqVNv0zuqK0bsVUmQf7EZP8pxiMJ5xHyQgW+2f6x3WERELkwsqMVqTxzE6b8NR8+iTNiFgvcT/4Tpd8zSO6wrTkSP3gj7zVYcNQ1AV6kKyVvmYNuHq/QOi4gIABMLagkhcHLLCkiv3YhI63GUiG5Y0/9FzJz9K14BopMuod1x1SOb8W3wCFgkO67f+zA+ff5+nDx1Ru/QiOgKx8SCLstRcQZHV8xEjy8egxk27JSuwbHbMzF75izIMpMKPRktXXD1wx8iN/pWKJLAxLK1wEvX4aO1K2F1qHqHR0RXKEmI9ruVX3l5Obp27YqysjKEhIS012ypFewVZ5G3fgni899GIGrhEDI+DL8XY+79M8K6WPQOj37ixNcbYNr0O0SqpwAA25ThUCf+BaOGDYZR4f4DEbWNJ9tvJhbkprbsDI5uWIrePzgTCgD4Dgk4OfyPGDdxKg99+DFhq0Le2qeQcHQlDNDgEDK2yWk4lTQL6TdmoHdksN4hElEH5fPEYvny5XjmmWdQUlKC1NRULFu2DGlpaV4NjNpP5YUS/LD9PRi//y/6VO2FEc5u9CNIwLFBv8b1U+5GkMWoc5TUUlU/5uDs+48gvnyva1i+FoPtIVNhGHAzUpIHI7lnKBQeyiKiFvJpYvHuu+/i7rvvxooVK5Ceno4XXngBa9euxZEjRxAZGem1wMhHhEDt+UIUHtqF8h/2IKB4D5Jq90ORLi4Gh6VEFKX+GiNuvhsWk0HHYKkt7EUHUbzlJUT+sA4WUeMafkJEYI+UjHPdhyO47wj0vCoJV/fohrAgk47REpE/82likZ6ejmuvvRb/+IfzYUiapiEuLg6//vWv8fjjj3stMLo8h6rBrgrYNQ0OVcChaqiotaOy/AKqy8+htuI81IqzMFSehLm6GAHVxehSW4SIqnyEitIG0/te7o2i2AkIH3Y7BqQM495sZ2KtQPnX76Bm7xqElx6AAQ630bXCiAIRgxNKT1QFJ8AS1gOh3XsgOrYXYnvEwxQcDpiDAVnRqQLUHmwODZoQsBjZztSQzxILm82GwMBAvP/++8jIyHANnzNnDkpLS7Fhwwa38larFVar1S2wuLg4rycWNpsNea/dC1VoUDVAEwKqJqDVVU2WJEhS3V8AkiRBlgBJApxDAAHheiK1JgBVE1A1DQ7NOS1ZkqDIF1+GBv8DdlWg1q6ixqaixq7C7lChyDKMigSjIsOgSDDUnaMgQQASINXFqmqa86VqEEJAhgoZou6lAZoDQnUAmh2S5oABDlhgc74k598uqHHreWiKQ8gokHriTPDVEDHXoEfazxDfewDPn7gS2KqgHtuJswc3QyrYjm6VeTDC3qKPWmGGVQ6ATQmEXTJBlQywS0aoMMImGWDXJNg1CVYhw65JkGQZJoMBJoMCo8EAgyJDFYBDQ926BQhIdeshIEnyxfVUkiDLzvW0fv2VcHE9VjVAFRfXTwAwyDIUuf6v87OoX+cBCDgTcocmnC9VQODS9aV++b/4WyCEM1a7KmBXNdjrPi/BOW25LnZIkvMSu0uGybIEpdF6OH+D6usiSxfHy5LkFpMQgF3VYHVosDmcfx2aBoMiw1T3u1L/22Ks+60xKDIMsuSqo6oJODQNdV8T6ldzIYAau4pqm8P1mwUBGBQJZoMCi1GG2aBAAHW/T6LuexcQQkATcP29GD+gyM521ITzt7i+jCJLMCkyzAa5Lm7JVeanv9dy3femSKhrS+lim0JyfkYIaJpwTUPT6obVxXVxOs5pasK5I+zaRtTNr77VJUmCUZFgMSqw1NXfZJBhVwVsDrXur+aK09VGcG4v6pcNh+qssyS5t3v9d16/rRFA3bJSt1zUFdLqRmp1dalvv/q2VGQJZqMCi0GGxSjDaJAhBC7WXwM0ScHIR95p0XrdUp4kFh71c589exaqqiIqKspteFRUFA4fPtyg/JIlS7Bo0SJPZtEqQqgYcPq/Pp+P32jmJH8bjKiSg1GjBKPcFIUKcxSqA2JQExgLU1QS+gxKQ5/IcPRlInHlMQVB6TcBUf0mON9rKlB6HDXFh3H2WC5qSr6HWlYCpeYMAu3nESbKECg5dw7MsMKsWQGttGXz0oCfdI6Qt/jie720o0Kte7VUS3ZPVaCFOSw1pT5DttW9mmAV+p4T59MD6E888QQeeeQR1/v6HgtvMxmM2BjzIAyyBIPszNYVxdmTIERdhn1pZuv6e3HP5Kd7RM5ehvrsX4YQzsMOdtWZkTo0DXZH3TCHBrsmYFRkBFsMCDYb0cWiINBkcGW71vq9DdW5PyJcPSWA0aA4M3iDApNBgSzLEJIMDTIEJAhIMBhNsJgtMJtNsJjNsJgtUMwBkE0BMJgCoZgCnd3VAaEwGQNgAtANQKzXv23qVGQFCEtEQFgi4gbe7DZKCIGislp8d64UtVVlqK2qgL26DLaaCiiqDQZhh0HYYIADRuGAxQBYFMCiCJgUAZvdgSqrHVW1dlRb7bA5VBhlCSYFdXvbzp4J7dI9T01z7XWpQoOmCrd11rX3W7eHbqhbzwHArgk4HBpsdYcJhRBue4iS5HxSrFFx7okaZRn1R/zc+i0u3YsEYKjbyzYbFZgNMkx1l+9qwtnjoWmABgGhOacjhIBatwfpuKTnU9Oc6359XevLqUJAU517m6oQuDTdlyDBbJQRaFIQYFQQaFJgNMiwOzTUOjTU2lVY7RqsqgabXYNNdb53/h45ewiMBhkmWYYsX+wNqf8+upgN6BpgRIjFiJAAAxRZQrVNRbXVgSqbimqbClmSXN9z/W+rIl3sRZDgnK6jbs9aVS/2UMgyXGXtmoZamzPmGrsKm0Nz6wWuP/yqasLt5dAu9rqomrMtL/YWyw16jhXZuVypdd+5WrcnL0t1dajrLZGli7/Bzu2As8e50qqi0upAVa0DtQ4VZoPzu7cYZVhMimt5u1T9MmWq+ytJUl071/fGoG7bcrHHHJDqlmfnMuRsG8mtjCI7e6VMddsik0GGzaGhqr59rA7UODQoknsvuqIYcE3rfxXazKPEIiIiAoqi4NSpU27DT506hejo6AblzWYzzGZz2yJsAUkxYPIvl/p8PkRXEkmS0CM0AD1CAwDE6B0OtRMLgDC9g6AOzaM755hMJgwdOhRbtmxxDdM0DVu2bMHw4cO9HhwRERF1LB4fCnnkkUcwZ84cDBs2DGlpaXjhhRdQVVWFuXPn+iI+IiIi6kA8TixmzJiBM2fO4KmnnkJJSQkGDx6MzMzMBid0Nqb+ApTy8nLPIyUiIiJd1G+3W3Ihabve0vvEiRM+OXmTiIiIfK+wsBA9e/a8bJl2TSw0TUNRURGCg4O9fs+E+itOCgsLO+XNtzp7/YDOX0fWr+Pr7HXs7PUDOn8dfVU/IQQqKioQGxsLWb786Znter9mWZabzXTaKiQkpFMuLPU6e/2Azl9H1q/j6+x17Oz1Azp/HX1Rv65du7aoHJ+nTERERF7DxIKIiIi8ptMkFmazGQsXLmyXG3LpobPXD+j8dWT9Or7OXsfOXj+g89fRH+rXridvEhERUefWaXosiIiISH9MLIiIiMhrmFgQERGR1zCxICIiIq/x68Ri+fLluOqqq2CxWJCeno6vv/76suXXrl2L/v37w2KxYNCgQfjkk0/cxgsh8NRTTyEmJgYBAQEYP348jh496ssqXJYn9Xv11VcxatQodOvWDd26dcP48eMblL/nnnsgSZLb66abbvJ1NZrkSf1WrVrVIHaLxeJWxt/aD/CsjmPGjGlQR0mSMGXKFFcZf2rD7du3Y+rUqYiNjYUkSVi/fn2zn8nKysKQIUNgNpvRp08frFq1qkEZT9drX/G0fv/5z38wYcIEdO/eHSEhIRg+fDg2bdrkVub//u//GrRf//79fViLpnlav6ysrEaXz5KSErdy/tJ+gOd1bGz9kiQJAwcOdJXxpzZcsmQJrr32WgQHByMyMhIZGRk4cuRIs5/Te1vot4nFu+++i0ceeQQLFy7Evn37kJqaikmTJuH06dONlt+5cydmzpyJ++67D9nZ2cjIyEBGRgZyc3NdZf7617/ixRdfxIoVK/DVV18hKCgIkyZNQm1tbXtVy8XT+mVlZWHmzJnYunUrdu3ahbi4OEycOBEnT550K3fTTTehuLjY9Vq9enV7VKcBT+sHOO8Ud2nsx48fdxvvT+0HeF7H//znP271y83NhaIomD59uls5f2nDqqoqpKamYvny5S0qX1BQgClTpmDs2LHIycnBww8/jPvvv99t49ua5cJXPK3f9u3bMWHCBHzyySfYu3cvxo4di6lTpyI7O9ut3MCBA93ab8eOHb4Iv1me1q/ekSNH3OKPjIx0jfOn9gM8r+Pf//53t7oVFhYiLCyswTroL224bds2zJs3D7t378bmzZtht9sxceJEVFVVNfkZv9gWCj+VlpYm5s2b53qvqqqIjY0VS5YsabT8HXfcIaZMmeI2LD09Xfzyl78UQgihaZqIjo4WzzzzjGt8aWmpMJvNYvXq1T6oweV5Wr+fcjgcIjg4WLz55puuYXPmzBHTpk3zdqit4mn93njjDdG1a9cmp+dv7SdE29vw+eefF8HBwaKystI1zJ/a8FIAxLp16y5b5ve//70YOHCg27AZM2aISZMmud639TvzlZbUrzEDBgwQixYtcr1fuHChSE1N9V5gXtKS+m3dulUAEBcuXGiyjL+2nxCta8N169YJSZLEsWPHXMP8tQ2FEOL06dMCgNi2bVuTZfxhW+iXPRY2mw179+7F+PHjXcNkWcb48eOxa9euRj+za9cut/IAMGnSJFf5goIClJSUuJXp2rUr0tPTm5ymr7Smfj9VXV0Nu92OsLAwt+FZWVmIjIxEUlISHnzwQZw7d86rsbdEa+tXWVmJ+Ph4xMXFYdq0aTh06JBrnD+1H+CdNnz99ddx5513IigoyG24P7RhazS3DnrjO/MnmqahoqKiwTp49OhRxMbGIjExEXfddRd+/PFHnSJsncGDByMmJgYTJkzAl19+6Rre2doPcK6D48ePR3x8vNtwf23DsrIyAGiwzF3KH7aFfplYnD17FqqqIioqym14VFRUg+N99UpKSi5bvv6vJ9P0ldbU76cee+wxxMbGui0cN910E9566y1s2bIFTz/9NLZt24bJkydDVVWvxt+c1tQvKSkJK1euxIYNG/D2229D0zSMGDECJ06cAOBf7Qe0vQ2//vpr5Obm4v7773cb7i9t2BpNrYPl5eWoqanxynLvT5599llUVlbijjvucA1LT0/HqlWrkJmZiZdffhkFBQUYNWoUKioqdIy0ZWJiYrBixQp88MEH+OCDDxAXF4cxY8Zg3759ALzzu+VPioqKsHHjxgbroL+2oaZpePjhhzFy5EgkJyc3Wc4ftoXt+nRT8o6lS5dizZo1yMrKcjvB8c4773T9P2jQIKSkpKB3797IysrCuHHj9Ai1xYYPH47hw4e73o8YMQJXX301XnnlFSxevFjHyHzj9ddfx6BBg5CWluY2vCO34ZXknXfewaJFi7Bhwwa3cxAmT57s+j8lJQXp6emIj4/He++9h/vuu0+PUFssKSkJSUlJrvcjRoxAfn4+nn/+efzrX//SMTLfePPNNxEaGoqMjAy34f7ahvPmzUNubq5u53t4wi97LCIiIqAoCk6dOuU2/NSpU4iOjm70M9HR0ZctX//Xk2n6SmvqV+/ZZ5/F0qVL8emnnyIlJeWyZRMTExEREYG8vLw2x+yJttSvntFoxDXXXOOK3Z/aD2hbHauqqrBmzZoW/Ujp1Yat0dQ6GBISgoCAAK8sF/5gzZo1uP/++/Hee+816HL+qdDQUPTr169DtF9j0tLSXLF3lvYDnFdFrFy5ErNnz4bJZLpsWX9ow/nz5+Ojjz7C1q1b0bNnz8uW9YdtoV8mFiaTCUOHDsWWLVtcwzRNw5YtW9z2ai81fPhwt/IAsHnzZlf5hIQEREdHu5UpLy/HV1991eQ0faU19QOcZ/IuXrwYmZmZGDZsWLPzOXHiBM6dO4eYmBivxN1Sra3fpVRVxcGDB12x+1P7AW2r49q1a2G1WjFr1qxm56NXG7ZGc+ugN5YLva1evRpz587F6tWr3S4TbkplZSXy8/M7RPs1JicnxxV7Z2i/etu2bUNeXl6Lkns921AIgfnz52PdunX4/PPPkZCQ0Oxn/GJb6JVTQH1gzZo1wmw2i1WrVolvv/1WPPDAAyI0NFSUlJQIIYSYPXu2ePzxx13lv/zyS2EwGMSzzz4rvvvuO7Fw4UJhNBrFwYMHXWWWLl0qQkNDxYYNG8SBAwfEtGnTREJCgqipqfH7+i1dulSYTCbx/vvvi+LiYteroqJCCCFERUWFePTRR8WuXbtEQUGB+Oyzz8SQIUNE3759RW1trd/Xb9GiRWLTpk0iPz9f7N27V9x5553CYrGIQ4cOucr4U/sJ4Xkd611//fVixowZDYb7WxtWVFSI7OxskZ2dLQCI5557TmRnZ4vjx48LIYR4/PHHxezZs13lf/jhBxEYGCh+97vfie+++04sX75cKIoiMjMzXWWa+878uX7//ve/hcFgEMuXL3dbB0tLS11lfvvb34qsrCxRUFAgvvzySzF+/HgREREhTp8+7ff1e/7558X69evF0aNHxcGDB8VDDz0kZFkWn332mauMP7WfEJ7Xsd6sWbNEenp6o9P0pzZ88MEHRdeuXUVWVpbbMlddXe0q44/bQr9NLIQQYtmyZaJXr17CZDKJtLQ0sXv3bte40aNHizlz5riVf++990S/fv2EyWQSAwcOFB9//LHbeE3TxB/+8AcRFRUlzGazGDdunDhy5Eh7VKVRntQvPj5eAGjwWrhwoRBCiOrqajFx4kTRvXt3YTQaRXx8vPjFL36h2wovhGf1e/jhh11lo6KixM033yz27dvnNj1/az8hPF9GDx8+LACITz/9tMG0/K0N6y8//Omrvk5z5swRo0ePbvCZwYMHC5PJJBITE8Ubb7zRYLqX+87ak6f1Gz169GXLC+G8vDYmJkaYTCbRo0cPMWPGDJGXl9e+Favjaf2efvpp0bt3b2GxWERYWJgYM2aM+PzzzxtM11/aT4jWLaOlpaUiICBA/POf/2x0mv7Uho3VDYDbeuWP20I+Np2IiIi8xi/PsSAiIqKOiYkFEREReQ0TCyIiIvIaJhZERETkNUwsiIiIyGuYWBAREZHXMLEgIiIir2FiQURERF7DxIKIiIi8hokFEREReQ0TCyJqk9WrVyMgIADFxcWuYXPnzkVKSgrKysp0jIyI9MBnhRBRmwghMHjwYNxwww1YtmwZFi5ciJUrV2L37t3o0aOH3uERUTsz6B0AEXVskiThz3/+M26//XZER0dj2bJl+OKLL5hUEF2h2GNBRF4xZMgQHDp0CJ9++ilGjx6tdzhEpBOeY0FEbZaZmYnDhw9DVVVERUXpHQ4R6Yg9FkTUJvv27cOYMWPwyiuvYNWqVQgJCcHatWv1DouIdMJzLIio1Y4dO4YpU6bgySefxMyZM5GYmIjhw4dj3759GDJkiN7hEZEO2GNBRK1y/vx5jBgxAmPGjMGKFStcw6dMmQJVVZGZmaljdESkFyYWRERE5DU8eZOIiIi8hokFEREReQ0TCyIiIvIaJhZERETkNUwsiIiIyGuYWBAREZHXMLEgIiIir2FiQURERF7DxIKIiIi8hokFEREReQ0TCyIiIvIaJhZERETkNf8fRRJaxS0fUB4AAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "for i in [1, 2, 3]:\n", + " plt.subplot(3, 1, i)\n", + " plt.plot(torch.linspace(0, 2, Nx), solver.neural_net(data_0_training)[10*i].detach().flatten(), label=r'$u_{NN}$')\n", + " plt.plot(torch.linspace(0, 2, Nx), data_dt_training[10*i].extract('u').flatten(), label=r'$u$')\n", + " plt.xlabel(r'$x$')\n", + " plt.legend(loc='upper right')\n", + " plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As we can see, they are barely indistinguishable. To better understand the difference, we now plot the residuals, i.e. the difference of the exact solution and the predicted one. " + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "for i in [1, 2, 3]:\n", + " plt.subplot(3, 1, i)\n", + " plt.plot(torch.linspace(0, 2, Nx), data_dt_training[10*i].extract('u').flatten() - solver.neural_net(data_0_training)[10*i].detach().flatten(), label=r'$u - u_{NN}$')\n", + " plt.xlabel(r'$x$')\n", + " plt.tight_layout()\n", + " plt.legend(loc='upper right')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## What's next?\n", + "\n", + "We have made a very simple example on how to use the `DeepONet` for learning the advection neural operator. We suggest to extend the tutorial using more complex problems and train for longer, to see the full potential of neural operators. Another possible extension of the tutorial is to train the network to be able to learn the general operator, $\\mathcal{G}_t : u_0(x) → u(x, t) = u_0(x - t)$." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.16" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/tutorials/tutorial8/tutorial.py b/tutorials/tutorial8/tutorial.py new file mode 100644 index 000000000..61b2e3132 --- /dev/null +++ b/tutorials/tutorial8/tutorial.py @@ -0,0 +1,237 @@ +#!/usr/bin/env python +# coding: utf-8 + +# # Tutorial: Advection Equation with data driven DeepONet neural operator +# +# In this tutorial we will show how to solve the advection neural operator problem using `DeepONet`. Specifically, we will follow the original formulation of Lu Lu, et al. in [*DeepONet: Learning nonlinear operators for identifying differential equations based on the universal approximation theorem of operator*](https://arxiv.org/abs/1910.03193). +# +# We import the relevant modules first. + +# In[1]: + + +import matplotlib.pyplot as plt +from pina import Trainer, Condition +from pina.model import FeedForward, DeepONet +from pina.solvers import SupervisedSolver +from pina.problem import AbstractProblem +from pina.loss import LpLoss +import torch + + +# ## The advection mathematical problem and data loading +# +# Consider the one dimensional advection problem: +# $$ +# \frac{\partial u}{\partial t} + \frac{\partial u}{\partial x} = 0, \quad x\in[0,2], \;t\in[0,1] +# $$ +# with periodic boundary condition. We choose the initial condition as a Gaussian wave centered in +# $\mu$ and of width $\sigma^2=0.02$. We choose $\mu$ to be distributed according to a Uniform distribution in $[0.05, 1]$. Hence the initial condition is: +# $$ +# u_0(x) = \frac{1}{\sqrt{\pi\sigma^2}}e^{-\frac{(x - \mu)^2}{2\sigma^2}}, \quad \mu\sim U(0.05, 1), \; x\in[0,2]. +# $$ +# +# The final objective is to learn the operator: +# +# $$\mathcal{G} : u_0(x) → u(x, t = \delta) = u_0(x - \delta)$$ +# +# where we set $\delta=0.5$ just for sake of the tutorial. Notice that a general problem is to lear the operator mapping the initial condition to a specific time instance. By fixing $\delta$ dataset is composed of trajectories containing initial conditions as input, and the same trajectories after $\delta$ time as output. +# +# The input/output shape will be `[T, Nx, D]`, where `T` is the number of trajectories, `Nx` the discretization along the spatial dimension, and `D` the dimension of the input. In this case `D=1` since the input is the one dimensional field value `u`. The data for training are stored in `advection_input_training.pt`, `advection_output_training.pt`; while the one for testing in `advection_input_testing.pt`, `advection_output_testing.pt`. We train on `T=100` trajectories, and test on `T=1000`. Notice that the discretization in the spatial dimension is fixed to `Nx=100`. +# +# We start by loading the data and perform some plotting. + +# In[2]: + + +# loading training data +data_0_training = torch.load('advection_input_training.pt') +data_dt_training = torch.load('advection_output_training.pt') + +# loading testing data +data_0_testing = torch.load('advection_input_testing.pt') +data_dt_testing = torch.load('advection_output_testing.pt') + + +# The data are loaded, let's visualize a few of the initial conditions! + +# In[3]: + + +# storing the discretization in space: +Nx = data_0_training.shape[1] + +for idx, i in enumerate(torch.randint(0, data_0_training.shape[0], (3,))): + u0 = data_0_training[i].extract('ui') + u = data_dt_training[i].extract('u') + x = torch.linspace(0, 2, Nx) # the discretization in the spatial dimension is fixed + plt.subplot(3, 1, idx+1) + plt.plot(x, u0.flatten(), label=fr'$u_0(x)$') + plt.plot(x, u.flatten(), label=fr'$u(x, t=\delta)$') + plt.xlabel(fr'$x$') + plt.tight_layout() + plt.legend() + + +# Great! We have created a travellig wave and we have visualized few examples. Now we are going to use the data to train the network. +# +# ## DeepONet +# The classical formulation of DeepONet has two networks, namely **trunck** and **branch** net (see below figure). +# +#
+# image from: Moya, C.; Lin, G. Fed-DeepONet: Stochastic Gradient-Based Federated Training of Deep Operator Networks. Algorithms 2022, 15, 325. https://doi.org/10.3390/a15090325 +#
+#
+# +# Image from: Moya, C.; Lin, G. Fed-DeepONet: Stochastic Gradient-Based Federated Training of Deep Operator Networks. Algorithms 2022, 15, 325. +# +#
+# +# In our example the branch net will take as input a vector `[B, Nx]` representing for each trajectory the field solution at time zero discretize by `Nx`. The trunk net will take as input `[B, 1]` representing the temporal coordinate to evaluate the network. Here `B` is the number of training samples in a batch of the total trajectories. +# +# Let us now write the advection problem. +# + +# In[4]: + + +class AdvectionProblem(AbstractProblem): + + output_variables = ['u'] + input_variables = ['ui'] + + # problem condition statement + conditions = { + 'data': Condition(input_points = data_0_training, output_points = data_dt_training) + } + + +# Notice that the problem inherits from `AbstractProblem`, since we only train our model in a datadriven mode. +# +# We now proceede to create the trunk and branch networks. + +# In[5]: + + +# create Trunck model +class TrunkNet(torch.nn.Module): + def __init__(self, **kwargs): + super().__init__() + self.trunk = FeedForward(**kwargs) + def forward(self, x): + t = torch.zeros(size=(x.shape[0], 1), requires_grad=False) + 0.5 # create an input of only 0.5 + return self.trunk(t) + +# create Branch model +class BranchNet(torch.nn.Module): + def __init__(self, **kwargs): + super().__init__() + self.branch = FeedForward(**kwargs) + def forward(self, x): + return self.branch(x.flatten(-2)) + + +# The `TrunckNet` is a simple `FeedForward` neural network with a modified `forward` pass. In the forward pass we simply create a tensor of $0.5$ repeated for each trajectory. +# +# The `BranchNet` is a simple `FeedForward` neural network with a modified `forward` pass as well. The input is flatten across the last dimension to obtain a vector of the same dimension as the discretization, which represents the initial condition at the sensor points. +# +# We now proceed to create the DeepONet model using the `DeepONet` class from `pina.model` + +# In[6]: + + +# initialize truck and branch net +trunk = TrunkNet( + layers=[256] * 4, + output_dimensions=Nx, # output the spatial discretization, must be equal to the one of branch net + input_dimensions=1, # time variable + func=torch.nn.ReLU +) +branch = BranchNet( + layers=[256] * 4, + output_dimensions=Nx, # output the spatial discretization, must be equal to the one of trunck net + input_dimensions=Nx, # spatial discretization (supposing) data is alligned + func=torch.nn.ReLU +) + +# initialize the DeepONet model +model = DeepONet(branch_net=branch, + trunk_net=trunk, + input_indeces_branch_net=['ui'], + input_indeces_trunk_net=['ui'], + reduction = lambda x : x, + aggregator = lambda x : torch.einsum('bm,bm->bm', x[0], x[1]) + ) + + +# The aggregation + reduction functions combine the output of the two networks. In this case the output of the networks ar multiplied element wise and the corresponding vector is not reduced (i.e. we obtain as output the same as the trunck and branch output). +# +# The solver, as in the [FNO tutorial](https://mathlab.github.io/PINA/_rst/tutorials/tutorial5/tutorial.html), is simply a `SupervisedSolver` trained with `MSE` loss. In the next lines we define the solver first, and then we define the trainer which is used for training the solver. +# +# The neural network training as been shown to better converge if some tricks are applied during training. As an example, we will use batch training with batch accumulation; and gradient clipping of the norm (acting as regularizer to prevent overfitting). Thanks to the [PyTorch Lightning](https://lightning.ai/docs/pytorch/stable/) API, this complex techniques are achieved by only changing some flags in the Trainer. Notice that we do not hypersearch the best values, and we do this optimizations just for demonstration. + +# In[7]: + + +# define solver +solver = SupervisedSolver(problem=AdvectionProblem(), model=model) + +# define the trainer and train +# we train on cpu -> accelerator='cpu' +# we do not display model summary -> enable_model_summary=False +# we train for 100 epochs -> max_epochs=100 +# we use batch size 5 -> batch_size=5 +# we accumulate the gradient accross 20 batches -> accumulate_grad_batches=20 +# we clip the gradient norm to a max of 1 -> gradient_clip_algorithm='norm', gradient_clip_val=1 +trainer = Trainer(solver=solver, max_epochs=500, enable_model_summary=False, + accelerator='cpu', accumulate_grad_batches=20, batch_size=5, + gradient_clip_algorithm='norm', gradient_clip_val=1) +trainer.train() + + +# Let us see the final train and test errors: + +# In[8]: + + +# the l2 error +l2 = LpLoss() + +with torch.no_grad(): + train_err = l2(trainer.solver.neural_net(data_0_training), data_dt_training) + test_err = l2(trainer.solver.neural_net(data_0_testing), data_dt_testing) + +print(f'Training error: {float(train_err.mean()):.2%}') +print(f'Tresting error: {float(test_err.mean()):.2%}') + + +# We can see that the testing error is slightly higher than the training one, maybe due to overfitting. We now plot some results trajectories. + +# In[9]: + + +for i in [1, 2, 3]: + plt.subplot(3, 1, i) + plt.plot(torch.linspace(0, 2, Nx), solver.neural_net(data_0_training)[10*i].detach().flatten(), label=r'$u_{NN}$') + plt.plot(torch.linspace(0, 2, Nx), data_dt_training[10*i].extract('u').flatten(), label=r'$u$') + plt.xlabel(r'$x$') + plt.legend(loc='upper right') + plt.show() + + +# As we can see, they are barely indistinguishable. To better understand the difference, we now plot the residuals, i.e. the difference of the exact solution and the predicted one. + +# In[10]: + + +for i in [1, 2, 3]: + plt.subplot(3, 1, i) + plt.plot(torch.linspace(0, 2, Nx), data_dt_training[10*i].extract('u').flatten() - solver.neural_net(data_0_training)[10*i].detach().flatten(), label=r'$u - u_{NN}$') + plt.xlabel(r'$x$') + plt.tight_layout() + plt.legend(loc='upper right') + + +# ## What's next? +# +# We have made a very simple example on how to use the `DeepONet` for learning the advection neural operator. We suggest to extend the tutorial using more complex problems and train for longer, to see the full potential of neural operators. Another possible extension of the tutorial is to train the network to be able to learn the general operator, $\mathcal{G}_t : u_0(x) → u(x, t) = u_0(x - t)$.