Updates to tutorial and run post codacy changes

This commit is contained in:
Matteo Bertocchi
2025-03-10 17:18:48 +01:00
committed by Nicola Demo
parent 9e55746546
commit b38b0894b1
27 changed files with 952 additions and 393 deletions

View File

@@ -33,6 +33,7 @@
" !pip install \"pina-mathlab\"\n",
"\n",
"import torch\n",
"import warnings\n",
"\n",
"from pina import Condition, Trainer\n",
"from pina.solver import PINN\n",
@@ -42,6 +43,8 @@
"from pina.domain import CartesianDomain\n",
"from pina.equation import Equation, FixedValue\n",
"\n",
"warnings.filterwarnings('ignore')\n",
"\n",
"class SimpleODE(SpatialProblem):\n",
"\n",
" output_variables = ['u']\n",
@@ -180,93 +183,90 @@
"name": "stderr",
"output_type": "stream",
"text": [
"INFO:pytorch_lightning.utilities.rank_zero:GPU available: False, used: False\n",
"INFO:pytorch_lightning.utilities.rank_zero:TPU available: False, using: 0 TPU cores\n",
"INFO:pytorch_lightning.utilities.rank_zero:HPU available: False, using: 0 HPUs\n",
"/home/matte_b/.local/lib/python3.12/site-packages/lightning/pytorch/loops/utilities.py:73: `max_epochs` was not set. Setting it to 1000 epochs. To train without an epoch limit, set `max_epochs=-1`.\n"
"GPU available: False, used: False\n",
"TPU available: False, using: 0 TPU cores\n",
"HPU available: False, using: 0 HPUs\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 999: 100%|██████████| 1/1 [00:00<00:00, 27.90it/s, v_num=51, val_loss=0.000392, bound_cond_loss=5.29e-6, phys_cond_loss=0.000459, train_loss=0.000465] "
"Epoch 999: 100%|██████████| 1/1 [00:00<00:00, 91.87it/s, v_num=8, bound_cond_loss=6.07e-5, phys_cond_loss=0.000828, train_loss=0.000889] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"INFO:pytorch_lightning.utilities.rank_zero:`Trainer.fit` stopped: `max_epochs=1000` reached.\n"
"`Trainer.fit` stopped: `max_epochs=1000` reached.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 999: 100%|██████████| 1/1 [00:00<00:00, 23.95it/s, v_num=51, val_loss=0.000392, bound_cond_loss=5.29e-6, phys_cond_loss=0.000459, train_loss=0.000465]\n"
"Epoch 999: 100%|██████████| 1/1 [00:00<00:00, 57.75it/s, v_num=8, bound_cond_loss=6.07e-5, phys_cond_loss=0.000828, train_loss=0.000889]\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"INFO:pytorch_lightning.utilities.rank_zero:GPU available: False, used: False\n",
"INFO:pytorch_lightning.utilities.rank_zero:TPU available: False, using: 0 TPU cores\n",
"INFO:pytorch_lightning.utilities.rank_zero:HPU available: False, using: 0 HPUs\n",
"/home/matte_b/.local/lib/python3.12/site-packages/lightning/pytorch/loops/utilities.py:73: `max_epochs` was not set. Setting it to 1000 epochs. To train without an epoch limit, set `max_epochs=-1`.\n"
"GPU available: False, used: False\n",
"TPU available: False, using: 0 TPU cores\n",
"HPU available: False, using: 0 HPUs\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 999: 100%|██████████| 1/1 [00:00<00:00, 28.54it/s, v_num=52, val_loss=0.00267, bound_cond_loss=2.42e-5, phys_cond_loss=0.00144, train_loss=0.00146] "
"Epoch 999: 100%|██████████| 1/1 [00:00<00:00, 79.80it/s, v_num=9, bound_cond_loss=8.63e-5, phys_cond_loss=0.00215, train_loss=0.00223] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"INFO:pytorch_lightning.utilities.rank_zero:`Trainer.fit` stopped: `max_epochs=1000` reached.\n"
"`Trainer.fit` stopped: `max_epochs=1000` reached.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 999: 100%|██████████| 1/1 [00:00<00:00, 24.59it/s, v_num=52, val_loss=0.00267, bound_cond_loss=2.42e-5, phys_cond_loss=0.00144, train_loss=0.00146]\n"
"Epoch 999: 100%|██████████| 1/1 [00:00<00:00, 54.20it/s, v_num=9, bound_cond_loss=8.63e-5, phys_cond_loss=0.00215, train_loss=0.00223]\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"INFO:pytorch_lightning.utilities.rank_zero:GPU available: False, used: False\n",
"INFO:pytorch_lightning.utilities.rank_zero:TPU available: False, using: 0 TPU cores\n",
"INFO:pytorch_lightning.utilities.rank_zero:HPU available: False, using: 0 HPUs\n",
"/home/matte_b/.local/lib/python3.12/site-packages/lightning/pytorch/loops/utilities.py:73: `max_epochs` was not set. Setting it to 1000 epochs. To train without an epoch limit, set `max_epochs=-1`.\n"
"GPU available: False, used: False\n",
"TPU available: False, using: 0 TPU cores\n",
"HPU available: False, using: 0 HPUs\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 999: 100%|██████████| 1/1 [00:00<00:00, 29.41it/s, v_num=53, val_loss=0.00363, bound_cond_loss=1.02e-5, phys_cond_loss=0.000846, train_loss=0.000856] "
"Epoch 999: 100%|██████████| 1/1 [00:00<00:00, 82.98it/s, v_num=10, bound_cond_loss=2.84e-5, phys_cond_loss=0.00118, train_loss=0.00121] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"INFO:pytorch_lightning.utilities.rank_zero:`Trainer.fit` stopped: `max_epochs=1000` reached.\n"
"`Trainer.fit` stopped: `max_epochs=1000` reached.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 999: 100%|██████████| 1/1 [00:00<00:00, 24.69it/s, v_num=53, val_loss=0.00363, bound_cond_loss=1.02e-5, phys_cond_loss=0.000846, train_loss=0.000856]\n"
"Epoch 999: 100%|██████████| 1/1 [00:00<00:00, 55.87it/s, v_num=10, bound_cond_loss=2.84e-5, phys_cond_loss=0.00118, train_loss=0.00121]\n"
]
}
],
@@ -285,8 +285,11 @@
" pinn = PINN(problem, model)\n",
" trainer = Trainer(solver=pinn,\n",
" accelerator='cpu',\n",
" logger=TensorBoardLogger(save_dir='simpleode'),\n",
" enable_model_summary=False)\n",
" logger=TensorBoardLogger(save_dir='training_log'),\n",
" enable_model_summary=False,\n",
" train_size=1.0,\n",
" val_size=0.0,\n",
" test_size=0.0)\n",
" trainer.train()"
]
},
@@ -377,31 +380,30 @@
"name": "stderr",
"output_type": "stream",
"text": [
"INFO:pytorch_lightning.utilities.rank_zero:GPU available: False, used: False\n",
"INFO:pytorch_lightning.utilities.rank_zero:TPU available: False, using: 0 TPU cores\n",
"INFO:pytorch_lightning.utilities.rank_zero:HPU available: False, using: 0 HPUs\n",
"/home/matte_b/.local/lib/python3.12/site-packages/lightning/pytorch/loops/utilities.py:73: `max_epochs` was not set. Setting it to 1000 epochs. To train without an epoch limit, set `max_epochs=-1`.\n"
"GPU available: False, used: False\n",
"TPU available: False, using: 0 TPU cores\n",
"HPU available: False, using: 0 HPUs\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 999: 100%|██████████| 1/1 [00:00<00:00, 28.21it/s, v_num=18, val_loss=0.000348, bound_cond_loss=7.54e-5, phys_cond_loss=0.000956, train_loss=0.00103] "
"Epoch 999: 100%|██████████| 1/1 [00:00<00:00, 90.01it/s, v_num=70, bound_cond_loss=2.14e-5, phys_cond_loss=0.000448, train_loss=0.000469] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"INFO:pytorch_lightning.utilities.rank_zero:`Trainer.fit` stopped: `max_epochs=1000` reached.\n"
"`Trainer.fit` stopped: `max_epochs=1000` reached.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 999: 100%|██████████| 1/1 [00:00<00:00, 23.99it/s, v_num=18, val_loss=0.000348, bound_cond_loss=7.54e-5, phys_cond_loss=0.000956, train_loss=0.00103]\n"
"Epoch 999: 100%|██████████| 1/1 [00:00<00:00, 57.95it/s, v_num=70, bound_cond_loss=2.14e-5, phys_cond_loss=0.000448, train_loss=0.000469]\n"
]
}
],
@@ -415,8 +417,12 @@
"pinn = PINN(problem, model)\n",
"trainer = Trainer(solver=pinn,\n",
" accelerator='cpu',\n",
" logger=True,\n",
" callbacks=[NaiveMetricTracker()], # adding a callbacks\n",
" enable_model_summary=False,\n",
" callbacks=[NaiveMetricTracker()]) # adding a callbacks\n",
" train_size=1.0,\n",
" val_size=0.0,\n",
" test_size=0.0)\n",
"trainer.train()"
]
},
@@ -435,18 +441,15 @@
{
"data": {
"text/plain": [
"[{'val_loss': tensor(1.0595),\n",
" 'bound_cond_loss': tensor(1.0607),\n",
" 'phys_cond_loss': tensor(0.0043),\n",
" 'train_loss': tensor(1.0650)},\n",
" {'val_loss': tensor(1.0503),\n",
" 'bound_cond_loss': tensor(1.0522),\n",
" 'phys_cond_loss': tensor(0.0038),\n",
" 'train_loss': tensor(1.0560)},\n",
" {'val_loss': tensor(1.0412),\n",
" 'bound_cond_loss': tensor(1.0439),\n",
" 'phys_cond_loss': tensor(0.0033),\n",
" 'train_loss': tensor(1.0471)}]"
"[{'bound_cond_loss': tensor(0.0385),\n",
" 'phys_cond_loss': tensor(0.7217),\n",
" 'train_loss': tensor(0.7602)},\n",
" {'bound_cond_loss': tensor(0.0399),\n",
" 'phys_cond_loss': tensor(0.7142),\n",
" 'train_loss': tensor(0.7541)},\n",
" {'bound_cond_loss': tensor(0.0413),\n",
" 'phys_cond_loss': tensor(0.7067),\n",
" 'train_loss': tensor(0.7480)}]"
]
},
"execution_count": 7,
@@ -469,23 +472,23 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 8,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"INFO:pytorch_lightning.utilities.rank_zero:GPU available: False, used: False\n",
"INFO:pytorch_lightning.utilities.rank_zero:TPU available: False, using: 0 TPU cores\n",
"INFO:pytorch_lightning.utilities.rank_zero:HPU available: False, using: 0 HPUs\n"
"GPU available: False, used: False\n",
"TPU available: False, using: 0 TPU cores\n",
"HPU available: False, using: 0 HPUs\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 6468: 100%|██████████| 1/1 [00:00<00:00, 19.10it/s, v_num=19, val_loss=0.000129, bound_cond_loss=1.57e-8, phys_cond_loss=3.01e-6, train_loss=3.02e-6] \n"
"Epoch 4186: 100%|██████████| 1/1 [00:00<00:00, 37.06it/s, v_num=71, bound_cond_loss=1.91e-10, phys_cond_loss=3.88e-6, train_loss=3.88e-6] \n"
]
}
],
@@ -545,31 +548,31 @@
"output_type": "stream",
"text": [
"Seed set to 42\n",
"INFO:pytorch_lightning.utilities.rank_zero:GPU available: False, used: False\n",
"INFO:pytorch_lightning.utilities.rank_zero:TPU available: False, using: 0 TPU cores\n",
"INFO:pytorch_lightning.utilities.rank_zero:HPU available: False, using: 0 HPUs\n"
"GPU available: False, used: False\n",
"TPU available: False, using: 0 TPU cores\n",
"HPU available: False, using: 0 HPUs\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 1999: 100%|██████████| 1/1 [00:00<00:00, 22.76it/s, v_num=20, val_loss=4.61e-5, bound_cond_loss=1.22e-6, phys_cond_loss=0.000171, train_loss=0.000172] "
"Epoch 1999: 100%|██████████| 1/1 [00:00<00:00, 82.19it/s, v_num=72, bound_cond_loss=1.74e-6, phys_cond_loss=0.00018, train_loss=0.000182] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"INFO:pytorch_lightning.utilities.rank_zero:`Trainer.fit` stopped: `max_epochs=2000` reached.\n"
"`Trainer.fit` stopped: `max_epochs=2000` reached.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 1999: 100%|██████████| 1/1 [00:00<00:00, 19.28it/s, v_num=20, val_loss=4.61e-5, bound_cond_loss=1.22e-6, phys_cond_loss=0.000171, train_loss=0.000172]\n",
"Total training time 92.35361 s\n"
"Epoch 1999: 100%|██████████| 1/1 [00:00<00:00, 56.83it/s, v_num=72, bound_cond_loss=1.74e-6, phys_cond_loss=0.00018, train_loss=0.000182]\n",
"Total training time 32.64355 s\n"
]
}
],
@@ -615,45 +618,45 @@
"output_type": "stream",
"text": [
"Seed set to 42\n",
"INFO:pytorch_lightning.utilities.rank_zero:GPU available: False, used: False\n",
"INFO:pytorch_lightning.utilities.rank_zero:TPU available: False, using: 0 TPU cores\n",
"INFO:pytorch_lightning.utilities.rank_zero:HPU available: False, using: 0 HPUs\n"
"GPU available: False, used: False\n",
"TPU available: False, using: 0 TPU cores\n",
"HPU available: False, using: 0 HPUs\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 1598: 100%|██████████| 1/1 [00:00<00:00, 30.61it/s, v_num=21, val_loss=4.54e-5, bound_cond_loss=5.03e-6, phys_cond_loss=0.000247, train_loss=0.000252] "
"Epoch 1598: 100%|██████████| 1/1 [00:00<00:00, 70.77it/s, v_num=73, bound_cond_loss=7.01e-6, phys_cond_loss=0.000283, train_loss=0.00029] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"INFO:pytorch_lightning.utilities.rank_zero:Swapping scheduler `ConstantLR` for `SWALR`\n"
"Swapping scheduler `ConstantLR` for `SWALR`\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 1999: 100%|██████████| 1/1 [00:00<00:00, 28.21it/s, v_num=21, val_loss=3.45e-5, bound_cond_loss=2.41e-7, phys_cond_loss=9.02e-5, train_loss=9.04e-5] "
"Epoch 1999: 100%|██████████| 1/1 [00:00<00:00, 62.57it/s, v_num=73, bound_cond_loss=2.74e-7, phys_cond_loss=9.51e-5, train_loss=9.54e-5] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"INFO:pytorch_lightning.utilities.rank_zero:`Trainer.fit` stopped: `max_epochs=2000` reached.\n"
"`Trainer.fit` stopped: `max_epochs=2000` reached.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 1999: 100%|██████████| 1/1 [00:00<00:00, 22.97it/s, v_num=21, val_loss=3.45e-5, bound_cond_loss=2.41e-7, phys_cond_loss=9.02e-5, train_loss=9.04e-5]\n",
"Total training time 86.25178 s\n"
"Epoch 1999: 100%|██████████| 1/1 [00:00<00:00, 40.66it/s, v_num=73, bound_cond_loss=2.74e-7, phys_cond_loss=9.51e-5, train_loss=9.54e-5]\n",
"Total training time 39.14717 s\n"
]
}
],
@@ -702,45 +705,45 @@
"output_type": "stream",
"text": [
"Seed set to 42\n",
"INFO:pytorch_lightning.utilities.rank_zero:GPU available: False, used: False\n",
"INFO:pytorch_lightning.utilities.rank_zero:TPU available: False, using: 0 TPU cores\n",
"INFO:pytorch_lightning.utilities.rank_zero:HPU available: False, using: 0 HPUs\n"
"GPU available: False, used: False\n",
"TPU available: False, using: 0 TPU cores\n",
"HPU available: False, using: 0 HPUs\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 1598: 100%|██████████| 1/1 [00:00<00:00, 27.78it/s, v_num=22, val_loss=1.52e-5, bound_cond_loss=5.29e-8, phys_cond_loss=4.07e-5, train_loss=4.08e-5] "
"Epoch 1598: 100%|██████████| 1/1 [00:00<00:00, 69.88it/s, v_num=74, bound_cond_loss=5.16e-8, phys_cond_loss=3.54e-5, train_loss=3.54e-5] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"INFO:pytorch_lightning.utilities.rank_zero:Swapping scheduler `ConstantLR` for `SWALR`\n"
"Swapping scheduler `ConstantLR` for `SWALR`\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 1999: 100%|██████████| 1/1 [00:00<00:00, 28.11it/s, v_num=22, val_loss=0.000427, bound_cond_loss=0.000311, phys_cond_loss=0.000849, train_loss=0.00116] "
"Epoch 1999: 100%|██████████| 1/1 [00:00<00:00, 73.42it/s, v_num=74, bound_cond_loss=0.000126, phys_cond_loss=0.000315, train_loss=0.000441] "
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"INFO:pytorch_lightning.utilities.rank_zero:`Trainer.fit` stopped: `max_epochs=2000` reached.\n"
"`Trainer.fit` stopped: `max_epochs=2000` reached.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 1999: 100%|██████████| 1/1 [00:00<00:00, 22.88it/s, v_num=22, val_loss=0.000427, bound_cond_loss=0.000311, phys_cond_loss=0.000849, train_loss=0.00116]\n",
"Total training time 87.27789 s\n"
"Epoch 1999: 100%|██████████| 1/1 [00:00<00:00, 47.28it/s, v_num=74, bound_cond_loss=0.000126, phys_cond_loss=0.000315, train_loss=0.000441]\n",
"Total training time 40.19983 s\n"
]
}
],