{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "eb3df5ad",
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\biplabd\\Anaconda3\\envs\\pyg\\lib\\site-packages\\tqdm\\auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n",
      "  from .autonotebook import tqdm as notebook_tqdm\n"
     ]
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "import os\n",
    "import numpy as np\n",
    "import torch\n",
    "from torch import nn\n",
    "import torchvision.transforms as transforms\n",
    "from tqdm import tqdm\n",
    "from utils.loaders_viscosity import create_datasets, Dataset_3DCNN\n",
    "from models.viscosity_models import CNNLayers, CNN3D\n",
    "from models.feedforward import LinLayers\n",
    "from utils.datastruct import CNNData, LinData, NetData\n",
    "from utils.helper_fun import conv3D_output_size\n",
    "from torch.optim import Adam\n",
    "\n",
    "from models.training import train, test\n",
    "\n",
    "from sklearn.metrics import r2_score\n",
    "from models.training import train_epochs"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7f7c8a94",
   "metadata": {},
   "source": [
    "## Dataloaders"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "3dbc1027",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "length test set  33\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "\"# plots\\nx, y = next(iter(train_dl))\\nx = x.permute(0,2,3,4,1)\\n\\nplt.figure(figsize=(20,12))\\nfor k in range(x.shape[1]):\\n    plt.subplot(1, x.shape[1],k+1)\\n    plt.imshow(x[0,k,:,:,:].squeeze(),cmap = 'gray')\\n\""
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train_dl, test_dl, val_dl = create_datasets(path = r'D:\\All_files\\pys\\AI_algos\\Mikes_Work\\viscosity-video-classification\\viscosity_reg_modeling\\new_honey_164', # absolute path\n",
    "                    validation_split = 0.2,\n",
    "                    test_split = 0.2,\n",
    "                    batch_size = 5,\n",
    "                    transform = transforms.Compose([transforms.Resize([256, 342]),\n",
    "                                transforms.ToTensor(),\n",
    "                                transforms.Normalize(mean=[0.5], std=[0.5])]),\n",
    "                    random_seed = 112,\n",
    "                    shuffle = True,\n",
    "                    selected_frames = np.arange(2,62,2))\n",
    "\n",
    "\n",
    "'''# plots\n",
    "x, y = next(iter(train_dl))\n",
    "x = x.permute(0,2,3,4,1)\n",
    "\n",
    "plt.figure(figsize=(20,12))\n",
    "for k in range(x.shape[1]):\n",
    "    plt.subplot(1, x.shape[1],k+1)\n",
    "    plt.imshow(x[0,k,:,:,:].squeeze(),cmap = 'gray')\n",
    "'''"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "02765816",
   "metadata": {},
   "source": [
    "## Models"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "12fbad8f",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CNN3D(\n",
      "  (cnn3d): CNNLayers(\n",
      "    (layers): Sequential(\n",
      "      (0): Sequential(\n",
      "        (0): Conv3d(1, 32, kernel_size=(5, 5, 5), stride=(2, 2, 2))\n",
      "        (1): BatchNorm3d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
      "        (2): ReLU()\n",
      "      )\n",
      "      (1): Sequential(\n",
      "        (0): Conv3d(32, 48, kernel_size=(3, 3, 3), stride=(2, 2, 2))\n",
      "        (1): BatchNorm3d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
      "        (2): ReLU()\n",
      "      )\n",
      "    )\n",
      "  )\n",
      "  (lin): LinLayers(\n",
      "    (layers): Sequential(\n",
      "      (0): Sequential(\n",
      "        (0): Linear(in_features=1499904, out_features=256, bias=True)\n",
      "        (1): ReLU()\n",
      "        (2): Dropout(p=0.2, inplace=False)\n",
      "      )\n",
      "      (1): Sequential(\n",
      "        (0): Linear(in_features=256, out_features=256, bias=True)\n",
      "        (1): ReLU()\n",
      "      )\n",
      "      (2): Sequential(\n",
      "        (0): Linear(in_features=256, out_features=1, bias=True)\n",
      "      )\n",
      "    )\n",
      "  )\n",
      ")\n"
     ]
    }
   ],
   "source": [
    "# CNN3D Layer's architecture\n",
    "cnndata = CNNData(in_dim = 1,\n",
    "                  n_f =[32,48],\n",
    "                  kernel_size=[(5,5,5), (3,3,3)],\n",
    "                  activations=[nn.ReLU(),nn.ReLU()],\n",
    "                  bns = [True, True],\n",
    "                  dropouts = [0, 0],\n",
    "                  paddings = [(0,0,0),(0,0,0)],\n",
    "                  strides = [(2,2,2),(2,2,2)])\n",
    "\n",
    "# Feedforward layer's architecture\n",
    "lindata = LinData(in_dim = conv3D_output_size(cnndata, [30, 256, 342]),\n",
    "                  hidden_layers= [256,256,1],\n",
    "                  activations=[nn.ReLU(),nn.ReLU(),None],\n",
    "                  bns=[False,False,False],\n",
    "                  dropouts =[0.2, 0, 0])\n",
    "\n",
    "# combined architecture\n",
    "args = NetData(cnndata, lindata)\n",
    "   \n",
    "# CNN3D model\n",
    "device = 'cuda' if torch.cuda.is_available() else 'cpu'\n",
    "cnn3d = CNN3D(args).to(device)\n",
    "print(cnn3d)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "06185dc2",
   "metadata": {},
   "source": [
    "## Training"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "93bffb53",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "  0%|                  | 1/300 [01:49<9:07:25, 109.85s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 000, train loss:  4274492.9226, val loss: 3206663.2500, test loss : 4400214.0000\n",
      "Epoch: 000, train r2:  0.2575, val r2: 0.2704, test r2: 0.2545\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  1%|                  | 2/300 [03:43<9:15:49, 111.91s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 001, train loss:  4540687.0536, val loss: 3916466.0000, test loss : 4490281.0000\n",
      "Epoch: 001, train r2:  0.2122, val r2: 0.1262, test r2: 0.2353\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  1%|▏                 | 3/300 [05:32<9:08:49, 110.87s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 002, train loss:  3934426.9226, val loss: 4222610.5000, test loss : 4146311.5000\n",
      "Epoch: 002, train r2:  0.2920, val r2: 0.2602, test r2: 0.2982\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  1%|▏                 | 4/300 [07:24<9:08:00, 111.08s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 003, train loss:  3723287.5327, val loss: 1981270.6250, test loss : 3828467.5000\n",
      "Epoch: 003, train r2:  0.4281, val r2: 0.5509, test r2: 0.3482\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  2%|▎                 | 5/300 [09:15<9:06:10, 111.09s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 004, train loss:  3228769.9182, val loss: 2352728.7500, test loss : 3374907.2500\n",
      "Epoch: 004, train r2:  0.4653, val r2: 0.4668, test r2: 0.4234\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  2%|▎                 | 6/300 [11:08<9:07:56, 111.82s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 005, train loss:  2991300.3601, val loss: 1650118.3750, test loss : 3186784.5000\n",
      "Epoch: 005, train r2:  0.5415, val r2: 0.6456, test r2: 0.4497\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  2%|▍                 | 7/300 [12:58<9:03:15, 111.25s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 006, train loss:  2393042.3185, val loss: 2291022.0000, test loss : 3031543.5000\n",
      "Epoch: 006, train r2:  0.5346, val r2: 0.4786, test r2: 0.4798\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  3%|▍                 | 8/300 [14:41<8:48:41, 108.64s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 007, train loss:  2260682.4792, val loss: 1549960.6250, test loss : 2257897.5000\n",
      "Epoch: 007, train r2:  0.6835, val r2: 0.6904, test r2: 0.6066\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  3%|▌                 | 9/300 [16:24<8:37:40, 106.74s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 008, train loss:  1643174.5848, val loss: 1760399.5000, test loss : 2329627.7500\n",
      "Epoch: 008, train r2:  0.6801, val r2: 0.6186, test r2: 0.5998\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  3%|▌                | 10/300 [18:11<8:36:26, 106.85s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 009, train loss:  1561948.5060, val loss: 775720.3125, test loss : 1825776.1250\n",
      "Epoch: 009, train r2:  0.7510, val r2: 0.8256, test r2: 0.6794\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  4%|▌                | 11/300 [19:58<8:35:02, 106.93s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 010, train loss:  1347368.5432, val loss: 838856.5000, test loss : 1378916.2500\n",
      "Epoch: 010, train r2:  0.8334, val r2: 0.8296, test r2: 0.7592\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  4%|▋                | 12/300 [21:47<8:36:12, 107.54s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 011, train loss:  1074673.5186, val loss: 626881.7500, test loss : 1342152.8750\n",
      "Epoch: 011, train r2:  0.8236, val r2: 0.8597, test r2: 0.7609\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  4%|▋                | 13/300 [23:37<8:38:37, 108.42s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 012, train loss:  764028.0692, val loss: 547547.4375, test loss : 906935.8750\n",
      "Epoch: 012, train r2:  0.8968, val r2: 0.8928, test r2: 0.8394\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  5%|▊                | 14/300 [25:29<8:40:57, 109.29s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 013, train loss:  645933.5789, val loss: 507428.0938, test loss : 813910.3750\n",
      "Epoch: 013, train r2:  0.9178, val r2: 0.8970, test r2: 0.8572\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  5%|▊                | 15/300 [27:19<8:40:21, 109.55s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 014, train loss:  549480.2121, val loss: 758520.8125, test loss : 1050635.1250\n",
      "Epoch: 014, train r2:  0.8923, val r2: 0.8309, test r2: 0.8204\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  5%|▉                | 16/300 [29:10<8:40:13, 109.91s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 015, train loss:  541406.5499, val loss: 505376.7812, test loss : 776183.8750\n",
      "Epoch: 015, train r2:  0.8949, val r2: 0.8860, test r2: 0.8609\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  6%|▉                | 17/300 [31:01<8:40:05, 110.27s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 016, train loss:  475607.0725, val loss: 444884.1562, test loss : 710100.6250\n",
      "Epoch: 016, train r2:  0.9403, val r2: 0.9001, test r2: 0.8817\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  6%|█                | 18/300 [32:53<8:41:29, 110.96s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 017, train loss:  500315.5539, val loss: 359908.6562, test loss : 624091.3125\n",
      "Epoch: 017, train r2:  0.9539, val r2: 0.9196, test r2: 0.8966\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  6%|█                | 19/300 [34:45<8:40:29, 111.14s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 018, train loss:  389259.3264, val loss: 480812.6562, test loss : 571490.3750\n",
      "Epoch: 018, train r2:  0.9487, val r2: 0.9323, test r2: 0.9017\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  7%|█▏               | 20/300 [36:40<8:44:27, 112.38s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 019, train loss:  364233.1643, val loss: 338118.7812, test loss : 595508.6875\n",
      "Epoch: 019, train r2:  0.9637, val r2: 0.9268, test r2: 0.9022\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  7%|█▏               | 21/300 [38:28<8:36:46, 111.13s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 020, train loss:  392436.1730, val loss: 379300.6562, test loss : 626270.6875\n",
      "Epoch: 020, train r2:  0.9631, val r2: 0.9176, test r2: 0.8986\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  7%|█▏               | 22/300 [40:18<8:33:27, 110.82s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 021, train loss:  457044.1552, val loss: 313321.8438, test loss : 563794.8750\n",
      "Epoch: 021, train r2:  0.9684, val r2: 0.9295, test r2: 0.9079\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  8%|█▎               | 23/300 [42:08<8:29:45, 110.42s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 022, train loss:  361686.4991, val loss: 808470.9375, test loss : 991936.0625\n",
      "Epoch: 022, train r2:  0.8562, val r2: 0.8394, test r2: 0.8236\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  8%|█▎               | 24/300 [43:58<8:27:02, 110.23s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 023, train loss:  261427.2818, val loss: 331737.3750, test loss : 553101.9375\n",
      "Epoch: 023, train r2:  0.9648, val r2: 0.9253, test r2: 0.9111\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  8%|█▍               | 25/300 [45:48<8:25:42, 110.34s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 024, train loss:  390974.5724, val loss: 330643.2188, test loss : 502931.8438\n",
      "Epoch: 024, train r2:  0.9712, val r2: 0.9303, test r2: 0.9193\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  9%|█▍               | 26/300 [47:41<8:26:46, 110.97s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 025, train loss:  247646.9860, val loss: 350876.5312, test loss : 542204.3750\n",
      "Epoch: 025, train r2:  0.9686, val r2: 0.9254, test r2: 0.9124\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  9%|█▌               | 27/300 [49:30<8:22:25, 110.42s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 026, train loss:  273634.2016, val loss: 263317.7812, test loss : 462578.3438\n",
      "Epoch: 026, train r2:  0.9737, val r2: 0.9418, test r2: 0.9223\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "  9%|█▌               | 28/300 [51:28<8:31:07, 112.75s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 027, train loss:  238405.4280, val loss: 808061.6875, test loss : 575342.3125\n",
      "Epoch: 027, train r2:  0.9699, val r2: 0.9202, test r2: 0.9058\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 10%|█▋               | 29/300 [53:21<8:29:42, 112.85s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 028, train loss:  225046.1259, val loss: 224800.8125, test loss : 439290.0938\n",
      "Epoch: 028, train r2:  0.9786, val r2: 0.9496, test r2: 0.9270\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 10%|█▋               | 30/300 [55:16<8:30:34, 113.46s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 029, train loss:  271467.9493, val loss: 1593275.1250, test loss : 1514306.7500\n",
      "Epoch: 029, train r2:  0.7178, val r2: 0.6693, test r2: 0.7292\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 10%|█▊               | 31/300 [57:06<8:23:57, 112.41s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 030, train loss:  325431.6839, val loss: 523626.7500, test loss : 690028.1875\n",
      "Epoch: 030, train r2:  0.9394, val r2: 0.8828, test r2: 0.8888\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 11%|█▊               | 32/300 [58:57<8:20:04, 111.96s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 031, train loss:  288475.1017, val loss: 254087.6875, test loss : 476156.9688\n",
      "Epoch: 031, train r2:  0.9791, val r2: 0.9424, test r2: 0.9210\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 11%|█▋             | 33/300 [1:00:47<8:15:54, 111.44s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 032, train loss:  268110.2640, val loss: 392643.9062, test loss : 501362.7188\n",
      "Epoch: 032, train r2:  0.9395, val r2: 0.9293, test r2: 0.9118\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 11%|█▋             | 34/300 [1:02:37<8:12:14, 111.03s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 033, train loss:  212246.7926, val loss: 976262.1875, test loss : 592245.5000\n",
      "Epoch: 033, train r2:  0.9582, val r2: 0.9030, test r2: 0.9050\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 12%|█▊             | 35/300 [1:04:27<8:08:55, 110.70s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 034, train loss:  212452.0249, val loss: 342979.7188, test loss : 453344.2500\n",
      "Epoch: 034, train r2:  0.9783, val r2: 0.9308, test r2: 0.9281\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 12%|█▊             | 36/300 [1:06:16<8:05:13, 110.28s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 035, train loss:  188403.1038, val loss: 203123.8125, test loss : 358235.9688\n",
      "Epoch: 035, train r2:  0.9853, val r2: 0.9558, test r2: 0.9414\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 12%|█▊             | 37/300 [1:08:06<8:02:37, 110.11s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 036, train loss:  151882.7333, val loss: 291139.2188, test loss : 426948.7500\n",
      "Epoch: 036, train r2:  0.9825, val r2: 0.9413, test r2: 0.9311\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 13%|█▉             | 38/300 [1:09:54<7:57:33, 109.37s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 037, train loss:  236403.0422, val loss: 640334.0625, test loss : 790076.6250\n",
      "Epoch: 037, train r2:  0.8898, val r2: 0.8666, test r2: 0.8605\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 13%|█▉             | 39/300 [1:11:41<7:52:59, 108.73s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 038, train loss:  184861.2145, val loss: 270351.7812, test loss : 424100.3125\n",
      "Epoch: 038, train r2:  0.9845, val r2: 0.9391, test r2: 0.9322\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 13%|██             | 40/300 [1:13:33<7:56:05, 109.87s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 039, train loss:  191831.3307, val loss: 336728.7812, test loss : 507202.0938\n",
      "Epoch: 039, train r2:  0.9750, val r2: 0.9236, test r2: 0.9185\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 14%|██             | 41/300 [1:15:23<7:53:25, 109.68s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 040, train loss:  215466.2297, val loss: 694807.1250, test loss : 737112.0625\n",
      "Epoch: 040, train r2:  0.8941, val r2: 0.8709, test r2: 0.8698\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 14%|██             | 42/300 [1:17:12<7:51:07, 109.57s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 041, train loss:  200084.2584, val loss: 322081.0625, test loss : 464033.4688\n",
      "Epoch: 041, train r2:  0.9833, val r2: 0.9376, test r2: 0.9240\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 14%|██▏            | 43/300 [1:19:02<7:50:10, 109.77s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 042, train loss:  157676.3764, val loss: 388380.1250, test loss : 418590.2812\n",
      "Epoch: 042, train r2:  0.9623, val r2: 0.9322, test r2: 0.9278\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 15%|██▏            | 44/300 [1:20:53<7:49:18, 109.99s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 043, train loss:  197874.8055, val loss: 512995.6250, test loss : 650919.1875\n",
      "Epoch: 043, train r2:  0.9552, val r2: 0.8930, test r2: 0.8972\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 15%|██▎            | 45/300 [1:22:42<7:46:25, 109.75s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 044, train loss:  270490.0203, val loss: 200896.5156, test loss : 361826.4375\n",
      "Epoch: 044, train r2:  0.9875, val r2: 0.9555, test r2: 0.9406\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 15%|██▎            | 46/300 [1:24:31<7:43:37, 109.52s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 045, train loss:  221742.3655, val loss: 254442.4531, test loss : 455671.0625\n",
      "Epoch: 045, train r2:  0.9867, val r2: 0.9421, test r2: 0.9255\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 16%|██▎            | 47/300 [1:26:22<7:43:21, 109.89s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 046, train loss:  243158.1425, val loss: 299450.6875, test loss : 442311.4062\n",
      "Epoch: 046, train r2:  0.9542, val r2: 0.9364, test r2: 0.9229\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 16%|██▍            | 48/300 [1:28:11<7:40:51, 109.73s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 047, train loss:  257558.2760, val loss: 543164.1250, test loss : 611667.8750\n",
      "Epoch: 047, train r2:  0.9629, val r2: 0.8939, test r2: 0.9018\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 16%|██▍            | 49/300 [1:30:00<7:38:21, 109.57s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 048, train loss:  214719.0956, val loss: 232339.4531, test loss : 332446.7812\n",
      "Epoch: 048, train r2:  0.9865, val r2: 0.9540, test r2: 0.9443\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 17%|██▌            | 50/300 [1:31:54<7:41:44, 110.82s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 049, train loss:  162059.4637, val loss: 295493.9062, test loss : 436076.8125\n",
      "Epoch: 049, train r2:  0.9809, val r2: 0.9335, test r2: 0.9320\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 17%|██▌            | 51/300 [1:33:43<7:38:14, 110.42s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 050, train loss:  167722.3993, val loss: 455145.9062, test loss : 595372.5625\n",
      "Epoch: 050, train r2:  0.9609, val r2: 0.8971, test r2: 0.9061\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 17%|██▌            | 52/300 [1:35:33<7:34:50, 110.04s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 051, train loss:  160521.1073, val loss: 436603.2812, test loss : 535822.6875\n",
      "Epoch: 051, train r2:  0.9764, val r2: 0.9151, test r2: 0.9137\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 18%|██▋            | 53/300 [1:37:22<7:31:55, 109.78s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 052, train loss:  180622.5389, val loss: 327534.4375, test loss : 460541.8125\n",
      "Epoch: 052, train r2:  0.9564, val r2: 0.9258, test r2: 0.9195\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 18%|██▋            | 54/300 [1:39:09<7:27:31, 109.15s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 053, train loss:  183151.3266, val loss: 247970.6094, test loss : 376593.8438\n",
      "Epoch: 053, train r2:  0.9888, val r2: 0.9438, test r2: 0.9397\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 18%|██▊            | 55/300 [1:40:58<7:25:26, 109.09s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 054, train loss:  198509.5595, val loss: 227842.8750, test loss : 354623.2188\n",
      "Epoch: 054, train r2:  0.9926, val r2: 0.9543, test r2: 0.9423\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 19%|██▊            | 56/300 [1:42:50<7:26:24, 109.77s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 055, train loss:  195545.4075, val loss: 243615.1719, test loss : 378647.4062\n",
      "Epoch: 055, train r2:  0.9922, val r2: 0.9445, test r2: 0.9408\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 19%|██▊            | 57/300 [1:44:38<7:22:06, 109.16s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 056, train loss:  171923.2473, val loss: 282997.5312, test loss : 402044.4375\n",
      "Epoch: 056, train r2:  0.9786, val r2: 0.9373, test r2: 0.9338\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 19%|██▉            | 58/300 [1:46:26<7:19:06, 108.87s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 057, train loss:  123308.0633, val loss: 184728.9844, test loss : 317388.2188\n",
      "Epoch: 057, train r2:  0.9917, val r2: 0.9589, test r2: 0.9493\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 20%|██▉            | 59/300 [1:48:16<7:19:27, 109.41s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 058, train loss:  126985.3024, val loss: 340456.4062, test loss : 457698.9375\n",
      "Epoch: 058, train r2:  0.9845, val r2: 0.9326, test r2: 0.9292\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 20%|███            | 60/300 [1:50:09<7:21:03, 110.27s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 059, train loss:  142725.9963, val loss: 240191.2500, test loss : 415722.0000\n",
      "Epoch: 059, train r2:  0.9933, val r2: 0.9467, test r2: 0.9334\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 20%|███            | 61/300 [1:51:54<7:12:55, 108.68s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 060, train loss:  184504.4544, val loss: 327037.8125, test loss : 373445.0938\n",
      "Epoch: 060, train r2:  0.9704, val r2: 0.9395, test r2: 0.9363\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 21%|███            | 62/300 [1:53:39<7:07:11, 107.69s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 061, train loss:  175095.3283, val loss: 232376.8750, test loss : 390770.6875\n",
      "Epoch: 061, train r2:  0.9919, val r2: 0.9471, test r2: 0.9381\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 21%|███▏           | 63/300 [1:55:23<7:01:34, 106.73s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 062, train loss:  105187.5937, val loss: 263082.8438, test loss : 356483.1875\n",
      "Epoch: 062, train r2:  0.9929, val r2: 0.9551, test r2: 0.9424\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 21%|███▏           | 64/300 [1:57:08<6:56:48, 105.97s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 063, train loss:  114195.9180, val loss: 275956.5312, test loss : 380184.8438\n",
      "Epoch: 063, train r2:  0.9903, val r2: 0.9433, test r2: 0.9385\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 22%|███▎           | 65/300 [1:58:53<6:54:29, 105.83s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 064, train loss:  146778.7567, val loss: 184500.1094, test loss : 302468.7500\n",
      "Epoch: 064, train r2:  0.9935, val r2: 0.9587, test r2: 0.9505\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 22%|███▎           | 66/300 [2:00:39<6:52:23, 105.74s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 065, train loss:  190850.6695, val loss: 242826.7656, test loss : 407441.4375\n",
      "Epoch: 065, train r2:  0.9906, val r2: 0.9487, test r2: 0.9338\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 22%|███▎           | 67/300 [2:02:24<6:49:54, 105.55s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 066, train loss:  139100.6251, val loss: 193405.6250, test loss : 324947.6562\n",
      "Epoch: 066, train r2:  0.9951, val r2: 0.9581, test r2: 0.9472\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 23%|███▍           | 68/300 [2:04:10<6:49:19, 105.86s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 067, train loss:  169263.2204, val loss: 448521.5312, test loss : 575590.6250\n",
      "Epoch: 067, train r2:  0.9645, val r2: 0.8984, test r2: 0.9072\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 23%|███▍           | 69/300 [2:05:55<6:45:59, 105.45s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 068, train loss:  149675.3205, val loss: 496486.1562, test loss : 511164.1875\n",
      "Epoch: 068, train r2:  0.9305, val r2: 0.9042, test r2: 0.9095\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 23%|███▌           | 70/300 [2:07:42<6:45:46, 105.85s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 069, train loss:  125260.9804, val loss: 213267.1406, test loss : 344770.7812\n",
      "Epoch: 069, train r2:  0.9887, val r2: 0.9520, test r2: 0.9431\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 24%|███▌           | 71/300 [2:09:29<6:45:38, 106.28s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 070, train loss:  127189.0690, val loss: 155336.9844, test loss : 301275.7188\n",
      "Epoch: 070, train r2:  0.9930, val r2: 0.9652, test r2: 0.9506\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 24%|███▌           | 72/300 [2:11:14<6:42:37, 105.95s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 071, train loss:  129350.9779, val loss: 244490.3281, test loss : 340578.6562\n",
      "Epoch: 071, train r2:  0.9935, val r2: 0.9523, test r2: 0.9465\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 24%|███▋           | 73/300 [2:13:00<6:40:57, 105.98s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 072, train loss:  161380.6352, val loss: 313484.6562, test loss : 473220.5625\n",
      "Epoch: 072, train r2:  0.9846, val r2: 0.9295, test r2: 0.9263\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 25%|███▋           | 74/300 [2:14:46<6:39:23, 106.03s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 073, train loss:  160648.3015, val loss: 273589.9062, test loss : 447357.5938\n",
      "Epoch: 073, train r2:  0.9905, val r2: 0.9377, test r2: 0.9278\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 25%|███▊           | 75/300 [2:16:32<6:36:59, 105.86s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 074, train loss:  131119.9616, val loss: 411595.3438, test loss : 392116.3438\n",
      "Epoch: 074, train r2:  0.9731, val r2: 0.9354, test r2: 0.9331\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 25%|███▊           | 76/300 [2:18:18<6:35:23, 105.91s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 075, train loss:  178799.3916, val loss: 394150.4688, test loss : 507701.2812\n",
      "Epoch: 075, train r2:  0.9720, val r2: 0.9185, test r2: 0.9189\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 26%|███▊           | 77/300 [2:20:04<6:33:40, 105.92s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 076, train loss:  138429.8584, val loss: 319659.0938, test loss : 464828.1562\n",
      "Epoch: 076, train r2:  0.9888, val r2: 0.9287, test r2: 0.9252\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 26%|███▉           | 78/300 [2:21:49<6:31:24, 105.79s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 077, train loss:  101138.5343, val loss: 265005.7812, test loss : 364137.0938\n",
      "Epoch: 077, train r2:  0.9876, val r2: 0.9432, test r2: 0.9387\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 26%|███▉           | 79/300 [2:23:36<6:30:44, 106.08s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 078, train loss:  135610.2838, val loss: 280353.9688, test loss : 331703.4375\n",
      "Epoch: 078, train r2:  0.9888, val r2: 0.9441, test r2: 0.9443\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 27%|████           | 80/300 [2:25:34<6:42:02, 109.65s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 079, train loss:  111544.4720, val loss: 363735.2500, test loss : 436353.9375\n",
      "Epoch: 079, train r2:  0.9855, val r2: 0.9248, test r2: 0.9312\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 27%|████           | 81/300 [2:27:22<6:38:28, 109.17s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 080, train loss:  129121.7445, val loss: 305617.5938, test loss : 400430.2188\n",
      "Epoch: 080, train r2:  0.9890, val r2: 0.9389, test r2: 0.9360\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 27%|████           | 82/300 [2:29:07<6:32:30, 108.03s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 081, train loss:  149079.8652, val loss: 343487.5000, test loss : 483052.0625\n",
      "Epoch: 081, train r2:  0.9826, val r2: 0.9258, test r2: 0.9220\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 28%|████▏          | 83/300 [2:30:50<6:24:17, 106.25s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 082, train loss:  164701.2023, val loss: 257849.9531, test loss : 379985.8125\n",
      "Epoch: 082, train r2:  0.9949, val r2: 0.9471, test r2: 0.9380\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 28%|████▏          | 84/300 [2:32:33<6:18:59, 105.28s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 083, train loss:  163619.5027, val loss: 214482.7656, test loss : 319643.5938\n",
      "Epoch: 083, train r2:  0.9872, val r2: 0.9571, test r2: 0.9455\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 28%|████▎          | 85/300 [2:34:16<6:14:57, 104.64s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 084, train loss:  156351.0835, val loss: 234119.4531, test loss : 432351.6875\n",
      "Epoch: 084, train r2:  0.9781, val r2: 0.9484, test r2: 0.9256\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 29%|████▎          | 86/300 [2:35:58<6:10:35, 103.90s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 085, train loss:  165290.4870, val loss: 416387.7188, test loss : 513222.4375\n",
      "Epoch: 085, train r2:  0.9771, val r2: 0.9162, test r2: 0.9199\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 29%|████▎          | 87/300 [2:37:39<6:05:49, 103.05s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 086, train loss:  209717.0724, val loss: 262358.3750, test loss : 496264.8125\n",
      "Epoch: 086, train r2:  0.9792, val r2: 0.9414, test r2: 0.9148\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 29%|████▍          | 88/300 [2:39:23<6:05:01, 103.31s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 087, train loss:  126061.3678, val loss: 214102.0781, test loss : 314349.8125\n",
      "Epoch: 087, train r2:  0.9950, val r2: 0.9589, test r2: 0.9499\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 30%|████▍          | 89/300 [2:41:10<6:07:20, 104.46s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 088, train loss:  227312.2776, val loss: 588302.0000, test loss : 480484.7500\n",
      "Epoch: 088, train r2:  0.9760, val r2: 0.9277, test r2: 0.9227\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 30%|████▌          | 90/300 [2:42:57<6:07:48, 105.09s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 089, train loss:  141925.7484, val loss: 292317.4375, test loss : 407211.0938\n",
      "Epoch: 089, train r2:  0.9952, val r2: 0.9413, test r2: 0.9350\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 30%|████▌          | 91/300 [2:44:43<6:07:20, 105.46s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 090, train loss:  133176.4393, val loss: 242586.7344, test loss : 432830.9062\n",
      "Epoch: 090, train r2:  0.9796, val r2: 0.9458, test r2: 0.9257\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 31%|████▌          | 92/300 [2:46:27<6:03:58, 104.99s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 091, train loss:  174983.3419, val loss: 396960.5938, test loss : 486965.5625\n",
      "Epoch: 091, train r2:  0.9815, val r2: 0.9210, test r2: 0.9227\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 31%|████▋          | 93/300 [2:48:10<6:00:18, 104.44s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 092, train loss:  197366.9301, val loss: 509278.1562, test loss : 612266.5625\n",
      "Epoch: 092, train r2:  0.9658, val r2: 0.8914, test r2: 0.9004\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 31%|████▋          | 94/300 [2:49:51<5:55:18, 103.49s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 093, train loss:  203831.8039, val loss: 564526.6250, test loss : 679809.0000\n",
      "Epoch: 093, train r2:  0.9555, val r2: 0.8718, test r2: 0.8905\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 32%|████▊          | 95/300 [2:51:34<5:53:02, 103.33s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 094, train loss:  202326.9013, val loss: 225690.7656, test loss : 379987.2188\n",
      "Epoch: 094, train r2:  0.9948, val r2: 0.9520, test r2: 0.9368\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 32%|████▊          | 96/300 [2:53:17<5:50:57, 103.22s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 095, train loss:  137668.5286, val loss: 501272.5938, test loss : 411950.0312\n",
      "Epoch: 095, train r2:  0.9636, val r2: 0.9300, test r2: 0.9279\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 32%|████▊          | 97/300 [2:55:01<5:50:17, 103.54s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 096, train loss:  143799.9808, val loss: 307549.8125, test loss : 446354.5000\n",
      "Epoch: 096, train r2:  0.9898, val r2: 0.9379, test r2: 0.9276\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 33%|████▉          | 98/300 [2:56:45<5:48:57, 103.65s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 097, train loss:  121733.9399, val loss: 321550.7812, test loss : 460630.5000\n",
      "Epoch: 097, train r2:  0.9867, val r2: 0.9294, test r2: 0.9255\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 33%|████▉          | 99/300 [2:58:30<5:48:15, 103.96s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 098, train loss:  120936.9121, val loss: 267212.4062, test loss : 385436.6562\n",
      "Epoch: 098, train r2:  0.9938, val r2: 0.9405, test r2: 0.9374\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 33%|████▋         | 100/300 [3:00:20<5:52:05, 105.63s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 099, train loss:  121237.9653, val loss: 1559905.8750, test loss : 1400055.1250\n",
      "Epoch: 099, train r2:  0.7513, val r2: 0.6609, test r2: 0.7497\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 34%|████▋         | 101/300 [3:02:05<5:50:27, 105.67s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 100, train loss:  137222.3865, val loss: 303758.3438, test loss : 431210.8125\n",
      "Epoch: 100, train r2:  0.9913, val r2: 0.9397, test r2: 0.9296\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 34%|████▊         | 102/300 [3:03:52<5:49:44, 105.98s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 101, train loss:  137958.4064, val loss: 408041.1562, test loss : 505721.2812\n",
      "Epoch: 101, train r2:  0.9709, val r2: 0.9076, test r2: 0.9196\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 34%|████▊         | 103/300 [3:05:44<5:54:13, 107.89s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 102, train loss:  144620.2964, val loss: 370949.5000, test loss : 461580.2188\n",
      "Epoch: 102, train r2:  0.9809, val r2: 0.9187, test r2: 0.9263\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 35%|████▊         | 104/300 [3:07:30<5:50:44, 107.37s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 103, train loss:  175205.9388, val loss: 216317.8750, test loss : 320743.8438\n",
      "Epoch: 103, train r2:  0.9855, val r2: 0.9517, test r2: 0.9450\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 35%|████▉         | 105/300 [3:09:18<5:48:51, 107.34s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 104, train loss:  141740.8505, val loss: 295955.2188, test loss : 411957.8438\n",
      "Epoch: 104, train r2:  0.9748, val r2: 0.9446, test r2: 0.9280\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 35%|████▉         | 106/300 [3:11:03<5:44:36, 106.58s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 105, train loss:  126811.6662, val loss: 228611.2656, test loss : 317187.6875\n",
      "Epoch: 105, train r2:  0.9848, val r2: 0.9496, test r2: 0.9458\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 36%|████▉         | 107/300 [3:12:49<5:43:10, 106.69s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 106, train loss:  80616.9820, val loss: 322456.2188, test loss : 434358.9688\n",
      "Epoch: 106, train r2:  0.9876, val r2: 0.9267, test r2: 0.9295\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 36%|█████         | 108/300 [3:14:35<5:40:29, 106.41s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 107, train loss:  100242.3198, val loss: 419923.8438, test loss : 464210.8438\n",
      "Epoch: 107, train r2:  0.9537, val r2: 0.9075, test r2: 0.9188\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 36%|█████         | 109/300 [3:16:21<5:38:21, 106.29s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 108, train loss:  137638.9869, val loss: 359504.8438, test loss : 416286.5625\n",
      "Epoch: 108, train r2:  0.9921, val r2: 0.9328, test r2: 0.9336\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 37%|█████▏        | 110/300 [3:18:12<5:40:47, 107.62s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 109, train loss:  178980.3816, val loss: 205023.3594, test loss : 267964.5000\n",
      "Epoch: 109, train r2:  0.9914, val r2: 0.9534, test r2: 0.9559\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 37%|█████▏        | 111/300 [3:19:57<5:36:38, 106.87s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 110, train loss:  123319.5958, val loss: 213841.8281, test loss : 315268.7188\n",
      "Epoch: 110, train r2:  0.9969, val r2: 0.9523, test r2: 0.9497\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 37%|█████▏        | 112/300 [3:21:42<5:32:48, 106.21s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 111, train loss:  121884.9718, val loss: 241884.5781, test loss : 349704.2500\n",
      "Epoch: 111, train r2:  0.9932, val r2: 0.9488, test r2: 0.9442\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 38%|█████▎        | 113/300 [3:23:26<5:29:27, 105.71s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 112, train loss:  122669.3720, val loss: 333587.5938, test loss : 448219.3125\n",
      "Epoch: 112, train r2:  0.9916, val r2: 0.9352, test r2: 0.9277\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 38%|█████▎        | 114/300 [3:25:11<5:26:37, 105.36s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 113, train loss:  112134.4226, val loss: 640469.0625, test loss : 381259.3438\n",
      "Epoch: 113, train r2:  0.9915, val r2: 0.9461, test r2: 0.9403\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 38%|█████▎        | 115/300 [3:26:54<5:22:59, 104.76s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 114, train loss:  129641.6177, val loss: 309005.7188, test loss : 455935.6562\n",
      "Epoch: 114, train r2:  0.9875, val r2: 0.9304, test r2: 0.9279\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 39%|█████▍        | 116/300 [3:28:38<5:20:21, 104.46s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 115, train loss:  134696.6591, val loss: 635868.5000, test loss : 594231.5625\n",
      "Epoch: 115, train r2:  0.9641, val r2: 0.8907, test r2: 0.9053\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 39%|█████▍        | 117/300 [3:30:22<5:17:55, 104.24s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 116, train loss:  84630.5378, val loss: 238333.6406, test loss : 355117.3438\n",
      "Epoch: 116, train r2:  0.9953, val r2: 0.9470, test r2: 0.9434\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 39%|█████▌        | 118/300 [3:32:06<5:16:26, 104.32s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 117, train loss:  174407.6795, val loss: 270470.4375, test loss : 303925.6562\n",
      "Epoch: 117, train r2:  0.9885, val r2: 0.9472, test r2: 0.9496\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 40%|█████▌        | 119/300 [3:33:50<5:14:25, 104.23s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 118, train loss:  143822.9493, val loss: 346783.4688, test loss : 498874.0000\n",
      "Epoch: 118, train r2:  0.9805, val r2: 0.9221, test r2: 0.9202\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 40%|█████▌        | 120/300 [3:35:39<5:16:27, 105.49s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 119, train loss:  124751.8904, val loss: 427488.1562, test loss : 408403.1875\n",
      "Epoch: 119, train r2:  0.9843, val r2: 0.9354, test r2: 0.9330\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 40%|█████▋        | 121/300 [3:37:25<5:15:21, 105.71s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 120, train loss:  135447.4336, val loss: 283498.9062, test loss : 363998.0000\n",
      "Epoch: 120, train r2:  0.9715, val r2: 0.9356, test r2: 0.9367\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 41%|█████▋        | 122/300 [3:39:12<5:14:56, 106.16s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 121, train loss:  165906.7026, val loss: 321105.0938, test loss : 375284.9688\n",
      "Epoch: 121, train r2:  0.9965, val r2: 0.9495, test r2: 0.9383\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 41%|█████▋        | 123/300 [3:40:59<5:13:30, 106.27s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 122, train loss:  165519.0493, val loss: 252905.0781, test loss : 357842.8125\n",
      "Epoch: 122, train r2:  0.9972, val r2: 0.9489, test r2: 0.9418\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 41%|█████▊        | 124/300 [3:42:46<5:12:44, 106.62s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 123, train loss:  123927.3125, val loss: 241552.2656, test loss : 363955.4062\n",
      "Epoch: 123, train r2:  0.9911, val r2: 0.9451, test r2: 0.9394\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 42%|█████▊        | 125/300 [3:44:31<5:09:06, 105.98s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 124, train loss:  177239.0577, val loss: 286833.4688, test loss : 417159.4688\n",
      "Epoch: 124, train r2:  0.9927, val r2: 0.9363, test r2: 0.9338\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 42%|█████▉        | 126/300 [3:46:19<5:09:34, 106.75s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 125, train loss:  122459.8563, val loss: 1047027.3125, test loss : 612186.5625\n",
      "Epoch: 125, train r2:  0.9708, val r2: 0.8970, test r2: 0.9046\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 42%|█████▉        | 127/300 [3:48:07<5:08:32, 107.01s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 126, train loss:  125085.2040, val loss: 212592.8281, test loss : 348959.0312\n",
      "Epoch: 126, train r2:  0.9974, val r2: 0.9555, test r2: 0.9430\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 43%|█████▉        | 128/300 [3:49:54<5:06:40, 106.98s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 127, train loss:  146806.6271, val loss: 1013018.8125, test loss : 1136250.6250\n",
      "Epoch: 127, train r2:  0.8155, val r2: 0.7753, test r2: 0.7991\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 43%|██████        | 129/300 [3:51:42<5:05:40, 107.26s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 128, train loss:  142562.1131, val loss: 368619.6250, test loss : 482304.7188\n",
      "Epoch: 128, train r2:  0.9827, val r2: 0.9258, test r2: 0.9243\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 43%|██████        | 130/300 [3:53:33<5:07:21, 108.48s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 129, train loss:  139179.7673, val loss: 249947.7969, test loss : 378670.7812\n",
      "Epoch: 129, train r2:  0.9950, val r2: 0.9432, test r2: 0.9402\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 44%|██████        | 131/300 [3:55:21<5:04:53, 108.25s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 130, train loss:  128446.7841, val loss: 417907.4062, test loss : 546910.8125\n",
      "Epoch: 130, train r2:  0.9769, val r2: 0.9087, test r2: 0.9134\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 44%|██████▏       | 132/300 [3:57:08<5:02:20, 107.98s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 131, train loss:  102015.0515, val loss: 270656.8750, test loss : 344460.4375\n",
      "Epoch: 131, train r2:  0.9895, val r2: 0.9387, test r2: 0.9442\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 44%|██████▏       | 133/300 [3:58:59<5:03:31, 109.05s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 132, train loss:  101659.5770, val loss: 234138.3750, test loss : 339099.5625\n",
      "Epoch: 132, train r2:  0.9983, val r2: 0.9533, test r2: 0.9462\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 45%|██████▎       | 134/300 [4:00:52<5:04:22, 110.01s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 133, train loss:  203473.0317, val loss: 603354.0000, test loss : 711202.4375\n",
      "Epoch: 133, train r2:  0.9473, val r2: 0.8627, test r2: 0.8835\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 45%|██████▎       | 135/300 [4:02:39<5:00:25, 109.25s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 134, train loss:  155772.2500, val loss: 509697.9062, test loss : 472069.4688\n",
      "Epoch: 134, train r2:  0.9776, val r2: 0.9239, test r2: 0.9235\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 45%|██████▎       | 136/300 [4:04:25<4:55:44, 108.20s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 135, train loss:  147808.5523, val loss: 208663.4531, test loss : 305810.6875\n",
      "Epoch: 135, train r2:  0.9939, val r2: 0.9558, test r2: 0.9493\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 46%|██████▍       | 137/300 [4:06:13<4:53:32, 108.05s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 136, train loss:  159942.9671, val loss: 301050.2812, test loss : 358645.7188\n",
      "Epoch: 136, train r2:  0.9692, val r2: 0.9488, test r2: 0.9369\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 46%|██████▍       | 138/300 [4:07:59<4:50:18, 107.52s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 137, train loss:  221704.8306, val loss: 421423.2188, test loss : 468413.2188\n",
      "Epoch: 137, train r2:  0.9768, val r2: 0.9131, test r2: 0.9257\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 46%|██████▍       | 139/300 [4:09:47<4:48:51, 107.65s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 138, train loss:  150380.0616, val loss: 208282.1875, test loss : 354865.5312\n",
      "Epoch: 138, train r2:  0.9835, val r2: 0.9552, test r2: 0.9403\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 47%|██████▌       | 140/300 [4:11:37<4:49:07, 108.42s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 139, train loss:  175607.5585, val loss: 859015.0625, test loss : 633995.0000\n",
      "Epoch: 139, train r2:  0.9090, val r2: 0.8604, test r2: 0.8871\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 47%|██████▌       | 141/300 [4:13:26<4:47:18, 108.42s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 140, train loss:  127183.9692, val loss: 222280.4531, test loss : 363087.9688\n",
      "Epoch: 140, train r2:  0.9930, val r2: 0.9505, test r2: 0.9425\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 47%|██████▋       | 142/300 [4:15:13<4:44:40, 108.10s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 141, train loss:  133329.7857, val loss: 703641.8125, test loss : 743272.6250\n",
      "Epoch: 141, train r2:  0.9377, val r2: 0.8508, test r2: 0.8810\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 48%|██████▋       | 143/300 [4:17:00<4:42:09, 107.83s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 142, train loss:  143360.3273, val loss: 265068.6875, test loss : 364730.9375\n",
      "Epoch: 142, train r2:  0.9942, val r2: 0.9397, test r2: 0.9415\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 48%|██████▋       | 144/300 [4:18:48<4:40:37, 107.94s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 143, train loss:  122585.7474, val loss: 192245.7031, test loss : 301627.8438\n",
      "Epoch: 143, train r2:  0.9936, val r2: 0.9563, test r2: 0.9501\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 48%|██████▊       | 145/300 [4:20:36<4:39:03, 108.02s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 144, train loss:  103165.4768, val loss: 241478.2031, test loss : 333012.1562\n",
      "Epoch: 144, train r2:  0.9974, val r2: 0.9540, test r2: 0.9466\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 49%|██████▊       | 146/300 [4:22:26<4:38:17, 108.42s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 145, train loss:  77309.9853, val loss: 245035.8281, test loss : 356220.6562\n",
      "Epoch: 145, train r2:  0.9970, val r2: 0.9534, test r2: 0.9432\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 49%|██████▊       | 147/300 [4:24:14<4:36:34, 108.46s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 146, train loss:  95317.3814, val loss: 195698.7500, test loss : 320952.2188\n",
      "Epoch: 146, train r2:  0.9975, val r2: 0.9560, test r2: 0.9482\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 49%|██████▉       | 148/300 [4:26:02<4:34:07, 108.21s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 147, train loss:  99675.6960, val loss: 241806.8906, test loss : 333168.9375\n",
      "Epoch: 147, train r2:  0.9979, val r2: 0.9510, test r2: 0.9479\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 50%|██████▉       | 149/300 [4:27:50<4:31:58, 108.07s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 148, train loss:  129877.6245, val loss: 543266.7500, test loss : 620913.6875\n",
      "Epoch: 148, train r2:  0.9653, val r2: 0.8836, test r2: 0.9023\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 50%|███████       | 150/300 [4:29:40<4:32:02, 108.82s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 149, train loss:  123638.0362, val loss: 357242.9688, test loss : 451203.0938\n",
      "Epoch: 149, train r2:  0.9824, val r2: 0.9236, test r2: 0.9275\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 50%|███████       | 151/300 [4:31:26<4:28:15, 108.03s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 150, train loss:  129253.6232, val loss: 211770.9531, test loss : 331099.8125\n",
      "Epoch: 150, train r2:  0.9957, val r2: 0.9553, test r2: 0.9457\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 51%|███████       | 152/300 [4:33:11<4:23:55, 107.00s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 151, train loss:  115507.2336, val loss: 247512.0781, test loss : 359191.0938\n",
      "Epoch: 151, train r2:  0.9961, val r2: 0.9528, test r2: 0.9423\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 51%|███████▏      | 153/300 [4:34:56<4:20:39, 106.39s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 152, train loss:  103415.1033, val loss: 256026.0625, test loss : 391002.7812\n",
      "Epoch: 152, train r2:  0.9906, val r2: 0.9418, test r2: 0.9385\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 51%|███████▏      | 154/300 [4:36:44<4:19:46, 106.76s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 153, train loss:  95559.5996, val loss: 238214.7969, test loss : 382746.0000\n",
      "Epoch: 153, train r2:  0.9949, val r2: 0.9463, test r2: 0.9398\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 52%|███████▏      | 155/300 [4:38:36<4:22:03, 108.44s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 154, train loss:  122010.4205, val loss: 377250.7500, test loss : 514213.4062\n",
      "Epoch: 154, train r2:  0.9807, val r2: 0.9207, test r2: 0.9188\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 52%|███████▎      | 156/300 [4:40:22<4:18:34, 107.74s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 155, train loss:  114142.0666, val loss: 257270.9844, test loss : 367176.5625\n",
      "Epoch: 155, train r2:  0.9969, val r2: 0.9476, test r2: 0.9417\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 52%|███████▎      | 157/300 [4:42:09<4:15:48, 107.33s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 156, train loss:  107535.5233, val loss: 258412.5156, test loss : 334884.9062\n",
      "Epoch: 156, train r2:  0.9952, val r2: 0.9544, test r2: 0.9455\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 53%|███████▎      | 158/300 [4:43:55<4:13:04, 106.93s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 157, train loss:  96407.6097, val loss: 760244.7500, test loss : 425348.0625\n",
      "Epoch: 157, train r2:  0.9908, val r2: 0.9350, test r2: 0.9337\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 53%|███████▍      | 159/300 [4:45:42<4:11:40, 107.09s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 158, train loss:  164839.4223, val loss: 192907.3281, test loss : 310627.9375\n",
      "Epoch: 158, train r2:  0.9976, val r2: 0.9561, test r2: 0.9502\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 53%|███████▍      | 160/300 [4:47:37<4:15:39, 109.57s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 159, train loss:  192168.2547, val loss: 444752.7500, test loss : 544523.6250\n",
      "Epoch: 159, train r2:  0.9748, val r2: 0.9027, test r2: 0.9114\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 54%|███████▌      | 161/300 [4:49:24<4:11:31, 108.58s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 160, train loss:  179077.6569, val loss: 609273.7500, test loss : 312491.0312\n",
      "Epoch: 160, train r2:  0.9930, val r2: 0.9502, test r2: 0.9494\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 54%|███████▌      | 162/300 [4:51:09<4:07:26, 107.59s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 161, train loss:  130132.9262, val loss: 483702.7500, test loss : 585694.0000\n",
      "Epoch: 161, train r2:  0.9729, val r2: 0.8957, test r2: 0.9082\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 54%|███████▌      | 163/300 [4:52:55<4:04:33, 107.10s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 162, train loss:  111676.4296, val loss: 252722.6719, test loss : 379673.3438\n",
      "Epoch: 162, train r2:  0.9938, val r2: 0.9426, test r2: 0.9373\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 55%|███████▋      | 164/300 [4:54:41<4:02:10, 106.84s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 163, train loss:  124852.5318, val loss: 210396.6250, test loss : 357311.9375\n",
      "Epoch: 163, train r2:  0.9819, val r2: 0.9521, test r2: 0.9388\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 55%|███████▋      | 165/300 [4:56:26<3:59:00, 106.23s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 164, train loss:  155348.7874, val loss: 338586.5000, test loss : 580804.5625\n",
      "Epoch: 164, train r2:  0.9543, val r2: 0.9366, test r2: 0.8970\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 55%|███████▋      | 166/300 [4:58:12<3:57:13, 106.22s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 165, train loss:  157115.9407, val loss: 274362.3438, test loss : 378802.0000\n",
      "Epoch: 165, train r2:  0.9926, val r2: 0.9380, test r2: 0.9395\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 56%|███████▊      | 167/300 [5:00:00<3:56:28, 106.68s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 166, train loss:  151858.0144, val loss: 324794.8438, test loss : 446144.5000\n",
      "Epoch: 166, train r2:  0.9840, val r2: 0.9292, test r2: 0.9288\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 56%|███████▊      | 168/300 [5:01:47<3:54:42, 106.68s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 167, train loss:  133311.4607, val loss: 305711.9375, test loss : 377210.0625\n",
      "Epoch: 167, train r2:  0.9933, val r2: 0.9353, test r2: 0.9393\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 56%|███████▉      | 169/300 [5:03:33<3:52:44, 106.60s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 168, train loss:  126046.2430, val loss: 233521.1875, test loss : 306497.0625\n",
      "Epoch: 168, train r2:  0.9977, val r2: 0.9563, test r2: 0.9501\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 57%|███████▉      | 170/300 [5:05:25<3:54:14, 108.11s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 169, train loss:  124743.8334, val loss: 301101.7188, test loss : 385588.0000\n",
      "Epoch: 169, train r2:  0.9915, val r2: 0.9347, test r2: 0.9402\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 57%|███████▉      | 171/300 [5:07:11<3:51:08, 107.51s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 170, train loss:  82804.1151, val loss: 225232.2500, test loss : 330396.7188\n",
      "Epoch: 170, train r2:  0.9979, val r2: 0.9488, test r2: 0.9476\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 57%|████████      | 172/300 [5:08:57<3:48:37, 107.17s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 171, train loss:  108944.3391, val loss: 332483.0625, test loss : 404582.0625\n",
      "Epoch: 171, train r2:  0.9951, val r2: 0.9353, test r2: 0.9357\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 58%|████████      | 173/300 [5:10:44<3:46:56, 107.22s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 172, train loss:  108658.1947, val loss: 734188.1875, test loss : 416643.4062\n",
      "Epoch: 172, train r2:  0.9735, val r2: 0.9198, test r2: 0.9300\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 58%|████████      | 174/300 [5:12:31<3:44:43, 107.02s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 173, train loss:  138169.9141, val loss: 596593.8125, test loss : 335652.4062\n",
      "Epoch: 173, train r2:  0.9960, val r2: 0.9524, test r2: 0.9458\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 58%|████████▏     | 175/300 [5:14:17<3:42:30, 106.81s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 174, train loss:  98852.4139, val loss: 240421.3750, test loss : 288908.9688\n",
      "Epoch: 174, train r2:  0.9942, val r2: 0.9621, test r2: 0.9523\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 59%|████████▏     | 176/300 [5:16:05<3:41:01, 106.95s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 175, train loss:  144835.4286, val loss: 251473.3906, test loss : 377599.7812\n",
      "Epoch: 175, train r2:  0.9946, val r2: 0.9432, test r2: 0.9401\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 59%|████████▎     | 177/300 [5:17:49<3:37:51, 106.28s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 176, train loss:  161073.9431, val loss: 1102538.1250, test loss : 727815.0625\n",
      "Epoch: 176, train r2:  0.8796, val r2: 0.8124, test r2: 0.8699\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 59%|████████▎     | 178/300 [5:19:34<3:35:08, 105.81s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 177, train loss:  195798.8512, val loss: 262148.7188, test loss : 447024.8125\n",
      "Epoch: 177, train r2:  0.9863, val r2: 0.9410, test r2: 0.9258\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 60%|████████▎     | 179/300 [5:21:18<3:32:24, 105.33s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 178, train loss:  140515.0121, val loss: 367727.3750, test loss : 507582.2812\n",
      "Epoch: 178, train r2:  0.9772, val r2: 0.9178, test r2: 0.9210\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 60%|████████▍     | 180/300 [5:23:07<3:32:51, 106.43s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 179, train loss:  129865.9286, val loss: 209877.6406, test loss : 343032.2500\n",
      "Epoch: 179, train r2:  0.9938, val r2: 0.9546, test r2: 0.9453\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 60%|████████▍     | 181/300 [5:24:54<3:31:12, 106.49s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 180, train loss:  125283.9490, val loss: 490622.3438, test loss : 448221.1562\n",
      "Epoch: 180, train r2:  0.9753, val r2: 0.9423, test r2: 0.9238\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 61%|████████▍     | 182/300 [5:26:41<3:29:34, 106.57s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 181, train loss:  192910.3398, val loss: 948055.1875, test loss : 1001243.8750\n",
      "Epoch: 181, train r2:  0.9081, val r2: 0.8076, test r2: 0.8404\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 61%|████████▌     | 183/300 [5:28:29<3:29:00, 107.18s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 182, train loss:  138006.8215, val loss: 632812.5625, test loss : 335863.8125\n",
      "Epoch: 182, train r2:  0.9936, val r2: 0.9507, test r2: 0.9454\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 61%|████████▌     | 184/300 [5:30:17<3:27:45, 107.46s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 183, train loss:  97567.7406, val loss: 283224.9688, test loss : 359812.1875\n",
      "Epoch: 183, train r2:  0.9975, val r2: 0.9493, test r2: 0.9429\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 62%|████████▋     | 185/300 [5:32:10<3:29:09, 109.12s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 184, train loss:  94420.7461, val loss: 258111.8906, test loss : 351926.0000\n",
      "Epoch: 184, train r2:  0.9976, val r2: 0.9556, test r2: 0.9435\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 62%|████████▋     | 186/300 [5:34:06<3:31:06, 111.11s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 185, train loss:  127230.2666, val loss: 223747.0625, test loss : 377797.0625\n",
      "Epoch: 185, train r2:  0.9956, val r2: 0.9514, test r2: 0.9381\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 62%|████████▋     | 187/300 [5:35:54<3:27:21, 110.10s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 186, train loss:  149647.4378, val loss: 239372.7656, test loss : 349929.6562\n",
      "Epoch: 186, train r2:  0.9972, val r2: 0.9472, test r2: 0.9444\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 63%|████████▊     | 188/300 [5:37:41<3:23:47, 109.18s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 187, train loss:  156584.3331, val loss: 243773.3906, test loss : 363677.0938\n",
      "Epoch: 187, train r2:  0.9969, val r2: 0.9451, test r2: 0.9435\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 63%|████████▊     | 189/300 [5:39:27<3:20:16, 108.25s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 188, train loss:  118885.6531, val loss: 390397.0000, test loss : 513445.4688\n",
      "Epoch: 188, train r2:  0.9875, val r2: 0.9214, test r2: 0.9160\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 63%|████████▊     | 190/300 [5:41:17<3:19:42, 108.93s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 189, train loss:  146577.6631, val loss: 576862.4375, test loss : 599173.3750\n",
      "Epoch: 189, train r2:  0.9162, val r2: 0.8761, test r2: 0.8939\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 64%|████████▉     | 191/300 [5:43:02<3:15:45, 107.76s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 190, train loss:  114606.8038, val loss: 579171.3750, test loss : 659175.0625\n",
      "Epoch: 190, train r2:  0.9616, val r2: 0.8789, test r2: 0.8947\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 64%|████████▉     | 192/300 [5:44:47<3:12:22, 106.87s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 191, train loss:  139174.4823, val loss: 201910.5781, test loss : 306984.9062\n",
      "Epoch: 191, train r2:  0.9983, val r2: 0.9545, test r2: 0.9505\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 64%|█████████     | 193/300 [5:46:33<3:10:11, 106.65s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 192, train loss:  110288.3554, val loss: 292640.5000, test loss : 417682.3125\n",
      "Epoch: 192, train r2:  0.9904, val r2: 0.9370, test r2: 0.9340\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 65%|█████████     | 194/300 [5:48:20<3:08:27, 106.68s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 193, train loss:  135046.3437, val loss: 426211.9062, test loss : 491099.1562\n",
      "Epoch: 193, train r2:  0.9742, val r2: 0.9117, test r2: 0.9207\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 65%|█████████     | 195/300 [5:50:06<3:06:19, 106.47s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 194, train loss:  119121.3870, val loss: 285683.0938, test loss : 414999.8438\n",
      "Epoch: 194, train r2:  0.9941, val r2: 0.9360, test r2: 0.9332\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 65%|█████████▏    | 196/300 [5:51:54<3:05:11, 106.84s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 195, train loss:  119385.7939, val loss: 310195.0938, test loss : 351334.6875\n",
      "Epoch: 195, train r2:  0.9805, val r2: 0.9381, test r2: 0.9404\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 66%|█████████▏    | 197/300 [5:53:41<3:03:44, 107.04s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 196, train loss:  126720.4455, val loss: 401105.4688, test loss : 468251.5625\n",
      "Epoch: 196, train r2:  0.9600, val r2: 0.9115, test r2: 0.9201\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 66%|█████████▏    | 198/300 [5:55:29<3:02:19, 107.25s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 197, train loss:  173541.4693, val loss: 259799.5781, test loss : 365754.1875\n",
      "Epoch: 197, train r2:  0.9916, val r2: 0.9533, test r2: 0.9415\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 66%|█████████▎    | 199/300 [5:57:15<2:59:39, 106.73s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 198, train loss:  178022.7861, val loss: 503157.7812, test loss : 758322.6875\n",
      "Epoch: 198, train r2:  0.8939, val r2: 0.8855, test r2: 0.8643\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 67%|█████████▎    | 200/300 [5:59:05<2:59:47, 107.88s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 199, train loss:  100943.3107, val loss: 488985.5000, test loss : 509401.7812\n",
      "Epoch: 199, train r2:  0.9789, val r2: 0.9146, test r2: 0.9206\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 67%|█████████▍    | 201/300 [6:00:53<2:58:00, 107.88s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 200, train loss:  128466.6019, val loss: 573781.9375, test loss : 625383.4375\n",
      "Epoch: 200, train r2:  0.9593, val r2: 0.8801, test r2: 0.9006\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 67%|█████████▍    | 202/300 [6:02:41<2:56:10, 107.87s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 201, train loss:  107260.5581, val loss: 247474.2500, test loss : 326231.9375\n",
      "Epoch: 201, train r2:  0.9953, val r2: 0.9444, test r2: 0.9482\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 68%|█████████▍    | 203/300 [6:04:28<2:54:08, 107.71s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 202, train loss:  115810.0132, val loss: 367094.2812, test loss : 432597.0938\n",
      "Epoch: 202, train r2:  0.9832, val r2: 0.9187, test r2: 0.9312\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 68%|█████████▌    | 204/300 [6:06:17<2:53:01, 108.14s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 203, train loss:  113002.1748, val loss: 347898.1250, test loss : 426762.2188\n",
      "Epoch: 203, train r2:  0.9857, val r2: 0.9222, test r2: 0.9314\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 68%|█████████▌    | 205/300 [6:08:04<2:50:44, 107.84s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 204, train loss:  123473.7042, val loss: 376262.7188, test loss : 485837.2812\n",
      "Epoch: 204, train r2:  0.9788, val r2: 0.9153, test r2: 0.9246\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 69%|█████████▌    | 206/300 [6:09:53<2:49:12, 108.00s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 205, train loss:  121200.0506, val loss: 848895.6875, test loss : 901111.1250\n",
      "Epoch: 205, train r2:  0.9166, val r2: 0.8135, test r2: 0.8555\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 69%|█████████▋    | 207/300 [6:11:40<2:47:04, 107.79s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 206, train loss:  135733.7799, val loss: 197915.5469, test loss : 308422.0000\n",
      "Epoch: 206, train r2:  0.9830, val r2: 0.9550, test r2: 0.9478\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 69%|█████████▋    | 208/300 [6:13:29<2:45:35, 108.00s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 207, train loss:  122903.2123, val loss: 216154.2969, test loss : 330080.1562\n",
      "Epoch: 207, train r2:  0.9966, val r2: 0.9536, test r2: 0.9465\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 70%|█████████▊    | 209/300 [6:15:17<2:43:47, 108.00s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 208, train loss:  108498.9098, val loss: 328111.5312, test loss : 340475.6875\n",
      "Epoch: 208, train r2:  0.9954, val r2: 0.9403, test r2: 0.9453\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 70%|█████████▊    | 210/300 [6:17:08<2:43:25, 108.95s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 209, train loss:  105484.3191, val loss: 294842.6250, test loss : 396487.9688\n",
      "Epoch: 209, train r2:  0.9936, val r2: 0.9338, test r2: 0.9370\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 70%|█████████▊    | 211/300 [6:18:52<2:39:34, 107.58s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 210, train loss:  150975.1704, val loss: 503402.0938, test loss : 590214.3750\n",
      "Epoch: 210, train r2:  0.9234, val r2: 0.8863, test r2: 0.8958\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 71%|█████████▉    | 212/300 [6:20:38<2:36:59, 107.04s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 211, train loss:  104786.9359, val loss: 465462.2188, test loss : 554094.8750\n",
      "Epoch: 211, train r2:  0.9739, val r2: 0.9017, test r2: 0.9126\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 71%|█████████▉    | 213/300 [6:22:23<2:34:10, 106.33s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 212, train loss:  152185.3639, val loss: 274958.9688, test loss : 378148.7812\n",
      "Epoch: 212, train r2:  0.9958, val r2: 0.9386, test r2: 0.9399\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 71%|█████████▉    | 214/300 [6:24:08<2:31:57, 106.02s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 213, train loss:  132513.6860, val loss: 295459.1875, test loss : 371931.3438\n",
      "Epoch: 213, train r2:  0.9800, val r2: 0.9384, test r2: 0.9369\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 72%|██████████    | 215/300 [6:25:53<2:29:55, 105.83s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 214, train loss:  137021.3178, val loss: 855121.1875, test loss : 844283.1875\n",
      "Epoch: 214, train r2:  0.9187, val r2: 0.8107, test r2: 0.8646\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 72%|██████████    | 216/300 [6:27:39<2:28:05, 105.78s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 215, train loss:  159416.3770, val loss: 226154.2656, test loss : 309772.1562\n",
      "Epoch: 215, train r2:  0.9910, val r2: 0.9514, test r2: 0.9480\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 72%|██████████▏   | 217/300 [6:29:24<2:26:07, 105.63s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 216, train loss:  125041.5679, val loss: 278869.2188, test loss : 362255.7188\n",
      "Epoch: 216, train r2:  0.9719, val r2: 0.9366, test r2: 0.9368\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 73%|██████████▏   | 218/300 [6:31:08<2:23:42, 105.15s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 217, train loss:  164054.9483, val loss: 266730.5938, test loss : 382438.0000\n",
      "Epoch: 217, train r2:  0.9900, val r2: 0.9421, test r2: 0.9372\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 73%|██████████▏   | 219/300 [6:32:54<2:22:11, 105.33s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 218, train loss:  115158.6395, val loss: 258222.1875, test loss : 351415.0625\n",
      "Epoch: 218, train r2:  0.9911, val r2: 0.9446, test r2: 0.9418\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 73%|██████████▎   | 220/300 [6:34:42<2:21:41, 106.27s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 219, train loss:  115848.9057, val loss: 188608.0000, test loss : 298759.9688\n",
      "Epoch: 219, train r2:  0.9867, val r2: 0.9571, test r2: 0.9487\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 74%|██████████▎   | 221/300 [6:36:30<2:20:35, 106.77s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 220, train loss:  119203.2942, val loss: 177453.3906, test loss : 279427.4062\n",
      "Epoch: 220, train r2:  0.9943, val r2: 0.9596, test r2: 0.9536\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 74%|██████████▎   | 222/300 [6:38:18<2:19:17, 107.15s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 221, train loss:  120884.5908, val loss: 308669.9688, test loss : 440787.7188\n",
      "Epoch: 221, train r2:  0.9890, val r2: 0.9300, test r2: 0.9308\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 74%|██████████▍   | 223/300 [6:40:06<2:17:40, 107.28s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 222, train loss:  129712.2766, val loss: 314291.9688, test loss : 336087.5000\n",
      "Epoch: 222, train r2:  0.9892, val r2: 0.9384, test r2: 0.9450\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 75%|██████████▍   | 224/300 [6:41:54<2:16:13, 107.55s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 223, train loss:  92780.4461, val loss: 284638.2188, test loss : 396043.8438\n",
      "Epoch: 223, train r2:  0.9913, val r2: 0.9370, test r2: 0.9379\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 75%|██████████▌   | 225/300 [6:43:41<2:14:03, 107.25s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 224, train loss:  112448.0770, val loss: 751059.6875, test loss : 724831.5625\n",
      "Epoch: 224, train r2:  0.9506, val r2: 0.8607, test r2: 0.8860\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 75%|██████████▌   | 226/300 [6:45:29<2:12:29, 107.43s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 225, train loss:  114944.3754, val loss: 422251.7500, test loss : 484343.8438\n",
      "Epoch: 225, train r2:  0.9796, val r2: 0.9176, test r2: 0.9225\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 76%|██████████▌   | 227/300 [6:47:16<2:10:41, 107.41s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 226, train loss:  112774.0943, val loss: 264069.1562, test loss : 301198.0938\n",
      "Epoch: 226, train r2:  0.9963, val r2: 0.9560, test r2: 0.9509\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 76%|██████████▋   | 228/300 [6:49:04<2:09:17, 107.75s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 227, train loss:  104959.9494, val loss: 561413.1875, test loss : 290002.8750\n",
      "Epoch: 227, train r2:  0.9898, val r2: 0.9517, test r2: 0.9517\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 76%|██████████▋   | 229/300 [6:50:53<2:07:36, 107.83s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 228, train loss:  105870.3889, val loss: 346334.5938, test loss : 421559.4375\n",
      "Epoch: 228, train r2:  0.9929, val r2: 0.9281, test r2: 0.9331\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 77%|██████████▋   | 230/300 [6:52:43<2:06:40, 108.58s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 229, train loss:  127531.4131, val loss: 705578.0000, test loss : 339355.3438\n",
      "Epoch: 229, train r2:  0.9972, val r2: 0.9445, test r2: 0.9457\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 77%|██████████▊   | 231/300 [6:54:30<2:04:29, 108.25s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 230, train loss:  133307.3649, val loss: 226274.5469, test loss : 345061.5000\n",
      "Epoch: 230, train r2:  0.9907, val r2: 0.9525, test r2: 0.9420\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 77%|██████████▊   | 232/300 [6:56:16<2:01:57, 107.62s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 231, train loss:  164608.8490, val loss: 314002.9062, test loss : 381926.4375\n",
      "Epoch: 231, train r2:  0.9927, val r2: 0.9370, test r2: 0.9396\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 78%|██████████▊   | 233/300 [6:58:05<2:00:35, 108.00s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 232, train loss:  155765.7110, val loss: 278051.2188, test loss : 373286.7812\n",
      "Epoch: 232, train r2:  0.9700, val r2: 0.9426, test r2: 0.9354\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 78%|██████████▉   | 234/300 [6:59:54<1:59:01, 108.20s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 233, train loss:  95011.2726, val loss: 950148.3125, test loss : 737578.9375\n",
      "Epoch: 233, train r2:  0.9427, val r2: 0.8533, test r2: 0.8835\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 78%|██████████▉   | 235/300 [7:01:41<1:56:52, 107.88s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 234, train loss:  102711.7100, val loss: 664443.4375, test loss : 695191.6250\n",
      "Epoch: 234, train r2:  0.9445, val r2: 0.8543, test r2: 0.8888\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 79%|███████████   | 236/300 [7:03:29<1:54:59, 107.81s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 235, train loss:  116831.5878, val loss: 298511.8750, test loss : 345158.0938\n",
      "Epoch: 235, train r2:  0.9731, val r2: 0.9363, test r2: 0.9412\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 79%|███████████   | 237/300 [7:05:18<1:53:37, 108.21s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 236, train loss:  182690.3494, val loss: 593755.1875, test loss : 549649.8125\n",
      "Epoch: 236, train r2:  0.9742, val r2: 0.9013, test r2: 0.9134\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 79%|███████████   | 238/300 [7:07:07<1:51:56, 108.33s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 237, train loss:  123569.4308, val loss: 218951.0156, test loss : 347085.4688\n",
      "Epoch: 237, train r2:  0.9941, val r2: 0.9502, test r2: 0.9423\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 80%|███████████▏  | 239/300 [7:09:05<1:53:09, 111.31s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 238, train loss:  109345.3472, val loss: 201818.2344, test loss : 339158.4688\n",
      "Epoch: 238, train r2:  0.9934, val r2: 0.9569, test r2: 0.9446\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 80%|███████████▏  | 240/300 [7:10:56<1:51:09, 111.15s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 239, train loss:  103492.2491, val loss: 533892.1875, test loss : 638672.0625\n",
      "Epoch: 239, train r2:  0.9612, val r2: 0.8881, test r2: 0.9010\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 80%|███████████▏  | 241/300 [7:12:44<1:48:27, 110.30s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 240, train loss:  139313.3904, val loss: 524458.0000, test loss : 527870.3750\n",
      "Epoch: 240, train r2:  0.9728, val r2: 0.8955, test r2: 0.9158\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 81%|███████████▎  | 242/300 [7:14:27<1:44:38, 108.26s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 241, train loss:  158392.3108, val loss: 289806.0000, test loss : 332692.5938\n",
      "Epoch: 241, train r2:  0.9962, val r2: 0.9484, test r2: 0.9484\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 81%|███████████▎  | 243/300 [7:16:12<1:41:50, 107.20s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 242, train loss:  161283.9920, val loss: 332480.7812, test loss : 506482.2812\n",
      "Epoch: 242, train r2:  0.9825, val r2: 0.9247, test r2: 0.9207\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 81%|███████████▍  | 244/300 [7:17:58<1:39:34, 106.68s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 243, train loss:  167364.1173, val loss: 204404.9531, test loss : 325054.1562\n",
      "Epoch: 243, train r2:  0.9977, val r2: 0.9535, test r2: 0.9477\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 82%|███████████▍  | 245/300 [7:19:44<1:37:37, 106.50s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 244, train loss:  129976.7977, val loss: 320555.1875, test loss : 414436.0938\n",
      "Epoch: 244, train r2:  0.9872, val r2: 0.9306, test r2: 0.9355\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 82%|███████████▍  | 246/300 [7:21:29<1:35:33, 106.17s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 245, train loss:  112743.2269, val loss: 260343.1719, test loss : 353125.9062\n",
      "Epoch: 245, train r2:  0.9922, val r2: 0.9408, test r2: 0.9438\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 82%|███████████▌  | 247/300 [7:23:13<1:33:16, 105.59s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 246, train loss:  105657.4994, val loss: 320519.8750, test loss : 354743.5000\n",
      "Epoch: 246, train r2:  0.9915, val r2: 0.9407, test r2: 0.9442\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 83%|███████████▌  | 248/300 [7:24:58<1:31:10, 105.20s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 247, train loss:  131512.7233, val loss: 258390.3125, test loss : 316328.9375\n",
      "Epoch: 247, train r2:  0.9797, val r2: 0.9481, test r2: 0.9462\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 83%|███████████▌  | 249/300 [7:26:43<1:29:22, 105.14s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 248, train loss:  130703.4206, val loss: 255637.7344, test loss : 380817.4375\n",
      "Epoch: 248, train r2:  0.9947, val r2: 0.9489, test r2: 0.9403\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 83%|███████████▋  | 250/300 [7:28:32<1:28:46, 106.52s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 249, train loss:  147218.8607, val loss: 244526.0000, test loss : 401931.8125\n",
      "Epoch: 249, train r2:  0.9950, val r2: 0.9445, test r2: 0.9348\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 84%|███████████▋  | 251/300 [7:30:20<1:27:12, 106.79s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 250, train loss:  138399.3994, val loss: 293720.6562, test loss : 352796.8125\n",
      "Epoch: 250, train r2:  0.9764, val r2: 0.9434, test r2: 0.9393\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 84%|███████████▊  | 252/300 [7:32:09<1:25:56, 107.43s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 251, train loss:  116232.5126, val loss: 484064.7812, test loss : 607418.3125\n",
      "Epoch: 251, train r2:  0.9680, val r2: 0.8901, test r2: 0.9028\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 84%|███████████▊  | 253/300 [7:33:57<1:24:15, 107.57s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 252, train loss:  127929.2919, val loss: 882017.1875, test loss : 721127.0000\n",
      "Epoch: 252, train r2:  0.8808, val r2: 0.8363, test r2: 0.8706\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 85%|███████████▊  | 254/300 [7:35:44<1:22:27, 107.55s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 253, train loss:  111034.9621, val loss: 381841.8438, test loss : 472619.2812\n",
      "Epoch: 253, train r2:  0.9752, val r2: 0.9131, test r2: 0.9242\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 85%|███████████▉  | 255/300 [7:37:32<1:20:48, 107.74s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 254, train loss:  121484.4276, val loss: 641062.7500, test loss : 627172.3750\n",
      "Epoch: 254, train r2:  0.9536, val r2: 0.8685, test r2: 0.8971\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 85%|███████████▉  | 256/300 [7:39:20<1:18:59, 107.72s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 255, train loss:  118027.6110, val loss: 294987.0938, test loss : 325682.5312\n",
      "Epoch: 255, train r2:  0.9780, val r2: 0.9431, test r2: 0.9436\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 86%|███████████▉  | 257/300 [7:41:07<1:17:09, 107.67s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 256, train loss:  132540.3050, val loss: 383185.9062, test loss : 307753.9062\n",
      "Epoch: 256, train r2:  0.9751, val r2: 0.9411, test r2: 0.9467\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 86%|████████████  | 258/300 [7:42:56<1:15:34, 107.95s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 257, train loss:  106980.8987, val loss: 295886.6875, test loss : 400027.7188\n",
      "Epoch: 257, train r2:  0.9781, val r2: 0.9344, test r2: 0.9319\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 86%|████████████  | 259/300 [7:44:44<1:13:47, 107.98s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 258, train loss:  136564.2871, val loss: 419726.5938, test loss : 593739.3125\n",
      "Epoch: 258, train r2:  0.9712, val r2: 0.9045, test r2: 0.9030\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 87%|████████████▏ | 260/300 [7:46:35<1:12:37, 108.93s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 259, train loss:  119471.3515, val loss: 587986.0000, test loss : 661971.4375\n",
      "Epoch: 259, train r2:  0.9603, val r2: 0.8795, test r2: 0.8938\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 87%|████████████▏ | 261/300 [7:48:23<1:10:36, 108.64s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 260, train loss:  155603.4309, val loss: 194738.0781, test loss : 296764.8750\n",
      "Epoch: 260, train r2:  0.9908, val r2: 0.9584, test r2: 0.9510\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 87%|████████████▏ | 262/300 [7:50:11<1:08:39, 108.41s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 261, train loss:  120239.0591, val loss: 542969.3125, test loss : 632098.8125\n",
      "Epoch: 261, train r2:  0.9572, val r2: 0.8889, test r2: 0.8981\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 88%|████████████▎ | 263/300 [7:51:57<1:06:21, 107.62s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 262, train loss:  145639.5545, val loss: 312302.5312, test loss : 449566.1562\n",
      "Epoch: 262, train r2:  0.9866, val r2: 0.9290, test r2: 0.9271\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 88%|████████████▎ | 264/300 [7:53:42<1:04:08, 106.91s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 263, train loss:  138549.1973, val loss: 202802.5469, test loss : 329402.7188\n",
      "Epoch: 263, train r2:  0.9942, val r2: 0.9549, test r2: 0.9450\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 88%|████████████▎ | 265/300 [7:55:29<1:02:23, 106.96s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 264, train loss:  127895.7098, val loss: 297102.0000, test loss : 348519.0000\n",
      "Epoch: 264, train r2:  0.9788, val r2: 0.9324, test r2: 0.9415\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 89%|████████████▍ | 266/300 [7:57:18<1:00:52, 107.44s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 265, train loss:  99948.0465, val loss: 723719.7500, test loss : 776637.6250\n",
      "Epoch: 265, train r2:  0.9358, val r2: 0.8371, test r2: 0.8733\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 89%|██████████████▏ | 267/300 [7:59:07<59:24, 108.01s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 266, train loss:  196513.0115, val loss: 254612.6250, test loss : 341412.4688\n",
      "Epoch: 266, train r2:  0.9765, val r2: 0.9508, test r2: 0.9400\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 89%|██████████████▎ | 268/300 [8:00:54<57:27, 107.74s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 267, train loss:  149020.9324, val loss: 205206.6094, test loss : 334888.7812\n",
      "Epoch: 267, train r2:  0.9960, val r2: 0.9546, test r2: 0.9433\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 90%|██████████████▎ | 269/300 [8:02:42<55:40, 107.74s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 268, train loss:  117153.8368, val loss: 267569.0938, test loss : 363731.4375\n",
      "Epoch: 268, train r2:  0.9838, val r2: 0.9392, test r2: 0.9378\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 90%|██████████████▍ | 270/300 [8:04:35<54:43, 109.45s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 269, train loss:  115661.5948, val loss: 332942.0000, test loss : 441144.4688\n",
      "Epoch: 269, train r2:  0.9900, val r2: 0.9337, test r2: 0.9273\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 90%|██████████████▍ | 271/300 [8:06:24<52:44, 109.12s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 270, train loss:  92813.6948, val loss: 236724.9219, test loss : 401231.1562\n",
      "Epoch: 270, train r2:  0.9857, val r2: 0.9462, test r2: 0.9307\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 91%|██████████████▌ | 272/300 [8:08:12<50:48, 108.87s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 271, train loss:  154775.2874, val loss: 266442.1562, test loss : 300305.4062\n",
      "Epoch: 271, train r2:  0.9854, val r2: 0.9496, test r2: 0.9486\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 91%|██████████████▌ | 273/300 [8:09:59<48:41, 108.20s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 272, train loss:  121748.2694, val loss: 246088.9531, test loss : 307480.5625\n",
      "Epoch: 272, train r2:  0.9876, val r2: 0.9496, test r2: 0.9475\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 91%|██████████████▌ | 274/300 [8:11:47<46:51, 108.14s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 273, train loss:  134082.5064, val loss: 532720.0000, test loss : 519565.5312\n",
      "Epoch: 273, train r2:  0.9717, val r2: 0.9007, test r2: 0.9183\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 92%|██████████████▋ | 275/300 [8:13:34<44:59, 108.00s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 274, train loss:  128775.7465, val loss: 288038.1562, test loss : 382891.4688\n",
      "Epoch: 274, train r2:  0.9915, val r2: 0.9371, test r2: 0.9390\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 92%|██████████████▋ | 276/300 [8:15:21<43:03, 107.63s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 275, train loss:  97901.0239, val loss: 265339.1250, test loss : 302734.4375\n",
      "Epoch: 275, train r2:  0.9966, val r2: 0.9555, test r2: 0.9504\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 92%|██████████████▊ | 277/300 [8:17:08<41:13, 107.53s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 276, train loss:  120228.1397, val loss: 204575.2500, test loss : 326654.4062\n",
      "Epoch: 276, train r2:  0.9973, val r2: 0.9546, test r2: 0.9461\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 93%|██████████████▊ | 278/300 [8:18:56<39:25, 107.54s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 277, train loss:  124457.1743, val loss: 646973.3750, test loss : 314542.1875\n",
      "Epoch: 277, train r2:  0.9941, val r2: 0.9494, test r2: 0.9485\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 93%|██████████████▉ | 279/300 [8:20:42<37:30, 107.15s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 278, train loss:  100463.2185, val loss: 323996.9062, test loss : 407116.4375\n",
      "Epoch: 278, train r2:  0.9863, val r2: 0.9347, test r2: 0.9361\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 93%|██████████████▉ | 280/300 [8:22:31<35:53, 107.67s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 279, train loss:  82284.5439, val loss: 430215.4688, test loss : 495841.1875\n",
      "Epoch: 279, train r2:  0.9741, val r2: 0.9110, test r2: 0.9211\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 94%|██████████████▉ | 281/300 [8:24:19<34:05, 107.64s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 280, train loss:  116234.1271, val loss: 205426.9844, test loss : 300088.2500\n",
      "Epoch: 280, train r2:  0.9990, val r2: 0.9565, test r2: 0.9526\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 94%|███████████████ | 282/300 [8:26:06<32:15, 107.55s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 281, train loss:  118501.8329, val loss: 619187.9375, test loss : 727822.5625\n",
      "Epoch: 281, train r2:  0.9420, val r2: 0.8605, test r2: 0.8835\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 94%|███████████████ | 283/300 [8:27:53<30:27, 107.52s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 282, train loss:  87191.0093, val loss: 259249.0156, test loss : 404718.4375\n",
      "Epoch: 282, train r2:  0.9915, val r2: 0.9411, test r2: 0.9356\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 95%|███████████████▏| 284/300 [8:29:46<29:03, 108.95s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 283, train loss:  82501.9451, val loss: 268910.6562, test loss : 395458.9688\n",
      "Epoch: 283, train r2:  0.9962, val r2: 0.9406, test r2: 0.9368\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 95%|███████████████▏| 285/300 [8:31:36<27:19, 109.32s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 284, train loss:  241321.9808, val loss: 2064933.6250, test loss : 1433156.7500\n",
      "Epoch: 284, train r2:  0.7496, val r2: 0.6436, test r2: 0.7445\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 95%|███████████████▎| 286/300 [8:33:24<25:26, 109.07s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 285, train loss:  205123.6540, val loss: 292104.1562, test loss : 686533.8750\n",
      "Epoch: 285, train r2:  0.9585, val r2: 0.9335, test r2: 0.8815\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 96%|███████████████▎| 287/300 [8:35:13<23:34, 108.80s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 286, train loss:  139356.4706, val loss: 379740.4062, test loss : 492119.4375\n",
      "Epoch: 286, train r2:  0.9812, val r2: 0.9141, test r2: 0.9224\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 96%|███████████████▎| 288/300 [8:37:01<21:45, 108.82s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 287, train loss:  164119.2237, val loss: 210453.4375, test loss : 304338.6875\n",
      "Epoch: 287, train r2:  0.9957, val r2: 0.9529, test r2: 0.9514\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 96%|███████████████▍| 289/300 [8:38:49<19:51, 108.30s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 288, train loss:  137080.4509, val loss: 216771.7500, test loss : 331605.9062\n",
      "Epoch: 288, train r2:  0.9960, val r2: 0.9507, test r2: 0.9462\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 97%|███████████████▍| 290/300 [8:40:39<18:09, 108.91s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 289, train loss:  97886.9401, val loss: 207916.3125, test loss : 309891.7188\n",
      "Epoch: 289, train r2:  0.9919, val r2: 0.9536, test r2: 0.9482\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 97%|███████████████▌| 291/300 [8:42:35<16:40, 111.12s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 290, train loss:  79947.3233, val loss: 176569.9531, test loss : 261401.4219\n",
      "Epoch: 290, train r2:  0.9979, val r2: 0.9598, test r2: 0.9581\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 97%|███████████████▌| 292/300 [8:44:26<14:49, 111.13s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 291, train loss:  95716.2594, val loss: 343028.0000, test loss : 383428.7500\n",
      "Epoch: 291, train r2:  0.9911, val r2: 0.9386, test r2: 0.9399\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 98%|███████████████▋| 293/300 [8:46:15<12:53, 110.46s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 292, train loss:  130825.0580, val loss: 616132.0625, test loss : 362430.2500\n",
      "Epoch: 292, train r2:  0.9968, val r2: 0.9467, test r2: 0.9398\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 98%|███████████████▋| 294/300 [8:48:00<10:53, 108.90s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 293, train loss:  148733.0140, val loss: 526250.9375, test loss : 332593.9688\n",
      "Epoch: 293, train r2:  0.9725, val r2: 0.9222, test r2: 0.9428\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 98%|███████████████▋| 295/300 [8:49:48<09:01, 108.37s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 294, train loss:  116480.2838, val loss: 362791.9688, test loss : 446358.2500\n",
      "Epoch: 294, train r2:  0.9817, val r2: 0.9215, test r2: 0.9287\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 99%|███████████████▊| 296/300 [8:51:35<07:12, 108.21s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 295, train loss:  124857.2964, val loss: 202028.8594, test loss : 346386.9375\n",
      "Epoch: 295, train r2:  0.9944, val r2: 0.9541, test r2: 0.9421\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 99%|███████████████▊| 297/300 [8:53:22<05:23, 107.70s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 296, train loss:  94276.1454, val loss: 190652.1875, test loss : 335052.6562\n",
      "Epoch: 296, train r2:  0.9927, val r2: 0.9590, test r2: 0.9438\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      " 99%|███████████████▉| 298/300 [8:55:08<03:34, 107.23s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 297, train loss:  102525.4083, val loss: 244123.6094, test loss : 332500.4062\n",
      "Epoch: 297, train r2:  0.9807, val r2: 0.9453, test r2: 0.9433\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\r",
      "100%|███████████████▉| 299/300 [8:56:55<01:47, 107.06s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 298, train loss:  87369.3017, val loss: 187155.6719, test loss : 293832.2188\n",
      "Epoch: 298, train r2:  0.9965, val r2: 0.9577, test r2: 0.9534\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|████████████████| 300/300 [8:58:44<00:00, 107.75s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 299, train loss:  113805.1642, val loss: 563931.6875, test loss : 594887.6875\n",
      "Epoch: 299, train r2:  0.9585, val r2: 0.8877, test r2: 0.9063\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\n"
     ]
    }
   ],
   "source": [
    "path = r'D:\\All_files\\pys\\AI_algos\\Mikes_Work\\viscosity-video-classification\\code_digdiscovery'\n",
    "\n",
    "(cnn3d, history) =train_epochs(model = cnn3d , \n",
    "                                 dataloaders = (train_dl, val_dl, test_dl), \n",
    "                                 optimizer = Adam(cnn3d.parameters(),lr=1e-4),\n",
    "                                 criterion=nn.MSELoss(), \n",
    "                                 epochs = 300 , \n",
    "                                 early_stop = None,\n",
    "                                 device = device,\n",
    "                                 path = os.path.join(path,'weights'),\n",
    "                                 save_weights_frequency = 10)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.13"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}