V0.1.6 - Building NARX Neural Network using Sysidentpy¶
Example created by Wilson Rocha Lacerda Junior
Series-Parallen Training and Parallel prediction¶
Currently SysIdentPy support a Series-Parallel (open-loop) Feedforward Network training process, which make the training process easier. We convert the NARX network from Series-Parallel to the Parallel (closed-loop) configuration for prediction.
Series-Parallel allows us to use Pytorch directly for training, so we can use all the power of the Pytorch library to build our NARX Neural Network model!
The reader is referred to the following paper for a more in depth discussion about Series-Parallel and Parallel configurations regarding NARX neural network:
Building a NARX Neural Network¶
First, just import the necessary packages
pip install sysidentpy
Requirement already satisfied: sysidentpy in c:\users\wilso\miniconda3\envs\sysidentpy\lib\site-packages (0.1.6)
Requirement already satisfied: scipy>=1.7.0 in c:\users\wilso\miniconda3\envs\sysidentpy\lib\site-packages (from sysidentpy) (1.7.1)
Requirement already satisfied: numpy>=1.19.2 in c:\users\wilso\miniconda3\envs\sysidentpy\lib\site-packages (from sysidentpy) (1.20.3)
Requirement already satisfied: matplotlib>=3.3.2 in c:\users\wilso\miniconda3\envs\sysidentpy\lib\site-packages (from sysidentpy) (3.4.3)
Requirement already satisfied: pillow>=6.2.0 in c:\users\wilso\miniconda3\envs\sysidentpy\lib\site-packages (from matplotlib>=3.3.2->sysidentpy) (8.3.2)
Requirement already satisfied: cycler>=0.10 in c:\users\wilso\miniconda3\envs\sysidentpy\lib\site-packages (from matplotlib>=3.3.2->sysidentpy) (0.10.0)
Requirement already satisfied: pyparsing>=2.2.1 in c:\users\wilso\miniconda3\envs\sysidentpy\lib\site-packages (from matplotlib>=3.3.2->sysidentpy) (2.4.7)
Requirement already satisfied: python-dateutil>=2.7 in c:\users\wilso\miniconda3\envs\sysidentpy\lib\site-packages (from matplotlib>=3.3.2->sysidentpy) (2.8.2)
Requirement already satisfied: kiwisolver>=1.0.1 in c:\users\wilso\miniconda3\envs\sysidentpy\lib\site-packages (from matplotlib>=3.3.2->sysidentpy) (1.3.2)
Requirement already satisfied: six in c:\users\wilso\miniconda3\envs\sysidentpy\lib\site-packages (from cycler>=0.10->matplotlib>=3.3.2->sysidentpy) (1.16.0)
Note: you may need to restart the kernel to use updated packages.
from torch import nn
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sysidentpy.metrics import mean_squared_error
from sysidentpy.utils.generate_data import get_siso_data
from sysidentpy.neural_network import NARXNN
Getting the data¶
The data is generated by simulating the following model:
\(y_k = 0.2y_{k-1} + 0.1y_{k-1}x_{k-1} + 0.9x_{k-1} + e_{k}\).
If colored_noise is set to True:
\(e_{k} = 0.8\nu_{k-1} + \nu_{k}\),
where \(x\) is a uniformly distributed random variable and \(\nu\) is a gaussian distributed variable with \(\mu=0\) and \(\sigma=0.1\)
x_train, x_valid, y_train, y_valid = get_siso_data(n=1000,
colored_noise=False,
sigma=0.01,
train_percentage=80)
Choosing the NARX parameters, loss function and optmizer¶
One can create a NARXNN object and choose the maximum lag of both input and output for building the regressor matrix to serve as input of the network.
In addition, you can choose the loss function, the optmizer, the optinional parameters of the optmizer, the number of epochs.
Because we built this feature on top of Pytorch, you can choose any of the loss function of the torch.nn.functional. Click here for a list of the loss functions you can use. You just need to pass the name of the loss function you want.
Similarly, you can choose any of the optimizers of the torch.optim. Click here for a list of optimizers available.
narx_net = NARXNN(ylag=2,
xlag=2,
loss_func='mse_loss',
optimizer='Adam',
epochs=200,
verbose=True,
optim_params={'betas': (0.9, 0.999), 'eps': 1e-05} # optional parameters of the optimizer
)
Since we have defined our NARXNN using \(ylag=2\) and \(xlag=2\), we have a regressor matrix with 4 features. We need the size of the regressor matrix to build the layers of our network. Our input data(x_train) have only one feature, but since we are creating an NARX network, a regressor matrix is built behind the scenes with new features based on the xlag and ylag.
You can check the size the of the regressor matrix by using the following line of code:
len(narx_net.regressor_code) # the number of features of the NARX net
4
Building the NARX Neural Network¶
The configuration of your network follows exactly the same pattern of a network defined in Pytorch. The following representing our NARX neural network.
class NARX(nn.Module):
def __init__(self):
super().__init__()
self.lin = nn.Linear(4, 10)
self.lin2 = nn.Linear(10, 10)
self.lin3 = nn.Linear(10, 1)
self.tanh = nn.Tanh()
def forward(self, xb):
z = self.lin(xb)
z = self.tanh(z)
z = self.lin2(z)
z = self.tanh(z)
z = self.lin3(z)
return z
We have to pass the defined network to our NARXNN estimator.
narx_net.net = NARX()
Numpy array to Tensor¶
If your inputs are numpy array, you can transform them to tensor using our data_transform method. Our function return a Dataloader object that we use to iterate on our training function. You can transform your inputs mannualy using TensorDataset and Dataloader using Pytorch.
Since our inputs are numpy arrays, we transform them using the following:
train_dl = narx_net.data_transform(x_train, y_train)
valid_dl = narx_net.data_transform(x_valid, y_valid)
Fit and Predict¶
Because we have a fit (for training) and predict function for Polynomial NARMAX, we create the same pattern for the NARX net. So, you only have to fit and predict using the following:
narx_net.fit(train_dl, valid_dl)
yhat = narx_net.predict(x_valid, y_valid)
10-23 19:31:24 - INFO - Train metrics: 0.14699690238126836 | Validation metrics: 0.15940781795617306
10-23 19:31:24 - INFO - Train metrics: 0.007781868686147949 | Validation metrics: 0.008083537559617649
10-23 19:31:24 - INFO - Train metrics: 0.022824719846995554 | Validation metrics: 0.023883513184358374
10-23 19:31:24 - INFO - Train metrics: 0.003622687538446191 | Validation metrics: 0.004270373025175297
10-23 19:31:24 - INFO - Train metrics: 0.0054355961408344726 | Validation metrics: 0.0060556872672580106
10-23 19:31:24 - INFO - Train metrics: 0.00245704381542285 | Validation metrics: 0.0026536307396423636
10-23 19:31:24 - INFO - Train metrics: 0.002035943098030144 | Validation metrics: 0.0023368766173870875
10-23 19:31:24 - INFO - Train metrics: 0.0018164975152007844 | Validation metrics: 0.0021472713049275408
10-23 19:31:24 - INFO - Train metrics: 0.0014655725005780695 | Validation metrics: 0.0016759187030145014
10-23 19:31:24 - INFO - Train metrics: 0.0014208090633975534 | Validation metrics: 0.0016902315670229268
10-23 19:31:24 - INFO - Train metrics: 0.0013147166137697926 | Validation metrics: 0.0015513017159801993
10-23 19:31:24 - INFO - Train metrics: 0.001227437185046536 | Validation metrics: 0.0014432324402297687
10-23 19:31:24 - INFO - Train metrics: 0.0011659792013452353 | Validation metrics: 0.0013855011108321975
10-23 19:31:24 - INFO - Train metrics: 0.0011077994786501677 | Validation metrics: 0.0013081630905901994
10-23 19:31:24 - INFO - Train metrics: 0.0010538809080223057 | Validation metrics: 0.0012485380190415214
10-23 19:31:24 - INFO - Train metrics: 0.0010064064030813281 | Validation metrics: 0.0011893548765172712
10-23 19:31:24 - INFO - Train metrics: 0.0009633832906412525 | Validation metrics: 0.0011396936536061041
10-23 19:31:24 - INFO - Train metrics: 0.0009248197524525916 | Validation metrics: 0.0010956904105371749
10-23 19:31:24 - INFO - Train metrics: 0.0008904566625973448 | Validation metrics: 0.0010521288936477945
10-23 19:31:24 - INFO - Train metrics: 0.0008595979178469058 | Validation metrics: 0.0010161923498592594
10-23 19:31:24 - INFO - Train metrics: 0.000831986916949389 | Validation metrics: 0.0009820786436474083
10-23 19:31:24 - INFO - Train metrics: 0.0008074526350016246 | Validation metrics: 0.0009516405589605748
10-23 19:31:24 - INFO - Train metrics: 0.0007861718283919501 | Validation metrics: 0.0009242616084667694
10-23 19:31:24 - INFO - Train metrics: 0.0007685240752584205 | Validation metrics: 0.0009004100804414713
10-23 19:31:24 - INFO - Train metrics: 0.0007550467186745134 | Validation metrics: 0.0008797772708490039
10-23 19:31:24 - INFO - Train metrics: 0.0007467740241620213 | Validation metrics: 0.0008638998137250768
10-23 19:31:24 - INFO - Train metrics: 0.0007448184340702076 | Validation metrics: 0.0008535327706156731
10-23 19:31:24 - INFO - Train metrics: 0.0007503692222348319 | Validation metrics: 0.0008499444799845794
10-23 19:31:25 - INFO - Train metrics: 0.000764242385077596 | Validation metrics: 0.0008540420647183753
10-23 19:31:25 - INFO - Train metrics: 0.0007865152241227994 | Validation metrics: 0.0008662146753678568
10-23 19:31:25 - INFO - Train metrics: 0.000816021516935475 | Validation metrics: 0.0008856466985448743
10-23 19:31:25 - INFO - Train metrics: 0.0008502597716359192 | Validation metrics: 0.0009102701036626416
10-23 19:31:25 - INFO - Train metrics: 0.0008856019225172269 | Validation metrics: 0.000936916551900783
10-23 19:31:25 - INFO - Train metrics: 0.0009178746722750646 | Validation metrics: 0.0009618220889630417
10-23 19:31:25 - INFO - Train metrics: 0.0009431160918149845 | Validation metrics: 0.000981338042883447
10-23 19:31:25 - INFO - Train metrics: 0.0009582455662128172 | Validation metrics: 0.0009925619533257277
10-23 19:31:25 - INFO - Train metrics: 0.0009614611444247881 | Validation metrics: 0.000993747907958812
10-23 19:31:25 - INFO - Train metrics: 0.0009523279933412944 | Validation metrics: 0.0009844014038933875
10-23 19:31:25 - INFO - Train metrics: 0.0009315988494732176 | Validation metrics: 0.0009651364220042873
10-23 19:31:25 - INFO - Train metrics: 0.0009009332079813818 | Validation metrics: 0.0009374095313956566
10-23 19:31:25 - INFO - Train metrics: 0.0008625932572348823 | Validation metrics: 0.000903248406518627
10-23 19:31:25 - INFO - Train metrics: 0.0008191908292477031 | Validation metrics: 0.0008649923803397652
10-23 19:31:25 - INFO - Train metrics: 0.0007734560938131876 | Validation metrics: 0.0008250783254025561
10-23 19:31:25 - INFO - Train metrics: 0.0007280149661356999 | Validation metrics: 0.0007858100192000469
10-23 19:31:25 - INFO - Train metrics: 0.0006851502150042743 | Validation metrics: 0.000749136083712331
10-23 19:31:25 - INFO - Train metrics: 0.0006465555263804575 | Validation metrics: 0.0007164257524459801
10-23 19:31:25 - INFO - Train metrics: 0.0006131726061227384 | Validation metrics: 0.0006883487198266643
10-23 19:31:25 - INFO - Train metrics: 0.0005851242575154904 | Validation metrics: 0.0006648563071991307
10-23 19:31:25 - INFO - Train metrics: 0.0005618393887126151 | Validation metrics: 0.0006453444325186387
10-23 19:31:25 - INFO - Train metrics: 0.0005423051931248759 | Validation metrics: 0.0006289056530504515
10-23 19:31:25 - INFO - Train metrics: 0.0005254072251258171 | Validation metrics: 0.0006146119534734147
10-23 19:31:25 - INFO - Train metrics: 0.0005102382847668141 | Validation metrics: 0.0006017382591821705
10-23 19:31:25 - INFO - Train metrics: 0.0004962848277382067 | Validation metrics: 0.0005898702309956078
10-23 19:31:25 - INFO - Train metrics: 0.00048337438926310803 | Validation metrics: 0.000578842709085556
10-23 19:31:25 - INFO - Train metrics: 0.0004714515673190374 | Validation metrics: 0.000568575933081747
10-23 19:31:25 - INFO - Train metrics: 0.0004603826225837949 | Validation metrics: 0.0005589447194719781
10-23 19:31:25 - INFO - Train metrics: 0.0004499477934194985 | Validation metrics: 0.0005497780303362606
10-23 19:31:25 - INFO - Train metrics: 0.0004399723754402129 | Validation metrics: 0.0005409378961735227
10-23 19:31:25 - INFO - Train metrics: 0.0004303919434148286 | Validation metrics: 0.0005323582068979364
10-23 19:31:25 - INFO - Train metrics: 0.0004211828561340993 | Validation metrics: 0.0005240009393839335
10-23 19:31:25 - INFO - Train metrics: 0.00041227420149511076 | Validation metrics: 0.0005158078765633017
10-23 19:31:25 - INFO - Train metrics: 0.0004035859560724675 | Validation metrics: 0.0005077175485003137
10-23 19:31:25 - INFO - Train metrics: 0.0003950939701057803 | Validation metrics: 0.0004997012047261714
10-23 19:31:25 - INFO - Train metrics: 0.0003867948420210403 | Validation metrics: 0.0004917433849333625
10-23 19:31:25 - INFO - Train metrics: 0.00037865309840661094 | Validation metrics: 0.00048381850509104707
10-23 19:31:25 - INFO - Train metrics: 0.00037064273298407596 | Validation metrics: 0.0004759091073106222
10-23 19:31:25 - INFO - Train metrics: 0.00036277046589353555 | Validation metrics: 0.00046801476767568875
10-23 19:31:25 - INFO - Train metrics: 0.0003550399755965685 | Validation metrics: 0.00046013698606243867
10-23 19:31:25 - INFO - Train metrics: 0.0003474419595169506 | Validation metrics: 0.0004522761255338073
10-23 19:31:25 - INFO - Train metrics: 0.00033998529104058416 | Validation metrics: 0.0004444426487698549
10-23 19:31:25 - INFO - Train metrics: 0.0003326864925360209 | Validation metrics: 0.00043665275161126345
10-23 19:31:25 - INFO - Train metrics: 0.0003255554482913844 | Validation metrics: 0.00042892218452191563
10-23 19:31:25 - INFO - Train metrics: 0.0003186054185661896 | Validation metrics: 0.0004212706134598138
10-23 19:31:25 - INFO - Train metrics: 0.0003118570876496851 | Validation metrics: 0.00041372188386940066
10-23 19:31:25 - INFO - Train metrics: 0.0003053246548558051 | Validation metrics: 0.0004062976081375823
10-23 19:31:25 - INFO - Train metrics: 0.0002990263138715654 | Validation metrics: 0.00039902254451075665
10-23 19:31:25 - INFO - Train metrics: 0.0002929776676324777 | Validation metrics: 0.0003919201201025509
10-23 19:31:25 - INFO - Train metrics: 0.00028719087672550556 | Validation metrics: 0.00038501106624754916
10-23 19:31:25 - INFO - Train metrics: 0.0002816778338948419 | Validation metrics: 0.00037831564185755197
10-23 19:31:25 - INFO - Train metrics: 0.0002764454047997391 | Validation metrics: 0.00037184996957269806
10-23 19:31:25 - INFO - Train metrics: 0.0002714942875674186 | Validation metrics: 0.0003656257664775382
10-23 19:31:25 - INFO - Train metrics: 0.0002668220398832057 | Validation metrics: 0.00035964902384545314
10-23 19:31:25 - INFO - Train metrics: 0.0002624181185745142 | Validation metrics: 0.0003539203946017707
10-23 19:31:25 - INFO - Train metrics: 0.00025826744508537417 | Validation metrics: 0.00034843507396866276
10-23 19:31:25 - INFO - Train metrics: 0.00025434735468016906 | Validation metrics: 0.0003431803985461216
10-23 19:31:25 - INFO - Train metrics: 0.0002506308711716266 | Validation metrics: 0.00033813839098626765
10-23 19:31:25 - INFO - Train metrics: 0.00024708334597546545 | Validation metrics: 0.0003332852002590744
10-23 19:31:25 - INFO - Train metrics: 0.0002436715875224754 | Validation metrics: 0.00032859489867332004
10-23 19:31:25 - INFO - Train metrics: 0.00024035692127143737 | Validation metrics: 0.0003240375301560782
10-23 19:31:25 - INFO - Train metrics: 0.0002371053071926 | Validation metrics: 0.00031958531554214504
10-23 19:31:25 - INFO - Train metrics: 0.0002338854101618383 | Validation metrics: 0.00031521238387806924
10-23 19:31:25 - INFO - Train metrics: 0.00023067208140607653 | Validation metrics: 0.0003108987802253904
10-23 19:31:25 - INFO - Train metrics: 0.0002274507607676481 | Validation metrics: 0.00030663189880380577
10-23 19:31:25 - INFO - Train metrics: 0.0002242140287392187 | Validation metrics: 0.00030240701891321955
10-23 19:31:25 - INFO - Train metrics: 0.00022096699147478195 | Validation metrics: 0.0002982274654457778
10-23 19:31:25 - INFO - Train metrics: 0.0002177209187214984 | Validation metrics: 0.00029410459007127114
10-23 19:31:25 - INFO - Train metrics: 0.00021449660068030067 | Validation metrics: 0.00029005474267489834
10-23 19:31:25 - INFO - Train metrics: 0.00021131587018408254 | Validation metrics: 0.0002860967440276661
10-23 19:31:25 - INFO - Train metrics: 0.00020820362450214182 | Validation metrics: 0.00028225004871733334
10-23 19:31:25 - INFO - Train metrics: 0.00020518106880205634 | Validation metrics: 0.00027853150933162505
10-23 19:31:25 - INFO - Train metrics: 0.00020226838049959662 | Validation metrics: 0.00027495569571843275
10-23 19:31:25 - INFO - Train metrics: 0.0001994769845623523 | Validation metrics: 0.00027153154363564094
10-23 19:31:25 - INFO - Train metrics: 0.0001968191952659354 | Validation metrics: 0.0002682688569584203
10-23 19:31:25 - INFO - Train metrics: 0.0001943017692214116 | Validation metrics: 0.00026517248382636655
10-23 19:31:25 - INFO - Train metrics: 0.00019192793024330398 | Validation metrics: 0.00026224756209447867
10-23 19:31:26 - INFO - Train metrics: 0.00018970409364738318 | Validation metrics: 0.00025950030513658106
10-23 19:31:26 - INFO - Train metrics: 0.00018763366720772216 | Validation metrics: 0.0002569371742970131
10-23 19:31:26 - INFO - Train metrics: 0.0001857210060681933 | Validation metrics: 0.00025456402194451054
10-23 19:31:26 - INFO - Train metrics: 0.00018397129348241128 | Validation metrics: 0.0002523868656634927
10-23 19:31:26 - INFO - Train metrics: 0.00018238630886878213 | Validation metrics: 0.0002504077890236401
10-23 19:31:26 - INFO - Train metrics: 0.00018096450687955627 | Validation metrics: 0.00024862265149060863
10-23 19:31:26 - INFO - Train metrics: 0.0001796990127377399 | Validation metrics: 0.0002470204657804447
10-23 19:31:26 - INFO - Train metrics: 0.00017857422066308595 | Validation metrics: 0.0002455782125271255
10-23 19:31:26 - INFO - Train metrics: 0.00017756453460259807 | Validation metrics: 0.00024425988794055136
10-23 19:31:26 - INFO - Train metrics: 0.0001766345750938466 | Validation metrics: 0.00024301767339835866
10-23 19:31:26 - INFO - Train metrics: 0.00017574132273655226 | Validation metrics: 0.00024179550963148211
10-23 19:31:26 - INFO - Train metrics: 0.00017483850623326922 | Validation metrics: 0.00024053576444111048
10-23 19:31:26 - INFO - Train metrics: 0.00017388529546283427 | Validation metrics: 0.00023918983795811807
10-23 19:31:26 - INFO - Train metrics: 0.00017285406447125408 | Validation metrics: 0.0002377266618434923
10-23 19:31:26 - INFO - Train metrics: 0.00017173250219236155 | Validation metrics: 0.0002361391281480948
10-23 19:31:26 - INFO - Train metrics: 0.0001705293506436414 | Validation metrics: 0.00023444667161616375
10-23 19:31:26 - INFO - Train metrics: 0.00016926713181335135 | Validation metrics: 0.0002326871244345011
10-23 19:31:26 - INFO - Train metrics: 0.00016797840048764416 | Validation metrics: 0.000230909549193739
10-23 19:31:26 - INFO - Train metrics: 0.00016669764703975285 | Validation metrics: 0.00022916367934250058
10-23 19:31:26 - INFO - Train metrics: 0.00016545517931611773 | Validation metrics: 0.0002274915760893356
10-23 19:31:26 - INFO - Train metrics: 0.0001642724247748513 | Validation metrics: 0.00022592175913024507
10-23 19:31:26 - INFO - Train metrics: 0.00016316129702153876 | Validation metrics: 0.00022446888533063383
10-23 19:31:26 - INFO - Train metrics: 0.0001621248262098764 | Validation metrics: 0.0002231348873024355
10-23 19:31:26 - INFO - Train metrics: 0.00016115973651774444 | Validation metrics: 0.00022191289874649785
10-23 19:31:26 - INFO - Train metrics: 0.0001602594353804799 | Validation metrics: 0.00022079149758527902
10-23 19:31:26 - INFO - Train metrics: 0.00015941618869220022 | Validation metrics: 0.00021975675763590544
10-23 19:31:26 - INFO - Train metrics: 0.00015862119207006966 | Validation metrics: 0.00021879701340698045
10-23 19:31:26 - INFO - Train metrics: 0.00015786944505295257 | Validation metrics: 0.00021790226846768736
10-23 19:31:26 - INFO - Train metrics: 0.00015715769479543736 | Validation metrics: 0.00021706720107973488
10-23 19:31:26 - INFO - Train metrics: 0.0001564855517511417 | Validation metrics: 0.0002162892484891633
10-23 19:31:26 - INFO - Train metrics: 0.0001558545664466922 | Validation metrics: 0.00021557041342167956
10-23 19:31:26 - INFO - Train metrics: 0.0001552682153674608 | Validation metrics: 0.00021491270639340985
10-23 19:31:26 - INFO - Train metrics: 0.000154730786951924 | Validation metrics: 0.0002143213605082528
10-23 19:31:26 - INFO - Train metrics: 0.00015424591400001178 | Validation metrics: 0.00021379871112811897
10-23 19:31:26 - INFO - Train metrics: 0.00015381714112485962 | Validation metrics: 0.0002133482549753454
10-23 19:31:26 - INFO - Train metrics: 0.00015344839694239853 | Validation metrics: 0.00021297309425367852
10-23 19:31:26 - INFO - Train metrics: 0.0001531408836450638 | Validation metrics: 0.0002126737978107136
10-23 19:31:26 - INFO - Train metrics: 0.00015289596557520321 | Validation metrics: 0.00021245044090484054
10-23 19:31:26 - INFO - Train metrics: 0.00015271485623125138 | Validation metrics: 0.00021230294386799815
10-23 19:31:26 - INFO - Train metrics: 0.00015259714166775002 | Validation metrics: 0.00021222901514101057
10-23 19:31:26 - INFO - Train metrics: 0.00015254235968815353 | Validation metrics: 0.00021222718747925353
10-23 19:31:26 - INFO - Train metrics: 0.0001525498383149229 | Validation metrics: 0.0002122958604660299
10-23 19:31:26 - INFO - Train metrics: 0.00015261867339635282 | Validation metrics: 0.00021243285248996783
10-23 19:31:26 - INFO - Train metrics: 0.0001527479473594226 | Validation metrics: 0.0002126360404413344
10-23 19:31:26 - INFO - Train metrics: 0.00015293584584654134 | Validation metrics: 0.00021290213044267148
10-23 19:31:26 - INFO - Train metrics: 0.00015318042079755863 | Validation metrics: 0.0002132281859468838
10-23 19:31:26 - INFO - Train metrics: 0.000153479343833096 | Validation metrics: 0.00021361081150708477
10-23 19:31:26 - INFO - Train metrics: 0.00015382968775699273 | Validation metrics: 0.0002140454291495391
10-23 19:31:26 - INFO - Train metrics: 0.00015422901995585097 | Validation metrics: 0.0002145291471588096
10-23 19:31:26 - INFO - Train metrics: 0.00015467480660934365 | Validation metrics: 0.0002150584250098245
10-23 19:31:26 - INFO - Train metrics: 0.00015516345281087394 | Validation metrics: 0.00021562894093074994
10-23 19:31:26 - INFO - Train metrics: 0.00015569188165096777 | Validation metrics: 0.0002162368614473521
10-23 19:31:26 - INFO - Train metrics: 0.00015625590013566528 | Validation metrics: 0.00021687660215192033
10-23 19:31:26 - INFO - Train metrics: 0.00015685184760121885 | Validation metrics: 0.00021754405014405047
10-23 19:31:26 - INFO - Train metrics: 0.00015747666741601125 | Validation metrics: 0.00021823573192567423
10-23 19:31:26 - INFO - Train metrics: 0.00015812506983120853 | Validation metrics: 0.00021894490510940252
10-23 19:31:26 - INFO - Train metrics: 0.00015879383482526811 | Validation metrics: 0.00021966852614011692
10-23 19:31:26 - INFO - Train metrics: 0.0001594800517963185 | Validation metrics: 0.0002204034900212792
10-23 19:31:26 - INFO - Train metrics: 0.00016017779151361697 | Validation metrics: 0.00022114221006043895
10-23 19:31:26 - INFO - Train metrics: 0.0001608838101036095 | Validation metrics: 0.00022188156641516458
10-23 19:31:26 - INFO - Train metrics: 0.00016159462951267263 | Validation metrics: 0.00022261783247225626
10-23 19:31:26 - INFO - Train metrics: 0.00016230736809688152 | Validation metrics: 0.00022334815061773465
10-23 19:31:26 - INFO - Train metrics: 0.00016301790131827848 | Validation metrics: 0.00022406811059236226
10-23 19:31:26 - INFO - Train metrics: 0.00016372360202733587 | Validation metrics: 0.00022477457065234017
10-23 19:31:26 - INFO - Train metrics: 0.0001644217937293096 | Validation metrics: 0.0002254657332686651
10-23 19:31:26 - INFO - Train metrics: 0.00016510867604018333 | Validation metrics: 0.00022613657303295577
10-23 19:31:26 - INFO - Train metrics: 0.0001657831373614 | Validation metrics: 0.000226786707185745
10-23 19:31:26 - INFO - Train metrics: 0.00016644209717286 | Validation metrics: 0.00022741314347109033
10-23 19:31:26 - INFO - Train metrics: 0.0001670829763572971 | Validation metrics: 0.00022801299531817097
10-23 19:31:26 - INFO - Train metrics: 0.00016770576138398319 | Validation metrics: 0.00022858714142748426
10-23 19:31:26 - INFO - Train metrics: 0.00016830686471345637 | Validation metrics: 0.00022913093562237918
10-23 19:31:26 - INFO - Train metrics: 0.00016888558158077962 | Validation metrics: 0.00022964502347873128
10-23 19:31:26 - INFO - Train metrics: 0.00016943979601347748 | Validation metrics: 0.00023012669995718757
10-23 19:31:26 - INFO - Train metrics: 0.00016996995737031569 | Validation metrics: 0.00023057724915402517
10-23 19:31:26 - INFO - Train metrics: 0.000170476516031247 | Validation metrics: 0.0002309975854880788
10-23 19:31:26 - INFO - Train metrics: 0.00017095763287489492 | Validation metrics: 0.00023138573739531855
10-23 19:31:26 - INFO - Train metrics: 0.00017141280897845163 | Validation metrics: 0.0002317415306937288
10-23 19:31:27 - INFO - Train metrics: 0.00017184180520179643 | Validation metrics: 0.00023206539400335815
10-23 19:31:27 - INFO - Train metrics: 0.00017224318283828288 | Validation metrics: 0.00023235506001822274
10-23 19:31:27 - INFO - Train metrics: 0.00017261863348423212 | Validation metrics: 0.00023261341295731865
10-23 19:31:27 - INFO - Train metrics: 0.0001729681766880816 | Validation metrics: 0.00023284125626275336
10-23 19:31:27 - INFO - Train metrics: 0.00017329042560489788 | Validation metrics: 0.00023303599557792298
10-23 19:31:27 - INFO - Train metrics: 0.0001735871253703793 | Validation metrics: 0.0002332011686351075
10-23 19:31:27 - INFO - Train metrics: 0.00017385765225807424 | Validation metrics: 0.0002333351344486341
10-23 19:31:27 - INFO - Train metrics: 0.00017410339344115484 | Validation metrics: 0.00023344007521783087
10-23 19:31:27 - INFO - Train metrics: 0.00017432487968158182 | Validation metrics: 0.00023351731119827942
10-23 19:31:27 - INFO - Train metrics: 0.00017452201440423858 | Validation metrics: 0.0002335663755527801
10-23 19:31:27 - INFO - Train metrics: 0.00017469621293788267 | Validation metrics: 0.00023358959041422966
10-23 19:31:27 - INFO - Train metrics: 0.00017484533870394312 | Validation metrics: 0.00023358395162057318
10-23 19:31:27 - INFO - Train metrics: 0.00017497387051933626 | Validation metrics: 0.0002335550482831707
10-23 19:31:27 - INFO - Train metrics: 0.000175081125866414 | Validation metrics: 0.00023350254850076379
10-23 19:31:27 - INFO - Train metrics: 0.00017516627138361503 | Validation metrics: 0.00023342511496704185
10-23 19:31:27 - INFO - Train metrics: 0.00017522943165575744 | Validation metrics: 0.00023332318717924258
10-23 19:31:27 - INFO - Train metrics: 0.0001752744709275182 | Validation metrics: 0.0002332013100385666
10-23 19:31:27 - INFO - Train metrics: 0.00017529967123406816 | Validation metrics: 0.00023305734250261777
print(mean_squared_error(y_valid, yhat))
ee, ex, extras, lam = narx_net.residuals(x_valid, y_valid, yhat)
narx_net.plot_result(y_valid, yhat, ee, ex)
0.00026312112873013853

