From e0aeb923f36e3873f6c2bc9b3aad17b4844a6031 Mon Sep 17 00:00:00 2001 From: Dario Coscia <93731561+dario-coscia@users.noreply.github.com> Date: Tue, 2 Apr 2024 10:22:30 +0200 Subject: [PATCH] Trainer Tutorial (#271) * adding tutorial trainer * implementing deepcopy for AbstractProblem and LabelTensor to match Lightning Callbacks --------- Co-authored-by: Dario Coscia --- docs/source/_rst/_tutorial.rst | 1 + .../_rst/tutorials/tutorial11/logging.png | Bin 0 -> 208727 bytes .../_rst/tutorials/tutorial11/tutorial.rst | 536 ++++++++++++ pina/label_tensor.py | 17 +- pina/problem/abstract_problem.py | 18 + tutorials/README.md | 1 + tutorials/tutorial11/logging.png | Bin 0 -> 208727 bytes tutorials/tutorial11/tutorial.ipynb | 821 ++++++++++++++++++ tutorials/tutorial11/tutorial.py | 336 +++++++ 9 files changed, 1729 insertions(+), 1 deletion(-) create mode 100644 docs/source/_rst/tutorials/tutorial11/logging.png create mode 100644 docs/source/_rst/tutorials/tutorial11/tutorial.rst create mode 100644 tutorials/tutorial11/logging.png create mode 100644 tutorials/tutorial11/tutorial.ipynb create mode 100644 tutorials/tutorial11/tutorial.py diff --git a/docs/source/_rst/_tutorial.rst b/docs/source/_rst/_tutorial.rst index ad9a986..020dbe2 100644 --- a/docs/source/_rst/_tutorial.rst +++ b/docs/source/_rst/_tutorial.rst @@ -10,6 +10,7 @@ Getting started with PINA :titlesonly: Introduction to PINA for Physics Informed Neural Networks training + PINA and PyTorch Lightning, training tips and visualizations Building custom geometries with PINA Location class Physics Informed Neural Networks diff --git a/docs/source/_rst/tutorials/tutorial11/logging.png b/docs/source/_rst/tutorials/tutorial11/logging.png new file mode 100644 index 0000000000000000000000000000000000000000..c4b421e1982cee064ab2da9b761af4feafbdc749 GIT binary patch literal 208727 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

K4Skf0?4J=N&giw`R|(Qv+n$hB5IT6LFw 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 W1^<4x<*(oH-(h9VgPBUlFa95#e!*}6 literal 0 HcmV?d00001 diff --git a/tutorials/tutorial11/tutorial.ipynb b/tutorials/tutorial11/tutorial.ipynb new file mode 100644 index 0000000..68d1f5e --- /dev/null +++ b/tutorials/tutorial11/tutorial.ipynb @@ -0,0 +1,821 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Tutorial: PINA and PyTorch Lightning, training tips and visualizations \n", + "\n", + "\n", + "In this tutorial, we will delve deeper into the functionality of the `Trainer` class, which serves as the cornerstone for training **PINA** [Solvers](https://mathlab.github.io/PINA/_rst/_code.html#solvers). \n", + "\n", + "The `Trainer` class offers a plethora of features aimed at improving model accuracy, reducing training time and memory usage, facilitating logging visualization, and more thanks to the amazing job done by the PyTorch Lightning team!\n", + "\n", + "Our leading example will revolve around solving the `SimpleODE` problem, as outlined in the [*Introduction to PINA for Physics Informed Neural Networks training*](https://github.com/mathLab/PINA/blob/master/tutorials/tutorial1/tutorial.ipynb). If you haven't already explored it, we highly recommend doing so before diving into this tutorial.\n", + "\n", + "Let's start by importing useful modules, define the `SimpleODE` problem and the `PINN` solver." + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [], + "source": [ + "import torch\n", + "\n", + "from pina import Condition, Trainer\n", + "from pina.solvers import PINN\n", + "from pina.model import FeedForward\n", + "from pina.problem import SpatialProblem\n", + "from pina.operators import grad\n", + "from pina.geometry import CartesianDomain\n", + "from pina.equation import Equation, FixedValue\n", + "\n", + "class SimpleODE(SpatialProblem):\n", + "\n", + " output_variables = ['u']\n", + " spatial_domain = CartesianDomain({'x': [0, 1]})\n", + "\n", + " # defining the ode equation\n", + " def ode_equation(input_, output_):\n", + " u_x = grad(output_, input_, components=['u'], d=['x'])\n", + " u = output_.extract(['u'])\n", + " return u_x - u\n", + "\n", + " # conditions to hold\n", + " conditions = {\n", + " 'x0': Condition(location=CartesianDomain({'x': 0.}), equation=FixedValue(1)), # We fix initial condition to value 1\n", + " 'D': Condition(location=CartesianDomain({'x': [0, 1]}), equation=Equation(ode_equation)), # We wrap the python equation using Equation\n", + " }\n", + "\n", + " # defining the true solution\n", + " def truth_solution(self, pts):\n", + " return torch.exp(pts.extract(['x']))\n", + " \n", + "\n", + "# sampling for training\n", + "problem = SimpleODE()\n", + "problem.discretise_domain(1, 'random', locations=['x0'])\n", + "problem.discretise_domain(20, 'lh', locations=['D'])\n", + "\n", + "# build the model\n", + "model = FeedForward(\n", + " layers=[10, 10],\n", + " func=torch.nn.Tanh,\n", + " output_dimensions=len(problem.output_variables),\n", + " input_dimensions=len(problem.input_variables)\n", + ")\n", + "\n", + "# create the PINN object\n", + "pinn = PINN(problem, model)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Till now we just followed the extact step of the previous tutorials. The `Trainer` object\n", + "can be initialized by simiply passing the `PINN` solver" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "GPU available: True (mps), used: True\n", + "TPU available: False, using: 0 TPU cores\n", + "IPU available: False, using: 0 IPUs\n", + "HPU available: False, using: 0 HPUs\n" + ] + } + ], + "source": [ + "trainer = Trainer(solver=pinn)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Trainer Accelerator\n", + "\n", + "When creating the trainer, **by defualt** the `Trainer` will choose the most performing `accelerator` for training which is available in your system, ranked as follow:\n", + "1. [TPU](https://cloud.google.com/tpu/docs/intro-to-tpu)\n", + "2. [IPU](https://www.graphcore.ai/products/ipu)\n", + "3. [HPU](https://habana.ai/)\n", + "4. [GPU](https://www.intel.com/content/www/us/en/products/docs/processors/what-is-a-gpu.html#:~:text=What%20does%20GPU%20stand%20for,video%20editing%2C%20and%20gaming%20applications) or [MPS](https://developer.apple.com/metal/pytorch/)\n", + "5. CPU" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For setting manually the `accelerator` run:\n", + "\n", + "* `accelerator = {'gpu', 'cpu', 'hpu', 'mps', 'cpu', 'ipu'}` sets the accelerator to a specific one" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "GPU available: True (mps), 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" + ] + } + ], + "source": [ + "trainer = Trainer(solver=pinn,\n", + " accelerator='cpu')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "as you can see, even if in the used system `GPU` is available, it is not used since we set `accelerator='cpu'`." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Trainer Logging\n", + "\n", + "In **PINA** you can log metrics in different ways. The simplest approach is to use the `MetricTraker` class from `pina.callbacks` as seen in the [*Introduction to PINA for Physics Informed Neural Networks training*](https://github.com/mathLab/PINA/blob/master/tutorials/tutorial1/tutorial.ipynb) tutorial.\n", + "\n", + "However, expecially when we need to train multiple times to get an average of the loss across multiple runs, `pytorch_lightning.loggers` might be useful. Here we will use `TensorBoardLogger` (more on [logging](https://lightning.ai/docs/pytorch/stable/extensions/logging.html) here), but you can choose the one you prefer (or make your own one).\n", + "\n", + "We will now import `TensorBoardLogger`, do three runs of training and then visualize the results. Notice we set `enable_model_summary=False` to avoid model summary specifications (e.g. number of parameters), set it to true if needed.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "GPU available: True (mps), 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" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 8: 100%|██████████| 1/1 [00:00<00:00, 232.78it/s, v_num=6, x0_loss=0.436, D_loss=0.129, mean_loss=0.283] " + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 999: 100%|██████████| 1/1 [00:00<00:00, 222.52it/s, v_num=6, x0_loss=1.48e-5, D_loss=0.000655, mean_loss=0.000335]" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "`Trainer.fit` stopped: `max_epochs=1000` reached.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 999: 100%|██████████| 1/1 [00:00<00:00, 133.46it/s, v_num=6, x0_loss=1.48e-5, D_loss=0.000655, mean_loss=0.000335]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "GPU available: True (mps), 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" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 999: 100%|██████████| 1/1 [00:00<00:00, 274.80it/s, v_num=7, x0_loss=6.21e-6, D_loss=0.000221, mean_loss=0.000114]" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "`Trainer.fit` stopped: `max_epochs=1000` reached.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 999: 100%|██████████| 1/1 [00:00<00:00, 154.49it/s, v_num=7, x0_loss=6.21e-6, D_loss=0.000221, mean_loss=0.000114]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "GPU available: True (mps), 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" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 999: 100%|██████████| 1/1 [00:00<00:00, 78.56it/s, v_num=8, x0_loss=1.44e-5, D_loss=0.000572, mean_loss=0.000293] " + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "`Trainer.fit` stopped: `max_epochs=1000` reached.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 999: 100%|██████████| 1/1 [00:00<00:00, 62.60it/s, v_num=8, x0_loss=1.44e-5, D_loss=0.000572, mean_loss=0.000293]\n" + ] + } + ], + "source": [ + "from pytorch_lightning.loggers import TensorBoardLogger\n", + "\n", + "# three run of training, by default it trains for 1000 epochs\n", + "# we reinitialize the model each time otherwise the same parameters will be optimized\n", + "for _ in range(3):\n", + " model = FeedForward(\n", + " layers=[10, 10],\n", + " func=torch.nn.Tanh,\n", + " output_dimensions=len(problem.output_variables),\n", + " input_dimensions=len(problem.input_variables)\n", + " )\n", + " pinn = PINN(problem, model)\n", + " trainer = Trainer(solver=pinn,\n", + " accelerator='cpu',\n", + " logger=TensorBoardLogger(save_dir='simpleode'),\n", + " enable_model_summary=False)\n", + " trainer.train()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can now visualize the logs by simply running `tensorboard --logdir=simpleode/` on terminal, you should obtain a webpage as the one shown below:" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "

\n", + "\\\"Logging\n", + "

" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "as you can see, by default, **PINA** logs the losses which are shown in the progress bar, as well as the number of epochs. You can always insert more loggings by either defining a **callback** ([more on callbacks](https://lightning.ai/docs/pytorch/stable/extensions/callbacks.html)), or inheriting the solver and modify the programs with different **hooks** ([more on hooks](https://lightning.ai/docs/pytorch/stable/common/lightning_module.html#hooks))." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Trainer Callbacks" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Whenever we need to access certain steps of the training for logging, do static modifications (i.e. not changing the `Solver`) or updating `Problem` hyperparameters (static variables), we can use `Callabacks`. Notice that `Callbacks` allow you to add arbitrary self-contained programs to your training. At specific points during the flow of execution (hooks), the Callback interface allows you to design programs that encapsulate a full set of functionality. It de-couples functionality that does not need to be in **PINA** `Solver`s.\n", + "Lightning has a callback system to execute them when needed. Callbacks should capture NON-ESSENTIAL logic that is NOT required for your lightning module to run.\n", + "\n", + "The following are best practices when using/designing callbacks.\n", + "\n", + "* Callbacks should be isolated in their functionality.\n", + "* Your callback should not rely on the behavior of other callbacks in order to work properly.\n", + "* Do not manually call methods from the callback.\n", + "* Directly calling methods (eg. on_validation_end) is strongly discouraged.\n", + "* Whenever possible, your callbacks should not depend on the order in which they are executed.\n", + "\n", + "We will try now to implement a naive version of `MetricTraker` to show how callbacks work. Notice that this is a very easy application of callbacks, fortunately in **PINA** we already provide more advanced callbacks in `pina.callbacks`.\n", + "\n", + "" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "from pytorch_lightning.callbacks import Callback\n", + "import torch\n", + "\n", + "# define a simple callback\n", + "class NaiveMetricTracker(Callback):\n", + " def __init__(self):\n", + " self.saved_metrics = []\n", + "\n", + " def on_train_epoch_end(self, trainer, __): # function called at the end of each epoch\n", + " self.saved_metrics.append(\n", + " {key: value for key, value in trainer.logged_metrics.items()}\n", + " )" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's see the results when applyed to the `SimpleODE` problem. You can define callbacks when initializing the `Trainer` by the `callbacks` argument, which expects a list of callbacks. " + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "GPU available: True (mps), used: False\n", + "TPU available: False, using: 0 TPU cores\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "IPU available: False, using: 0 IPUs\n", + "HPU available: False, using: 0 HPUs\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 999: 100%|██████████| 1/1 [00:00<00:00, 241.30it/s, v_num=1, x0_loss=7.27e-5, D_loss=0.0016, mean_loss=0.000838] " + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "`Trainer.fit` stopped: `max_epochs=1000` reached.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 999: 100%|██████████| 1/1 [00:00<00:00, 149.27it/s, v_num=1, x0_loss=7.27e-5, D_loss=0.0016, mean_loss=0.000838]\n" + ] + } + ], + "source": [ + "model = FeedForward(\n", + " layers=[10, 10],\n", + " func=torch.nn.Tanh,\n", + " output_dimensions=len(problem.output_variables),\n", + " input_dimensions=len(problem.input_variables)\n", + " )\n", + "pinn = PINN(problem, model)\n", + "trainer = Trainer(solver=pinn,\n", + " accelerator='cpu',\n", + " enable_model_summary=False,\n", + " callbacks=[NaiveMetricTracker()]) # adding a callbacks\n", + "trainer.train()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can easily access the data by calling `trainer.callbacks[0].saved_metrics` (notice the zero representing the first callback in the list given at initialization)." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[{'x0_loss': tensor(0.9141),\n", + " 'D_loss': tensor(0.0304),\n", + " 'mean_loss': tensor(0.4722)},\n", + " {'x0_loss': tensor(0.8906),\n", + " 'D_loss': tensor(0.0287),\n", + " 'mean_loss': tensor(0.4596)},\n", + " {'x0_loss': tensor(0.8674),\n", + " 'D_loss': tensor(0.0274),\n", + " 'mean_loss': tensor(0.4474)}]" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "trainer.callbacks[0].saved_metrics[:3] # only the first three epochs" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "PyTorch Lightning also has some built in `Callbacks` which can be used in **PINA**, [here an extensive list](https://lightning.ai/docs/pytorch/stable/extensions/callbacks.html#built-in-callbacks). \n", + "\n", + "We can for example try the `EarlyStopping` routine, which automatically stops the training when a specific metric converged (here the `mean_loss`). In order to let the training keep going forever set `max_epochs=-1`." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "GPU available: True (mps), 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" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 4: 100%|██████████| 1/1 [00:00<00:00, 255.67it/s, v_num=9, x0_loss=0.876, D_loss=0.00542, mean_loss=0.441]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 6157: 100%|██████████| 1/1 [00:00<00:00, 139.84it/s, v_num=9, x0_loss=4.21e-9, D_loss=9.93e-6, mean_loss=4.97e-6] \n" + ] + } + ], + "source": [ + "# ~2 mins\n", + "from pytorch_lightning.callbacks import EarlyStopping\n", + "\n", + "model = FeedForward(\n", + " layers=[10, 10],\n", + " func=torch.nn.Tanh,\n", + " output_dimensions=len(problem.output_variables),\n", + " input_dimensions=len(problem.input_variables)\n", + " )\n", + "pinn = PINN(problem, model)\n", + "trainer = Trainer(solver=pinn,\n", + " accelerator='cpu',\n", + " max_epochs = -1,\n", + " enable_model_summary=False,\n", + " callbacks=[EarlyStopping('mean_loss')]) # adding a callbacks\n", + "trainer.train()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As we can see the model automatically stop when the logging metric stopped improving!" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Trainer Tips to Boost Accuracy, Save Memory and Speed Up Training\n", + "\n", + "Untill now we have seen how to choose the right `accelerator`, how to log and visualize the results, and how to interface with the program in order to add specific parts of code at specific points by `callbacks`.\n", + "Now, we well focus on how boost your training by saving memory and speeding it up, while mantaining the same or even better degree of accuracy!\n", + "\n", + "\n", + "There are several built in methods developed in PyTorch Lightning which can be applied straight forward in **PINA**, here we report some:\n", + "\n", + "* [Stochastic Weight Averaging](https://pytorch.org/blog/pytorch-1.6-now-includes-stochastic-weight-averaging/) to boost accuracy\n", + "* [Gradient Clippling](https://deepgram.com/ai-glossary/gradient-clipping) to reduce computational time (and improve accuracy)\n", + "* [Gradient Accumulation](https://lightning.ai/docs/pytorch/stable/common/optimization.html#id3) to save memory consumption \n", + "* [Mixed Precision Training](https://lightning.ai/docs/pytorch/stable/common/optimization.html#id3) to save memory consumption \n", + "\n", + "We will just demonstrate how to use the first two, and see the results compared to a standard training.\n", + "We use the [`Timer`](https://lightning.ai/docs/pytorch/stable/api/lightning.pytorch.callbacks.Timer.html#lightning.pytorch.callbacks.Timer) callback from `pytorch_lightning.callbacks` to take the times. Let's start by training a simple model without any optimization (train for 2000 epochs)." + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Seed set to 42\n", + "GPU available: True (mps), 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" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1999: 100%|██████████| 1/1 [00:00<00:00, 275.87it/s, v_num=31, x0_loss=1.12e-6, D_loss=0.000127, mean_loss=6.4e-5] " + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "`Trainer.fit` stopped: `max_epochs=2000` reached.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1999: 100%|██████████| 1/1 [00:00<00:00, 163.58it/s, v_num=31, x0_loss=1.12e-6, D_loss=0.000127, mean_loss=6.4e-5]\n", + "Total training time 17.36381 s\n" + ] + } + ], + "source": [ + "from pytorch_lightning.callbacks import Timer\n", + "from pytorch_lightning import seed_everything\n", + "\n", + "# setting the seed for reproducibility\n", + "seed_everything(42, workers=True)\n", + "\n", + "model = FeedForward(\n", + " layers=[10, 10],\n", + " func=torch.nn.Tanh,\n", + " output_dimensions=len(problem.output_variables),\n", + " input_dimensions=len(problem.input_variables)\n", + " )\n", + "\n", + "pinn = PINN(problem, model)\n", + "trainer = Trainer(solver=pinn,\n", + " accelerator='cpu',\n", + " deterministic=True, # setting deterministic=True ensure reproducibility when a seed is imposed\n", + " max_epochs = 2000,\n", + " enable_model_summary=False,\n", + " callbacks=[Timer()]) # adding a callbacks\n", + "trainer.train()\n", + "print(f'Total training time {trainer.callbacks[0].time_elapsed(\"train\"):.5f} s')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we do the same but with StochasticWeightAveraging" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Seed set to 42\n", + "GPU available: True (mps), 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" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1598: 100%|██████████| 1/1 [00:00<00:00, 210.04it/s, v_num=47, x0_loss=4.17e-6, D_loss=0.000204, mean_loss=0.000104]" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Swapping scheduler `ConstantLR` for `SWALR`\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1999: 100%|██████████| 1/1 [00:00<00:00, 259.39it/s, v_num=47, x0_loss=1.56e-7, D_loss=7.49e-5, mean_loss=3.75e-5] " + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "`Trainer.fit` stopped: `max_epochs=2000` reached.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1999: 100%|██████████| 1/1 [00:00<00:00, 120.85it/s, v_num=47, x0_loss=1.56e-7, D_loss=7.49e-5, mean_loss=3.75e-5]\n", + "Total training time 17.10627 s\n" + ] + } + ], + "source": [ + "from pytorch_lightning.callbacks import StochasticWeightAveraging\n", + "\n", + "# setting the seed for reproducibility\n", + "seed_everything(42, workers=True)\n", + "\n", + "model = FeedForward(\n", + " layers=[10, 10],\n", + " func=torch.nn.Tanh,\n", + " output_dimensions=len(problem.output_variables),\n", + " input_dimensions=len(problem.input_variables)\n", + " )\n", + "pinn = PINN(problem, model)\n", + "trainer = Trainer(solver=pinn,\n", + " accelerator='cpu',\n", + " deterministic=True,\n", + " max_epochs = 2000,\n", + " enable_model_summary=False,\n", + " callbacks=[Timer(),\n", + " StochasticWeightAveraging(swa_lrs=0.005)]) # adding StochasticWeightAveraging callbacks\n", + "trainer.train()\n", + "print(f'Total training time {trainer.callbacks[0].time_elapsed(\"train\"):.5f} s')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As you can see, the training time does not change at all! Notice that around epoch `1600`\n", + "the scheduler is switched from the defalut one `ConstantLR` to the Stochastic Weight Average Learning Rate (`SWALR`).\n", + "This is because by default `StochasticWeightAveraging` will be activated after `int(swa_epoch_start * max_epochs)` with `swa_epoch_start=0.7` by default. Finally, the final `mean_loss` is lower when `StochasticWeightAveraging` is used.\n", + "\n", + "We will now now do the same but clippling the gradient to be relatively small." + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Seed set to 42\n", + "GPU available: True (mps), 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" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1598: 100%|██████████| 1/1 [00:00<00:00, 261.80it/s, v_num=46, x0_loss=9e-8, D_loss=2.39e-5, mean_loss=1.2e-5] " + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Swapping scheduler `ConstantLR` for `SWALR`\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1999: 100%|██████████| 1/1 [00:00<00:00, 261.78it/s, v_num=46, x0_loss=7.08e-7, D_loss=1.77e-5, mean_loss=9.19e-6] " + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "`Trainer.fit` stopped: `max_epochs=2000` reached.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1999: 100%|██████████| 1/1 [00:00<00:00, 148.99it/s, v_num=46, x0_loss=7.08e-7, D_loss=1.77e-5, mean_loss=9.19e-6]\n", + "Total training time 17.01149 s\n" + ] + } + ], + "source": [ + "# setting the seed for reproducibility\n", + "seed_everything(42, workers=True)\n", + "\n", + "model = FeedForward(\n", + " layers=[10, 10],\n", + " func=torch.nn.Tanh,\n", + " output_dimensions=len(problem.output_variables),\n", + " input_dimensions=len(problem.input_variables)\n", + " )\n", + "pinn = PINN(problem, model)\n", + "trainer = Trainer(solver=pinn,\n", + " accelerator='cpu',\n", + " max_epochs = 2000,\n", + " enable_model_summary=False,\n", + " gradient_clip_val=0.1, # clipping the gradient\n", + " callbacks=[Timer(),\n", + " StochasticWeightAveraging(swa_lrs=0.005)])\n", + "trainer.train()\n", + "print(f'Total training time {trainer.callbacks[0].time_elapsed(\"train\"):.5f} s')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As we can see we by applying gradient clipping we were able to even obtain lower error!\n", + "\n", + "## What's next?\n", + "\n", + "Now you know how to use efficiently the `Trainer` class **PINA**! There are multiple directions you can go now:\n", + "\n", + "1. Explore training times on different devices (e.g.) `TPU` \n", + "\n", + "2. Try to reduce memory cost by mixed precision training and gradient accumulation (especially useful when training Neural Operators)\n", + "\n", + "3. Benchmark `Trainer` speed for different precisions." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "pina", + "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": 2 +} diff --git a/tutorials/tutorial11/tutorial.py b/tutorials/tutorial11/tutorial.py new file mode 100644 index 0000000..1f51f4a --- /dev/null +++ b/tutorials/tutorial11/tutorial.py @@ -0,0 +1,336 @@ +#!/usr/bin/env python +# coding: utf-8 + +# # Tutorial: PINA and PyTorch Lightning, training tips and visualizations +# +# +# In this tutorial, we will delve deeper into the functionality of the `Trainer` class, which serves as the cornerstone for training **PINA** [Solvers](https://mathlab.github.io/PINA/_rst/_code.html#solvers). +# +# The `Trainer` class offers a plethora of features aimed at improving model accuracy, reducing training time and memory usage, facilitating logging visualization, and more. +# +# Our leading example will revolve around solving the `SimpleODE` problem, as outlined in the [*Introduction to PINA for Physics Informed Neural Networks training*](https://github.com/mathLab/PINA/blob/master/tutorials/tutorial1/tutorial.ipynb). If you haven't already explored it, we highly recommend doing so before diving into this tutorial. +# +# Let's start by importing useful modules, define the `SimpleODE` problem and the `PINN` solver. + +# In[18]: + + +import torch + +from pina import Condition, Trainer +from pina.solvers import PINN +from pina.model import FeedForward +from pina.problem import SpatialProblem +from pina.operators import grad +from pina.geometry import CartesianDomain +from pina.equation import Equation, FixedValue + +class SimpleODE(SpatialProblem): + + output_variables = ['u'] + spatial_domain = CartesianDomain({'x': [0, 1]}) + + # defining the ode equation + def ode_equation(input_, output_): + u_x = grad(output_, input_, components=['u'], d=['x']) + u = output_.extract(['u']) + return u_x - u + + # conditions to hold + conditions = { + 'x0': Condition(location=CartesianDomain({'x': 0.}), equation=FixedValue(1)), # We fix initial condition to value 1 + 'D': Condition(location=CartesianDomain({'x': [0, 1]}), equation=Equation(ode_equation)), # We wrap the python equation using Equation + } + + # defining the true solution + def truth_solution(self, pts): + return torch.exp(pts.extract(['x'])) + + +# sampling for training +problem = SimpleODE() +problem.discretise_domain(1, 'random', locations=['x0']) +problem.discretise_domain(20, 'lh', locations=['D']) + +# build the model +model = FeedForward( + layers=[10, 10], + func=torch.nn.Tanh, + output_dimensions=len(problem.output_variables), + input_dimensions=len(problem.input_variables) +) + +# create the PINN object +pinn = PINN(problem, model) + + +# Till now we just followed the extact step of the previous tutorials. The `Trainer` object +# can be initialized by simiply passing the `PINN` solver + +# In[3]: + + +trainer = Trainer(solver=pinn) + + +# ## Trainer Accelerator +# +# When creating the trainer, **by defualt** the `Trainer` will choose the most performing `accelerator` for training which is available in your system, ranked as follow: +# 1. [TPU](https://cloud.google.com/tpu/docs/intro-to-tpu) +# 2. [IPU](https://www.graphcore.ai/products/ipu) +# 3. [HPU](https://habana.ai/) +# 4. [GPU](https://www.intel.com/content/www/us/en/products/docs/processors/what-is-a-gpu.html#:~:text=What%20does%20GPU%20stand%20for,video%20editing%2C%20and%20gaming%20applications) or [MPS](https://developer.apple.com/metal/pytorch/) +# 5. CPU + +# For setting manually the `accelerator` run: +# +# * `accelerator = {'gpu', 'cpu', 'hpu', 'mps', 'cpu', 'ipu'}` sets the accelerator to a specific one + +# In[5]: + + +trainer = Trainer(solver=pinn, + accelerator='cpu') + + +# as you can see, even if in the used system `GPU` is available, it is not used since we set `accelerator='cpu'`. + +# ## Trainer Logging +# +# In **PINA** you can log metrics in different ways. The simplest approach is to use the `MetricTraker` class from `pina.callbacks` as seen in the [*Introduction to PINA for Physics Informed Neural Networks training*](https://github.com/mathLab/PINA/blob/master/tutorials/tutorial1/tutorial.ipynb) tutorial. +# +# However, expecially when we need to train multiple times to get an average of the loss across multiple runs, `pytorch_lightning.loggers` might be useful. Here we will use `TensorBoardLogger` (more on [logging](https://lightning.ai/docs/pytorch/stable/extensions/logging.html) here), but you can choose the one you prefer (or make your own one) thanks to the amazing job done by the PyTorch Lightning team! +# +# We will now import `TensorBoardLogger`, do three runs of training and then visualize the results. Notice we set `enable_model_summary=False` to avoid model summary specifications (e.g. number of parameters), set it to true if needed. +# + +# In[7]: + + +from pytorch_lightning.loggers import TensorBoardLogger + +# three run of training, by default it trains for 1000 epochs +# we reinitialize the model each time otherwise the same parameters will be optimized +for _ in range(3): + model = FeedForward( + layers=[10, 10], + func=torch.nn.Tanh, + output_dimensions=len(problem.output_variables), + input_dimensions=len(problem.input_variables) + ) + pinn = PINN(problem, model) + trainer = Trainer(solver=pinn, + accelerator='cpu', + logger=TensorBoardLogger(save_dir='simpleode'), + enable_model_summary=False) + trainer.train() + + +# We can now visualize the logs by simply running `tensorboard --logdir=simpleode/` on terminal, you should obtain a webpage as the one shown below: + +#

+# \"Logging +#

+ +# as you can see, by default, **PINA** logs the losses which are shown in the progress bar, as well as the number of epochs. You can always insert more loggings by either defining a **callback** ([more on callbacks](https://lightning.ai/docs/pytorch/stable/extensions/callbacks.html)), or inheriting the solver and modify the programs with different **hooks** ([more on hooks](https://lightning.ai/docs/pytorch/stable/common/lightning_module.html#hooks)). + +# ## Trainer Callbacks + +# Whenever we need to access certain steps of the training for logging, do static modifications (i.e. not changing the `Solver`) or updating `Problem` hyperparameters (static variables), we can use `Callabacks`. Notice that `Callbacks` allow you to add arbitrary self-contained programs to your training. At specific points during the flow of execution (hooks), the Callback interface allows you to design programs that encapsulate a full set of functionality. It de-couples functionality that does not need to be in **PINA** `Solver`s. +# Lightning has a callback system to execute them when needed. Callbacks should capture NON-ESSENTIAL logic that is NOT required for your lightning module to run. +# +# The following are best practices when using/designing callbacks. +# +# * Callbacks should be isolated in their functionality. +# * Your callback should not rely on the behavior of other callbacks in order to work properly. +# * Do not manually call methods from the callback. +# * Directly calling methods (eg. on_validation_end) is strongly discouraged. +# * Whenever possible, your callbacks should not depend on the order in which they are executed. +# +# We will try now to implement a naive version of `MetricTraker` to show how callbacks work. Notice that this is a very easy application of callbacks, fortunately in **PINA** we already provide more advanced callbacks in `pina.callbacks`. +# +# + +# In[8]: + + +from pytorch_lightning.callbacks import Callback +import torch + +# define a simple callback +class NaiveMetricTracker(Callback): + def __init__(self): + self.saved_metrics = [] + + def on_train_epoch_end(self, trainer, __): # function called at the end of each epoch + self.saved_metrics.append( + {key: value for key, value in trainer.logged_metrics.items()} + ) + + +# Let's see the results when applyed to the `SimpleODE` problem. You can define callbacks when initializing the `Trainer` by the `callbacks` argument, which expects a list of callbacks. + +# In[10]: + + +model = FeedForward( + layers=[10, 10], + func=torch.nn.Tanh, + output_dimensions=len(problem.output_variables), + input_dimensions=len(problem.input_variables) + ) +pinn = PINN(problem, model) +trainer = Trainer(solver=pinn, + accelerator='cpu', + enable_model_summary=False, + callbacks=[NaiveMetricTracker()]) # adding a callbacks +trainer.train() + + +# We can easily access the data by calling `trainer.callbacks[0].saved_metrics` (notice the zero representing the first callback in the list given at initialization). + +# In[9]: + + +trainer.callbacks[0].saved_metrics[:3] # only the first three epochs + + +# PyTorch Lightning also has some built in `Callbacks` which can be used in **PINA**, [here an extensive list](https://lightning.ai/docs/pytorch/stable/extensions/callbacks.html#built-in-callbacks). +# +# We can for example try the `EarlyStopping` routine, which automatically stops the training when a specific metric converged (here the `mean_loss`). In order to let the training keep going forever set `max_epochs=-1`. + +# In[7]: + + +# ~2 mins +from pytorch_lightning.callbacks import EarlyStopping + +model = FeedForward( + layers=[10, 10], + func=torch.nn.Tanh, + output_dimensions=len(problem.output_variables), + input_dimensions=len(problem.input_variables) + ) +pinn = PINN(problem, model) +trainer = Trainer(solver=pinn, + accelerator='cpu', + max_epochs = -1, + enable_model_summary=False, + callbacks=[EarlyStopping('mean_loss')]) # adding a callbacks +trainer.train() + + +# As we can see the model automatically stop when the logging metric stopped improving! + +# ## Trainer Tips to Boost Accuracy, Save Memory and Speed Up Training +# +# Untill now we have seen how to choose the right `accelerator`, how to log and visualize the results, and how to interface with the program in order to add specific parts of code at specific points by `callbacks`. +# Now, we well focus on how boost your training by saving memory and speeding it up, while mantaining the same or even better degree of accuracy! +# +# +# There are several built in methods developed in PyTorch Lightning which can be applied straight forward in **PINA**, here we report some: +# +# * [Stochastic Weight Averaging](https://pytorch.org/blog/pytorch-1.6-now-includes-stochastic-weight-averaging/) to boost accuracy +# * [Gradient Clippling](https://deepgram.com/ai-glossary/gradient-clipping) to reduce computational time (and improve accuracy) +# * [Gradient Accumulation](https://lightning.ai/docs/pytorch/stable/common/optimization.html#id3) to save memory consumption +# * [Mixed Precision Training](https://lightning.ai/docs/pytorch/stable/common/optimization.html#id3) to save memory consumption +# +# We will just demonstrate how to use the first two, and see the results compared to a standard training. +# We use the [`Timer`](https://lightning.ai/docs/pytorch/stable/api/lightning.pytorch.callbacks.Timer.html#lightning.pytorch.callbacks.Timer) callback from `pytorch_lightning.callbacks` to take the times. Let's start by training a simple model without any optimization (train for 2000 epochs). + +# In[19]: + + +from pytorch_lightning.callbacks import Timer +from pytorch_lightning import seed_everything + +# setting the seed for reproducibility +seed_everything(42, workers=True) + +model = FeedForward( + layers=[10, 10], + func=torch.nn.Tanh, + output_dimensions=len(problem.output_variables), + input_dimensions=len(problem.input_variables) + ) + +pinn = PINN(problem, model) +trainer = Trainer(solver=pinn, + accelerator='cpu', + deterministic=True, # setting deterministic=True ensure reproducibility when a seed is imposed + max_epochs = 2000, + enable_model_summary=False, + callbacks=[Timer()]) # adding a callbacks +trainer.train() +print(f'Total training time {trainer.callbacks[0].time_elapsed("train"):.5f} s') + + +# Now we do the same but with StochasticWeightAveraging + +# In[36]: + + +from pytorch_lightning.callbacks import StochasticWeightAveraging + +# setting the seed for reproducibility +seed_everything(42, workers=True) + +model = FeedForward( + layers=[10, 10], + func=torch.nn.Tanh, + output_dimensions=len(problem.output_variables), + input_dimensions=len(problem.input_variables) + ) +pinn = PINN(problem, model) +trainer = Trainer(solver=pinn, + accelerator='cpu', + deterministic=True, + max_epochs = 2000, + enable_model_summary=False, + callbacks=[Timer(), + StochasticWeightAveraging(swa_lrs=0.005)]) # adding StochasticWeightAveraging callbacks +trainer.train() +print(f'Total training time {trainer.callbacks[0].time_elapsed("train"):.5f} s') + + +# As you can see, the training time does not change at all! Notice that around epoch `1600` +# the scheduler is switched from the defalut one `ConstantLR` to the Stochastic Weight Average Learning Rate (`SWALR`). +# This is because by default `StochasticWeightAveraging` will be activated after `int(swa_epoch_start * max_epochs)` with `swa_epoch_start=0.7` by default. Finally, the final `mean_loss` is lower when `StochasticWeightAveraging` is used. +# +# We will now now do the same but clippling the gradient to be relatively small. + +# In[35]: + + +# setting the seed for reproducibility +seed_everything(42, workers=True) + +model = FeedForward( + layers=[10, 10], + func=torch.nn.Tanh, + output_dimensions=len(problem.output_variables), + input_dimensions=len(problem.input_variables) + ) +pinn = PINN(problem, model) +trainer = Trainer(solver=pinn, + accelerator='cpu', + max_epochs = 2000, + enable_model_summary=False, + gradient_clip_val=0.1, # clipping the gradient + callbacks=[Timer(), + StochasticWeightAveraging(swa_lrs=0.005)]) +trainer.train() +print(f'Total training time {trainer.callbacks[0].time_elapsed("train"):.5f} s') + + +# As we can see we by applying gradient clipping we were able to even obtain lower error! +# +# ## What's next? +# +# Now you know how to use efficiently the `Trainer` class **PINA**! There are multiple directions you can go now: +# +# 1. Explore training times on different devices (e.g.) `TPU` +# +# 2. Try to reduce memory cost by mixed precision training and gradient accumulation (especially useful when training Neural Operators) +# +# 3. Benchmark `Trainer` speed for different precisions.

K4Skf0?4J=N&giw`R|(Qv+n$hB5IT6LFw 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 W1^<4x<*(oH-(h9VgPBUlFa95#e!*}6 literal 0 HcmV?d00001 diff --git a/docs/source/_rst/tutorials/tutorial11/tutorial.rst b/docs/source/_rst/tutorials/tutorial11/tutorial.rst new file mode 100644 index 0000000..d9c95a1 --- /dev/null +++ b/docs/source/_rst/tutorials/tutorial11/tutorial.rst @@ -0,0 +1,536 @@ +Tutorial: PINA and PyTorch Lightning, training tips and visualizations +====================================================================== + +In this tutorial, we will delve deeper into the functionality of the +``Trainer`` class, which serves as the cornerstone for training **PINA** +`Solvers `__. +The ``Trainer`` class offers a plethora of features aimed at improving +model accuracy, reducing training time and memory usage, facilitating +logging visualization, and more thanks to the amazing job done by the PyTorch Lightning team! +Our leading example will revolve around solving the ``SimpleODE`` +problem, as outlined in the `Introduction to PINA for Physics Informed +Neural Networks +training `__. +If you haven’t already explored it, we highly recommend doing so before +diving into this tutorial. +Let’s start by importing useful modules, define the ``SimpleODE`` +problem and the ``PINN`` solver. + +.. code:: ipython3 + + import torch + + from pina import Condition, Trainer + from pina.solvers import PINN + from pina.model import FeedForward + from pina.problem import SpatialProblem + from pina.operators import grad + from pina.geometry import CartesianDomain + from pina.equation import Equation, FixedValue + + class SimpleODE(SpatialProblem): + + output_variables = ['u'] + spatial_domain = CartesianDomain({'x': [0, 1]}) + + # defining the ode equation + def ode_equation(input_, output_): + u_x = grad(output_, input_, components=['u'], d=['x']) + u = output_.extract(['u']) + return u_x - u + + # conditions to hold + conditions = { + 'x0': Condition(location=CartesianDomain({'x': 0.}), equation=FixedValue(1)), # We fix initial condition to value 1 + 'D': Condition(location=CartesianDomain({'x': [0, 1]}), equation=Equation(ode_equation)), # We wrap the python equation using Equation + } + + # defining the true solution + def truth_solution(self, pts): + return torch.exp(pts.extract(['x'])) + + + # sampling for training + problem = SimpleODE() + problem.discretise_domain(1, 'random', locations=['x0']) + problem.discretise_domain(20, 'lh', locations=['D']) + + # build the model + model = FeedForward( + layers=[10, 10], + func=torch.nn.Tanh, + output_dimensions=len(problem.output_variables), + input_dimensions=len(problem.input_variables) + ) + + # create the PINN object + pinn = PINN(problem, model) + +Till now we just followed the extact step of the previous tutorials. The +``Trainer`` object can be initialized by simiply passing the ``PINN`` +solver + +.. code:: ipython3 + + trainer = Trainer(solver=pinn) + + +.. parsed-literal:: + + GPU available: True (mps), used: True + TPU available: False, using: 0 TPU cores + IPU available: False, using: 0 IPUs + HPU available: False, using: 0 HPUs + + +Trainer Accelerator +------------------- + +When creating the trainer, **by defualt** the ``Trainer`` will choose +the most performing ``accelerator`` for training which is available in +your system, ranked as follow: + +1. `TPU `__ +2. `IPU `__ +3. `HPU `__ +4. `GPU `__ or `MPS `__ +5. CPU + +For setting manually the ``accelerator`` run: + +- ``accelerator = {'gpu', 'cpu', 'hpu', 'mps', 'cpu', 'ipu'}`` sets the + accelerator to a specific one + +.. code:: ipython3 + + trainer = Trainer(solver=pinn, + accelerator='cpu') + + +.. parsed-literal:: + + GPU available: True (mps), used: False + TPU available: False, using: 0 TPU cores + IPU available: False, using: 0 IPUs + HPU available: False, using: 0 HPUs + + +as you can see, even if in the used system ``GPU`` is available, it is +not used since we set ``accelerator='cpu'``. + +Trainer Logging +--------------- + +In **PINA** you can log metrics in different ways. The simplest approach +is to use the ``MetricTraker`` class from ``pina.callbacks`` as seen in +the `Introduction to PINA for Physics Informed Neural Networks +training `__ +tutorial. + +However, expecially when we need to train multiple times to get an +average of the loss across multiple runs, ``pytorch_lightning.loggers`` +might be useful. Here we will use ``TensorBoardLogger`` (more on +`logging `__ +here), but you can choose the one you prefer (or make your own one). + +We will now import ``TensorBoardLogger``, do three runs of training and +then visualize the results. Notice we set ``enable_model_summary=False`` +to avoid model summary specifications (e.g. number of parameters), set +it to true if needed. + +.. code:: ipython3 + + from pytorch_lightning.loggers import TensorBoardLogger + + # three run of training, by default it trains for 1000 epochs + # we reinitialize the model each time otherwise the same parameters will be optimized + for _ in range(3): + model = FeedForward( + layers=[10, 10], + func=torch.nn.Tanh, + output_dimensions=len(problem.output_variables), + input_dimensions=len(problem.input_variables) + ) + pinn = PINN(problem, model) + trainer = Trainer(solver=pinn, + accelerator='cpu', + logger=TensorBoardLogger(save_dir='simpleode'), + enable_model_summary=False) + trainer.train() + + +.. parsed-literal:: + + GPU available: True (mps), used: False + TPU available: False, using: 0 TPU cores + IPU available: False, using: 0 IPUs + HPU available: False, using: 0 HPUs + + `Trainer.fit` stopped: `max_epochs=1000` reached. + Epoch 999: 100%|██████████| 1/1 [00:00<00:00, 133.46it/s, v_num=6, x0_loss=1.48e-5, D_loss=0.000655, mean_loss=0.000335] + + +.. parsed-literal:: + + GPU available: True (mps), used: False + TPU available: False, using: 0 TPU cores + IPU available: False, using: 0 IPUs + HPU available: False, using: 0 HPUs + + `Trainer.fit` stopped: `max_epochs=1000` reached. + Epoch 999: 100%|██████████| 1/1 [00:00<00:00, 154.49it/s, v_num=7, x0_loss=6.21e-6, D_loss=0.000221, mean_loss=0.000114] + + +.. parsed-literal:: + + GPU available: True (mps), used: False + TPU available: False, using: 0 TPU cores + IPU available: False, using: 0 IPUs + HPU available: False, using: 0 HPUs + + `Trainer.fit` stopped: `max_epochs=1000` reached. + Epoch 999: 100%|██████████| 1/1 [00:00<00:00, 62.60it/s, v_num=8, x0_loss=1.44e-5, D_loss=0.000572, mean_loss=0.000293] + + +We can now visualize the logs by simply running +``tensorboard --logdir=simpleode/`` on terminal, you should obtain a +webpage as the one shown below: + +.. image:: logging.png + +as you can see, by default, **PINA** logs the losses which are shown in +the progress bar, as well as the number of epochs. You can always insert +more loggings by either defining a **callback** (`more on +callbacks `__), +or inheriting the solver and modify the programs with different +**hooks** (`more on +hooks `__). + +Trainer Callbacks +----------------- + +Whenever we need to access certain steps of the training for logging, do +static modifications (i.e. not changing the ``Solver``) or updating +``Problem`` hyperparameters (static variables), we can use +``Callabacks``. Notice that ``Callbacks`` allow you to add arbitrary +self-contained programs to your training. At specific points during the +flow of execution (hooks), the Callback interface allows you to design +programs that encapsulate a full set of functionality. It de-couples +functionality that does not need to be in **PINA** ``Solver``\ s. +Lightning has a callback system to execute them when needed. Callbacks +should capture NON-ESSENTIAL logic that is NOT required for your +lightning module to run. + +The following are best practices when using/designing callbacks. + +- Callbacks should be isolated in their functionality. +- Your callback should not rely on the behavior of other callbacks in + order to work properly. +- Do not manually call methods from the callback. +- Directly calling methods (eg. on_validation_end) is strongly + discouraged. +- Whenever possible, your callbacks should not depend on the order in + which they are executed. + +We will try now to implement a naive version of ``MetricTraker`` to show +how callbacks work. Notice that this is a very easy application of +callbacks, fortunately in **PINA** we already provide more advanced +callbacks in ``pina.callbacks``. + +.. raw:: html + + + +.. code:: ipython3 + + from pytorch_lightning.callbacks import Callback + import torch + + # define a simple callback + class NaiveMetricTracker(Callback): + def __init__(self): + self.saved_metrics = [] + + def on_train_epoch_end(self, trainer, __): # function called at the end of each epoch + self.saved_metrics.append( + {key: value for key, value in trainer.logged_metrics.items()} + ) + +Let’s see the results when applyed to the ``SimpleODE`` problem. You can +define callbacks when initializing the ``Trainer`` by the ``callbacks`` +argument, which expects a list of callbacks. + +.. code:: ipython3 + + model = FeedForward( + layers=[10, 10], + func=torch.nn.Tanh, + output_dimensions=len(problem.output_variables), + input_dimensions=len(problem.input_variables) + ) + pinn = PINN(problem, model) + trainer = Trainer(solver=pinn, + accelerator='cpu', + enable_model_summary=False, + callbacks=[NaiveMetricTracker()]) # adding a callbacks + trainer.train() + + +.. parsed-literal:: + + GPU available: True (mps), used: False + TPU available: False, using: 0 TPU cores + IPU available: False, using: 0 IPUs + HPU available: False, using: 0 HPUs + + `Trainer.fit` stopped: `max_epochs=1000` reached. + Epoch 999: 100%|██████████| 1/1 [00:00<00:00, 149.27it/s, v_num=1, x0_loss=7.27e-5, D_loss=0.0016, mean_loss=0.000838] + + +We can easily access the data by calling +``trainer.callbacks[0].saved_metrics`` (notice the zero representing the +first callback in the list given at initialization). + +.. code:: ipython3 + + trainer.callbacks[0].saved_metrics[:3] # only the first three epochs + + + + +.. parsed-literal:: + + [{'x0_loss': tensor(0.9141), + 'D_loss': tensor(0.0304), + 'mean_loss': tensor(0.4722)}, + {'x0_loss': tensor(0.8906), + 'D_loss': tensor(0.0287), + 'mean_loss': tensor(0.4596)}, + {'x0_loss': tensor(0.8674), + 'D_loss': tensor(0.0274), + 'mean_loss': tensor(0.4474)}] + + + +PyTorch Lightning also has some built in ``Callbacks`` which can be used +in **PINA**, `here an extensive +list `__. + +We can for example try the ``EarlyStopping`` routine, which +automatically stops the training when a specific metric converged (here +the ``mean_loss``). In order to let the training keep going forever set +``max_epochs=-1``. + +.. code:: ipython3 + + # ~2 mins + from pytorch_lightning.callbacks import EarlyStopping + + model = FeedForward( + layers=[10, 10], + func=torch.nn.Tanh, + output_dimensions=len(problem.output_variables), + input_dimensions=len(problem.input_variables) + ) + pinn = PINN(problem, model) + trainer = Trainer(solver=pinn, + accelerator='cpu', + max_epochs = -1, + enable_model_summary=False, + callbacks=[EarlyStopping('mean_loss')]) # adding a callbacks + trainer.train() + + +.. parsed-literal:: + + GPU available: True (mps), used: False + TPU available: False, using: 0 TPU cores + IPU available: False, using: 0 IPUs + HPU available: False, using: 0 HPUs + + Epoch 6157: 100%|██████████| 1/1 [00:00<00:00, 139.84it/s, v_num=9, x0_loss=4.21e-9, D_loss=9.93e-6, mean_loss=4.97e-6] + + +As we can see the model automatically stop when the logging metric +stopped improving! + +Trainer Tips to Boost Accuracy, Save Memory and Speed Up Training +----------------------------------------------------------------- + +Untill now we have seen how to choose the right ``accelerator``, how to +log and visualize the results, and how to interface with the program in +order to add specific parts of code at specific points by ``callbacks``. +Now, we well focus on how boost your training by saving memory and +speeding it up, while mantaining the same or even better degree of +accuracy! + +There are several built in methods developed in PyTorch Lightning which +can be applied straight forward in **PINA**, here we report some: + +- `Stochastic Weight + Averaging `__ + to boost accuracy +- `Gradient + Clippling `__ to + reduce computational time (and improve accuracy) +- `Gradient + Accumulation `__ + to save memory consumption +- `Mixed Precision + Training `__ + to save memory consumption + +We will just demonstrate how to use the first two, and see the results +compared to a standard training. We use the +`Timer `__ +callback from ``pytorch_lightning.callbacks`` to take the times. Let’s +start by training a simple model without any optimization (train for +2000 epochs). + +.. code:: ipython3 + + from pytorch_lightning.callbacks import Timer + from pytorch_lightning import seed_everything + + # setting the seed for reproducibility + seed_everything(42, workers=True) + + model = FeedForward( + layers=[10, 10], + func=torch.nn.Tanh, + output_dimensions=len(problem.output_variables), + input_dimensions=len(problem.input_variables) + ) + + pinn = PINN(problem, model) + trainer = Trainer(solver=pinn, + accelerator='cpu', + deterministic=True, # setting deterministic=True ensure reproducibility when a seed is imposed + max_epochs = 2000, + enable_model_summary=False, + callbacks=[Timer()]) # adding a callbacks + trainer.train() + print(f'Total training time {trainer.callbacks[0].time_elapsed("train"):.5f} s') + + +.. parsed-literal:: + + Seed set to 42 + GPU available: True (mps), used: False + TPU available: False, using: 0 TPU cores + IPU available: False, using: 0 IPUs + HPU available: False, using: 0 HPUs + + + `Trainer.fit` stopped: `max_epochs=2000` reached. + Epoch 1999: 100%|██████████| 1/1 [00:00<00:00, 163.58it/s, v_num=31, x0_loss=1.12e-6, D_loss=0.000127, mean_loss=6.4e-5] + Total training time 17.36381 s + + +Now we do the same but with StochasticWeightAveraging + +.. code:: ipython3 + + from pytorch_lightning.callbacks import StochasticWeightAveraging + + # setting the seed for reproducibility + seed_everything(42, workers=True) + + model = FeedForward( + layers=[10, 10], + func=torch.nn.Tanh, + output_dimensions=len(problem.output_variables), + input_dimensions=len(problem.input_variables) + ) + pinn = PINN(problem, model) + trainer = Trainer(solver=pinn, + accelerator='cpu', + deterministic=True, + max_epochs = 2000, + enable_model_summary=False, + callbacks=[Timer(), + StochasticWeightAveraging(swa_lrs=0.005)]) # adding StochasticWeightAveraging callbacks + trainer.train() + print(f'Total training time {trainer.callbacks[0].time_elapsed("train"):.5f} s') + + +.. parsed-literal:: + + Seed set to 42 + GPU available: True (mps), used: False + TPU available: False, using: 0 TPU cores + IPU available: False, using: 0 IPUs + HPU available: False, using: 0 HPUs + + + Epoch 1598: 100%|██████████| 1/1 [00:00<00:00, 210.04it/s, v_num=47, x0_loss=4.17e-6, D_loss=0.000204, mean_loss=0.000104] + Swapping scheduler `ConstantLR` for `SWALR` + `Trainer.fit` stopped: `max_epochs=2000` reached. + Epoch 1999: 100%|██████████| 1/1 [00:00<00:00, 120.85it/s, v_num=47, x0_loss=1.56e-7, D_loss=7.49e-5, mean_loss=3.75e-5] + Total training time 17.10627 s + + +As you can see, the training time does not change at all! Notice that +around epoch ``1600`` the scheduler is switched from the defalut one +``ConstantLR`` to the Stochastic Weight Average Learning Rate +(``SWALR``). This is because by default ``StochasticWeightAveraging`` +will be activated after ``int(swa_epoch_start * max_epochs)`` with +``swa_epoch_start=0.7`` by default. Finally, the final ``mean_loss`` is +lower when ``StochasticWeightAveraging`` is used. + +We will now now do the same but clippling the gradient to be relatively +small. + +.. code:: ipython3 + + # setting the seed for reproducibility + seed_everything(42, workers=True) + + model = FeedForward( + layers=[10, 10], + func=torch.nn.Tanh, + output_dimensions=len(problem.output_variables), + input_dimensions=len(problem.input_variables) + ) + pinn = PINN(problem, model) + trainer = Trainer(solver=pinn, + accelerator='cpu', + max_epochs = 2000, + enable_model_summary=False, + gradient_clip_val=0.1, # clipping the gradient + callbacks=[Timer(), + StochasticWeightAveraging(swa_lrs=0.005)]) + trainer.train() + print(f'Total training time {trainer.callbacks[0].time_elapsed("train"):.5f} s') + + +.. parsed-literal:: + + Seed set to 42 + GPU available: True (mps), used: False + TPU available: False, using: 0 TPU cores + IPU available: False, using: 0 IPUs + HPU available: False, using: 0 HPUs + + Epoch 1598: 100%|██████████| 1/1 [00:00<00:00, 261.80it/s, v_num=46, x0_loss=9e-8, D_loss=2.39e-5, mean_loss=1.2e-5] + Swapping scheduler `ConstantLR` for `SWALR` + `Trainer.fit` stopped: `max_epochs=2000` reached. + Epoch 1999: 100%|██████████| 1/1 [00:00<00:00, 148.99it/s, v_num=46, x0_loss=7.08e-7, D_loss=1.77e-5, mean_loss=9.19e-6] + Total training time 17.01149 s + + +As we can see we by applying gradient clipping we were able to even +obtain lower error! + +What’s next? +------------ + +Now you know how to use efficiently the ``Trainer`` class **PINA**! +There are multiple directions you can go now: + +1. Explore training times on different devices (e.g.) ``TPU`` + +2. Try to reduce memory cost by mixed precision training and gradient + accumulation (especially useful when training Neural Operators) + +3. Benchmark ``Trainer`` speed for different precisions. diff --git a/pina/label_tensor.py b/pina/label_tensor.py index c92dda9..6731a98 100644 --- a/pina/label_tensor.py +++ b/pina/label_tensor.py @@ -1,6 +1,6 @@ """ Module for LabelTensor """ -from typing import Any +from copy import deepcopy import torch from torch import Tensor @@ -79,6 +79,21 @@ class LabelTensor(torch.Tensor): ) self._labels = labels + def __deepcopy__(self, __): + """ + Implements deepcopy for label tensor. By default it stores the + current labels and use the :meth:`~torch._tensor.Tensor.__deepcopy__` + method for creating a new :class:`pina.label_tensor.LabelTensor`. + + :param __: Placeholder parameter. + :type __: None + :return: The deep copy of the :class:`pina.label_tensor.LabelTensor`. + :rtype: LabelTensor + """ + labels = self.labels + copy_tensor = deepcopy(self.tensor) + return LabelTensor(copy_tensor, labels) + @property def labels(self): """Property decorator for labels diff --git a/pina/problem/abstract_problem.py b/pina/problem/abstract_problem.py index a368b40..6ebba6c 100644 --- a/pina/problem/abstract_problem.py +++ b/pina/problem/abstract_problem.py @@ -2,6 +2,7 @@ from abc import ABCMeta, abstractmethod from ..utils import merge_tensors, check_consistency +from copy import deepcopy import torch @@ -29,6 +30,23 @@ class AbstractProblem(metaclass=ABCMeta): # put in self.input_pts all the points that we don't need to sample self._span_condition_points() + def __deepcopy__(self, memo): + """ + Implements deepcopy for the + :class:`~pina.problem.abstract_problem.AbstractProblem` class. + + :param dict memo: Memory dictionary, to avoid excess copy + :return: The deep copy of the + :class:`~pina.problem.abstract_problem.AbstractProblem` class + :rtype: AbstractProblem + """ + cls = self.__class__ + result = cls.__new__(cls) + memo[id(self)] = result + for k, v in self.__dict__.items(): + setattr(result, k, deepcopy(v, memo)) + return result + @property def input_variables(self): """ diff --git a/tutorials/README.md b/tutorials/README.md index d0abcbd..10ba0c6 100644 --- a/tutorials/README.md +++ b/tutorials/README.md @@ -7,6 +7,7 @@ In this folder we collect useful tutorials in order to understand the principles | Description | Tutorial | |---------------|-----------| Introduction to PINA for Physics Informed Neural Networks training|[[.ipynb](tutorial1/tutorial.ipynb), [.py](tutorial1/tutorial.py), [.html](http://mathlab.github.io/PINA/_rst/tutorials/tutorial1/tutorial.html)]| +PINA and PyTorch Lightning, training tips and visualizations|[[.ipynb](tutorial11/tutorial.ipynb), [.py](tutorial11/tutorial.py), [.html](http://mathlab.github.io/PINA/_rst/tutorials/tutorial11/tutorial.html)]| Building custom geometries with PINA `Location` class|[[.ipynb](tutorial6/tutorial.ipynb), [.py](tutorial6/tutorial.py), [.html](http://mathlab.github.io/PINA/_rst/tutorials/tutorial6/tutorial.html)]| diff --git a/tutorials/tutorial11/logging.png b/tutorials/tutorial11/logging.png new file mode 100644 index 0000000000000000000000000000000000000000..c4b421e1982cee064ab2da9b761af4feafbdc749 GIT binary patch literal 208727 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