From d4ced3a7d74f77058d6576817a9a5440c369b160 Mon Sep 17 00:00:00 2001 From: Anna Ivagnes <75523024+annaivagnes@users.noreply.github.com> Date: Mon, 12 Aug 2024 14:46:22 +0200 Subject: [PATCH] Add layer to perform RBF interpolation in reduced order modeling (#315) * add RBF implementation in pytorch (in layers) * add POD-RBF example (baseline for nonintrusive closure) * Add POD only and POD+RBF implementation * add POD-RBF in tutorial 8 --- docs/source/_rst/_code.rst | 13 +- docs/source/_rst/_tutorial.rst | 2 +- docs/source/_rst/layers/rbf_layer.rst | 7 + .../_rst/tutorials/tutorial8/tutorial.rst | 288 ++++++++---- .../tutorial_files/tutorial_19_0.png | Bin 135579 -> 0 bytes .../tutorial_files/tutorial_27_0.png | Bin 0 -> 113096 bytes .../tutorial8/tutorial_files/tutorial_5_0.png | Bin 0 -> 16848 bytes .../tutorial8/tutorial_files/tutorial_5_1.png | Bin 27909 -> 0 bytes pina/model/layers/__init__.py | 2 + pina/model/layers/rbf_layer.py | 433 ++++++++++++++++++ tests/test_layers/test_rbf.py | 85 ++++ tutorials/README.md | 2 +- tutorials/tutorial8/tutorial.ipynb | 305 ++++++++---- tutorials/tutorial8/tutorial.py | 198 +++++--- 14 files changed, 1111 insertions(+), 224 deletions(-) create mode 100644 docs/source/_rst/layers/rbf_layer.rst delete mode 100644 docs/source/_rst/tutorials/tutorial8/tutorial_files/tutorial_19_0.png create mode 100644 docs/source/_rst/tutorials/tutorial8/tutorial_files/tutorial_27_0.png create mode 100644 docs/source/_rst/tutorials/tutorial8/tutorial_files/tutorial_5_0.png delete mode 100644 docs/source/_rst/tutorials/tutorial8/tutorial_files/tutorial_5_1.png create mode 100644 pina/model/layers/rbf_layer.py create mode 100644 tests/test_layers/test_rbf.py diff --git a/docs/source/_rst/_code.rst b/docs/source/_rst/_code.rst index 9062b3b..5d3c3e5 100644 --- a/docs/source/_rst/_code.rst +++ b/docs/source/_rst/_code.rst @@ -1,7 +1,7 @@ Code Documentation ================== Welcome to PINA documentation! Here you can find the modules of the package divided in different sections. -The high-level structure of the package is depicted in our API. +The high-level structure of the package is depicted in our API. .. figure:: ../index_files/API_color.png :alt: PINA application program interface @@ -33,7 +33,7 @@ Solvers .. toctree:: :titlesonly: - + SolverInterface PINNInterface PINN @@ -82,13 +82,14 @@ Layers Proper Orthogonal Decomposition Periodic Boundary Condition Embedding Fourier Feature Embedding + Radial Basis Function Interpolation Adaptive Activation Functions ------------------------------- .. toctree:: :titlesonly: - + Adaptive Function Interface Adaptive ReLU Adaptive Sigmoid @@ -102,14 +103,14 @@ Adaptive Activation Functions Adaptive Softmax Adaptive SIREN Adaptive Exp - + Equations and Operators ------------------------- .. toctree:: :titlesonly: - + Equations Differential Operators @@ -166,4 +167,4 @@ Metrics and Losses LossInterface LpLoss - PowerLoss \ No newline at end of file + PowerLoss diff --git a/docs/source/_rst/_tutorial.rst b/docs/source/_rst/_tutorial.rst index 756d42e..4e2d205 100644 --- a/docs/source/_rst/_tutorial.rst +++ b/docs/source/_rst/_tutorial.rst @@ -43,4 +43,4 @@ Supervised Learning :titlesonly: Unstructured convolutional autoencoder via continuous convolution - POD-NN for reduced order modeling + POD-RBF and POD-NN for reduced order modeling diff --git a/docs/source/_rst/layers/rbf_layer.rst b/docs/source/_rst/layers/rbf_layer.rst new file mode 100644 index 0000000..8736d1a --- /dev/null +++ b/docs/source/_rst/layers/rbf_layer.rst @@ -0,0 +1,7 @@ +RBFBlock +====================== +.. currentmodule:: pina.model.layers.rbf_layer + +.. autoclass:: RBFBlock + :members: + :show-inheritance: diff --git a/docs/source/_rst/tutorials/tutorial8/tutorial.rst b/docs/source/_rst/tutorials/tutorial8/tutorial.rst index b160e09..5e6dca9 100644 --- a/docs/source/_rst/tutorials/tutorial8/tutorial.rst +++ b/docs/source/_rst/tutorials/tutorial8/tutorial.rst @@ -1,18 +1,20 @@ -Tutorial: Reduced order model (PODNN) for parametric problems -=============================================================== +Tutorial: Reduced order model (POD-RBF or POD-NN) for parametric problems +========================================================================= The tutorial aims to show how to employ the **PINA** library in order to apply a reduced order modeling technique [1]. Such methodologies have several similarities with machine learning approaches, since the main -goal consists of predicting the solution of differential equations +goal consists in predicting the solution of differential equations (typically parametric PDEs) in a real-time fashion. In particular we are going to use the Proper Orthogonal Decomposition -with Neural Network (PODNN) [2], which basically perform a dimensional -reduction using the POD approach, approximating the parametric solution -manifold (at the reduced space) using a NN. In this example, we use a -simple multilayer perceptron, but the plenty of different archiutectures -can be plugged as well. +with either Radial Basis Function Interpolation(POD-RBF) or Neural +Network (POD-NN) [2]. Here we basically perform a dimensional reduction +using the POD approach, and approximating the parametric solution +manifold (at the reduced space) using an interpolation (RBF) or a +regression technique (NN). In this example, we use a simple multilayer +perceptron, but the plenty of different architectures can be plugged as +well. References ^^^^^^^^^^ @@ -30,25 +32,25 @@ minimum PINA version to run this tutorial is the ``0.1``. .. code:: ipython3 %matplotlib inline - + import matplotlib.pyplot as plt import torch import pina - + from pina.geometry import CartesianDomain - + from pina.problem import ParametricProblem - from pina.model.layers import PODBlock + from pina.model.layers import PODBlock, RBFBlock from pina import Condition, LabelTensor, Trainer from pina.model import FeedForward from pina.solvers import SupervisedSolver - + print(f'We are using PINA version {pina.__version__}') .. parsed-literal:: - We are using PINA version 0.1 + We are using PINA version 0.1.1 We exploit the `Smithers `__ library to @@ -60,26 +62,27 @@ snapshots of the velocity (along :math:`x`, :math:`y`, and the magnitude) and pressure fields, and the corresponding parameter values. To visually check the snapshots, let’s plot also the data points and the -reference solution: this is the expected output of the neural network. +reference solution: this is the expected output of our model. .. code:: ipython3 from smithers.dataset import NavierStokesDataset dataset = NavierStokesDataset() - + fig, axs = plt.subplots(1, 4, figsize=(14, 3)) for ax, p, u in zip(axs, dataset.params[:4], dataset.snapshots['mag(v)'][:4]): ax.tricontourf(dataset.triang, u, levels=16) ax.set_title(f'$\mu$ = {p[0]:.2f}') -.. image:: tutorial_files/tutorial_5_1.png + +.. image:: tutorial_files/tutorial_5_0.png The *snapshots* - aka the numerical solutions computed for several parameters - and the corresponding parameters are the only data we need -to train the model, in order to predict for any new test parameter the -solution. To properly validate the accuracy, we initially split the 500 +to train the model, in order to predict the solution for any new test +parameter. To properly validate the accuracy, we initially split the 500 snapshots into the training dataset (90% of the original data) and the testing one (the reamining 10%). It must be said that, to plug the snapshots into **PINA**, we have to cast them to ``LabelTensor`` @@ -89,10 +92,10 @@ objects. u = torch.tensor(dataset.snapshots['mag(v)']).float() p = torch.tensor(dataset.params).float() - + p = LabelTensor(p, labels=['mu']) u = LabelTensor(u, labels=[f's{i}' for i in range(u.shape[1])]) - + ratio_train_test = 0.9 n = u.shape n_train = int(u.shape[0] * ratio_train_test) @@ -109,17 +112,94 @@ methodology), just defining a simple *input-output* condition. class SnapshotProblem(ParametricProblem): output_variables = [f's{i}' for i in range(u.shape[1])] parameter_domain = CartesianDomain({'mu': [0, 100]}) - + conditions = { - 'io': Condition(input_points=p, output_points=u) + 'io': Condition(input_points=p_train, output_points=u_train) } -Then, we define the model we want to use: basically we have a MLP -architecture that takes in input the parameter and return the *modal -coefficients*, so the reduced dimension representation (the coordinates -in the POD space). Such latent variable is the projected to the original -space using the POD modes, which are computed and stored in the -``PODBlock`` object. + poisson_problem = SnapshotProblem() + +We can then build a ``PODRBF`` model (using a Radial Basis Function +interpolation as approximation) and a ``PODNN`` approach (using an MLP +architecture as approximation). + +POD-RBF reduced order model +--------------------------- + +Then, we define the model we want to use, with the POD (``PODBlock``) +and the RBF (``RBFBlock``) objects. + +.. code:: ipython3 + + class PODRBF(torch.nn.Module): + """ + Proper orthogonal decomposition with Radial Basis Function interpolation model. + """ + + def __init__(self, pod_rank, rbf_kernel): + """ + + """ + super().__init__() + + self.pod = PODBlock(pod_rank) + self.rbf = RBFBlock(kernel=rbf_kernel) + + + def forward(self, x): + """ + Defines the computation performed at every call. + + :param x: The tensor to apply the forward pass. + :type x: torch.Tensor + :return: the output computed by the model. + :rtype: torch.Tensor + """ + coefficents = self.rbf(x) + return self.pod.expand(coefficents) + + def fit(self, p, x): + """ + Call the :meth:`pina.model.layers.PODBlock.fit` method of the + :attr:`pina.model.layers.PODBlock` attribute to perform the POD, + and the :meth:`pina.model.layers.RBFBlock.fit` method of the + :attr:`pina.model.layers.RBFBlock` attribute to fit the interpolation. + """ + self.pod.fit(x) + self.rbf.fit(p, self.pod.reduce(x)) + +We can then fit the model and ask it to predict the required field for +unseen values of the parameters. Note that this model does not need a +``Trainer`` since it does not include any neural network or learnable +parameters. + +.. code:: ipython3 + + pod_rbf = PODRBF(pod_rank=20, rbf_kernel='thin_plate_spline') + pod_rbf.fit(p_train, u_train) + +.. code:: ipython3 + + u_test_rbf = pod_rbf(p_test) + u_train_rbf = pod_rbf(p_train) + + relative_error_train = torch.norm(u_train_rbf - u_train)/torch.norm(u_train) + relative_error_test = torch.norm(u_test_rbf - u_test)/torch.norm(u_test) + + print('Error summary for POD-RBF model:') + print(f' Train: {relative_error_train.item():e}') + print(f' Test: {relative_error_test.item():e}') + + +.. parsed-literal:: + + Error summary for POD-RBF model: + Train: 1.287801e-03 + Test: 1.217041e-03 + + +POD-NN reduced order model +-------------------------- .. code:: ipython3 @@ -127,13 +207,13 @@ space using the POD modes, which are computed and stored in the """ Proper orthogonal decomposition with neural network model. """ - + def __init__(self, pod_rank, layers, func): """ - + """ super().__init__() - + self.pod = PODBlock(pod_rank) self.nn = FeedForward( input_dimensions=1, @@ -141,12 +221,12 @@ space using the POD modes, which are computed and stored in the layers=layers, func=func ) - - + + def forward(self, x): """ Defines the computation performed at every call. - + :param x: The tensor to apply the forward pass. :type x: torch.Tensor :return: the output computed by the model. @@ -154,7 +234,7 @@ space using the POD modes, which are computed and stored in the """ coefficents = self.nn(x) return self.pod.expand(coefficents) - + def fit_pod(self, x): """ Just call the :meth:`pina.model.layers.PODBlock.fit` method of the @@ -164,29 +244,27 @@ space using the POD modes, which are computed and stored in the We highlight that the POD modes are directly computed by means of the singular value decomposition (computed over the input data), and not -trained using the back-propagation approach. Only the weights of the MLP +trained using the backpropagation approach. Only the weights of the MLP are actually trained during the optimization loop. .. code:: ipython3 - poisson_problem = SnapshotProblem() - pod_nn = PODNN(pod_rank=20, layers=[10, 10, 10], func=torch.nn.Tanh) - pod_nn.fit_pod(u) - - pinn_stokes = SupervisedSolver( - problem=poisson_problem, - model=pod_nn, + pod_nn.fit_pod(u_train) + + pod_nn_stokes = SupervisedSolver( + problem=poisson_problem, + model=pod_nn, optimizer=torch.optim.Adam, optimizer_kwargs={'lr': 0.0001}) -Now that we set the ``Problem`` and the ``Model``, we have just to train -the model and use it for predict the test snapshots. +Now that we have set the ``Problem`` and the ``Model``, we have just to +train the model and use it for predicting the test snapshots. .. code:: ipython3 trainer = Trainer( - solver=pinn_stokes, + solver=pod_nn_stokes, max_epochs=1000, batch_size=100, log_every_n_steps=5, @@ -196,15 +274,41 @@ the model and use it for predict the test snapshots. .. parsed-literal:: - `Trainer.fit` stopped: `max_epochs=1000` reached. + GPU available: True (cuda), used: False + TPU available: False, using: 0 TPU cores + IPU available: False, using: 0 IPUs + HPU available: False, using: 0 HPUs + /u/a/aivagnes/anaconda3/lib/python3.8/site-packages/pytorch_lightning/trainer/setup.py:187: GPU available but not used. You can set it by doing `Trainer(accelerator='gpu')`. + + | Name | Type | Params + ---------------------------------------- + 0 | _loss | MSELoss | 0 + 1 | _neural_net | Network | 460 + ---------------------------------------- + 460 Trainable params + 0 Non-trainable params + 460 Total params + 0.002 Total estimated model params size (MB) + /u/a/aivagnes/anaconda3/lib/python3.8/site-packages/torch/cuda/__init__.py:152: UserWarning: + Found GPU0 Quadro K600 which is of cuda capability 3.0. + PyTorch no longer supports this GPU because it is too old. + The minimum cuda capability supported by this library is 3.7. + + warnings.warn(old_gpu_warn % (d, name, major, minor, min_arch // 10, min_arch % 10)) + .. parsed-literal:: - Epoch 999: 100%|██████████| 5/5 [00:00<00:00, 248.36it/s, v_num=20, mean_loss=0.902] + Training: | | 0/? [00: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 diff --git a/docs/source/_rst/tutorials/tutorial8/tutorial_files/tutorial_27_0.png b/docs/source/_rst/tutorials/tutorial8/tutorial_files/tutorial_27_0.png new file mode 100644 index 0000000000000000000000000000000000000000..1e1c3be3274e24f049e70b33763344511480d2ba GIT binary patch literal 113096 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�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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..cc31b44c8d119a50f73eec513b7c389ac51c8b96 GIT binary patch literal 16848 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 IFPR7YFKO?%3;+NC diff --git a/pina/model/layers/__init__.py b/pina/model/layers/__init__.py index f0162bd..eb12bf0 100644 --- a/pina/model/layers/__init__.py +++ b/pina/model/layers/__init__.py @@ -13,6 +13,7 @@ __all__ = [ "FourierFeatureEmbedding", "AVNOBlock", "LowRankBlock", + "RBFBlock" ] from .convolution_2d import ContinuousConvBlock @@ -27,3 +28,4 @@ from .pod import PODBlock from .embedding import PeriodicBoundaryEmbedding, FourierFeatureEmbedding from .avno_layer import AVNOBlock from .lowrank_layer import LowRankBlock +from .rbf_layer import RBFBlock diff --git a/pina/model/layers/rbf_layer.py b/pina/model/layers/rbf_layer.py new file mode 100644 index 0000000..ef55406 --- /dev/null +++ b/pina/model/layers/rbf_layer.py @@ -0,0 +1,433 @@ +"""Module for Radial Basis Function Interpolation layer.""" + +import math +import warnings +from itertools import combinations_with_replacement +import torch +from ...utils import check_consistency + +def linear(r): + ''' + Linear radial basis function. + ''' + return -r + +def thin_plate_spline(r, eps=1e-7): + ''' + Thin plate spline radial basis function. + ''' + r = torch.clamp(r, min=eps) + return r**2 * torch.log(r) + +def cubic(r): + ''' + Cubic radial basis function. + ''' + return r**3 + +def quintic(r): + ''' + Quintic radial basis function. + ''' + return -r**5 + +def multiquadric(r): + ''' + Multiquadric radial basis function. + ''' + return -torch.sqrt(r**2 + 1) + +def inverse_multiquadric(r): + ''' + Inverse multiquadric radial basis function. + ''' + return 1/torch.sqrt(r**2 + 1) + +def inverse_quadratic(r): + ''' + Inverse quadratic radial basis function. + ''' + return 1/(r**2 + 1) + +def gaussian(r): + ''' + Gaussian radial basis function. + ''' + return torch.exp(-r**2) + +radial_functions = { + "linear": linear, + "thin_plate_spline": thin_plate_spline, + "cubic": cubic, + "quintic": quintic, + "multiquadric": multiquadric, + "inverse_multiquadric": inverse_multiquadric, + "inverse_quadratic": inverse_quadratic, + "gaussian": gaussian + } + +scale_invariant = {"linear", "thin_plate_spline", "cubic", "quintic"} + +min_degree_funcs = { + "multiquadric": 0, + "linear": 0, + "thin_plate_spline": 1, + "cubic": 1, + "quintic": 2 + } + + +class RBFBlock(torch.nn.Module): + """ + Radial Basis Function (RBF) interpolation layer. It need to be fitted with + the data with the method :meth:`fit`, before it can be used to interpolate + new points. The layer is not trainable. + + .. note:: + It reproduces the implementation of ``scipy.interpolate.RBFBlock`` and + it is inspired from the implementation in `torchrbf. + `_ + """ + def __init__( + self, + neighbors=None, + smoothing=0.0, + kernel="thin_plate_spline", + epsilon=None, + degree=None, + ): + """ + :param int neighbors: Number of neighbors to use for the + interpolation. + If ``None``, use all data points. + :param float smoothing: Smoothing parameter for the interpolation. + if 0.0, the interpolation is exact and no smoothing is applied. + :param str kernel: Radial basis function to use. Must be one of + ``linear``, ``thin_plate_spline``, ``cubic``, ``quintic``, + ``multiquadric``, ``inverse_multiquadric``, ``inverse_quadratic``, + or ``gaussian``. + :param float epsilon: Shape parameter that scaled the input to + the RBF. This defaults to 1 for kernels in ``scale_invariant`` + dictionary, and must be specified for other kernels. + :param int degree: Degree of the added polynomial. + For some kernels, there exists a minimum degree of the polynomial + such that the RBF is well-posed. Those minimum degrees are specified + in the `min_degree_funcs` dictionary above. If `degree` is less than + the minimum degree, a warning is raised and the degree is set to the + minimum value. + """ + + super().__init__() + check_consistency(neighbors, (int, type(None))) + check_consistency(smoothing, (int, float, torch.Tensor)) + check_consistency(kernel, str) + check_consistency(epsilon, (float, type(None))) + check_consistency(degree, (int, type(None))) + + self.neighbors = neighbors + self.smoothing = smoothing + self.kernel = kernel + self.epsilon = epsilon + self.degree = degree + self.powers = None + # initialize data points and values + self.y = None + self.d = None + # initialize attributes for the fitted model + self._shift = None + self._scale = None + self._coeffs = None + + @property + def smoothing(self): + """ + Smoothing parameter for the interpolation. + + :rtype: float + """ + return self._smoothing + + @smoothing.setter + def smoothing(self, value): + self._smoothing = value + + @property + def kernel(self): + """ + Radial basis function to use. + + :rtype: str + """ + return self._kernel + + @kernel.setter + def kernel(self, value): + if value not in radial_functions: + raise ValueError(f"Unknown kernel: {value}") + self._kernel = value.lower() + + @property + def epsilon(self): + """ + Shape parameter that scaled the input to the RBF. + + :rtype: float + """ + return self._epsilon + + @epsilon.setter + def epsilon(self, value): + if value is None: + if self.kernel in scale_invariant: + value = 1.0 + else: + raise ValueError("Must specify `epsilon` for this kernel.") + else: + value = float(value) + self._epsilon = value + + @property + def degree(self): + """ + Degree of the added polynomial. + + :rtype: int + """ + return self._degree + + @degree.setter + def degree(self, value): + min_degree = min_degree_funcs.get(self.kernel, -1) + if value is None: + value = max(min_degree, 0) + else: + value = int(value) + if value < -1: + raise ValueError("`degree` must be at least -1.") + if value < min_degree: + warnings.warn( + "`degree` is too small for this kernel. Setting to " + f"{min_degree}.", UserWarning, + ) + self._degree = value + + def _check_data(self, y, d): + if y.ndim != 2: + raise ValueError("y must be a 2-dimensional tensor.") + + if d.shape[0] != y.shape[0]: + raise ValueError( + "The first dim of d must have the same length as " + "the first dim of y." + ) + + if isinstance(self.smoothing, (int, float)): + self.smoothing = torch.full((y.shape[0],), self.smoothing + ).float().to(y.device) + + def fit(self, y, d): + """ + Fit the RBF interpolator to the data. + + :param torch.Tensor y: (n, d) tensor of data points. + :param torch.Tensor d: (n, m) tensor of data values. + """ + self._check_data(y, d) + + self.y = y + self.d = d + + if self.neighbors is None: + nobs = self.y.shape[0] + else: + raise NotImplementedError("neighbors currently not supported") + + powers = RBFBlock.monomial_powers(self.y.shape[1], self.degree).to( + y.device) + if powers.shape[0] > nobs: + raise ValueError("The data is not compatible with the " + "requested degree.") + + if self.neighbors is None: + self._shift, self._scale, self._coeffs = RBFBlock.solve(self.y, + self.d.reshape((self.y.shape[0], -1)), + self.smoothing, self.kernel, self.epsilon, powers) + + self.powers = powers + + def forward(self, x): + """ + Returns the interpolated data at the given points `x`. + + :param torch.Tensor x: `(n, d)` tensor of points at which + to query the interpolator + + :rtype: `(n, m)` torch.Tensor of interpolated data. + """ + if x.ndim != 2: + raise ValueError("`x` must be a 2-dimensional tensor.") + + nx, ndim = x.shape + if ndim != self.y.shape[1]: + raise ValueError( + "Expected the second dim of `x` to have length " + f"{self.y.shape[1]}." + ) + + kernel_func = radial_functions[self.kernel] + + yeps = self.y * self.epsilon + xeps = x * self.epsilon + xhat = (x - self._shift) / self._scale + + kv = RBFBlock.kernel_vector(xeps, yeps, kernel_func) + p = RBFBlock.polynomial_matrix(xhat, self.powers) + vec = torch.cat([kv, p], dim=1) + out = torch.matmul(vec, self._coeffs) + out = out.reshape((nx,) + self.d.shape[1:]) + return out + + @staticmethod + def kernel_vector(x, y, kernel_func): + """ + Evaluate radial functions with centers `y` for all points in `x`. + + :param torch.Tensor x: `(n, d)` tensor of points. + :param torch.Tensor y: `(m, d)` tensor of centers. + :param str kernel_func: Radial basis function to use. + + :rtype: `(n, m)` torch.Tensor of radial function values. + """ + return kernel_func(torch.cdist(x, y)) + + @staticmethod + def polynomial_matrix(x, powers): + """ + Evaluate monomials at `x` with given `powers`. + + :param torch.Tensor x: `(n, d)` tensor of points. + :param torch.Tensor powers: `(r, d)` tensor of powers for each monomial. + + :rtype: `(n, r)` torch.Tensor of monomial values. + """ + x_ = torch.repeat_interleave(x, repeats=powers.shape[0], dim=0) + powers_ = powers.repeat(x.shape[0], 1) + return torch.prod(x_**powers_, dim=1).view(x.shape[0], powers.shape[0]) + + @staticmethod + def kernel_matrix(x, kernel_func): + """ + Returns radial function values for all pairs of points in `x`. + + :param torch.Tensor x: `(n, d`) tensor of points. + :param str kernel_func: Radial basis function to use. + + :rtype: `(n, n`) torch.Tensor of radial function values. + """ + return kernel_func(torch.cdist(x, x)) + + @staticmethod + def monomial_powers(ndim, degree): + """ + Return the powers for each monomial in a polynomial. + + :param int ndim: Number of variables in the polynomial. + :param int degree: Degree of the polynomial. + + :rtype: `(nmonos, ndim)` torch.Tensor where each row contains the powers + for each variable in a monomial. + + """ + nmonos = math.comb(degree + ndim, ndim) + out = torch.zeros((nmonos, ndim), dtype=torch.int32) + count = 0 + for deg in range(degree + 1): + for mono in combinations_with_replacement(range(ndim), deg): + for var in mono: + out[count, var] += 1 + count += 1 + return out + + @staticmethod + def build(y, d, smoothing, kernel, epsilon, powers): + """ + Build the RBF linear system. + + :param torch.Tensor y: (n, d) tensor of data points. + :param torch.Tensor d: (n, m) tensor of data values. + :param torch.Tensor smoothing: (n,) tensor of smoothing parameters. + :param str kernel: Radial basis function to use. + :param float epsilon: Shape parameter that scaled the input to the RBF. + :param torch.Tensor powers: (r, d) tensor of powers for each monomial. + + :rtype: (lhs, rhs, shift, scale) where `lhs` and `rhs` are the + left-hand side and right-hand side of the linear system, and + `shift` and `scale` are the shift and scale parameters. + """ + p = d.shape[0] + s = d.shape[1] + r = powers.shape[0] + kernel_func = radial_functions[kernel] + + mins = torch.min(y, dim=0).values + maxs = torch.max(y, dim=0).values + shift = (maxs + mins) / 2 + scale = (maxs - mins) / 2 + + scale[scale == 0.0] = 1.0 + + yeps = y * epsilon + yhat = (y - shift) / scale + + lhs = torch.empty((p + r, p + r), device=d.device).float() + lhs[:p, :p] = RBFBlock.kernel_matrix(yeps, kernel_func) + lhs[:p, p:] = RBFBlock.polynomial_matrix(yhat, powers) + lhs[p:, :p] = lhs[:p, p:].T + lhs[p:, p:] = 0.0 + lhs[:p, :p] += torch.diag(smoothing) + + rhs = torch.empty((r + p, s), device=d.device).float() + rhs[:p] = d + rhs[p:] = 0.0 + return lhs, rhs, shift, scale + + @staticmethod + def solve(y, d, smoothing, kernel, epsilon, powers): + """ + Build then solve the RBF linear system. + + :param torch.Tensor y: (n, d) tensor of data points. + :param torch.Tensor d: (n, m) tensor of data values. + :param torch.Tensor smoothing: (n,) tensor of smoothing parameters. + + :param str kernel: Radial basis function to use. + :param float epsilon: Shape parameter that scaled the input to the RBF. + :param torch.Tensor powers: (r, d) tensor of powers for each monomial. + + :raises ValueError: If the linear system is singular. + + :rtype: (shift, scale, coeffs) where `shift` and `scale` are the + shift and scale parameters, and `coeffs` are the coefficients + of the interpolator + """ + + lhs, rhs, shift, scale = RBFBlock.build(y, d, smoothing, kernel, + epsilon, powers) + try: + coeffs = torch.linalg.solve(lhs, rhs) + except RuntimeError as e: + msg = "Singular matrix." + nmonos = powers.shape[0] + if nmonos > 0: + pmat = RBFBlock.polynomial_matrix((y - shift) / scale, powers) + rank = torch.linalg.matrix_rank(pmat) + if rank < nmonos: + msg = ( + "Singular matrix. The matrix of monomials evaluated at " + "the data point coordinates does not have full column " + f"rank ({rank}/{nmonos})." + ) + + raise ValueError(msg) from e + + return shift, scale, coeffs diff --git a/tests/test_layers/test_rbf.py b/tests/test_layers/test_rbf.py new file mode 100644 index 0000000..43f19f3 --- /dev/null +++ b/tests/test_layers/test_rbf.py @@ -0,0 +1,85 @@ +import torch +import pytest +import math + +from pina.model.layers.rbf_layer import RBFBlock + +x = torch.linspace(-1, 1, 100) +toy_params = torch.linspace(0, 1, 10).unsqueeze(1) +toy_snapshots = torch.vstack([torch.exp(-x**2)*c for c in toy_params]) +toy_params_test = torch.linspace(0, 1, 3).unsqueeze(1) +toy_snapshots_test = torch.vstack([torch.exp(-x**2)*c for c in toy_params_test]) + +kernels = ["linear", "thin_plate_spline", "cubic", "quintic", + "multiquadric", "inverse_multiquadric", "inverse_quadratic", "gaussian"] + +noscale_invariant_kernels = ["multiquadric", "inverse_multiquadric", + "inverse_quadratic", "gaussian"] + +scale_invariant_kernels = ["linear", "thin_plate_spline", "cubic", "quintic"] + +def test_constructor_default(): + rbf = RBFBlock() + assert rbf.kernel == "thin_plate_spline" + assert rbf.epsilon == 1 + assert rbf.smoothing == 0. + +@pytest.mark.parametrize("kernel", kernels) +@pytest.mark.parametrize("epsilon", [0.1, 1., 10.]) +def test_constructor_epsilon(kernel, epsilon): + if kernel in scale_invariant_kernels: + rbf = RBFBlock(kernel=kernel) + assert rbf.kernel == kernel + assert rbf.epsilon == 1 + elif kernel in noscale_invariant_kernels: + with pytest.raises(ValueError): + rbf = RBFBlock(kernel=kernel) + rbf = RBFBlock(kernel=kernel, epsilon=epsilon) + assert rbf.kernel == kernel + assert rbf.epsilon == epsilon + + assert rbf.smoothing == 0. + +@pytest.mark.parametrize("kernel", kernels) +@pytest.mark.parametrize("epsilon", [0.1, 1., 10.]) +@pytest.mark.parametrize("degree", [2, 3, 4]) +@pytest.mark.parametrize("smoothing", [1e-5, 1e-3, 1e-1]) +def test_constructor_all(kernel, epsilon, degree, smoothing): + rbf = RBFBlock(kernel=kernel, epsilon=epsilon, degree=degree, + smoothing=smoothing) + assert rbf.kernel == kernel + assert rbf.epsilon == epsilon + assert rbf.degree == degree + assert rbf.smoothing == smoothing + assert rbf.y == None + assert rbf.d == None + assert rbf.powers == None + assert rbf._shift == None + assert rbf._scale == None + assert rbf._coeffs == None + +def test_fit(): + rbf = RBFBlock() + rbf.fit(toy_params, toy_snapshots) + ndim = toy_params.shape[1] + torch.testing.assert_close(rbf.y, toy_params) + torch.testing.assert_close(rbf.d, toy_snapshots) + assert rbf.powers.shape == (math.comb(rbf.degree+ndim, ndim), ndim) + assert rbf._shift.shape == (ndim,) + assert rbf._scale.shape == (ndim,) + assert rbf._coeffs.shape == (rbf.powers.shape[0]+toy_snapshots.shape[0], toy_snapshots.shape[1]) + +def test_forward(): + rbf = RBFBlock() + rbf.fit(toy_params, toy_snapshots) + c = rbf(toy_params) + assert c.shape == toy_snapshots.shape + torch.testing.assert_close(c, toy_snapshots) + +def test_forward_unseen_parameters(): + rbf = RBFBlock() + rbf.fit(toy_params, toy_snapshots) + c = rbf(toy_params_test) + assert c.shape == toy_snapshots_test.shape + torch.testing.assert_close(c, toy_snapshots_test) + diff --git a/tutorials/README.md b/tutorials/README.md index aaccd57..5838a1f 100644 --- a/tutorials/README.md +++ b/tutorials/README.md @@ -32,4 +32,4 @@ Time dependent Kuramoto Sivashinsky equation using the Averaging Neural Operator | Description | Tutorial | |---------------|-----------| Unstructured convolutional autoencoder via continuous convolution |[[.ipynb](tutorial4/tutorial.ipynb), [.py](tutorial4/tutorial.py), [.html](http://mathlab.github.io/PINA/_rst/tutorials/tutorial4/tutorial.html)]| -POD-NN for reduced order modeling| [[.ipynb](tutorial8/tutorial.ipynb), [.py](tutorial8/tutorial.py), [.html](http://mathlab.github.io/PINA/_rst/tutorials/tutorial8/tutorial.html)]| +POD-RBF and POD-NN for reduced order modeling| [[.ipynb](tutorial8/tutorial.ipynb), [.py](tutorial8/tutorial.py), [.html](http://mathlab.github.io/PINA/_rst/tutorials/tutorial8/tutorial.html)]| diff --git a/tutorials/tutorial8/tutorial.ipynb b/tutorials/tutorial8/tutorial.ipynb index 9115d12..fb368b5 100644 --- a/tutorials/tutorial8/tutorial.ipynb +++ b/tutorials/tutorial8/tutorial.ipynb @@ -5,7 +5,7 @@ "id": "dbbb73cb-a632-4056-bbca-b483b2ad5f9c", "metadata": {}, "source": [ - "# Tutorial: Reduced order model (PODNN) for parametric problems" + "# Tutorial: Reduced order model (POD-RBF or POD-NN) for parametric problems" ] }, { @@ -13,9 +13,9 @@ "id": "84508f26-1ba6-4b59-926b-3e340d632a15", "metadata": {}, "source": [ - "The tutorial aims to show how to employ the **PINA** library in order to apply a reduced order modeling technique [1]. Such methodologies have several similarities with machine learning approaches, since the main goal consists of predicting the solution of differential equations (typically parametric PDEs) in a real-time fashion.\n", + "The tutorial aims to show how to employ the **PINA** library in order to apply a reduced order modeling technique [1]. Such methodologies have several similarities with machine learning approaches, since the main goal consists in predicting the solution of differential equations (typically parametric PDEs) in a real-time fashion.\n", "\n", - "In particular we are going to use the Proper Orthogonal Decomposition with Neural Network (PODNN) [2], which basically performs a dimensional reduction using the POD approach, approximating the parametric solution manifold (at the reduced space) using a NN. In this example, we use a simple multilayer perceptron, but the plenty of different architectures can be plugged as well.\n", + "In particular we are going to use the Proper Orthogonal Decomposition with either Radial Basis Function Interpolation(POD-RBF) or Neural Network (POD-NN) [2]. Here we basically perform a dimensional reduction using the POD approach, and approximating the parametric solution manifold (at the reduced space) using an interpolation (RBF) or a regression technique (NN). In this example, we use a simple multilayer perceptron, but the plenty of different architectures can be plugged as well.\n", "\n", "#### References\n", "1. Rozza G., Stabile G., Ballarin F. (2022). Advanced Reduced Order Methods and Applications in Computational Fluid Dynamics, Society for Industrial and Applied Mathematics. \n", @@ -33,7 +33,7 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 1, "id": "00d1027d-13f2-4619-9ff7-a740568f13ff", "metadata": {}, "outputs": [ @@ -41,7 +41,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "We are using PINA version 0.1\n" + "We are using PINA version 0.1.1\n" ] } ], @@ -55,7 +55,7 @@ "from pina.geometry import CartesianDomain\n", "\n", "from pina.problem import ParametricProblem\n", - "from pina.model.layers import PODBlock\n", + "from pina.model.layers import PODBlock, RBFBlock\n", "from pina import Condition, LabelTensor, Trainer\n", "from pina.model import FeedForward\n", "from pina.solvers import SupervisedSolver\n", @@ -71,35 +71,25 @@ "We exploit the [Smithers](www.github.com/mathLab/Smithers) library to collect the parametric snapshots. In particular, we use the `NavierStokesDataset` class that contains a set of parametric solutions of the Navier-Stokes equations in a 2D L-shape domain. The parameter is the inflow velocity.\n", "The dataset is composed by 500 snapshots of the velocity (along $x$, $y$, and the magnitude) and pressure fields, and the corresponding parameter values.\n", "\n", - "To visually check the snapshots, let's plot also the data points and the reference solution: this is the expected output of the neural network." + "To visually check the snapshots, let's plot also the data points and the reference solution: this is the expected output of our model." ] }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 2, "id": "2c55d972-09a9-41de-9400-ba051c28cdcb", "metadata": {}, "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Epoch 0: 0%| | 0/5 [48:45" + "

" ] }, - "metadata": {}, + "metadata": { + "needs_background": "light" + }, "output_type": "display_data" } ], @@ -124,7 +114,7 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 3, "id": "bd081bcd-192f-4370-a013-9b73050b5383", "metadata": {}, "outputs": [], @@ -153,7 +143,7 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 4, "id": "55cef553-7495-401d-9d17-1acff8ec5953", "metadata": {}, "outputs": [], @@ -163,8 +153,26 @@ " parameter_domain = CartesianDomain({'mu': [0, 100]})\n", "\n", " conditions = {\n", - " 'io': Condition(input_points=p, output_points=u)\n", - " }" + " 'io': Condition(input_points=p_train, output_points=u_train)\n", + " }\n", + "\n", + "poisson_problem = SnapshotProblem()" + ] + }, + { + "cell_type": "markdown", + "id": "3b255526", + "metadata": {}, + "source": [ + "We can then build a `PODRBF` model (using a Radial Basis Function interpolation as approximation) and a `PODNN` approach (using an MLP architecture as approximation)." + ] + }, + { + "cell_type": "markdown", + "id": "352ac702", + "metadata": {}, + "source": [ + "## POD-RBF reduced order model" ] }, { @@ -172,12 +180,112 @@ "id": "6b264569-57b3-458d-bb69-8e94fe89017d", "metadata": {}, "source": [ - "Then, we define the model we want to use: an MLP architecture which takes in input the parameter and returns the *modal coefficients*, i.e.the interpolated coefficients of the POD expansion. Such coefficients are projected to the original space using the POD modes, which are computed and stored in the `PODBlock` object." + "Then, we define the model we want to use, with the POD (`PODBlock`) and the RBF (`RBFBlock`) objects." ] }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 5, + "id": "0bd2c30c", + "metadata": {}, + "outputs": [], + "source": [ + "class PODRBF(torch.nn.Module):\n", + " \"\"\"\n", + " Proper orthogonal decomposition with Radial Basis Function interpolation model.\n", + " \"\"\"\n", + "\n", + " def __init__(self, pod_rank, rbf_kernel):\n", + " \"\"\"\n", + " \n", + " \"\"\"\n", + " super().__init__()\n", + " \n", + " self.pod = PODBlock(pod_rank)\n", + " self.rbf = RBFBlock(kernel=rbf_kernel)\n", + " \n", + "\n", + " def forward(self, x):\n", + " \"\"\"\n", + " Defines the computation performed at every call.\n", + "\n", + " :param x: The tensor to apply the forward pass.\n", + " :type x: torch.Tensor\n", + " :return: the output computed by the model.\n", + " :rtype: torch.Tensor\n", + " \"\"\"\n", + " coefficents = self.rbf(x)\n", + " return self.pod.expand(coefficents)\n", + "\n", + " def fit(self, p, x):\n", + " \"\"\"\n", + " Call the :meth:`pina.model.layers.PODBlock.fit` method of the\n", + " :attr:`pina.model.layers.PODBlock` attribute to perform the POD,\n", + " and the :meth:`pina.model.layers.RBFBlock.fit` method of the\n", + " :attr:`pina.model.layers.RBFBlock` attribute to fit the interpolation.\n", + " \"\"\"\n", + " self.pod.fit(x)\n", + " self.rbf.fit(p, self.pod.reduce(x))" + ] + }, + { + "cell_type": "markdown", + "id": "4d2551ff", + "metadata": {}, + "source": [ + "We can then fit the model and ask it to predict the required field for unseen values of the parameters. Note that this model does not need a `Trainer` since it does not include any neural network or learnable parameters." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "af0a7f9b", + "metadata": {}, + "outputs": [], + "source": [ + "pod_rbf = PODRBF(pod_rank=20, rbf_kernel='thin_plate_spline')\n", + "pod_rbf.fit(p_train, u_train)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "41a27834", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Error summary for POD-RBF model:\n", + " Train: 1.287801e-03\n", + " Test: 1.217041e-03\n" + ] + } + ], + "source": [ + "u_test_rbf = pod_rbf(p_test)\n", + "u_train_rbf = pod_rbf(p_train)\n", + "\n", + "relative_error_train = torch.norm(u_train_rbf - u_train)/torch.norm(u_train)\n", + "relative_error_test = torch.norm(u_test_rbf - u_test)/torch.norm(u_test)\n", + "\n", + "print('Error summary for POD-RBF model:')\n", + "print(f' Train: {relative_error_train.item():e}')\n", + "print(f' Test: {relative_error_test.item():e}')" + ] + }, + { + "cell_type": "markdown", + "id": "a5bac005", + "metadata": {}, + "source": [ + "## POD-NN reduced order model" + ] + }, + { + "cell_type": "code", + "execution_count": 8, "id": "c4170514-eb73-488e-8942-0129070e4e13", "metadata": {}, "outputs": [], @@ -232,17 +340,15 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 9, "id": "e998cad5-e3a7-4a3b-a1a5-400b6ff575a1", "metadata": {}, "outputs": [], "source": [ - "poisson_problem = SnapshotProblem()\n", - "\n", "pod_nn = PODNN(pod_rank=20, layers=[10, 10, 10], func=torch.nn.Tanh)\n", - "pod_nn.fit_pod(u)\n", + "pod_nn.fit_pod(u_train)\n", "\n", - "pinn_stokes = SupervisedSolver(\n", + "pod_nn_stokes = SupervisedSolver(\n", " problem=poisson_problem, \n", " model=pod_nn, \n", " optimizer=torch.optim.Adam,\n", @@ -259,7 +365,7 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": 10, "id": "f1e94f42-cf80-4ca7-bb5e-ad47c1dd2784", "metadata": {}, "outputs": [ @@ -267,10 +373,11 @@ "name": "stderr", "output_type": "stream", "text": [ - "GPU available: False, used: False\n", + "GPU available: True (cuda), 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", + "/u/a/aivagnes/anaconda3/lib/python3.8/site-packages/pytorch_lightning/trainer/setup.py:187: GPU available but not used. You can set it by doing `Trainer(accelerator='gpu')`.\n", "\n", " | Name | Type | Params\n", "----------------------------------------\n", @@ -280,15 +387,28 @@ "460 Trainable params\n", "0 Non-trainable params\n", "460 Total params\n", - "0.002 Total estimated model params size (MB)\n" + "0.002 Total estimated model params size (MB)\n", + "/u/a/aivagnes/anaconda3/lib/python3.8/site-packages/torch/cuda/__init__.py:152: UserWarning: \n", + " Found GPU0 Quadro K600 which is of cuda capability 3.0.\n", + " PyTorch no longer supports this GPU because it is too old.\n", + " The minimum cuda capability supported by this library is 3.7.\n", + " \n", + " warnings.warn(old_gpu_warn % (d, name, major, minor, min_arch // 10, min_arch % 10))\n" ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "Epoch 999: 100%|██████████| 5/5 [00:00<00:00, 286.50it/s, v_num=20, mean_loss=0.902]" - ] + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "a5ebdb14ddcb457da6d72432a4aa7a61", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Training: | | 0/? [00:00" + "
" ] }, - "metadata": {}, + "metadata": { + "needs_background": "light" + }, "output_type": "display_data" } ], "source": [ - "idx = torch.randint(0, len(u_test_pred), (4,))\n", - "u_idx = pinn_stokes(p_test[idx])\n", + "idx = torch.randint(0, len(u_test), (4,))\n", + "u_idx_rbf = pod_rbf(p_test[idx])\n", + "u_idx_nn = pod_nn_stokes(p_test[idx])\n", + "\n", "import numpy as np\n", "import matplotlib\n", - "fig, axs = plt.subplots(3, 4, figsize=(14, 9))\n", + "import matplotlib.pyplot as plt\n", "\n", - "relative_error = np.abs(u_test[idx] - u_idx.detach())\n", - "relative_error = np.where(u_test[idx] < 1e-7, 1e-7, relative_error/u_test[idx])\n", + "fig, axs = plt.subplots(5, 4, figsize=(14, 9))\n", + "\n", + "relative_error_rbf = np.abs(u_test[idx] - u_idx_rbf.detach())\n", + "relative_error_rbf = np.where(u_test[idx] < 1e-7, 1e-7, relative_error_rbf/u_test[idx])\n", + "\n", + "relative_error_nn = np.abs(u_test[idx] - u_idx_nn.detach())\n", + "relative_error_nn = np.where(u_test[idx] < 1e-7, 1e-7, relative_error_nn/u_test[idx])\n", " \n", - "for i, (idx_, u_, err_) in enumerate(zip(idx, u_idx, relative_error)):\n", - " cm = axs[0, i].tricontourf(dataset.triang, u_.detach())\n", + "for i, (idx_, rbf_, nn_, rbf_err_, nn_err_) in enumerate(\n", + " zip(idx, u_idx_rbf, u_idx_nn, relative_error_rbf, relative_error_nn)):\n", " axs[0, i].set_title(f'$\\mu$ = {p_test[idx_].item():.2f}')\n", - " plt.colorbar(cm)\n", - "\n", - " cm = axs[1, i].tricontourf(dataset.triang, u_test[idx_].flatten())\n", - " plt.colorbar(cm)\n", - "\n", - " cm = axs[2, i].tripcolor(dataset.triang, err_, norm=matplotlib.colors.LogNorm())\n", - " plt.colorbar(cm)\n", + " \n", + " cm = axs[0, i].tricontourf(dataset.triang, rbf_.detach()) # POD-RBF prediction\n", + " plt.colorbar(cm, ax=axs[0, i])\n", + " \n", + " cm = axs[1, i].tricontourf(dataset.triang, nn_.detach()) # POD-NN prediction\n", + " plt.colorbar(cm, ax=axs[1, i])\n", "\n", + " cm = axs[2, i].tricontourf(dataset.triang, u_test[idx_].flatten()) # Truth\n", + " plt.colorbar(cm, ax=axs[2, i])\n", "\n", + " cm = axs[3, i].tripcolor(dataset.triang, rbf_err_, norm=matplotlib.colors.LogNorm()) # Error for POD-RBF\n", + " plt.colorbar(cm, ax=axs[3, i])\n", + " \n", + " cm = axs[4, i].tripcolor(dataset.triang, nn_err_, norm=matplotlib.colors.LogNorm()) # Error for POD-NN\n", + " plt.colorbar(cm, ax=axs[4, i])\n", + " \n", "plt.show()" ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d3758c39", + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { "kernelspec": { - "display_name": "Python 3.9.18 ('gridcal')", + "display_name": "Python 3", "language": "python", "name": "python3" }, @@ -418,7 +563,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.18" + "version": "3.8.8" }, "vscode": { "interpreter": { diff --git a/tutorials/tutorial8/tutorial.py b/tutorials/tutorial8/tutorial.py index 49b0b93..310c04b 100644 --- a/tutorials/tutorial8/tutorial.py +++ b/tutorials/tutorial8/tutorial.py @@ -1,20 +1,20 @@ #!/usr/bin/env python # coding: utf-8 -# # Tutorial: Reduced order model (PODNN) for parametric problems +# # Tutorial: Reduced order model (POD-RBF and POD-NN) for parametric problems -# The tutorial aims to show how to employ the **PINA** library in order to apply a reduced order modeling technique [1]. Such methodologies have several similarities with machine learning approaches, since the main goal consists of predicting the solution of differential equations (typically parametric PDEs) in a real-time fashion. -# -# In particular we are going to use the Proper Orthogonal Decomposition with Neural Network (PODNN) [2], which basically perform a dimensional reduction using the POD approach, approximating the parametric solution manifold (at the reduced space) using a NN. In this example, we use a simple multilayer perceptron, but the plenty of different archiutectures can be plugged as well. -# +# The tutorial aims to show how to employ the **PINA** library in order to apply a reduced order modeling technique [1]. Such methodologies have several similarities with machine learning approaches, since the main goal consists in predicting the solution of differential equations (typically parametric PDEs) in a real-time fashion. +# +# In particular we are going to use the Proper Orthogonal Decomposition with either Radial Basis Function Interpolation(POD-RBF) or Neural Network (POD-NN) [2]. Here we basically perform a dimensional reduction using the POD approach, and approximating the parametric solution manifold (at the reduced space) using an interpolation (RBF) or a regression technique (NN). In this example, we use a simple multilayer perceptron, but the plenty of different architectures can be plugged as well. +# # #### References -# 1. Rozza G., Stabile G., Ballarin F. (2022). Advanced Reduced Order Methods and Applications in Computational Fluid Dynamics, Society for Industrial and Applied Mathematics. +# 1. Rozza G., Stabile G., Ballarin F. (2022). Advanced Reduced Order Methods and Applications in Computational Fluid Dynamics, Society for Industrial and Applied Mathematics. # 2. Hesthaven, J. S., & Ubbiali, S. (2018). Non-intrusive reduced order modeling of nonlinear problems using neural networks. Journal of Computational Physics, 363, 55-78. # Let's start with the necessary imports. # It's important to note the minimum PINA version to run this tutorial is the `0.1`. -# In[29]: +# In[1]: get_ipython().run_line_magic('matplotlib', 'inline') @@ -26,7 +26,7 @@ import pina from pina.geometry import CartesianDomain from pina.problem import ParametricProblem -from pina.model.layers import PODBlock +from pina.model.layers import PODBlock, RBFBlock from pina import Condition, LabelTensor, Trainer from pina.model import FeedForward from pina.solvers import SupervisedSolver @@ -36,10 +36,10 @@ print(f'We are using PINA version {pina.__version__}') # We exploit the [Smithers](www.github.com/mathLab/Smithers) library to collect the parametric snapshots. In particular, we use the `NavierStokesDataset` class that contains a set of parametric solutions of the Navier-Stokes equations in a 2D L-shape domain. The parameter is the inflow velocity. # The dataset is composed by 500 snapshots of the velocity (along $x$, $y$, and the magnitude) and pressure fields, and the corresponding parameter values. -# -# To visually check the snapshots, let's plot also the data points and the reference solution: this is the expected output of the neural network. +# +# To visually check the snapshots, let's plot also the data points and the reference solution: this is the expected output of our model. -# In[30]: +# In[2]: from smithers.dataset import NavierStokesDataset @@ -51,10 +51,10 @@ for ax, p, u in zip(axs, dataset.params[:4], dataset.snapshots['mag(v)'][:4]): ax.set_title(f'$\mu$ = {p[0]:.2f}') -# The *snapshots* - aka the numerical solutions computed for several parameters - and the corresponding parameters are the only data we need to train the model, in order to predict for any new test parameter the solution. +# The *snapshots* - aka the numerical solutions computed for several parameters - and the corresponding parameters are the only data we need to train the model, in order to predict the solution for any new test parameter. # To properly validate the accuracy, we initially split the 500 snapshots into the training dataset (90% of the original data) and the testing one (the reamining 10%). It must be said that, to plug the snapshots into **PINA**, we have to cast them to `LabelTensor` objects. -# In[31]: +# In[3]: u = torch.tensor(dataset.snapshots['mag(v)']).float() @@ -73,7 +73,7 @@ p_train, p_test = p[:n_train], p[n_train:] # It is now time to define the problem! We inherit from `ParametricProblem` (since the space invariant typically of this methodology), just defining a simple *input-output* condition. -# In[32]: +# In[4]: class SnapshotProblem(ParametricProblem): @@ -81,13 +81,85 @@ class SnapshotProblem(ParametricProblem): parameter_domain = CartesianDomain({'mu': [0, 100]}) conditions = { - 'io': Condition(input_points=p, output_points=u) + 'io': Condition(input_points=p_train, output_points=u_train) } +poisson_problem = SnapshotProblem() -# Then, we define the model we want to use: basically we have a MLP architecture that takes in input the parameter and return the *modal coefficients*, so the reduced dimension representation (the coordinates in the POD space). Such latent variable is the projected to the original space using the POD modes, which are computed and stored in the `PODBlock` object. -# In[33]: +# We can then build a `PODRBF` model (using a Radial Basis Function interpolation as approximation) and a `PODNN` approach (using an MLP architecture as approximation). + +# ## POD-RBF reduced order model + +# Then, we define the model we want to use, with the POD (`PODBlock`) and the RBF (`RBFBlock`) objects. + +# In[5]: + + +class PODRBF(torch.nn.Module): + """ + Proper orthogonal decomposition with Radial Basis Function interpolation model. + """ + + def __init__(self, pod_rank, rbf_kernel): + """ + + """ + super().__init__() + + self.pod = PODBlock(pod_rank) + self.rbf = RBFBlock(kernel=rbf_kernel) + + + def forward(self, x): + """ + Defines the computation performed at every call. + + :param x: The tensor to apply the forward pass. + :type x: torch.Tensor + :return: the output computed by the model. + :rtype: torch.Tensor + """ + coefficents = self.rbf(x) + return self.pod.expand(coefficents) + + def fit(self, p, x): + """ + Call the :meth:`pina.model.layers.PODBlock.fit` method of the + :attr:`pina.model.layers.PODBlock` attribute to perform the POD, + and the :meth:`pina.model.layers.RBFBlock.fit` method of the + :attr:`pina.model.layers.RBFBlock` attribute to fit the interpolation. + """ + self.pod.fit(x) + self.rbf.fit(p, self.pod.reduce(x)) + + +# We can then fit the model and ask it to predict the required field for unseen values of the parameters. Note that this model does not need a `Trainer` since it does not include any neural network or learnable parameters. + +# In[6]: + + +pod_rbf = PODRBF(pod_rank=20, rbf_kernel='thin_plate_spline') +pod_rbf.fit(p_train, u_train) + + +# In[7]: + + +u_test_rbf = pod_rbf(p_test) +u_train_rbf = pod_rbf(p_train) + +relative_error_train = torch.norm(u_train_rbf - u_train)/torch.norm(u_train) +relative_error_test = torch.norm(u_test_rbf - u_test)/torch.norm(u_test) + +print('Error summary for POD-RBF model:') +print(f' Train: {relative_error_train.item():e}') +print(f' Test: {relative_error_test.item():e}') + + +# ## POD-NN reduced order model + +# In[8]: class PODNN(torch.nn.Module): @@ -97,10 +169,10 @@ class PODNN(torch.nn.Module): def __init__(self, pod_rank, layers, func): """ - + """ super().__init__() - + self.pod = PODBlock(pod_rank) self.nn = FeedForward( input_dimensions=1, @@ -108,7 +180,7 @@ class PODNN(torch.nn.Module): layers=layers, func=func ) - + def forward(self, x): """ @@ -130,30 +202,28 @@ class PODNN(torch.nn.Module): self.pod.fit(x) -# We highlight that the POD modes are directly computed by means of the singular value decomposition (computed over the input data), and not trained using the back-propagation approach. Only the weights of the MLP are actually trained during the optimization loop. +# We highlight that the POD modes are directly computed by means of the singular value decomposition (computed over the input data), and not trained using the backpropagation approach. Only the weights of the MLP are actually trained during the optimization loop. -# In[34]: +# In[9]: -poisson_problem = SnapshotProblem() - pod_nn = PODNN(pod_rank=20, layers=[10, 10, 10], func=torch.nn.Tanh) -pod_nn.fit_pod(u) +pod_nn.fit_pod(u_train) -pinn_stokes = SupervisedSolver( - problem=poisson_problem, - model=pod_nn, +pod_nn_stokes = SupervisedSolver( + problem=poisson_problem, + model=pod_nn, optimizer=torch.optim.Adam, optimizer_kwargs={'lr': 0.0001}) -# Now that we set the `Problem` and the `Model`, we have just to train the model and use it for predict the test snapshots. +# Now that we have set the `Problem` and the `Model`, we have just to train the model and use it for predicting the test snapshots. -# In[35]: +# In[10]: trainer = Trainer( - solver=pinn_stokes, + solver=pod_nn_stokes, max_epochs=1000, batch_size=100, log_every_n_steps=5, @@ -161,47 +231,69 @@ trainer = Trainer( trainer.train() -# Done! Now the computational expensive part is over, we can load in future the model to infer new parameters (simply loading the checkpoint file automatically created by `Lightning`) or test its performances. We measure the relative error for the training and test datasets, printing the mean one. +# Done! Now that the computational expensive part is over, we can load in future the model to infer new parameters (simply loading the checkpoint file automatically created by `Lightning`) or test its performances. We measure the relative error for the training and test datasets, printing the mean one. -# In[36]: +# In[11]: -u_test_pred = pinn_stokes(p_test) -u_train_pred = pinn_stokes(p_train) +u_test_nn = pod_nn_stokes(p_test) +u_train_nn = pod_nn_stokes(p_train) -relative_error_train = torch.norm(u_train_pred - u_train)/torch.norm(u_train) -relative_error_test = torch.norm(u_test_pred - u_test)/torch.norm(u_test) +relative_error_train = torch.norm(u_train_nn - u_train)/torch.norm(u_train) +relative_error_test = torch.norm(u_test_nn - u_test)/torch.norm(u_test) -print('Error summary:') +print('Error summary for POD-NN model:') print(f' Train: {relative_error_train.item():e}') print(f' Test: {relative_error_test.item():e}') -# We can of course also plot the solutions predicted by the `PODNN` model, comparing them to the original ones. We can note here some differences, especially for low velocities, but improvements can be accomplished thanks to longer training. +# ## POD-RBF vs POD-NN -# In[37]: +# We can of course also plot the solutions predicted by the `PODRBF` and by the `PODNN` model, comparing them to the original ones. We can note here, in the `PODNN` model and for low velocities, some differences, but improvements can be accomplished thanks to longer training. + +# In[12]: -idx = torch.randint(0, len(u_test_pred), (4,)) -u_idx = pinn_stokes(p_test[idx]) +idx = torch.randint(0, len(u_test), (4,)) +u_idx_rbf = pod_rbf(p_test[idx]) +u_idx_nn = pod_nn_stokes(p_test[idx]) + import numpy as np import matplotlib -fig, axs = plt.subplots(3, 4, figsize=(14, 9)) +import matplotlib.pyplot as plt -relative_error = np.abs(u_test[idx] - u_idx.detach()) -relative_error = np.where(u_test[idx] < 1e-7, 1e-7, relative_error/u_test[idx]) - -for i, (idx_, u_, err_) in enumerate(zip(idx, u_idx, relative_error)): - cm = axs[0, i].tricontourf(dataset.triang, u_.detach()) +fig, axs = plt.subplots(5, 4, figsize=(14, 9)) + +relative_error_rbf = np.abs(u_test[idx] - u_idx_rbf.detach()) +relative_error_rbf = np.where(u_test[idx] < 1e-7, 1e-7, relative_error_rbf/u_test[idx]) + +relative_error_nn = np.abs(u_test[idx] - u_idx_nn.detach()) +relative_error_nn = np.where(u_test[idx] < 1e-7, 1e-7, relative_error_nn/u_test[idx]) + +for i, (idx_, rbf_, nn_, rbf_err_, nn_err_) in enumerate( + zip(idx, u_idx_rbf, u_idx_nn, relative_error_rbf, relative_error_nn)): axs[0, i].set_title(f'$\mu$ = {p_test[idx_].item():.2f}') - plt.colorbar(cm) - cm = axs[1, i].tricontourf(dataset.triang, u_test[idx_].flatten()) - plt.colorbar(cm) + cm = axs[0, i].tricontourf(dataset.triang, rbf_.detach()) # POD-RBF prediction + plt.colorbar(cm, ax=axs[0, i]) - cm = axs[2, i].tripcolor(dataset.triang, err_, norm=matplotlib.colors.LogNorm()) - plt.colorbar(cm) + cm = axs[1, i].tricontourf(dataset.triang, nn_.detach()) # POD-NN prediction + plt.colorbar(cm, ax=axs[1, i]) + cm = axs[2, i].tricontourf(dataset.triang, u_test[idx_].flatten()) # Truth + plt.colorbar(cm, ax=axs[2, i]) + + cm = axs[3, i].tripcolor(dataset.triang, rbf_err_, norm=matplotlib.colors.LogNorm()) # Error for POD-RBF + plt.colorbar(cm, ax=axs[3, i]) + + cm = axs[4, i].tripcolor(dataset.triang, nn_err_, norm=matplotlib.colors.LogNorm()) # Error for POD-NN + plt.colorbar(cm, ax=axs[4, i]) plt.show() + +# In[ ]: + + + +