Note¶
If you built the net configuration before calling the NARXNN, you can just pass the model to the NARXNN as follows:
class NARX(nn.Module):
def __init__(self):
super().__init__()
self.lin = nn.Linear(4, 10)
self.lin2 = nn.Linear(10, 10)
self.lin3 = nn.Linear(10, 1)
self.tanh = nn.Tanh()
def forward(self, xb):
z = self.lin(xb)
z = self.tanh(z)
z = self.lin2(z)
z = self.tanh(z)
z = self.lin3(z)
return z
narx_net2 = NARXNN(net=NARX(),
ylag=2,
xlag=2,
loss_func='mse_loss',
optimizer='Adam',
epochs=200,
verbose=True,
optim_params={'betas': (0.9, 0.999), 'eps': 1e-05} # optional parameters of the optimizer
)
narx_net2.fit(train_dl, valid_dl)
yhat = narx_net2.predict(x_valid, y_valid)
ee, ex, extras, lam = narx_net2.residuals(x_valid, y_valid, yhat)
narx_net2.plot_result(y_valid, yhat, ee, ex)
10-23 19:31:27 - INFO - Train metrics: 0.1066913293455179 | Validation metrics: 0.11570482467762147
10-23 19:31:27 - INFO - Train metrics: 0.005516387609750929 | Validation metrics: 0.006421713431299937
10-23 19:31:27 - INFO - Train metrics: 0.01815932510154588 | Validation metrics: 0.02034403428886876
10-23 19:31:27 - INFO - Train metrics: 0.004311364659932174 | Validation metrics: 0.005185838544158021
10-23 19:31:27 - INFO - Train metrics: 0.005786120177323657 | Validation metrics: 0.007037352074426834
10-23 19:31:27 - INFO - Train metrics: 0.002419338248235951 | Validation metrics: 0.003371279898353598
10-23 19:31:27 - INFO - Train metrics: 0.0028400106342710125 | Validation metrics: 0.003764424430714412
10-23 19:31:27 - INFO - Train metrics: 0.002245079865445731 | Validation metrics: 0.0031002962025766722
10-23 19:31:27 - INFO - Train metrics: 0.0021086231202008506 | Validation metrics: 0.0029119671101333817
10-23 19:31:27 - INFO - Train metrics: 0.0019392107933162148 | Validation metrics: 0.002725963182088853
10-23 19:31:27 - INFO - Train metrics: 0.001781572642640437 | Validation metrics: 0.0025074121311796133
10-23 19:31:27 - INFO - Train metrics: 0.0016811155891489414 | Validation metrics: 0.002396907678551295
10-23 19:31:27 - INFO - Train metrics: 0.001568967467734128 | Validation metrics: 0.0022422458266256134
10-23 19:31:27 - INFO - Train metrics: 0.0014740676177959692 | Validation metrics: 0.002122844889233209
10-23 19:31:27 - INFO - Train metrics: 0.001386276156265746 | Validation metrics: 0.0020093181090561126
10-23 19:31:27 - INFO - Train metrics: 0.001304912940776419 | Validation metrics: 0.001901699665162449
10-23 19:31:27 - INFO - Train metrics: 0.0012295647529549057 | Validation metrics: 0.001803356229863835
10-23 19:31:27 - INFO - Train metrics: 0.0011615688340122202 | Validation metrics: 0.0017136830996458579
10-23 19:31:27 - INFO - Train metrics: 0.001098362265626216 | Validation metrics: 0.0016289510072745156
10-23 19:31:27 - INFO - Train metrics: 0.001041349277126703 | Validation metrics: 0.0015525515743935801
10-23 19:31:27 - INFO - Train metrics: 0.0009890764293477947 | Validation metrics: 0.0014814607789645894
10-23 19:31:27 - INFO - Train metrics: 0.0009416951004294375 | Validation metrics: 0.0014161901487357387
10-23 19:31:27 - INFO - Train metrics: 0.0008986813931219411 | Validation metrics: 0.0013564598400879538
10-23 19:31:27 - INFO - Train metrics: 0.000859510167536879 | Validation metrics: 0.0013011463205188963
10-23 19:31:27 - INFO - Train metrics: 0.0008239726641595849 | Validation metrics: 0.0012504434979737106
10-23 19:31:27 - INFO - Train metrics: 0.000791502884824884 | Validation metrics: 0.001203494135883044
10-23 19:31:27 - INFO - Train metrics: 0.0007618001681451398 | Validation metrics: 0.0011600318948051544
10-23 19:31:27 - INFO - Train metrics: 0.0007345070014999512 | Validation metrics: 0.0011196741011144237
10-23 19:31:27 - INFO - Train metrics: 0.0007092610219222747 | Validation metrics: 0.001081978764638982
10-23 19:31:27 - INFO - Train metrics: 0.000685816335160388 | Validation metrics: 0.0010466920117838214
10-23 19:31:28 - INFO - Train metrics: 0.0006639084870341166 | Validation metrics: 0.0010134946670138625
10-23 19:31:28 - INFO - Train metrics: 0.0006433287454549606 | Validation metrics: 0.0009821385775476393
10-23 19:31:28 - INFO - Train metrics: 0.0006239050765869612 | Validation metrics: 0.0009524191593318575
10-23 19:31:28 - INFO - Train metrics: 0.0006054937346420603 | Validation metrics: 0.0009241453242591686
10-23 19:31:28 - INFO - Train metrics: 0.0005879742948263697 | Validation metrics: 0.0008971673234205957
10-23 19:31:28 - INFO - Train metrics: 0.000571250623613736 | Validation metrics: 0.0008713475444984405
10-23 19:31:28 - INFO - Train metrics: 0.0005552462205281458 | Validation metrics: 0.0008465826788898369
10-23 19:31:28 - INFO - Train metrics: 0.000539895725952354 | Validation metrics: 0.0008227758719868054
10-23 19:31:28 - INFO - Train metrics: 0.0005251489361435324 | Validation metrics: 0.0007998522610939814
10-23 19:31:28 - INFO - Train metrics: 0.0005109643353263668 | Validation metrics: 0.0007777493594054397
10-23 19:31:28 - INFO - Train metrics: 0.000497310658109218 | Validation metrics: 0.0007564163169437888
10-23 19:31:28 - INFO - Train metrics: 0.0004841624839373755 | Validation metrics: 0.0007358136953729572
10-23 19:31:28 - INFO - Train metrics: 0.00047150289918177 | Validation metrics: 0.0007159118258366079
10-23 19:31:28 - INFO - Train metrics: 0.00045931874424275153 | Validation metrics: 0.0006966868990496026
10-23 19:31:28 - INFO - Train metrics: 0.0004476028285047651 | Validation metrics: 0.0006781250316028794
10-23 19:31:28 - INFO - Train metrics: 0.00043635202348839145 | Validation metrics: 0.000660215035278463
10-23 19:31:28 - INFO - Train metrics: 0.0004255660502636866 | Validation metrics: 0.0006429522869769822
10-23 19:31:28 - INFO - Train metrics: 0.0004152478724613058 | Validation metrics: 0.0006263340803361827
10-23 19:31:28 - INFO - Train metrics: 0.0004053996956993576 | Validation metrics: 0.0006103593123502879
10-23 19:31:28 - INFO - Train metrics: 0.0003960259902970235 | Validation metrics: 0.0005950280476944766
10-23 19:31:28 - INFO - Train metrics: 0.0003871284043042918 | Validation metrics: 0.0005803390692994751
10-23 19:31:28 - INFO - Train metrics: 0.0003787056170345604 | Validation metrics: 0.0005662885054738985
10-23 19:31:28 - INFO - Train metrics: 0.000370751451473347 | Validation metrics: 0.000552868765115625
10-23 19:31:28 - INFO - Train metrics: 0.0003632516986783827 | Validation metrics: 0.0005400650270255001
10-23 19:31:28 - INFO - Train metrics: 0.00035618150718790247 | Validation metrics: 0.0005278550382383694
10-23 19:31:28 - INFO - Train metrics: 0.0003495026548465429 | Validation metrics: 0.0005162044133134939
10-23 19:31:28 - INFO - Train metrics: 0.00034315840085562233 | Validation metrics: 0.0005050653320116302
10-23 19:31:28 - INFO - Train metrics: 0.00033707295577707034 | Validation metrics: 0.0004943735742320617
10-23 19:31:28 - INFO - Train metrics: 0.0003311521165658788 | Validation metrics: 0.0004840532801057579
10-23 19:31:28 - INFO - Train metrics: 0.0003252848223485473 | Validation metrics: 0.0004740145875874794
10-23 19:31:28 - INFO - Train metrics: 0.000319358741749022 | Validation metrics: 0.0004641707313971387
10-23 19:31:28 - INFO - Train metrics: 0.0003132761653307312 | Validation metrics: 0.00045445161069639854
10-23 19:31:28 - INFO - Train metrics: 0.0003069840028198123 | Validation metrics: 0.00044482913823102157
10-23 19:31:28 - INFO - Train metrics: 0.00030050203592206043 | Validation metrics: 0.0004353397308303175
10-23 19:31:28 - INFO - Train metrics: 0.00029394547576096404 | Validation metrics: 0.0004261019766081426
10-23 19:31:28 - INFO - Train metrics: 0.000287517957534655 | Validation metrics: 0.0004173003826784252
10-23 19:31:28 - INFO - Train metrics: 0.0002814733430878598 | Validation metrics: 0.00040914333452508227
10-23 19:31:28 - INFO - Train metrics: 0.00027603937303040523 | Validation metrics: 0.00040178610167155665
10-23 19:31:28 - INFO - Train metrics: 0.00027133387316223746 | Validation metrics: 0.0003952515094583346
10-23 19:31:28 - INFO - Train metrics: 0.0002673143506508769 | Validation metrics: 0.0003893949253710382
10-23 19:31:28 - INFO - Train metrics: 0.0002638016286758907 | Validation metrics: 0.0003839471613202771
10-23 19:31:28 - INFO - Train metrics: 0.00026057177835393856 | Validation metrics: 0.0003786285976982779
10-23 19:31:28 - INFO - Train metrics: 0.00025746227105797025 | Validation metrics: 0.00037327428604711334
10-23 19:31:28 - INFO - Train metrics: 0.0002544172383747986 | Validation metrics: 0.0003678813768372015
10-23 19:31:28 - INFO - Train metrics: 0.0002514562211559623 | Validation metrics: 0.0003625607068622203
10-23 19:31:28 - INFO - Train metrics: 0.00024861088663019837 | Validation metrics: 0.00035743930905050776
10-23 19:31:28 - INFO - Train metrics: 0.00024589160269063273 | Validation metrics: 0.0003525857376216939
10-23 19:31:28 - INFO - Train metrics: 0.00024328612647180382 | Validation metrics: 0.0003479876011055
10-23 19:31:28 - INFO - Train metrics: 0.00024076757420386587 | Validation metrics: 0.00034356956996936164
10-23 19:31:28 - INFO - Train metrics: 0.0002383069773636441 | Validation metrics: 0.0003392457029537646
10-23 19:31:28 - INFO - Train metrics: 0.00023589481505971487 | Validation metrics: 0.0003349854627911077
10-23 19:31:28 - INFO - Train metrics: 0.00023354633762629558 | Validation metrics: 0.0003308271712886941
10-23 19:31:28 - INFO - Train metrics: 0.00023127997004926523 | Validation metrics: 0.0003268253587355668
10-23 19:31:28 - INFO - Train metrics: 0.00022909834757470584 | Validation metrics: 0.0003229958828976096
10-23 19:31:28 - INFO - Train metrics: 0.00022698534937939585 | Validation metrics: 0.0003193012063010511
10-23 19:31:28 - INFO - Train metrics: 0.00022492145664025948 | Validation metrics: 0.0003156938294367394
10-23 19:31:28 - INFO - Train metrics: 0.00022290183162960902 | Validation metrics: 0.0003121598806547358
10-23 19:31:28 - INFO - Train metrics: 0.0002209361343391305 | Validation metrics: 0.0003087242551952262
10-23 19:31:28 - INFO - Train metrics: 0.000219030597875651 | Validation metrics: 0.000305403890605602
10-23 19:31:28 - INFO - Train metrics: 0.00021718042455660296 | Validation metrics: 0.00030218577394591214
10-23 19:31:28 - INFO - Train metrics: 0.00021537702999201448 | Validation metrics: 0.00029905189259090656
10-23 19:31:28 - INFO - Train metrics: 0.00021361927716306557 | Validation metrics: 0.00029600092099339823
10-23 19:31:28 - INFO - Train metrics: 0.0002119078908207824 | Validation metrics: 0.0002930344636857773
10-23 19:31:28 - INFO - Train metrics: 0.00021024166727742007 | Validation metrics: 0.0002901490323240822
10-23 19:31:28 - INFO - Train metrics: 0.00020861740343396397 | Validation metrics: 0.00028733887375718113
10-23 19:31:28 - INFO - Train metrics: 0.0002070343224588492 | Validation metrics: 0.0002846030143296553
10-23 19:31:28 - INFO - Train metrics: 0.00020549157786096695 | Validation metrics: 0.0002819402916521549
10-23 19:31:28 - INFO - Train metrics: 0.00020398784027362527 | Validation metrics: 0.00027934736378180486
10-23 19:31:28 - INFO - Train metrics: 0.00020252165487001097 | Validation metrics: 0.00027682126212789855
10-23 19:31:28 - INFO - Train metrics: 0.00020109290910072457 | Validation metrics: 0.0002743627357465977
10-23 19:31:28 - INFO - Train metrics: 0.00019970001618699977 | Validation metrics: 0.00027196779800108586
10-23 19:31:28 - INFO - Train metrics: 0.00019834223037053431 | Validation metrics: 0.00026963591267533527
10-23 19:31:28 - INFO - Train metrics: 0.0001970190234788061 | Validation metrics: 0.0002673655963559268
10-23 19:31:28 - INFO - Train metrics: 0.0001957289783230383 | Validation metrics: 0.00026515481442053137
10-23 19:31:28 - INFO - Train metrics: 0.00019447156833543122 | Validation metrics: 0.00026300236244093287
10-23 19:31:28 - INFO - Train metrics: 0.00019324581944943874 | Validation metrics: 0.00026090692721702385
10-23 19:31:28 - INFO - Train metrics: 0.0001920512006478034 | Validation metrics: 0.0002588669406696966
10-23 19:31:29 - INFO - Train metrics: 0.0001908859431616411 | Validation metrics: 0.00025687982637501047
10-23 19:31:29 - INFO - Train metrics: 0.00018974941188555893 | Validation metrics: 0.0002549440706398037
10-23 19:31:29 - INFO - Train metrics: 0.0001886404452922481 | Validation metrics: 0.00025305770498681627
10-23 19:31:29 - INFO - Train metrics: 0.00018755790205931473 | Validation metrics: 0.0002512187335988262
10-23 19:31:29 - INFO - Train metrics: 0.00018650098711971128 | Validation metrics: 0.0002494252932427282
10-23 19:31:29 - INFO - Train metrics: 0.00018546830618842725 | Validation metrics: 0.00024767467344057455
10-23 19:31:29 - INFO - Train metrics: 0.00018445895668200887 | Validation metrics: 0.0002459653569714665
10-23 19:31:29 - INFO - Train metrics: 0.00018347177466606363 | Validation metrics: 0.0002442948879424784
10-23 19:31:29 - INFO - Train metrics: 0.0001825055061229143 | Validation metrics: 0.00024266096538713559
10-23 19:31:29 - INFO - Train metrics: 0.00018155953359911523 | Validation metrics: 0.00024106219981801744
10-23 19:31:29 - INFO - Train metrics: 0.00018063194247839136 | Validation metrics: 0.00023949517550374936
10-23 19:31:29 - INFO - Train metrics: 0.00017972251276787894 | Validation metrics: 0.00023795954025858506
10-23 19:31:29 - INFO - Train metrics: 0.0001788300169642926 | Validation metrics: 0.0002364534077721394
10-23 19:31:29 - INFO - Train metrics: 0.0001779533451102688 | Validation metrics: 0.00023497417869018108
10-23 19:31:29 - INFO - Train metrics: 0.0001770915592455172 | Validation metrics: 0.0002335211105710554
10-23 19:31:29 - INFO - Train metrics: 0.00017624460820127324 | Validation metrics: 0.000232093658526381
10-23 19:31:29 - INFO - Train metrics: 0.00017541137024005153 | Validation metrics: 0.00023068982365216607
10-23 19:31:29 - INFO - Train metrics: 0.00017459233246806702 | Validation metrics: 0.0002293103960145152
10-23 19:31:29 - INFO - Train metrics: 0.00017378626902322787 | Validation metrics: 0.0002279532169323471
10-23 19:31:29 - INFO - Train metrics: 0.00017299399120216129 | Validation metrics: 0.00022661950597374915
10-23 19:31:29 - INFO - Train metrics: 0.00017221443438091382 | Validation metrics: 0.00022530722057898387
10-23 19:31:29 - INFO - Train metrics: 0.0001714489409098411 | Validation metrics: 0.00022401808625242362
10-23 19:31:29 - INFO - Train metrics: 0.00017069639258914134 | Validation metrics: 0.00022275024608149185
10-23 19:31:29 - INFO - Train metrics: 0.00016995816244125216 | Validation metrics: 0.00022150576158751255
10-23 19:31:29 - INFO - Train metrics: 0.00016923344310841064 | Validation metrics: 0.00022028254640801348
10-23 19:31:29 - INFO - Train metrics: 0.0001685230607309269 | Validation metrics: 0.0002190822277116975
10-23 19:31:29 - INFO - Train metrics: 0.00016782666992875783 | Validation metrics: 0.0002179032143421772
10-23 19:31:29 - INFO - Train metrics: 0.0001671442728172194 | Validation metrics: 0.00021674626476291304
10-23 19:31:29 - INFO - Train metrics: 0.00016647613428493396 | Validation metrics: 0.00021561111556954042
10-23 19:31:29 - INFO - Train metrics: 0.00016582218397940909 | Validation metrics: 0.00021449745132357372
10-23 19:31:29 - INFO - Train metrics: 0.00016518208768071704 | Validation metrics: 0.0002134052695261992
10-23 19:31:29 - INFO - Train metrics: 0.00016455588619986825 | Validation metrics: 0.00021233382229716752
10-23 19:31:29 - INFO - Train metrics: 0.00016394360419123534 | Validation metrics: 0.00021128375947503656
10-23 19:31:29 - INFO - Train metrics: 0.00016334494923061707 | Validation metrics: 0.00021025434317481186
10-23 19:31:29 - INFO - Train metrics: 0.0001627592808149176 | Validation metrics: 0.0002092440841035127
10-23 19:31:29 - INFO - Train metrics: 0.00016218691357915618 | Validation metrics: 0.00020825478464078082
10-23 19:31:29 - INFO - Train metrics: 0.000161627410929405 | Validation metrics: 0.0002072851339383333
10-23 19:31:29 - INFO - Train metrics: 0.00016108050724762237 | Validation metrics: 0.00020633485433386845
10-23 19:31:29 - INFO - Train metrics: 0.00016054600197996916 | Validation metrics: 0.0002054042059979919
10-23 19:31:29 - INFO - Train metrics: 0.00016002367954656837 | Validation metrics: 0.00020449267329314177
10-23 19:31:29 - INFO - Train metrics: 0.00015951329019424834 | Validation metrics: 0.00020359987507673037
10-23 19:31:29 - INFO - Train metrics: 0.00015901430841286745 | Validation metrics: 0.0002027252698411243
10-23 19:31:29 - INFO - Train metrics: 0.00015852721011205424 | Validation metrics: 0.0002018702547171746
10-23 19:31:29 - INFO - Train metrics: 0.00015805112440162397 | Validation metrics: 0.0002010330925883744
10-23 19:31:29 - INFO - Train metrics: 0.00015758610471154104 | Validation metrics: 0.00020021440889310055
10-23 19:31:29 - INFO - Train metrics: 0.00015713197448586152 | Validation metrics: 0.0001994136744707992
10-23 19:31:29 - INFO - Train metrics: 0.0001566884882385168 | Validation metrics: 0.00019863117918386266
10-23 19:31:29 - INFO - Train metrics: 0.0001562558448456816 | Validation metrics: 0.00019786746115917623
10-23 19:31:29 - INFO - Train metrics: 0.00015583329555843455 | Validation metrics: 0.0001971213261107679
10-23 19:31:29 - INFO - Train metrics: 0.00015542107032621302 | Validation metrics: 0.0001963931540053131
10-23 19:31:29 - INFO - Train metrics: 0.00015501899872019532 | Validation metrics: 0.00019568312681524666
10-23 19:31:29 - INFO - Train metrics: 0.00015462673167677079 | Validation metrics: 0.0001949911928004256
10-23 19:31:29 - INFO - Train metrics: 0.00015424429023968647 | Validation metrics: 0.00019431682427018654
10-23 19:31:29 - INFO - Train metrics: 0.00015387142367105473 | Validation metrics: 0.0001936604479337205
10-23 19:31:29 - INFO - Train metrics: 0.00015350796839859533 | Validation metrics: 0.00019302199970380488
10-23 19:31:29 - INFO - Train metrics: 0.0001531538360531589 | Validation metrics: 0.00019240119706749953
10-23 19:31:29 - INFO - Train metrics: 0.00015280838186454662 | Validation metrics: 0.00019179715088808513
10-23 19:31:29 - INFO - Train metrics: 0.00015247204884557628 | Validation metrics: 0.00019121111483510697
10-23 19:31:29 - INFO - Train metrics: 0.00015214455799336188 | Validation metrics: 0.00019064285196222818
10-23 19:31:29 - INFO - Train metrics: 0.00015182514152113806 | Validation metrics: 0.0001900905801742949
10-23 19:31:29 - INFO - Train metrics: 0.00015151418645879052 | Validation metrics: 0.00018955546494742686
10-23 19:31:29 - INFO - Train metrics: 0.0001512111821033896 | Validation metrics: 0.00018903700255017464
10-23 19:31:29 - INFO - Train metrics: 0.00015091631201330461 | Validation metrics: 0.0001885355228259501
10-23 19:31:29 - INFO - Train metrics: 0.00015062888334960417 | Validation metrics: 0.0001880494150688232
10-23 19:31:29 - INFO - Train metrics: 0.00015034877747223762 | Validation metrics: 0.00018757899354136727
10-23 19:31:29 - INFO - Train metrics: 0.00015007624781794408 | Validation metrics: 0.00018712464511874273
10-23 19:31:29 - INFO - Train metrics: 0.00014981077080954304 | Validation metrics: 0.00018668568512598862
10-23 19:31:29 - INFO - Train metrics: 0.00014955202710726078 | Validation metrics: 0.00018626117621397956
10-23 19:31:29 - INFO - Train metrics: 0.00014930022346500054 | Validation metrics: 0.00018585113925515966
10-23 19:31:29 - INFO - Train metrics: 0.0001490553484673502 | Validation metrics: 0.00018545652600358042
10-23 19:31:29 - INFO - Train metrics: 0.00014881663790169899 | Validation metrics: 0.0001850752224628296
10-23 19:31:29 - INFO - Train metrics: 0.00014858390634965834 | Validation metrics: 0.00018470713176712807
10-23 19:31:29 - INFO - Train metrics: 0.00014835771827236108 | Validation metrics: 0.0001843522418633743
10-23 19:31:29 - INFO - Train metrics: 0.00014813749615206877 | Validation metrics: 0.000184010596407314
10-23 19:31:29 - INFO - Train metrics: 0.00014792290117351202 | Validation metrics: 0.00018368044931610876
10-23 19:31:29 - INFO - Train metrics: 0.0001477137986858863 | Validation metrics: 0.00018336212778736772
10-23 19:31:29 - INFO - Train metrics: 0.00014751076620693007 | Validation metrics: 0.00018305633251785742
10-23 19:31:30 - INFO - Train metrics: 0.00014731290191907976 | Validation metrics: 0.000182760881896206
10-23 19:31:30 - INFO - Train metrics: 0.00014712012872271436 | Validation metrics: 0.00018247571477497166
10-23 19:31:30 - INFO - Train metrics: 0.0001469329362040745 | Validation metrics: 0.00018220142219709515
10-23 19:31:30 - INFO - Train metrics: 0.0001467508519547443 | Validation metrics: 0.00018193691232796722
10-23 19:31:30 - INFO - Train metrics: 0.00014657364810413136 | Validation metrics: 0.00018168184621085535
10-23 19:31:30 - INFO - Train metrics: 0.00014640160949047618 | Validation metrics: 0.00018143650209601742
10-23 19:31:30 - INFO - Train metrics: 0.00014623381150186173 | Validation metrics: 0.00018119875452189585
10-23 19:31:30 - INFO - Train metrics: 0.00014607070907711152 | Validation metrics: 0.00018096968900257102
10-23 19:31:30 - INFO - Train metrics: 0.00014591241290560575 | Validation metrics: 0.00018074852458525902
10-23 19:31:30 - INFO - Train metrics: 0.00014575823784378686 | Validation metrics: 0.0001805345732142509
10-23 19:31:30 - INFO - Train metrics: 0.00014560844805085784 | Validation metrics: 0.00018032807271781782
10-23 19:31:30 - INFO - Train metrics: 0.00014546267487829958 | Validation metrics: 0.00018012795242777264
10-23 19:31:30 - INFO - Train metrics: 0.00014532118956068238 | Validation metrics: 0.0001799346075976512
10-23 19:31:30 - INFO - Train metrics: 0.00014518324652205882 | Validation metrics: 0.00017974712998215862
10-23 19:31:30 - INFO - Train metrics: 0.00014504927509863461 | Validation metrics: 0.000179565162103943
10-23 19:31:30 - INFO - Train metrics: 0.0001449195156340723 | Validation metrics: 0.0001793900005533501
