update notebook

This commit is contained in:
Kashif Rasul committed 2022-11-29 10:32:51 +01:00
1 parent 5ef1d1d587
commit 8d2781d98c
1 file changed
+105 -80
+105 -80
View File
@@ -35,7 +35,7 @@
"name": "stderr",
"output_type": "stream",
"text": [
"2022-11-28 23:05:45.287845: I tensorflow/core/platform/cpu_feature_guard.cc:193] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: SSE3 SSE4.1 SSE4.2 AVX AVX2 FMA\n",
"2022-11-28 23:54:59.228194: I tensorflow/core/platform/cpu_feature_guard.cc:193] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: SSE3 SSE4.1 SSE4.2 AVX AVX2 FMA\n",
"To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.\n"
]
}
@@ -62,7 +62,7 @@
},
{
"cell_type": "code",
"execution_count": 5,
"execution_count": 15,
"id": "666105d9",
"metadata": {},
"outputs": [],
@@ -70,16 +70,17 @@
"enc_dec_config = dict(\n",
" encoder_attention_heads=2,\n",
" decoder_attention_heads=2,\n",
" encoder_layers=4,\n",
" decoder_layers=4,\n",
" encoder_layers=6,\n",
" decoder_layers=2,\n",
" encoder_ffn_embed_dim=32,\n",
" decoder_ffn_embed_dim=32,\n",
" deepnorm=True,\n",
")"
]
},
{
"cell_type": "code",
"execution_count": 15,
"execution_count": 16,
"id": "1717d0d2",
"metadata": {},
"outputs": [],
@@ -104,7 +105,7 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 17,
"id": "c77b420c",
"metadata": {
"scrolled": false
@@ -120,26 +121,24 @@
"TPU available: False, using: 0 TPU cores\n",
"IPU available: False, using: 0 IPUs\n",
"HPU available: False, using: 0 HPUs\n",
"/home/kashif/.env/pytorch/lib/python3.10/site-packages/pytorch_lightning/utilities/parsing.py:101: UserWarning: attribute 'model' removed from hparams because it cannot be pickled\n",
" rank_zero_warn(f\"attribute '{k}' removed from hparams because it cannot be pickled\")\n",
"/home/kashif/.env/pytorch/lib/python3.10/site-packages/pytorch_lightning/trainer/configuration_validator.py:108: PossibleUserWarning: You defined a `validation_step` but have no `val_dataloader`. Skipping val loop.\n",
" rank_zero_warn(\n",
"LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0]\n",
"\n",
" | Name | Type | Params\n",
"------------------------------------------\n",
"0 | model | TorchscaleModel | 165 K \n",
"0 | model | TorchscaleModel | 141 K \n",
"------------------------------------------\n",
"165 K Trainable params\n",
"141 K Trainable params\n",
"0 Non-trainable params\n",
"165 K Total params\n",
"0.661 Total estimated model params size (MB)\n"
"141 K Total params\n",
"0.565 Total estimated model params size (MB)\n"
]
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "a197e41cbd984592a31e541a6ef43a59",
"model_id": "478983173be94f159601e4efeafd769c",
"version_major": 2,
"version_minor": 0
},
@@ -154,31 +153,57 @@
"name": "stderr",
"output_type": "stream",
"text": [
"Epoch 0, global step 100: 'train_loss' reached 6.56327 (best 6.56327), saving model to './lightning_logs/version_20/checkpoints/epoch=0-step=100.ckpt' as top 1\n",
"Epoch 1, global step 200: 'train_loss' reached 5.91539 (best 5.91539), saving model to './lightning_logs/version_20/checkpoints/epoch=1-step=200.ckpt' as top 1\n",
"Epoch 2, global step 300: 'train_loss' reached 5.66458 (best 5.66458), saving model to './lightning_logs/version_20/checkpoints/epoch=2-step=300.ckpt' as top 1\n",
"Epoch 3, global step 400: 'train_loss' reached 5.46733 (best 5.46733), saving model to './lightning_logs/version_20/checkpoints/epoch=3-step=400.ckpt' as top 1\n",
"Epoch 4, global step 500: 'train_loss' reached 5.36346 (best 5.36346), saving model to './lightning_logs/version_20/checkpoints/epoch=4-step=500.ckpt' as top 1\n",
"Epoch 5, global step 600: 'train_loss' reached 5.27607 (best 5.27607), saving model to './lightning_logs/version_20/checkpoints/epoch=5-step=600.ckpt' as top 1\n",
"Epoch 6, global step 700: 'train_loss' reached 5.25226 (best 5.25226), saving model to './lightning_logs/version_20/checkpoints/epoch=6-step=700.ckpt' as top 1\n",
"Epoch 7, global step 800: 'train_loss' reached 5.20599 (best 5.20599), saving model to './lightning_logs/version_20/checkpoints/epoch=7-step=800.ckpt' as top 1\n",
"Epoch 8, global step 900: 'train_loss' was not in top 1\n",
"Epoch 9, global step 1000: 'train_loss' reached 5.16118 (best 5.16118), saving model to './lightning_logs/version_20/checkpoints/epoch=9-step=1000.ckpt' as top 1\n",
"Epoch 10, global step 1100: 'train_loss' was not in top 1\n",
"Epoch 11, global step 1200: 'train_loss' reached 5.15817 (best 5.15817), saving model to './lightning_logs/version_20/checkpoints/epoch=11-step=1200.ckpt' as top 1\n",
"Epoch 12, global step 1300: 'train_loss' reached 5.15382 (best 5.15382), saving model to './lightning_logs/version_20/checkpoints/epoch=12-step=1300.ckpt' as top 1\n",
"Epoch 13, global step 1400: 'train_loss' reached 5.11824 (best 5.11824), saving model to './lightning_logs/version_20/checkpoints/epoch=13-step=1400.ckpt' as top 1\n",
"Epoch 0, global step 100: 'train_loss' reached 6.19118 (best 6.19118), saving model to './lightning_logs/version_22/checkpoints/epoch=0-step=100.ckpt' as top 1\n",
"Epoch 1, global step 200: 'train_loss' reached 5.53603 (best 5.53603), saving model to './lightning_logs/version_22/checkpoints/epoch=1-step=200.ckpt' as top 1\n",
"Epoch 2, global step 300: 'train_loss' reached 5.41167 (best 5.41167), saving model to './lightning_logs/version_22/checkpoints/epoch=2-step=300.ckpt' as top 1\n",
"Epoch 3, global step 400: 'train_loss' reached 5.34164 (best 5.34164), saving model to './lightning_logs/version_22/checkpoints/epoch=3-step=400.ckpt' as top 1\n",
"Epoch 4, global step 500: 'train_loss' reached 5.27280 (best 5.27280), saving model to './lightning_logs/version_22/checkpoints/epoch=4-step=500.ckpt' as top 1\n",
"Epoch 5, global step 600: 'train_loss' reached 5.23810 (best 5.23810), saving model to './lightning_logs/version_22/checkpoints/epoch=5-step=600.ckpt' as top 1\n",
"Epoch 6, global step 700: 'train_loss' reached 5.17590 (best 5.17590), saving model to './lightning_logs/version_22/checkpoints/epoch=6-step=700.ckpt' as top 1\n",
"Epoch 7, global step 800: 'train_loss' reached 5.16487 (best 5.16487), saving model to './lightning_logs/version_22/checkpoints/epoch=7-step=800.ckpt' as top 1\n",
"Epoch 8, global step 900: 'train_loss' reached 5.12955 (best 5.12955), saving model to './lightning_logs/version_22/checkpoints/epoch=8-step=900.ckpt' as top 1\n",
"Epoch 9, global step 1000: 'train_loss' was not in top 1\n",
"Epoch 10, global step 1100: 'train_loss' reached 5.11244 (best 5.11244), saving model to './lightning_logs/version_22/checkpoints/epoch=10-step=1100.ckpt' as top 1\n",
"Epoch 11, global step 1200: 'train_loss' was not in top 1\n",
"Epoch 12, global step 1300: 'train_loss' reached 5.09012 (best 5.09012), saving model to './lightning_logs/version_22/checkpoints/epoch=12-step=1300.ckpt' as top 1\n",
"Epoch 13, global step 1400: 'train_loss' reached 5.06716 (best 5.06716), saving model to './lightning_logs/version_22/checkpoints/epoch=13-step=1400.ckpt' as top 1\n",
"Epoch 14, global step 1500: 'train_loss' was not in top 1\n",
"Epoch 15, global step 1600: 'train_loss' was not in top 1\n",
"Epoch 16, global step 1700: 'train_loss' was not in top 1\n",
"Epoch 17, global step 1800: 'train_loss' reached 5.10534 (best 5.10534), saving model to './lightning_logs/version_20/checkpoints/epoch=17-step=1800.ckpt' as top 1\n",
"Epoch 18, global step 1900: 'train_loss' reached 5.09408 (best 5.09408), saving model to './lightning_logs/version_20/checkpoints/epoch=18-step=1900.ckpt' as top 1\n",
"Epoch 19, global step 2000: 'train_loss' reached 5.07192 (best 5.07192), saving model to './lightning_logs/version_20/checkpoints/epoch=19-step=2000.ckpt' as top 1\n",
"Epoch 17, global step 1800: 'train_loss' reached 5.06192 (best 5.06192), saving model to './lightning_logs/version_22/checkpoints/epoch=17-step=1800.ckpt' as top 1\n",
"Epoch 18, global step 1900: 'train_loss' reached 5.04325 (best 5.04325), saving model to './lightning_logs/version_22/checkpoints/epoch=18-step=1900.ckpt' as top 1\n",
"Epoch 19, global step 2000: 'train_loss' reached 5.03188 (best 5.03188), saving model to './lightning_logs/version_22/checkpoints/epoch=19-step=2000.ckpt' as top 1\n",
"Epoch 20, global step 2100: 'train_loss' was not in top 1\n",
"Epoch 21, global step 2200: 'train_loss' was not in top 1\n",
"Epoch 22, global step 2300: 'train_loss' was not in top 1\n",
"Epoch 23, global step 2400: 'train_loss' was not in top 1\n",
"Epoch 24, global step 2500: 'train_loss' was not in top 1\n"
"Epoch 23, global step 2400: 'train_loss' reached 5.01183 (best 5.01183), saving model to './lightning_logs/version_22/checkpoints/epoch=23-step=2400.ckpt' as top 1\n",
"Epoch 24, global step 2500: 'train_loss' was not in top 1\n",
"Epoch 25, global step 2600: 'train_loss' was not in top 1\n",
"Epoch 26, global step 2700: 'train_loss' reached 5.00809 (best 5.00809), saving model to './lightning_logs/version_22/checkpoints/epoch=26-step=2700.ckpt' as top 1\n",
"Epoch 27, global step 2800: 'train_loss' reached 4.98943 (best 4.98943), saving model to './lightning_logs/version_22/checkpoints/epoch=27-step=2800.ckpt' as top 1\n",
"Epoch 28, global step 2900: 'train_loss' was not in top 1\n",
"Epoch 29, global step 3000: 'train_loss' was not in top 1\n",
"Epoch 30, global step 3100: 'train_loss' was not in top 1\n",
"Epoch 31, global step 3200: 'train_loss' was not in top 1\n",
"Epoch 32, global step 3300: 'train_loss' was not in top 1\n",
"Epoch 33, global step 3400: 'train_loss' was not in top 1\n",
"Epoch 34, global step 3500: 'train_loss' reached 4.97567 (best 4.97567), saving model to './lightning_logs/version_22/checkpoints/epoch=34-step=3500.ckpt' as top 1\n",
"Epoch 35, global step 3600: 'train_loss' reached 4.97444 (best 4.97444), saving model to './lightning_logs/version_22/checkpoints/epoch=35-step=3600.ckpt' as top 1\n",
"Epoch 36, global step 3700: 'train_loss' was not in top 1\n",
"Epoch 37, global step 3800: 'train_loss' was not in top 1\n",
"Epoch 38, global step 3900: 'train_loss' reached 4.96216 (best 4.96216), saving model to './lightning_logs/version_22/checkpoints/epoch=38-step=3900.ckpt' as top 1\n",
"Epoch 39, global step 4000: 'train_loss' was not in top 1\n",
"Epoch 40, global step 4100: 'train_loss' was not in top 1\n",
"Epoch 41, global step 4200: 'train_loss' was not in top 1\n",
"Epoch 42, global step 4300: 'train_loss' was not in top 1\n",
"Epoch 43, global step 4400: 'train_loss' was not in top 1\n",
"Epoch 44, global step 4500: 'train_loss' was not in top 1\n",
"Epoch 45, global step 4600: 'train_loss' was not in top 1\n",
"Epoch 46, global step 4700: 'train_loss' was not in top 1\n",
"Epoch 47, global step 4800: 'train_loss' reached 4.94119 (best 4.94119), saving model to './lightning_logs/version_22/checkpoints/epoch=47-step=4800.ckpt' as top 1\n",
"Epoch 48, global step 4900: 'train_loss' was not in top 1\n",
"Epoch 49, global step 5000: 'train_loss' was not in top 1\n",
"`Trainer.fit` stopped: `max_epochs=50` reached.\n"
]
}
],
@@ -193,7 +218,7 @@
},
{
"cell_type": "code",
"execution_count": 8,
"execution_count": 18,
"id": "f8a362b6",
"metadata": {
"scrolled": true
@@ -208,7 +233,7 @@
},
{
"cell_type": "code",
"execution_count": 9,
"execution_count": 19,
"id": "5fdc12da",
"metadata": {},
"outputs": [],
@@ -228,7 +253,7 @@
},
{
"cell_type": "code",
"execution_count": 11,
"execution_count": 20,
"id": "9b154bde",
"metadata": {},
"outputs": [],
@@ -238,7 +263,7 @@
},
{
"cell_type": "code",
"execution_count": 12,
"execution_count": 21,
"id": "0fdec8a7",
"metadata": {},
"outputs": [
@@ -246,7 +271,7 @@
"name": "stderr",
"output_type": "stream",
"text": [
"Running evaluation: 2247it [00:00, 3771.68it/s]\n",
"Running evaluation: 2247it [00:00, 2573.54it/s]\n",
"/home/kashif/.env/pytorch/lib/python3.10/site-packages/pandas/core/dtypes/astype.py:170: UserWarning: Warning: converting a masked element to nan.\n",
" return arr.astype(dtype, copy=True)\n"
]
@@ -258,59 +283,59 @@
},
{
"cell_type": "code",
"execution_count": 13,
"execution_count": 22,
"id": "7f28f4d3",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'MSE': 28224175.008797746,\n",
" 'abs_error': 37351447.05586052,\n",
"{'MSE': 2539395.386475215,\n",
" 'abs_error': 11997401.98090744,\n",
" 'abs_target_sum': 128632956.0,\n",
" 'abs_target_mean': 2385.272140631954,\n",
" 'seasonal_error': 189.49338196116761,\n",
" 'MASE': 3.0573827514240386,\n",
" 'MAPE': 0.30876189776929736,\n",
" 'sMAPE': 0.3119385377116399,\n",
" 'MSIS': 26.850209888001007,\n",
" 'QuantileLoss[0.1]': 16514360.619457962,\n",
" 'Coverage[0.1]': 0.13540275923453493,\n",
" 'QuantileLoss[0.2]': 24639972.0714408,\n",
" 'Coverage[0.2]': 0.2143042575285566,\n",
" 'QuantileLoss[0.3]': 30503361.37330259,\n",
" 'Coverage[0.3]': 0.2734201157098353,\n",
" 'QuantileLoss[0.4]': 34646364.46083483,\n",
" 'Coverage[0.4]': 0.3241358848835484,\n",
" 'QuantileLoss[0.5]': 37351446.74963215,\n",
" 'Coverage[0.5]': 0.3725522919448153,\n",
" 'QuantileLoss[0.6]': 38735412.66370968,\n",
" 'Coverage[0.6]': 0.4194481530930129,\n",
" 'QuantileLoss[0.7]': 38193044.51865159,\n",
" 'Coverage[0.7]': 0.47702492211838005,\n",
" 'QuantileLoss[0.8]': 35495781.72468124,\n",
" 'Coverage[0.8]': 0.5465435395341938,\n",
" 'QuantileLoss[0.9]': 29017368.437739775,\n",
" 'Coverage[0.9]': 0.6522771102210354,\n",
" 'RMSE': 5312.642940081494,\n",
" 'NRMSE': 2.227269102582971,\n",
" 'ND': 0.2903722981835271,\n",
" 'wQuantileLoss[0.1]': 0.12838358950141798,\n",
" 'wQuantileLoss[0.2]': 0.19155256038305457,\n",
" 'wQuantileLoss[0.3]': 0.23713488612749123,\n",
" 'wQuantileLoss[0.4]': 0.2693428304705587,\n",
" 'wQuantileLoss[0.5]': 0.29037229580289015,\n",
" 'wQuantileLoss[0.6]': 0.30113132643635804,\n",
" 'wQuantileLoss[0.7]': 0.29691492527507174,\n",
" 'wQuantileLoss[0.8]': 0.27594624914536864,\n",
" 'wQuantileLoss[0.9]': 0.22558269155953917,\n",
" 'mean_absolute_QuantileLoss': 31677456.957716737,\n",
" 'mean_wQuantileLoss': 0.2462623727446389,\n",
" 'MAE_Coverage': 0.13158944436203004,\n",
" 'MASE': 0.9517694268374104,\n",
" 'MAPE': 0.113209351550685,\n",
" 'sMAPE': 0.12089808357133741,\n",
" 'MSIS': 8.033074072588281,\n",
" 'QuantileLoss[0.1]': 5383996.103385585,\n",
" 'Coverage[0.1]': 0.2306593977154725,\n",
" 'QuantileLoss[0.2]': 8412028.65173243,\n",
" 'Coverage[0.2]': 0.4034824210057855,\n",
" 'QuantileLoss[0.3]': 10396657.407125933,\n",
" 'Coverage[0.3]': 0.5377725856697819,\n",
" 'QuantileLoss[0.4]': 11584928.473029224,\n",
" 'Coverage[0.4]': 0.6508678237650201,\n",
" 'QuantileLoss[0.5]': 11997401.97073013,\n",
" 'Coverage[0.5]': 0.7414144785640112,\n",
" 'QuantileLoss[0.6]': 11501831.512725353,\n",
" 'Coverage[0.6]': 0.8104138851802403,\n",
" 'QuantileLoss[0.7]': 10523039.623305868,\n",
" 'Coverage[0.7]': 0.8740542946150422,\n",
" 'QuantileLoss[0.8]': 8916500.688121634,\n",
" 'Coverage[0.8]': 0.9259939178163478,\n",
" 'QuantileLoss[0.9]': 6169525.347754505,\n",
" 'Coverage[0.9]': 0.966381100726895,\n",
" 'RMSE': 1593.5480496286314,\n",
" 'NRMSE': 0.6680780873944374,\n",
" 'ND': 0.0932684931916471,\n",
" 'wQuantileLoss[0.1]': 0.04185549544072971,\n",
" 'wQuantileLoss[0.2]': 0.06539559466963062,\n",
" 'wQuantileLoss[0.3]': 0.08082421278669778,\n",
" 'wQuantileLoss[0.4]': 0.09006190041243571,\n",
" 'wQuantileLoss[0.5]': 0.09326849311252809,\n",
" 'wQuantileLoss[0.6]': 0.08941589986259317,\n",
" 'wQuantileLoss[0.7]': 0.081806715405855,\n",
" 'wQuantileLoss[0.8]': 0.0693173893020202,\n",
" 'wQuantileLoss[0.9]': 0.04796224497674224,\n",
" 'mean_absolute_QuantileLoss': 9431767.753101185,\n",
" 'mean_wQuantileLoss': 0.07332310510769251,\n",
" 'MAE_Coverage': 0.18233776722873296,\n",
" 'OWA': nan}"
]
},
"execution_count": 13,
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
@@ -321,13 +346,13 @@
},
{
"cell_type": "code",
"execution_count": 14,
"execution_count": 23,
"id": "cc3f804d",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAB7cAAAXCCAYAAABwgmnJAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/av/WaAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOz9d3xc5Zk3/n+madQly5Z77xiXYMChY8Ap4NDtbNquTcmGtC+EEAjPJpssIQ88EAL8NiEhCSXZBDaxwTSHamwMxtjYBveu3sv0Pqf8/jg6oxlN0fT6eb9eemGdOXPmnpEY3XNf93VdGlmWZRAREREREREREREREREREeUxba4HQERERERERERERERERERENBoGt4mIiIiIiIiIiIiIiIiIKO8xuE1ERERERERERERERERERHmPwW0iIiIiIiIiIiIiIiIiIsp7DG4TEREREREREREREREREVHeY3CbiIiIiIiIiIiIiIiIiIjyHoPbRERERERERERERERERESU9xjcJiIiIiIiIiIiIiIiIiKivMfgNhERERERERERERERERER5T0Gt4mIiIiIiIiIiIiIiIiIKO8xuE1ElEV2ux0///nPsWTJElRXV6Ourg7nnnsuHnnkEfh8vlwPj4iIiIjynMvlwuuvv477778fN9xwA2bMmAGNRgONRoOf//znuR4eERERERWIwcFBPPPMM/jGN76BRYsWoaqqCkajEVOnTsV1112HTZs25XqIREQRaWRZlnM9CCKiUtDa2oqVK1eipaUFAFBZWQlRFOH1egEAZ511FrZs2YIxY8bkcJRERERElM+2bduGyy67LOJtP/vZzxjgJiIiIqK4GAwGCIIQ+L68vBw6nQ5OpzNw7Morr8TGjRtRWVmZiyESEUXEzG0ioiwQBAFXX301WlpaMGnSJLz99ttwOp1wuVz43//9X9TU1OCTTz7BN77xjVwPlYiIiIjy3JgxY3DFFVfgRz/6EZ5//nlMnDgx10MiIiIiogIjCAJWrFiBJ554AqdPn4bb7YbD4UBzczNuueUWAMDrr7+Ob33rWzkeKRFRKGZuExFlwVNPPYVbb70VAPDhhx/i/PPPD7n9+eefx9e+9jUAwDvvvIMrrrgi62MkIiIiovwniiJ0Ol3IsZkzZ6K1tZWZ20REREQUt61bt0atCAQAt912G5588kkAQFtbG6ZNm5atoRERxcTMbSKiLPjzn/8MALjsssvCAtsA8JWvfAWzZs0CAPzlL3/J6tiIiIiIqHCMDGwTERERESUjVmAbQCB7GwD27NmT6eEQEcWNwW0iogxzuVzYsWMHAKVPTSQajQZf/OIXAQBvvfVW1sZGRERERERERERENFJ5eXng36Io5nAkREShGNwmIsqwo0ePQpIkAMDixYujnqfe1tPTA5PJlJWxEREREREREREREY20bdu2wL+XLFmSu4EQEY3A4DYRUYZ1dXUF/j1lypSo5wXfFnwfIiIiIiIiIiIiomyxWCx44IEHAAAXX3wxFixYkOMRERENY3CbiCjD7HZ74N+VlZVRzwu+Lfg+RERERERERERERNkgSRL+9V//Fd3d3SgvL8dvfvObXA+JiCgEg9tERERERERERERERESE22+/Ha+99hoA4Le//S2WLl2a4xEREYVicJuIKMNqamoC/3a5XFHPC74t+D5EREREREREREREmXbXXXcFMrUfffRR3HzzzTkeERFROAa3iYgybPLkyYF/d3Z2Rj0v+Lbg+xARERERERERERFl0t13341HHnkEAPCrX/0Kd9xxR24HREQUBYPbREQZdsYZZ0CrVd5uDx06FPU89baJEyeioaEhK2MjIiIiIiIiIiKi0vajH/0IDz/8MADgoYcewg9/+MMcj4iIKDoGt4mIMqyyshIXXnghAOCNN96IeI4sy3jzzTcBAJ///OezNjYiIiIiIiIiIiIqXXfddRd+9atfAVAC2z/60Y9yPCIiotgY3CYiyoJ169YBALZu3Ypdu3aF3b5hwwY0NTUBAP7t3/4tq2MjIiIiIiIiIiKi0nPXXXeFlCJnYJuICgGD20REWbBu3TosWbIEsizjxhtvxJYtWwAAkiRhw4YN+OY3vwkAuPLKK3HFFVfkcqhERERElOfMZjMGBgYCX5IkAQBcLlfIcYfDkeOREhEREVG+Cu6x/etf/5qlyImoYGhkWZZzPQgiolLQ0tKCyy67DC0tLQCUcuWSJMHj8QAAzjrrLGzZsgVjxozJ4SiJiIiIKN/NnDkTra2to563bt06PPvss5kfEBEREREVlLa2NsyYMQMAoNVq0djYGPP8u+66C3fddVc2hkZENCp9rgdARFQqZs6ciQMHDuBXv/oVXnzxRTQ3N8NgMODMM8/EV7/6VXz/+99HWVlZrodJRERERERERERERUyt/KP+u7e3N+b5rAhERPmEmdtERERERERERERERERERJT32HObiIiIiIiIiIiIiIiIiIjyHoPbRERERERERERERERERESU9xjcJiIiIiIiIiIiIiIiIiKivMfgNhERERERERERERERERER5T0Gt4mIiIiIiIiIiIiIiIiIKO/pcz2AXJIkCV1dXaipqYFGo8n1cIiIiIiyQpZl2O12TJ48GVot9zqmA+eVREREVIo4r0w/ziuJiIioFCUyryzp4HZXVxemTZuW62EQERER5UR7ezumTp2a62EUBc4riYiIqJRxXpk+nFcSERFRKYtnXlnSwe2amhoAygtVW1ub49EQERERZYfNZsO0adMCcyFKHeeVREREVIo4r0w/ziuJiIioFCUyryzp4LZa2qe2tpaTRSIiIio5LHOYPpxXEhERUSnjvDJ9OK8kIiKiUhbPvJLNcIiIiIiIiIiIiIiIiIiIKO8xuE1ERERERERERERERERERHmPwW0iIiIiIiIiIiIiIiIiIsp7OQ1uf/zxx/jyl7+MyZMnw2AwoL6+HhdffDGeeeYZyLIcdr4oinj00UexZMkSVFRUoLGxEV/+8pdx9OjRHIyeiIiIiIiIiIiIiIiIiIiyRZ+rB37hhRfwL//yLxBFEcuXL8fFF1+M/v5+vP/++/jggw/wzjvv4G9/+1vgfEmSsHbtWmzatAn19fVYvXo1BgYGsHHjRmzevBlbt27FihUrcvV0iIiIiIiIiIiIiIiIiIgog3KSuS0IAr7zne9AFEX87W9/w969e/H3v/8d7777Lg4cOICGhgY899xz2Lp1a+A+Tz/9NDZt2oR58+bh2LFj2LhxI7Zt24YNGzbA5XLh61//OgRByMXTISIiIiIiIiIiIiIiIiKiDMtJcPvYsWPo6+vDggUL8LWvfS3ktjPOOAPf+MY3AChly1W//vWvAQAPPfQQJkyYEDh+44034pprrsGpU6fw8ssvZ2H0RERERERERERERERERESUbTkJbhuNxrjOGzt2LACgubkZR48eRUVFBVavXh123po1awAAr776avoGSUREREREREREREREREREeSMnwe3Zs2djzpw5OH78OJ577rmQ244ePYq//vWvGDNmDK6//noAwP79+wEAixcvhsFgCLve8uXLAQAHDhzI8MiJiIiIiIiIiIiIiIiIiCgXchLc1ul0+POf/4z6+np8/etfx9lnn42vfOUruPzyy7F06VJMnToVW7ZsQUNDAwCgra0NADB16tSI11OPt7a2xnxcr9cLm80W8kVERERERERERERERERERPkvJ8FtALjwwgvx3nvvYfbs2di3bx/+/ve/Y+vWrdBqtfjc5z6H2bNnB851OBwAgMrKyojXqqqqAgDY7faYj/nAAw+grq4u8DVt2rQ0PRsiIiIiIiIiIiIiIiIiIsqknAW3n3/+eaxYsQLTpk3Drl274HA4cOLECaxfvx6PPPIILr/8cni93rQ+5r333gur1Rr4am9vT+v1iYiIiIiIiIiIiIiIiIgoM/S5eNCTJ09i3bp1GD9+PF577TVUV1cDAObNm4cnn3wSXV1deO211/D000/j29/+duB2l8sV8XpOpxMAUFNTE/NxjUYjjEZjGp8JERERERERERERERERERFlQ04yt//3f/8Xfr8fX/ziFwOB62Bf/vKXAQDbt28HAEyfPh0A0NHREfF66vEZM2ZkYrhERESUBL/oz/UQiIiIiKjEuPyREyOIiIiIqPi4/W502CLHDql45SS4rQaj6+rqIt6uHjebzQCAZcuWAQAOHToEvz98oXzfvn0AgKVLl6Z9rERERJQ4WZZhcptSuobb707TaIiIiIioVBztP5rrIRARERFRFnTZu7DhyAacNp3O9VAoy3IS3J44cSIAYM+ePRFv//jjjwEAM2fOBADMmjULZ5xxBtxuNzZv3hx2/saNGwEAV199dQZGS0RERIly+p0pZ830u/rTNBoiIiIiKhUtlhZukiQiIiIqcvu69+HV46/C5XfB5rXlejiUZTkJbl977bUAlLLjv/vd70Ju++ijj/Doo48CANasWRM4fueddwIA7r77bvT19QWOv/jii3jllVcwd+7cwHWJiIgotxw+BzyCJ6VrDLgGIMtymkZERERERKXALbjRZG7K9TCIiIiIKAO8ghf/PPlP7O7cDRnKuqHVa83xqCjbchLcXr58Oe666y4AwHe+8x0sXrwYX/7yl3HRRRfhwgsvhNPpxL//+79j1apVgfvcfPPNuP7663Hy5EksXLgQa9euxWWXXYY1a9agoqICf/3rX6HX63PxdIiIiGiEdAS3nb7Us7+JiIiIqLR4BS+D20RERERFyCf6sOHIBrRZ20KOO31OiJKYo1FRLuQkuA0ADz/8MF588UV8/vOfR09PDzZt2oQjR47g0ksvxXPPPYcnn3wy5HytVosNGzbgkUceweTJk/Haa6/h4MGDuPHGG7Fnzx589rOfzdEzISIiopHsXjvcQmrlIN2CGw6fI00jIiIiIqJiJ8kS/JIfXfYuliYnIiIiKjJOnzPiWqEMmaXJS0xLine truncated
"image/png": "iVBORw0KGgoAAAANSUhEUgAAB7cAAAXCCAYAAABwgmnJAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/av/WaAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdeZhcdZk3/O+pvat673T2pZMAgRDCJpEdxMggiyCC8+g4Q0AcGefxBQFxGHF0QC98BlDwQUfeeRjAV0EfkFUWWUOAhBCSkJB9631fal9O1VneP06f6qqupas7tZyq+n6uqy+SqlPVv6403afO/fvet6CqqgoiIiIiIiIiIiIiIiIiIiIDM5V6AURERERERERERERERERERFNhcZuIiIiIiIiIiIiIiIiIiAyPxW0iIiIiIiIiIiIiIiIiIjI8FreJiIiIiIiIiIiIiIiIiMjwWNwmIiIiIiIiIiIiIiIiIiLDY3GbiIiIiIiIiIiIiIiIiIgMj8VtIiIiIiIiIiIiIiIiIiIyPBa3iYiIiIiIiIiIiIiIiIjI8FjcJiIiIiIiIiIiIiIiIiIiw2Nxm4iIiIiIiIiIiIiIiIiIDI/FbSKiIvL7/fjJT36Ck046CbW1tWhoaMAZZ5yBBx54ANFotNTLIyIiIiKDC4VCePXVV/HTn/4UV199NZYsWQJBECAIAn7yk5+UenlEREREVCZGR0fx2GOP4Rvf+AZWrlwJl8sFu92OhQsX4qqrrsJzzz1X6iUSEaUlqKqqlnoRRETVoLOzExdeeCE6OjoAAE6nE7IsQxRFAMCpp56Kt956C01NTSVcJREREREZ2fr16/G5z30u7X0//vGPWeAmIiIiopxYrVZIkhT/u8PhgNlsRjAYjN/2xS9+Ec888wycTmcplkhElBaT20RERSBJEq644gp0dHRg3rx5eOONNxAMBhEKhfDHP/4RdXV12L59O77xjW+UeqlEREREZHBNTU34/Oc/j+9///t46qmnMHfu3FIviYiIiIjKjCRJWLNmDX7zm9/g8OHDCIfDCAQCaG9vxze/+U0AwKuvvopvf/vbJV4pEVEyJreJiIrg0UcfxY033ggA2LhxI84666yk+5966il8/etfBwC8+eab+PznP1/0NRIRERGR8cmyDLPZnHRbW1sbOjs7mdwmIiIiopy98847GTsCAcBNN92ERx55BADQ1dWFRYsWFWtpRERZMblNRFQETzzxBADgc5/7XEphGwD+x//4H1i6dCkA4He/+11R10ZERERE5WNyYZuIiIiIaCayFbYBxNPbAPDxxx8XejlERDljcZuIqMBCoRA++OADANqcmnQEQcAll1wCAHj99deLtjYiIiIiIiIiIiKiyRwOR/zPsiyXcCVERMlY3CYiKrC9e/dCURQAwKpVqzIep983MDCAsbGxoqyNiIiIiIiIiIiIaLL169fH/3zSSSeVbiFERJOwuE1EVGB9fX3xPy9YsCDjcYn3JT6GiIiIiIiIiIiIqFg8Hg/uvfdeAMB5552HFStWlHhFREQTWNwmIiowv98f/7PT6cx4XOJ9iY8hIiIiIiIiIiIiKgZFUfD3f//36O/vh8PhwMMPP1zqJRERJWFxm4iIiIiIiIiIiIiIiHDzzTfjL3/5CwDg17/+NVavXl3iFRERJWNxm4iowOrq6uJ/DoVCGY9LvC/xMURERERERERERESFdvvtt8eT2r/85S9xww03lHhFRESpWNwmIiqw+fPnx//c29ub8bjE+xIfQ0RERERERERERFRId9xxBx544AEAwP33349bbrmltAsiIsqAxW0iogI74YQTYDJpP2537dqV8Tj9vrlz56K5ubkoayMiIiIiIiIiIqLq9v3vfx/33XcfAOA//uM/cNttt5V4RUREmbG4TURUYE6nE+eccw4A4LXXXkt7jKqq+Otf/woAuPjii4u2NiIiIiIiIiIiIqpet99+O+6//34AWmH7+9//folXRESUHYvbRERFcN111wEA3nnnHWzevDnl/qeffhpHjhwBAPzDP/xDUddGRERERERERERE1ef2229PakXOwjYRlQMWt4mIiuC6667DSSedBFVV8ZWvfAVvvfUWAEBRFDz99NP41re+BQD44he/iM9//vOlXCoRERERGZzb7cbIyEj8Q1EUAEAoFEq6PRAIlHilRERERGRUiTO2f/GLX7AVORGVDUFVVbXUiyAiqgYdHR343Oc+h46ODgBau3JFURCJRAAAp556Kt566y00NTWVcJVEREREZHRtbW3o7Oyc8rjrrrsOjz/+eOEXRERERERlpaurC0uWLAEAmEwmtLa2Zj3+9ttvx+23316MpRERTclS6gUQEVWLtrY27Ny5E/fffz+effZZtLe3w2q14sQTT8TXvvY1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 truncated
"text/plain": [
"<Figure size 2000x1500 with 9 Axes>"
]