This example illustrates how simple it is to train a classifier using side information.

It illustrates the exemplary use of the multi-view pattern; for more info on how to use other patterns, check out the other examples.


In [18]:
from __future__ import print_function

import concarne
import concarne.patterns
import concarne.training

import lasagne
import theano.tensor as T

%pylab inline

try:
    import sklearn.linear_model as sklm
except:
    print (
"""You don't have scikit-learn installed; install it to compare
learning with side information to simple supervised learning""")
    sklm = None

import numpy as np


Populating the interactive namespace from numpy and matplotlib
WARNING: pylab import has clobbered these variables: ['beta', 'split']
`%matplotlib` prevents importing * from pylab and numpy

Data generation


In [19]:
num_samples = 300

input_dim = 50
side_dim = 50

In [20]:
# generate some random data with 100 samples 
# and 5 dimensions
X = np.random.randn(num_samples, input_dim)

# select the third dimension as the relevant 
# for our classification task
S = X[:, 2:3]

# The labels are simply the sign of S 
# (note the downcast to int32 - this is required 
# by theano)
y = np.asarray(S > 0, dtype='int32').reshape( (-1,) )
# This means we have 2 classes - we will use 
# that later for building the pattern
num_classes = 2

In [21]:
plt.plot(S)
plt.plot(y)


Out[21]:
[<matplotlib.lines.Line2D at 0x7f0c7101c510>]

Now let's define some side information: we simulate an additional sensorwhich contains S, but embedded into a different space.


In [22]:
Z = np.random.randn(num_samples, side_dim)
# set second dimension of Z to correspond to S
Z[:, 1] = S[:,0]

Let's make it harder to find S in X and Z by applying a random rotations to both data sets


In [23]:
# random rotation 1
R = np.linalg.qr(np.random.randn(input_dim, input_dim))[0]
X = X.dot(R)

# random rotation 2
Q = np.linalg.qr(np.random.randn(side_dim, side_dim))[0]
Z = Z.dot(Q)

Finally, split our data into training, test, and validation data


In [24]:
split = num_samples/3

X_train = X[:split]
X_val = X[split:2*split]
X_test = X[2*split:]

y_train = y[:split]
y_val = y[split:2*split]
y_test = y[2*split:]

Z_train = Z[:split]
Z_val = Z[split:2*split]
Z_test = Z[2*split:]

Purely supervised learning

Let's check how hard the problem is for supervised learning alone.


In [25]:
if sklm is not None:
    # let's try different regularizations
    for c in [1e-5, 1e-1, 1, 10, 100, 1e5]:
        lr = sklm.LogisticRegression(C=c)
        lr.fit(X_train, y_train)
        print ("Logistic Regression (C=%f)\n accuracy = %.3f %%" % (c, 100*lr.score(X_test, y_test)))


Logistic Regression (C=0.000010)
 accuracy = 78.000 %
Logistic Regression (C=0.100000)
 accuracy = 81.000 %
Logistic Regression (C=1.000000)
 accuracy = 78.000 %
Logistic Regression (C=10.000000)
 accuracy = 79.000 %
Logistic Regression (C=100.000000)
 accuracy = 80.000 %
Logistic Regression (C=100000.000000)
 accuracy = 76.000 %

Learning with side information: building the pattern


In [26]:
# Let's first define the theano variables which will represent our data
input_var = T.matrix('inputs')  # for X
target_var = T.ivector('targets')  # for Y
side_var = T.matrix('sideinfo')  # for Z

In [27]:
# Size of the intermediate representation phi(X); 
# since S is 1-dim, phi(X) can also map to a 
# 1-dim vector
representation_dim = 1

Now define the functions - we choose linear functions.

concarne internally relies on lasagne which encodes functions as (sets of) layers. Additionally, concarne supports nolearn style initialization of lasagne layers as follows:


In [28]:
phi = [ (lasagne.layers.DenseLayer, 
         { 'num_units': concarne.patterns.Pattern.PHI_OUTPUT_SHAPE,
         'nonlinearity':None, 'b':None })]
psi = [(lasagne.layers.DenseLayer, 
        { 'num_units': concarne.patterns.Pattern.PSI_OUTPUT_SHAPE, 
        'nonlinearity':lasagne.nonlinearities.softmax, 'b':None })]
beta = [(lasagne.layers.DenseLayer, 
        { 'num_units': concarne.patterns.Pattern.BETA_OUTPUT_SHAPE, 
        'nonlinearity':None, 'b':None })]

For the variable of your layer that denotes the output of the network you should use the markers PHI_OUTPUT_SHAPE, PSI_OUTPUT_SHAPE and BETA_OUTPUT_SHAPE, so that the pattern can automatically infer the correct shape.


In [29]:
pattern = concarne.patterns.MultiViewPattern(
     phi=phi, psi=psi, beta=beta,
     # the following parameters are required to
     # build the functions and the losses
     input_var=input_var, 
     target_var=target_var, 
     side_var=side_var,
     input_shape=input_dim,
     target_shape=num_classes,
     side_shape=side_dim,
     representation_shape=representation_dim,
     # we have to define two loss functions: 
     # 1) the target loss deals with 
     #    optimizing psi and phi wrt. X & Y
     target_loss=lasagne.objectives.categorical_crossentropy,
     # 2) the side loss deals with 
     #    optimizing beta and phi wrt. X & Z,
     #    for multi-view it is beta(Z)~phi(X)
     side_loss=lasagne.objectives.squared_error)

Training

To train a pattern, you can use the PatternTrainer which trains the pattern via stochastic gradient descent. It also supports different procedures to train the pattern.


In [30]:
trainer = concarne.training.PatternTrainer(
   pattern,
   procedure='simultaneous',
   num_epochs=500,
   batch_size=10,
   update=lasagne.updates.nesterov_momentum,
   update_learning_rate=0.01,
   update_momentum=0.9,
   )

Let's train!


In [31]:
trainer.fit_XYZ(X_train, y_train, [Z_train], 
                X_val=X_val, y_val=y_val, 
                side_val=[X_val, Z_val], 
                verbose=True)
pass


Training procedure: simultaneous
Optimize phi & psi & beta using a weighted sum of target and side objective
 Update: nesterov_momentum(learning_rate=0.01, momentum=0.9) 
   -> standard mode with single training function
Starting training...
Epoch 1 of 500 took 0.004s
  training loss:		1.495710
   (target: 0.355893,  side: 1.139818 (absolute))
  validation loss:		0.703471
  validation accuracy:		49.00 %
  side validation loss:		0.491789
  side validation accuracy:	nan %
Epoch 2 of 500 took 0.005s
  training loss:		0.544633
   (target: 0.346933,  side: 0.197700 (absolute))
  validation loss:		0.697445
  validation accuracy:		50.00 %
  side validation loss:		0.259028
  side validation accuracy:	nan %
Epoch 3 of 500 took 0.004s
  training loss:		0.389688
   (target: 0.344722,  side: 0.044966 (absolute))
  validation loss:		0.694272
  validation accuracy:		52.00 %
  side validation loss:		0.171608
  side validation accuracy:	nan %
Epoch 4 of 500 took 0.004s
  training loss:		0.354294
   (target: 0.341375,  side: 0.012919 (absolute))
  validation loss:		0.689545
  validation accuracy:		50.00 %
  side validation loss:		0.143140
  side validation accuracy:	nan %
Epoch 5 of 500 took 0.004s
  training loss:		0.343095
   (target: 0.335787,  side: 0.007308 (absolute))
  validation loss:		0.679085
  validation accuracy:		62.00 %
  side validation loss:		0.125700
  side validation accuracy:	nan %
Epoch 6 of 500 took 0.004s
  training loss:		0.329919
   (target: 0.323550,  side: 0.006369 (absolute))
  validation loss:		0.653539
  validation accuracy:		70.00 %
  side validation loss:		0.116395
  side validation accuracy:	nan %
Epoch 7 of 500 took 0.004s
  training loss:		0.307952
   (target: 0.301399,  side: 0.006553 (absolute))
  validation loss:		0.605843
  validation accuracy:		73.00 %
  side validation loss:		0.116766
  side validation accuracy:	nan %
Epoch 8 of 500 took 0.005s
  training loss:		0.273438
   (target: 0.264832,  side: 0.008606 (absolute))
  validation loss:		0.534339
  validation accuracy:		80.00 %
  side validation loss:		0.129018
  side validation accuracy:	nan %
Epoch 9 of 500 took 0.004s
  training loss:		0.229569
   (target: 0.217878,  side: 0.011691 (absolute))
  validation loss:		0.451535
  validation accuracy:		88.00 %
  side validation loss:		0.148894
  side validation accuracy:	nan %
Epoch 10 of 500 took 0.004s
  training loss:		0.185251
   (target: 0.172525,  side: 0.012726 (absolute))
  validation loss:		0.386586
  validation accuracy:		88.00 %
  side validation loss:		0.170254
  side validation accuracy:	nan %
Epoch 11 of 500 took 0.004s
  training loss:		0.150119
   (target: 0.136290,  side: 0.013829 (absolute))
  validation loss:		0.336170
  validation accuracy:		87.00 %
  side validation loss:		0.195884
  side validation accuracy:	nan %
Epoch 12 of 500 took 0.005s
  training loss:		0.126842
   (target: 0.111549,  side: 0.015293 (absolute))
  validation loss:		0.302726
  validation accuracy:		88.00 %
  side validation loss:		0.211059
  side validation accuracy:	nan %
Epoch 13 of 500 took 0.004s
  training loss:		0.107820
   (target: 0.093784,  side: 0.014036 (absolute))
  validation loss:		0.281181
  validation accuracy:		89.00 %
  side validation loss:		0.233755
  side validation accuracy:	nan %
Epoch 14 of 500 took 0.004s
  training loss:		0.095174
   (target: 0.081015,  side: 0.014159 (absolute))
  validation loss:		0.261562
  validation accuracy:		89.00 %
  side validation loss:		0.248399
  side validation accuracy:	nan %
Epoch 15 of 500 took 0.005s
  training loss:		0.085662
   (target: 0.070896,  side: 0.014766 (absolute))
  validation loss:		0.250615
  validation accuracy:		89.00 %
  side validation loss:		0.255128
  side validation accuracy:	nan %
Epoch 16 of 500 took 0.004s
  training loss:		0.078066
   (target: 0.065006,  side: 0.013059 (absolute))
  validation loss:		0.241982
  validation accuracy:		89.00 %
  side validation loss:		0.270143
  side validation accuracy:	nan %
Epoch 17 of 500 took 0.004s
  training loss:		0.071939
   (target: 0.057959,  side: 0.013979 (absolute))
  validation loss:		0.233651
  validation accuracy:		90.00 %
  side validation loss:		0.284076
  side validation accuracy:	nan %
Epoch 18 of 500 took 0.005s
  training loss:		0.067285
   (target: 0.053793,  side: 0.013493 (absolute))
  validation loss:		0.224974
  validation accuracy:		89.00 %
  side validation loss:		0.290438
  side validation accuracy:	nan %
Epoch 19 of 500 took 0.004s
  training loss:		0.063564
   (target: 0.049657,  side: 0.013907 (absolute))
  validation loss:		0.215998
  validation accuracy:		90.00 %
  side validation loss:		0.294067
  side validation accuracy:	nan %
Epoch 20 of 500 took 0.004s
  training loss:		0.059572
   (target: 0.046471,  side: 0.013101 (absolute))
  validation loss:		0.215216
  validation accuracy:		91.00 %
  side validation loss:		0.303529
  side validation accuracy:	nan %
Epoch 21 of 500 took 0.004s
  training loss:		0.056929
   (target: 0.043655,  side: 0.013274 (absolute))
  validation loss:		0.209001
  validation accuracy:		90.00 %
  side validation loss:		0.310360
  side validation accuracy:	nan %
Epoch 22 of 500 took 0.004s
  training loss:		0.053668
   (target: 0.040438,  side: 0.013230 (absolute))
  validation loss:		0.205045
  validation accuracy:		90.00 %
  side validation loss:		0.315774
  side validation accuracy:	nan %
Epoch 23 of 500 took 0.005s
  training loss:		0.051662
   (target: 0.038800,  side: 0.012862 (absolute))
  validation loss:		0.198977
  validation accuracy:		91.00 %
  side validation loss:		0.317712
  side validation accuracy:	nan %
Epoch 24 of 500 took 0.004s
  training loss:		0.049286
   (target: 0.036805,  side: 0.012480 (absolute))
  validation loss:		0.196500
  validation accuracy:		90.00 %
  side validation loss:		0.326186
  side validation accuracy:	nan %
Epoch 25 of 500 took 0.004s
  training loss:		0.047118
   (target: 0.035371,  side: 0.011747 (absolute))
  validation loss:		0.193916
  validation accuracy:		91.00 %
  side validation loss:		0.325923
  side validation accuracy:	nan %
Epoch 26 of 500 took 0.006s
  training loss:		0.045590
   (target: 0.033217,  side: 0.012373 (absolute))
  validation loss:		0.185526
  validation accuracy:		92.00 %
  side validation loss:		0.322538
  side validation accuracy:	nan %
Epoch 27 of 500 took 0.004s
  training loss:		0.043795
   (target: 0.031535,  side: 0.012260 (absolute))
  validation loss:		0.181353
  validation accuracy:		91.00 %
  side validation loss:		0.327163
  side validation accuracy:	nan %
Epoch 28 of 500 took 0.004s
  training loss:		0.042319
   (target: 0.030975,  side: 0.011344 (absolute))
  validation loss:		0.182624
  validation accuracy:		91.00 %
  side validation loss:		0.329322
  side validation accuracy:	nan %
Epoch 29 of 500 took 0.004s
  training loss:		0.041094
   (target: 0.029805,  side: 0.011289 (absolute))
  validation loss:		0.174700
  validation accuracy:		92.00 %
  side validation loss:		0.334443
  side validation accuracy:	nan %
Epoch 30 of 500 took 0.004s
  training loss:		0.039618
   (target: 0.028485,  side: 0.011133 (absolute))
  validation loss:		0.173896
  validation accuracy:		92.00 %
  side validation loss:		0.333489
  side validation accuracy:	nan %
Epoch 31 of 500 took 0.004s
  training loss:		0.038662
   (target: 0.027173,  side: 0.011489 (absolute))
  validation loss:		0.168231
  validation accuracy:		92.00 %
  side validation loss:		0.331792
  side validation accuracy:	nan %
Epoch 32 of 500 took 0.004s
  training loss:		0.037865
   (target: 0.027136,  side: 0.010728 (absolute))
  validation loss:		0.170550
  validation accuracy:		92.00 %
  side validation loss:		0.329533
  side validation accuracy:	nan %
Epoch 33 of 500 took 0.005s
  training loss:		0.036525
   (target: 0.025485,  side: 0.011041 (absolute))
  validation loss:		0.162026
  validation accuracy:		93.00 %
  side validation loss:		0.334490
  side validation accuracy:	nan %
Epoch 34 of 500 took 0.004s
  training loss:		0.035359
   (target: 0.025181,  side: 0.010177 (absolute))
  validation loss:		0.159865
  validation accuracy:		93.00 %
  side validation loss:		0.334889
  side validation accuracy:	nan %
Epoch 35 of 500 took 0.004s
  training loss:		0.034428
   (target: 0.024135,  side: 0.010294 (absolute))
  validation loss:		0.157652
  validation accuracy:		93.00 %
  side validation loss:		0.334438
  side validation accuracy:	nan %
Epoch 36 of 500 took 0.004s
  training loss:		0.033437
   (target: 0.023370,  side: 0.010067 (absolute))
  validation loss:		0.154351
  validation accuracy:		94.00 %
  side validation loss:		0.331729
  side validation accuracy:	nan %
Epoch 37 of 500 took 0.005s
  training loss:		0.033183
   (target: 0.022941,  side: 0.010242 (absolute))
  validation loss:		0.153141
  validation accuracy:		94.00 %
  side validation loss:		0.331355
  side validation accuracy:	nan %
Epoch 38 of 500 took 0.005s
  training loss:		0.032465
   (target: 0.022599,  side: 0.009866 (absolute))
  validation loss:		0.150296
  validation accuracy:		94.00 %
  side validation loss:		0.332353
  side validation accuracy:	nan %
Epoch 39 of 500 took 0.004s
  training loss:		0.031797
   (target: 0.021608,  side: 0.010189 (absolute))
  validation loss:		0.147681
  validation accuracy:		94.00 %
  side validation loss:		0.333668
  side validation accuracy:	nan %
Epoch 40 of 500 took 0.005s
  training loss:		0.030855
   (target: 0.021452,  side: 0.009403 (absolute))
  validation loss:		0.143274
  validation accuracy:		94.00 %
  side validation loss:		0.330764
  side validation accuracy:	nan %
Epoch 41 of 500 took 0.004s
  training loss:		0.030114
   (target: 0.021095,  side: 0.009019 (absolute))
  validation loss:		0.141862
  validation accuracy:		96.00 %
  side validation loss:		0.331862
  side validation accuracy:	nan %
Epoch 42 of 500 took 0.004s
  training loss:		0.029509
   (target: 0.019811,  side: 0.009698 (absolute))
  validation loss:		0.142732
  validation accuracy:		94.00 %
  side validation loss:		0.331570
  side validation accuracy:	nan %
Epoch 43 of 500 took 0.004s
  training loss:		0.028967
   (target: 0.019900,  side: 0.009068 (absolute))
  validation loss:		0.136740
  validation accuracy:		94.00 %
  side validation loss:		0.328178
  side validation accuracy:	nan %
Epoch 44 of 500 took 0.004s
  training loss:		0.028317
   (target: 0.019456,  side: 0.008861 (absolute))
  validation loss:		0.137746
  validation accuracy:		95.00 %
  side validation loss:		0.330612
  side validation accuracy:	nan %
Epoch 45 of 500 took 0.004s
  training loss:		0.027761
   (target: 0.018771,  side: 0.008990 (absolute))
  validation loss:		0.134292
  validation accuracy:		95.00 %
  side validation loss:		0.328936
  side validation accuracy:	nan %
Epoch 46 of 500 took 0.004s
  training loss:		0.027429
   (target: 0.018822,  side: 0.008607 (absolute))
  validation loss:		0.133241
  validation accuracy:		95.00 %
  side validation loss:		0.328137
  side validation accuracy:	nan %
Epoch 47 of 500 took 0.004s
  training loss:		0.026675
   (target: 0.017895,  side: 0.008780 (absolute))
  validation loss:		0.127976
  validation accuracy:		96.00 %
  side validation loss:		0.328430
  side validation accuracy:	nan %
Epoch 48 of 500 took 0.004s
  training loss:		0.026356
   (target: 0.018095,  side: 0.008261 (absolute))
  validation loss:		0.131623
  validation accuracy:		96.00 %
  side validation loss:		0.325831
  side validation accuracy:	nan %
Epoch 49 of 500 took 0.004s
  training loss:		0.025525
   (target: 0.017111,  side: 0.008414 (absolute))
  validation loss:		0.124800
  validation accuracy:		96.00 %
  side validation loss:		0.323627
  side validation accuracy:	nan %
Epoch 50 of 500 took 0.004s
  training loss:		0.025407
   (target: 0.017223,  side: 0.008184 (absolute))
  validation loss:		0.126369
  validation accuracy:		96.00 %
  side validation loss:		0.324632
  side validation accuracy:	nan %
Epoch 51 of 500 took 0.005s
  training loss:		0.025321
   (target: 0.016653,  side: 0.008668 (absolute))
  validation loss:		0.124269
  validation accuracy:		96.00 %
  side validation loss:		0.322760
  side validation accuracy:	nan %
Epoch 52 of 500 took 0.004s
  training loss:		0.024486
   (target: 0.016732,  side: 0.007754 (absolute))
  validation loss:		0.122231
  validation accuracy:		96.00 %
  side validation loss:		0.321113
  side validation accuracy:	nan %
Epoch 53 of 500 took 0.004s
  training loss:		0.024422
   (target: 0.016311,  side: 0.008111 (absolute))
  validation loss:		0.123595
  validation accuracy:		96.00 %
  side validation loss:		0.321341
  side validation accuracy:	nan %
Epoch 54 of 500 took 0.004s
  training loss:		0.023975
   (target: 0.016033,  side: 0.007941 (absolute))
  validation loss:		0.119500
  validation accuracy:		96.00 %
  side validation loss:		0.318932
  side validation accuracy:	nan %
Epoch 55 of 500 took 0.004s
  training loss:		0.023411
   (target: 0.015682,  side: 0.007730 (absolute))
  validation loss:		0.118870
  validation accuracy:		96.00 %
  side validation loss:		0.319469
  side validation accuracy:	nan %
Epoch 56 of 500 took 0.004s
  training loss:		0.022988
   (target: 0.015583,  side: 0.007405 (absolute))
  validation loss:		0.117347
  validation accuracy:		96.00 %
  side validation loss:		0.318360
  side validation accuracy:	nan %
Epoch 57 of 500 took 0.004s
  training loss:		0.022704
   (target: 0.015030,  side: 0.007675 (absolute))
  validation loss:		0.116047
  validation accuracy:		96.00 %
  side validation loss:		0.314206
  side validation accuracy:	nan %
Epoch 58 of 500 took 0.004s
  training loss:		0.022452
   (target: 0.014565,  side: 0.007888 (absolute))
  validation loss:		0.113139
  validation accuracy:		96.00 %
  side validation loss:		0.317324
  side validation accuracy:	nan %
Epoch 59 of 500 took 0.004s
  training loss:		0.022006
   (target: 0.014956,  side: 0.007050 (absolute))
  validation loss:		0.113767
  validation accuracy:		96.00 %
  side validation loss:		0.315694
  side validation accuracy:	nan %
Epoch 60 of 500 took 0.004s
  training loss:		0.021894
   (target: 0.014389,  side: 0.007505 (absolute))
  validation loss:		0.112226
  validation accuracy:		96.00 %
  side validation loss:		0.315493
  side validation accuracy:	nan %
Epoch 61 of 500 took 0.004s
  training loss:		0.021182
   (target: 0.014017,  side: 0.007165 (absolute))
  validation loss:		0.109786
  validation accuracy:		96.00 %
  side validation loss:		0.313653
  side validation accuracy:	nan %
Epoch 62 of 500 took 0.004s
  training loss:		0.021211
   (target: 0.014067,  side: 0.007144 (absolute))
  validation loss:		0.110283
  validation accuracy:		96.00 %
  side validation loss:		0.313228
  side validation accuracy:	nan %
Epoch 63 of 500 took 0.005s
  training loss:		0.020902
   (target: 0.013846,  side: 0.007055 (absolute))
  validation loss:		0.108824
  validation accuracy:		95.00 %
  side validation loss:		0.309794
  side validation accuracy:	nan %
Epoch 64 of 500 took 0.004s
  training loss:		0.020623
   (target: 0.013666,  side: 0.006957 (absolute))
  validation loss:		0.106229
  validation accuracy:		95.00 %
  side validation loss:		0.308682
  side validation accuracy:	nan %
Epoch 65 of 500 took 0.004s
  training loss:		0.020775
   (target: 0.013707,  side: 0.007068 (absolute))
  validation loss:		0.105619
  validation accuracy:		96.00 %
  side validation loss:		0.309612
  side validation accuracy:	nan %
Epoch 66 of 500 took 0.004s
  training loss:		0.020297
   (target: 0.012991,  side: 0.007306 (absolute))
  validation loss:		0.104738
  validation accuracy:		96.00 %
  side validation loss:		0.310867
  side validation accuracy:	nan %
Epoch 67 of 500 took 0.004s
  training loss:		0.020109
   (target: 0.013212,  side: 0.006897 (absolute))
  validation loss:		0.104918
  validation accuracy:		95.00 %
  side validation loss:		0.307160
  side validation accuracy:	nan %
Epoch 68 of 500 took 0.004s
  training loss:		0.019533
   (target: 0.012881,  side: 0.006652 (absolute))
  validation loss:		0.102962
  validation accuracy:		95.00 %
  side validation loss:		0.305019
  side validation accuracy:	nan %
Epoch 69 of 500 took 0.004s
  training loss:		0.019213
   (target: 0.012451,  side: 0.006762 (absolute))
  validation loss:		0.100030
  validation accuracy:		95.00 %
  side validation loss:		0.303997
  side validation accuracy:	nan %
Epoch 70 of 500 took 0.004s
  training loss:		0.019049
   (target: 0.012734,  side: 0.006316 (absolute))
  validation loss:		0.101087
  validation accuracy:		95.00 %
  side validation loss:		0.301968
  side validation accuracy:	nan %
Epoch 71 of 500 took 0.004s
  training loss:		0.019175
   (target: 0.012180,  side: 0.006995 (absolute))
  validation loss:		0.099722
  validation accuracy:		95.00 %
  side validation loss:		0.305347
  side validation accuracy:	nan %
Epoch 72 of 500 took 0.004s
  training loss:		0.019184
   (target: 0.012409,  side: 0.006775 (absolute))
  validation loss:		0.097972
  validation accuracy:		96.00 %
  side validation loss:		0.303356
  side validation accuracy:	nan %
Epoch 73 of 500 took 0.004s
  training loss:		0.018342
   (target: 0.011903,  side: 0.006439 (absolute))
  validation loss:		0.097976
  validation accuracy:		96.00 %
  side validation loss:		0.301587
  side validation accuracy:	nan %
Epoch 74 of 500 took 0.004s
  training loss:		0.018151
   (target: 0.012030,  side: 0.006121 (absolute))
  validation loss:		0.098428
  validation accuracy:		96.00 %
  side validation loss:		0.300333
  side validation accuracy:	nan %
Epoch 75 of 500 took 0.005s
  training loss:		0.018015
   (target: 0.011711,  side: 0.006305 (absolute))
  validation loss:		0.097169
  validation accuracy:		96.00 %
  side validation loss:		0.300944
  side validation accuracy:	nan %
Epoch 76 of 500 took 0.005s
  training loss:		0.017678
   (target: 0.011493,  side: 0.006185 (absolute))
  validation loss:		0.095381
  validation accuracy:		96.00 %
  side validation loss:		0.297223
  side validation accuracy:	nan %
Epoch 77 of 500 took 0.004s
  training loss:		0.017509
   (target: 0.011299,  side: 0.006210 (absolute))
  validation loss:		0.095558
  validation accuracy:		96.00 %
  side validation loss:		0.299461
  side validation accuracy:	nan %
Epoch 78 of 500 took 0.004s
  training loss:		0.017552
   (target: 0.011260,  side: 0.006292 (absolute))
  validation loss:		0.095382
  validation accuracy:		96.00 %
  side validation loss:		0.296979
  side validation accuracy:	nan %
Epoch 79 of 500 took 0.004s
  training loss:		0.017277
   (target: 0.011223,  side: 0.006054 (absolute))
  validation loss:		0.093336
  validation accuracy:		96.00 %
  side validation loss:		0.295375
  side validation accuracy:	nan %
Epoch 80 of 500 took 0.004s
  training loss:		0.017021
   (target: 0.011281,  side: 0.005741 (absolute))
  validation loss:		0.092981
  validation accuracy:		96.00 %
  side validation loss:		0.294143
  side validation accuracy:	nan %
Epoch 81 of 500 took 0.004s
  training loss:		0.016881
   (target: 0.010650,  side: 0.006232 (absolute))
  validation loss:		0.092431
  validation accuracy:		96.00 %
  side validation loss:		0.294741
  side validation accuracy:	nan %
Epoch 82 of 500 took 0.004s
  training loss:		0.016542
   (target: 0.010817,  side: 0.005725 (absolute))
  validation loss:		0.092818
  validation accuracy:		96.00 %
  side validation loss:		0.296416
  side validation accuracy:	nan %
Epoch 83 of 500 took 0.004s
  training loss:		0.016383
   (target: 0.010739,  side: 0.005644 (absolute))
  validation loss:		0.091988
  validation accuracy:		96.00 %
  side validation loss:		0.293836
  side validation accuracy:	nan %
Epoch 84 of 500 took 0.004s
  training loss:		0.016716
   (target: 0.010714,  side: 0.006002 (absolute))
  validation loss:		0.090369
  validation accuracy:		96.00 %
  side validation loss:		0.292274
  side validation accuracy:	nan %
Epoch 85 of 500 took 0.004s
  training loss:		0.016570
   (target: 0.010606,  side: 0.005964 (absolute))
  validation loss:		0.090890
  validation accuracy:		96.00 %
  side validation loss:		0.293267
  side validation accuracy:	nan %
Epoch 86 of 500 took 0.004s
  training loss:		0.016019
   (target: 0.010014,  side: 0.006005 (absolute))
  validation loss:		0.089484
  validation accuracy:		96.00 %
  side validation loss:		0.289198
  side validation accuracy:	nan %
Epoch 87 of 500 took 0.004s
  training loss:		0.015799
   (target: 0.010275,  side: 0.005524 (absolute))
  validation loss:		0.088033
  validation accuracy:		96.00 %
  side validation loss:		0.289553
  side validation accuracy:	nan %
Epoch 88 of 500 took 0.005s
  training loss:		0.015504
   (target: 0.009990,  side: 0.005514 (absolute))
  validation loss:		0.088204
  validation accuracy:		96.00 %
  side validation loss:		0.288490
  side validation accuracy:	nan %
Epoch 89 of 500 took 0.004s
  training loss:		0.015648
   (target: 0.010125,  side: 0.005523 (absolute))
  validation loss:		0.087050
  validation accuracy:		96.00 %
  side validation loss:		0.288676
  side validation accuracy:	nan %
Epoch 90 of 500 took 0.004s
  training loss:		0.015188
   (target: 0.009666,  side: 0.005521 (absolute))
  validation loss:		0.087913
  validation accuracy:		96.00 %
  side validation loss:		0.286120
  side validation accuracy:	nan %
Epoch 91 of 500 took 0.004s
  training loss:		0.015244
   (target: 0.009922,  side: 0.005321 (absolute))
  validation loss:		0.087222
  validation accuracy:		96.00 %
  side validation loss:		0.285192
  side validation accuracy:	nan %
Epoch 92 of 500 took 0.004s
  training loss:		0.014951
   (target: 0.009653,  side: 0.005299 (absolute))
  validation loss:		0.086427
  validation accuracy:		96.00 %
  side validation loss:		0.285585
  side validation accuracy:	nan %
Epoch 93 of 500 took 0.004s
  training loss:		0.014830
   (target: 0.009535,  side: 0.005295 (absolute))
  validation loss:		0.085988
  validation accuracy:		96.00 %
  side validation loss:		0.283849
  side validation accuracy:	nan %
Epoch 94 of 500 took 0.004s
  training loss:		0.014689
   (target: 0.009486,  side: 0.005203 (absolute))
  validation loss:		0.087142
  validation accuracy:		96.00 %
  side validation loss:		0.282886
  side validation accuracy:	nan %
Epoch 95 of 500 took 0.004s
  training loss:		0.014523
   (target: 0.009281,  side: 0.005241 (absolute))
  validation loss:		0.084195
  validation accuracy:		96.00 %
  side validation loss:		0.284497
  side validation accuracy:	nan %
Epoch 96 of 500 took 0.004s
  training loss:		0.014814
   (target: 0.009400,  side: 0.005414 (absolute))
  validation loss:		0.084841
  validation accuracy:		96.00 %
  side validation loss:		0.284031
  side validation accuracy:	nan %
Epoch 97 of 500 took 0.004s
  training loss:		0.014364
   (target: 0.009082,  side: 0.005282 (absolute))
  validation loss:		0.083317
  validation accuracy:		96.00 %
  side validation loss:		0.281725
  side validation accuracy:	nan %
Epoch 98 of 500 took 0.004s
  training loss:		0.014381
   (target: 0.009266,  side: 0.005115 (absolute))
  validation loss:		0.083161
  validation accuracy:		96.00 %
  side validation loss:		0.281044
  side validation accuracy:	nan %
Epoch 99 of 500 took 0.004s
  training loss:		0.014109
   (target: 0.008938,  side: 0.005171 (absolute))
  validation loss:		0.084377
  validation accuracy:		96.00 %
  side validation loss:		0.284493
  side validation accuracy:	nan %
Epoch 100 of 500 took 0.005s
  training loss:		0.013793
   (target: 0.008821,  side: 0.004972 (absolute))
  validation loss:		0.083534
  validation accuracy:		96.00 %
  side validation loss:		0.281331
  side validation accuracy:	nan %
Epoch 101 of 500 took 0.004s
  training loss:		0.013951
   (target: 0.008849,  side: 0.005102 (absolute))
  validation loss:		0.082167
  validation accuracy:		96.00 %
  side validation loss:		0.279460
  side validation accuracy:	nan %
Epoch 102 of 500 took 0.004s
  training loss:		0.013870
   (target: 0.008749,  side: 0.005121 (absolute))
  validation loss:		0.083514
  validation accuracy:		96.00 %
  side validation loss:		0.281133
  side validation accuracy:	nan %
Epoch 103 of 500 took 0.004s
  training loss:		0.013632
   (target: 0.008623,  side: 0.005008 (absolute))
  validation loss:		0.081451
  validation accuracy:		96.00 %
  side validation loss:		0.276354
  side validation accuracy:	nan %
Epoch 104 of 500 took 0.004s
  training loss:		0.013827
   (target: 0.008715,  side: 0.005113 (absolute))
  validation loss:		0.081758
  validation accuracy:		96.00 %
  side validation loss:		0.277682
  side validation accuracy:	nan %
Epoch 105 of 500 took 0.004s
  training loss:		0.013451
   (target: 0.008460,  side: 0.004992 (absolute))
  validation loss:		0.081427
  validation accuracy:		96.00 %
  side validation loss:		0.277245
  side validation accuracy:	nan %
Epoch 106 of 500 took 0.004s
  training loss:		0.013092
   (target: 0.008675,  side: 0.004417 (absolute))
  validation loss:		0.081798
  validation accuracy:		96.00 %
  side validation loss:		0.275114
  side validation accuracy:	nan %
Epoch 107 of 500 took 0.004s
  training loss:		0.013532
   (target: 0.008195,  side: 0.005337 (absolute))
  validation loss:		0.079224
  validation accuracy:		96.00 %
  side validation loss:		0.275072
  side validation accuracy:	nan %
Epoch 108 of 500 took 0.004s
  training loss:		0.013196
   (target: 0.008283,  side: 0.004914 (absolute))
  validation loss:		0.080364
  validation accuracy:		96.00 %
  side validation loss:		0.276942
  side validation accuracy:	nan %
Epoch 109 of 500 took 0.004s
  training loss:		0.013089
   (target: 0.008254,  side: 0.004835 (absolute))
  validation loss:		0.081006
  validation accuracy:		96.00 %
  side validation loss:		0.274696
  side validation accuracy:	nan %
Epoch 110 of 500 took 0.004s
  training loss:		0.012702
   (target: 0.008165,  side: 0.004537 (absolute))
  validation loss:		0.080721
  validation accuracy:		96.00 %
  side validation loss:		0.274184
  side validation accuracy:	nan %
Epoch 111 of 500 took 0.004s
  training loss:		0.012649
   (target: 0.008096,  side: 0.004553 (absolute))
  validation loss:		0.079943
  validation accuracy:		96.00 %
  side validation loss:		0.274055
  side validation accuracy:	nan %
Epoch 112 of 500 took 0.005s
  training loss:		0.012888
   (target: 0.008061,  side: 0.004827 (absolute))
  validation loss:		0.078010
  validation accuracy:		96.00 %
  side validation loss:		0.272151
  side validation accuracy:	nan %
Epoch 113 of 500 took 0.004s
  training loss:		0.012686
   (target: 0.007987,  side: 0.004699 (absolute))
  validation loss:		0.080232
  validation accuracy:		96.00 %
  side validation loss:		0.271284
  side validation accuracy:	nan %
Epoch 114 of 500 took 0.004s
  training loss:		0.012823
   (target: 0.008103,  side: 0.004719 (absolute))
  validation loss:		0.080249
  validation accuracy:		96.00 %
  side validation loss:		0.271568
  side validation accuracy:	nan %
Epoch 115 of 500 took 0.004s
  training loss:		0.012446
   (target: 0.007495,  side: 0.004951 (absolute))
  validation loss:		0.077400
  validation accuracy:		96.00 %
  side validation loss:		0.272055
  side validation accuracy:	nan %
Epoch 116 of 500 took 0.004s
  training loss:		0.012470
   (target: 0.007947,  side: 0.004523 (absolute))
  validation loss:		0.077024
  validation accuracy:		96.00 %
  side validation loss:		0.268501
  side validation accuracy:	nan %
Epoch 117 of 500 took 0.004s
  training loss:		0.012362
   (target: 0.007922,  side: 0.004440 (absolute))
  validation loss:		0.076522
  validation accuracy:		96.00 %
  side validation loss:		0.269189
  side validation accuracy:	nan %
Epoch 118 of 500 took 0.004s
  training loss:		0.012395
   (target: 0.007601,  side: 0.004794 (absolute))
  validation loss:		0.078893
  validation accuracy:		96.00 %
  side validation loss:		0.268044
  side validation accuracy:	nan %
Epoch 119 of 500 took 0.004s
  training loss:		0.011929
   (target: 0.007593,  side: 0.004336 (absolute))
  validation loss:		0.077931
  validation accuracy:		96.00 %
  side validation loss:		0.270490
  side validation accuracy:	nan %
Epoch 120 of 500 took 0.004s
  training loss:		0.012180
   (target: 0.007583,  side: 0.004597 (absolute))
  validation loss:		0.076753
  validation accuracy:		96.00 %
  side validation loss:		0.269310
  side validation accuracy:	nan %
Epoch 121 of 500 took 0.004s
  training loss:		0.012046
   (target: 0.007541,  side: 0.004505 (absolute))
  validation loss:		0.077043
  validation accuracy:		96.00 %
  side validation loss:		0.267839
  side validation accuracy:	nan %
Epoch 122 of 500 took 0.004s
  training loss:		0.012046
   (target: 0.007470,  side: 0.004576 (absolute))
  validation loss:		0.078308
  validation accuracy:		95.00 %
  side validation loss:		0.267806
  side validation accuracy:	nan %
Epoch 123 of 500 took 0.004s
  training loss:		0.011648
   (target: 0.007328,  side: 0.004320 (absolute))
  validation loss:		0.076239
  validation accuracy:		96.00 %
  side validation loss:		0.264105
  side validation accuracy:	nan %
Epoch 124 of 500 took 0.005s
  training loss:		0.011741
   (target: 0.007373,  side: 0.004368 (absolute))
  validation loss:		0.076606
  validation accuracy:		96.00 %
  side validation loss:		0.268902
  side validation accuracy:	nan %
Epoch 125 of 500 took 0.004s
  training loss:		0.011766
   (target: 0.007164,  side: 0.004602 (absolute))
  validation loss:		0.076364
  validation accuracy:		96.00 %
  side validation loss:		0.266800
  side validation accuracy:	nan %
Epoch 126 of 500 took 0.004s
  training loss:		0.011413
   (target: 0.007261,  side: 0.004152 (absolute))
  validation loss:		0.076125
  validation accuracy:		95.00 %
  side validation loss:		0.263902
  side validation accuracy:	nan %
Epoch 127 of 500 took 0.004s
  training loss:		0.011325
   (target: 0.006948,  side: 0.004378 (absolute))
  validation loss:		0.075544
  validation accuracy:		96.00 %
  side validation loss:		0.262695
  side validation accuracy:	nan %
Epoch 128 of 500 took 0.004s
  training loss:		0.011394
   (target: 0.007143,  side: 0.004252 (absolute))
  validation loss:		0.074537
  validation accuracy:		96.00 %
  side validation loss:		0.265554
  side validation accuracy:	nan %
Epoch 129 of 500 took 0.004s
  training loss:		0.011282
   (target: 0.007011,  side: 0.004272 (absolute))
  validation loss:		0.075749
  validation accuracy:		96.00 %
  side validation loss:		0.261951
  side validation accuracy:	nan %
Epoch 130 of 500 took 0.004s
  training loss:		0.011183
   (target: 0.006964,  side: 0.004219 (absolute))
  validation loss:		0.074716
  validation accuracy:		96.00 %
  side validation loss:		0.265126
  side validation accuracy:	nan %
Epoch 131 of 500 took 0.004s
  training loss:		0.011158
   (target: 0.006843,  side: 0.004315 (absolute))
  validation loss:		0.075369
  validation accuracy:		97.00 %
  side validation loss:		0.261870
  side validation accuracy:	nan %
Epoch 132 of 500 took 0.004s
  training loss:		0.011041
   (target: 0.006820,  side: 0.004221 (absolute))
  validation loss:		0.075947
  validation accuracy:		96.00 %
  side validation loss:		0.262590
  side validation accuracy:	nan %
Epoch 133 of 500 took 0.004s
  training loss:		0.010886
   (target: 0.006820,  side: 0.004066 (absolute))
  validation loss:		0.073614
  validation accuracy:		96.00 %
  side validation loss:		0.261571
  side validation accuracy:	nan %
Epoch 134 of 500 took 0.004s
  training loss:		0.011033
   (target: 0.006909,  side: 0.004124 (absolute))
  validation loss:		0.073147
  validation accuracy:		97.00 %
  side validation loss:		0.258853
  side validation accuracy:	nan %
Epoch 135 of 500 took 0.004s
  training loss:		0.010885
   (target: 0.006664,  side: 0.004221 (absolute))
  validation loss:		0.075256
  validation accuracy:		96.00 %
  side validation loss:		0.260251
  side validation accuracy:	nan %
Epoch 136 of 500 took 0.004s
  training loss:		0.010898
   (target: 0.006582,  side: 0.004316 (absolute))
  validation loss:		0.072874
  validation accuracy:		97.00 %
  side validation loss:		0.259571
  side validation accuracy:	nan %
Epoch 137 of 500 took 0.004s
  training loss:		0.010577
   (target: 0.006551,  side: 0.004026 (absolute))
  validation loss:		0.073943
  validation accuracy:		96.00 %
  side validation loss:		0.258918
  side validation accuracy:	nan %
Epoch 138 of 500 took 0.004s
  training loss:		0.010670
   (target: 0.006559,  side: 0.004110 (absolute))
  validation loss:		0.073504
  validation accuracy:		96.00 %
  side validation loss:		0.257952
  side validation accuracy:	nan %
Epoch 139 of 500 took 0.004s
  training loss:		0.010765
   (target: 0.006545,  side: 0.004221 (absolute))
  validation loss:		0.074283
  validation accuracy:		97.00 %
  side validation loss:		0.257860
  side validation accuracy:	nan %
Epoch 140 of 500 took 0.004s
  training loss:		0.010505
   (target: 0.006604,  side: 0.003901 (absolute))
  validation loss:		0.074412
  validation accuracy:		96.00 %
  side validation loss:		0.256816
  side validation accuracy:	nan %
Epoch 141 of 500 took 0.004s
  training loss:		0.010452
   (target: 0.006458,  side: 0.003994 (absolute))
  validation loss:		0.072778
  validation accuracy:		96.00 %
  side validation loss:		0.256645
  side validation accuracy:	nan %
Epoch 142 of 500 took 0.004s
  training loss:		0.010403
   (target: 0.006447,  side: 0.003957 (absolute))
  validation loss:		0.074182
  validation accuracy:		96.00 %
  side validation loss:		0.256472
  side validation accuracy:	nan %
Epoch 143 of 500 took 0.004s
  training loss:		0.010451
   (target: 0.006254,  side: 0.004196 (absolute))
  validation loss:		0.073684
  validation accuracy:		96.00 %
  side validation loss:		0.253969
  side validation accuracy:	nan %
Epoch 144 of 500 took 0.004s
  training loss:		0.010278
   (target: 0.006465,  side: 0.003814 (absolute))
  validation loss:		0.073210
  validation accuracy:		96.00 %
  side validation loss:		0.254538
  side validation accuracy:	nan %
Epoch 145 of 500 took 0.004s
  training loss:		0.010009
   (target: 0.006196,  side: 0.003813 (absolute))
  validation loss:		0.074377
  validation accuracy:		96.00 %
  side validation loss:		0.254055
  side validation accuracy:	nan %
Epoch 146 of 500 took 0.004s
  training loss:		0.010233
   (target: 0.006297,  side: 0.003936 (absolute))
  validation loss:		0.074488
  validation accuracy:		96.00 %
  side validation loss:		0.254896
  side validation accuracy:	nan %
Epoch 147 of 500 took 0.004s
  training loss:		0.010072
   (target: 0.006400,  side: 0.003671 (absolute))
  validation loss:		0.072135
  validation accuracy:		97.00 %
  side validation loss:		0.254716
  side validation accuracy:	nan %
Epoch 148 of 500 took 0.004s
  training loss:		0.009989
   (target: 0.005980,  side: 0.004008 (absolute))
  validation loss:		0.074699
  validation accuracy:		96.00 %
  side validation loss:		0.252569
  side validation accuracy:	nan %
Epoch 149 of 500 took 0.005s
  training loss:		0.009847
   (target: 0.006192,  side: 0.003655 (absolute))
  validation loss:		0.072174
  validation accuracy:		96.00 %
  side validation loss:		0.253663
  side validation accuracy:	nan %
Epoch 150 of 500 took 0.004s
  training loss:		0.009918
   (target: 0.005893,  side: 0.004025 (absolute))
  validation loss:		0.073436
  validation accuracy:		96.00 %
  side validation loss:		0.255130
  side validation accuracy:	nan %
Epoch 151 of 500 took 0.004s
  training loss:		0.009958
   (target: 0.006287,  side: 0.003671 (absolute))
  validation loss:		0.071129
  validation accuracy:		96.00 %
  side validation loss:		0.253602
  side validation accuracy:	nan %
Epoch 152 of 500 took 0.004s
  training loss:		0.009803
   (target: 0.006098,  side: 0.003704 (absolute))
  validation loss:		0.072233
  validation accuracy:		97.00 %
  side validation loss:		0.250011
  side validation accuracy:	nan %
Epoch 153 of 500 took 0.004s
  training loss:		0.009827
   (target: 0.005845,  side: 0.003982 (absolute))
  validation loss:		0.071391
  validation accuracy:		96.00 %
  side validation loss:		0.250823
  side validation accuracy:	nan %
Epoch 154 of 500 took 0.005s
  training loss:		0.009596
   (target: 0.005901,  side: 0.003694 (absolute))
  validation loss:		0.071699
  validation accuracy:		96.00 %
  side validation loss:		0.251258
  side validation accuracy:	nan %
Epoch 155 of 500 took 0.005s
  training loss:		0.009525
   (target: 0.005941,  side: 0.003584 (absolute))
  validation loss:		0.070708
  validation accuracy:		97.00 %
  side validation loss:		0.249907
  side validation accuracy:	nan %
Epoch 156 of 500 took 0.004s
  training loss:		0.009606
   (target: 0.005871,  side: 0.003734 (absolute))
  validation loss:		0.071815
  validation accuracy:		96.00 %
  side validation loss:		0.251711
  side validation accuracy:	nan %
Epoch 157 of 500 took 0.004s
  training loss:		0.009431
   (target: 0.005890,  side: 0.003541 (absolute))
  validation loss:		0.071990
  validation accuracy:		96.00 %
  side validation loss:		0.248411
  side validation accuracy:	nan %
Epoch 158 of 500 took 0.006s
  training loss:		0.009337
   (target: 0.005734,  side: 0.003604 (absolute))
  validation loss:		0.071762
  validation accuracy:		97.00 %
  side validation loss:		0.251329
  side validation accuracy:	nan %
Epoch 159 of 500 took 0.004s
  training loss:		0.009255
   (target: 0.005713,  side: 0.003542 (absolute))
  validation loss:		0.070844
  validation accuracy:		96.00 %
  side validation loss:		0.250464
  side validation accuracy:	nan %
Epoch 160 of 500 took 0.004s
  training loss:		0.009319
   (target: 0.005598,  side: 0.003720 (absolute))
  validation loss:		0.071588
  validation accuracy:		96.00 %
  side validation loss:		0.247922
  side validation accuracy:	nan %
Epoch 161 of 500 took 0.004s
  training loss:		0.009439
   (target: 0.005700,  side: 0.003739 (absolute))
  validation loss:		0.072826
  validation accuracy:		96.00 %
  side validation loss:		0.248150
  side validation accuracy:	nan %
Epoch 162 of 500 took 0.005s
  training loss:		0.009333
   (target: 0.005669,  side: 0.003664 (absolute))
  validation loss:		0.071386
  validation accuracy:		96.00 %
  side validation loss:		0.246700
  side validation accuracy:	nan %
Epoch 163 of 500 took 0.004s
  training loss:		0.009103
   (target: 0.005731,  side: 0.003372 (absolute))
  validation loss:		0.069724
  validation accuracy:		96.00 %
  side validation loss:		0.247602
  side validation accuracy:	nan %
Epoch 164 of 500 took 0.004s
  training loss:		0.009046
   (target: 0.005584,  side: 0.003461 (absolute))
  validation loss:		0.071422
  validation accuracy:		96.00 %
  side validation loss:		0.247245
  side validation accuracy:	nan %
Epoch 165 of 500 took 0.004s
  training loss:		0.009071
   (target: 0.005454,  side: 0.003617 (absolute))
  validation loss:		0.071231
  validation accuracy:		96.00 %
  side validation loss:		0.244878
  side validation accuracy:	nan %
Epoch 166 of 500 took 0.004s
  training loss:		0.009246
   (target: 0.005642,  side: 0.003605 (absolute))
  validation loss:		0.070043
  validation accuracy:		96.00 %
  side validation loss:		0.244702
  side validation accuracy:	nan %
Epoch 167 of 500 took 0.004s
  training loss:		0.009064
   (target: 0.005402,  side: 0.003662 (absolute))
  validation loss:		0.072135
  validation accuracy:		96.00 %
  side validation loss:		0.245404
  side validation accuracy:	nan %
Epoch 168 of 500 took 0.004s
  training loss:		0.008949
   (target: 0.005519,  side: 0.003430 (absolute))
  validation loss:		0.070494
  validation accuracy:		96.00 %
  side validation loss:		0.246125
  side validation accuracy:	nan %
Epoch 169 of 500 took 0.004s
  training loss:		0.009030
   (target: 0.005564,  side: 0.003466 (absolute))
  validation loss:		0.071401
  validation accuracy:		96.00 %
  side validation loss:		0.244390
  side validation accuracy:	nan %
Epoch 170 of 500 took 0.004s
  training loss:		0.008987
   (target: 0.005378,  side: 0.003609 (absolute))
  validation loss:		0.069448
  validation accuracy:		96.00 %
  side validation loss:		0.244974
  side validation accuracy:	nan %
Epoch 171 of 500 took 0.004s
  training loss:		0.008733
   (target: 0.005319,  side: 0.003414 (absolute))
  validation loss:		0.070461
  validation accuracy:		96.00 %
  side validation loss:		0.244470
  side validation accuracy:	nan %
Epoch 172 of 500 took 0.004s
  training loss:		0.008789
   (target: 0.005357,  side: 0.003432 (absolute))
  validation loss:		0.069856
  validation accuracy:		96.00 %
  side validation loss:		0.244962
  side validation accuracy:	nan %
Epoch 173 of 500 took 0.005s
  training loss:		0.008761
   (target: 0.005256,  side: 0.003505 (absolute))
  validation loss:		0.070377
  validation accuracy:		96.00 %
  side validation loss:		0.245581
  side validation accuracy:	nan %
Epoch 174 of 500 took 0.004s
  training loss:		0.008879
   (target: 0.005369,  side: 0.003510 (absolute))
  validation loss:		0.069840
  validation accuracy:		96.00 %
  side validation loss:		0.243171
  side validation accuracy:	nan %
Epoch 175 of 500 took 0.004s
  training loss:		0.008761
   (target: 0.005151,  side: 0.003610 (absolute))
  validation loss:		0.070374
  validation accuracy:		96.00 %
  side validation loss:		0.241337
  side validation accuracy:	nan %
Epoch 176 of 500 took 0.004s
  training loss:		0.008770
   (target: 0.005481,  side: 0.003289 (absolute))
  validation loss:		0.070377
  validation accuracy:		96.00 %
  side validation loss:		0.243597
  side validation accuracy:	nan %
Epoch 177 of 500 took 0.004s
  training loss:		0.008496
   (target: 0.005167,  side: 0.003329 (absolute))
  validation loss:		0.069165
  validation accuracy:		96.00 %
  side validation loss:		0.243807
  side validation accuracy:	nan %
Epoch 178 of 500 took 0.004s
  training loss:		0.008612
   (target: 0.005097,  side: 0.003515 (absolute))
  validation loss:		0.070276
  validation accuracy:		96.00 %
  side validation loss:		0.240651
  side validation accuracy:	nan %
Epoch 179 of 500 took 0.004s
  training loss:		0.008545
   (target: 0.005141,  side: 0.003404 (absolute))
  validation loss:		0.069957
  validation accuracy:		96.00 %
  side validation loss:		0.240492
  side validation accuracy:	nan %
Epoch 180 of 500 took 0.004s
  training loss:		0.008527
   (target: 0.005087,  side: 0.003440 (absolute))
  validation loss:		0.068947
  validation accuracy:		96.00 %
  side validation loss:		0.239533
  side validation accuracy:	nan %
Epoch 181 of 500 took 0.004s
  training loss:		0.008556
   (target: 0.005245,  side: 0.003311 (absolute))
  validation loss:		0.069168
  validation accuracy:		96.00 %
  side validation loss:		0.239650
  side validation accuracy:	nan %
Epoch 182 of 500 took 0.004s
  training loss:		0.008319
   (target: 0.004964,  side: 0.003355 (absolute))
  validation loss:		0.069222
  validation accuracy:		96.00 %
  side validation loss:		0.239019
  side validation accuracy:	nan %
Epoch 183 of 500 took 0.004s
  training loss:		0.008698
   (target: 0.005132,  side: 0.003566 (absolute))
  validation loss:		0.070409
  validation accuracy:		96.00 %
  side validation loss:		0.238624
  side validation accuracy:	nan %
Epoch 184 of 500 took 0.004s
  training loss:		0.008330
   (target: 0.005024,  side: 0.003306 (absolute))
  validation loss:		0.071317
  validation accuracy:		96.00 %
  side validation loss:		0.239270
  side validation accuracy:	nan %
Epoch 185 of 500 took 0.004s
  training loss:		0.008343
   (target: 0.005045,  side: 0.003299 (absolute))
  validation loss:		0.069230
  validation accuracy:		96.00 %
  side validation loss:		0.239362
  side validation accuracy:	nan %
Epoch 186 of 500 took 0.005s
  training loss:		0.008171
   (target: 0.004913,  side: 0.003258 (absolute))
  validation loss:		0.069213
  validation accuracy:		96.00 %
  side validation loss:		0.235936
  side validation accuracy:	nan %
Epoch 187 of 500 took 0.004s
  training loss:		0.008265
   (target: 0.004976,  side: 0.003289 (absolute))
  validation loss:		0.068587
  validation accuracy:		96.00 %
  side validation loss:		0.238184
  side validation accuracy:	nan %
Epoch 188 of 500 took 0.004s
  training loss:		0.008232
   (target: 0.004901,  side: 0.003331 (absolute))
  validation loss:		0.070250
  validation accuracy:		96.00 %
  side validation loss:		0.235738
  side validation accuracy:	nan %
Epoch 189 of 500 took 0.004s
  training loss:		0.008235
   (target: 0.004929,  side: 0.003306 (absolute))
  validation loss:		0.069525
  validation accuracy:		96.00 %
  side validation loss:		0.235656
  side validation accuracy:	nan %
Epoch 190 of 500 took 0.004s
  training loss:		0.008069
   (target: 0.004894,  side: 0.003176 (absolute))
  validation loss:		0.069485
  validation accuracy:		96.00 %
  side validation loss:		0.234905
  side validation accuracy:	nan %
Epoch 191 of 500 took 0.004s
  training loss:		0.008244
   (target: 0.004892,  side: 0.003352 (absolute))
  validation loss:		0.069853
  validation accuracy:		96.00 %
  side validation loss:		0.236101
  side validation accuracy:	nan %
Epoch 192 of 500 took 0.004s
  training loss:		0.007987
   (target: 0.004813,  side: 0.003174 (absolute))
  validation loss:		0.069687
  validation accuracy:		96.00 %
  side validation loss:		0.235266
  side validation accuracy:	nan %
Epoch 193 of 500 took 0.004s
  training loss:		0.007904
   (target: 0.004733,  side: 0.003171 (absolute))
  validation loss:		0.068435
  validation accuracy:		96.00 %
  side validation loss:		0.235120
  side validation accuracy:	nan %
Epoch 194 of 500 took 0.004s
  training loss:		0.008009
   (target: 0.004765,  side: 0.003244 (absolute))
  validation loss:		0.069736
  validation accuracy:		96.00 %
  side validation loss:		0.235537
  side validation accuracy:	nan %
Epoch 195 of 500 took 0.004s
  training loss:		0.007899
   (target: 0.004754,  side: 0.003145 (absolute))
  validation loss:		0.069988
  validation accuracy:		96.00 %
  side validation loss:		0.234655
  side validation accuracy:	nan %
Epoch 196 of 500 took 0.004s
  training loss:		0.008036
   (target: 0.004783,  side: 0.003254 (absolute))
  validation loss:		0.070086
  validation accuracy:		96.00 %
  side validation loss:		0.234733
  side validation accuracy:	nan %
Epoch 197 of 500 took 0.004s
  training loss:		0.007997
   (target: 0.004627,  side: 0.003369 (absolute))
  validation loss:		0.069379
  validation accuracy:		96.00 %
  side validation loss:		0.231893
  side validation accuracy:	nan %
Epoch 198 of 500 took 0.005s
  training loss:		0.007802
   (target: 0.004719,  side: 0.003083 (absolute))
  validation loss:		0.067682
  validation accuracy:		96.00 %
  side validation loss:		0.233858
  side validation accuracy:	nan %
Epoch 199 of 500 took 0.004s
  training loss:		0.007984
   (target: 0.004794,  side: 0.003191 (absolute))
  validation loss:		0.068931
  validation accuracy:		96.00 %
  side validation loss:		0.232064
  side validation accuracy:	nan %
Epoch 200 of 500 took 0.004s
  training loss:		0.007750
   (target: 0.004704,  side: 0.003046 (absolute))
  validation loss:		0.069294
  validation accuracy:		96.00 %
  side validation loss:		0.234957
  side validation accuracy:	nan %
Epoch 201 of 500 took 0.004s
  training loss:		0.007627
   (target: 0.004477,  side: 0.003151 (absolute))
  validation loss:		0.068362
  validation accuracy:		96.00 %
  side validation loss:		0.231443
  side validation accuracy:	nan %
Epoch 202 of 500 took 0.004s
  training loss:		0.007758
   (target: 0.004606,  side: 0.003152 (absolute))
  validation loss:		0.069090
  validation accuracy:		96.00 %
  side validation loss:		0.232357
  side validation accuracy:	nan %
Epoch 203 of 500 took 0.004s
  training loss:		0.007518
   (target: 0.004533,  side: 0.002985 (absolute))
  validation loss:		0.068925
  validation accuracy:		96.00 %
  side validation loss:		0.230370
  side validation accuracy:	nan %
Epoch 204 of 500 took 0.004s
  training loss:		0.007518
   (target: 0.004597,  side: 0.002921 (absolute))
  validation loss:		0.067320
  validation accuracy:		96.00 %
  side validation loss:		0.231946
  side validation accuracy:	nan %
Epoch 205 of 500 took 0.004s
  training loss:		0.007764
   (target: 0.004496,  side: 0.003268 (absolute))
  validation loss:		0.069294
  validation accuracy:		96.00 %
  side validation loss:		0.230030
  side validation accuracy:	nan %
Epoch 206 of 500 took 0.004s
  training loss:		0.007473
   (target: 0.004472,  side: 0.003001 (absolute))
  validation loss:		0.067419
  validation accuracy:		96.00 %
  side validation loss:		0.231121
  side validation accuracy:	nan %
Epoch 207 of 500 took 0.004s
  training loss:		0.007474
   (target: 0.004580,  side: 0.002894 (absolute))
  validation loss:		0.067331
  validation accuracy:		96.00 %
  side validation loss:		0.228437
  side validation accuracy:	nan %
Epoch 208 of 500 took 0.004s
  training loss:		0.007506
   (target: 0.004450,  side: 0.003056 (absolute))
  validation loss:		0.068017
  validation accuracy:		96.00 %
  side validation loss:		0.230585
  side validation accuracy:	nan %
Epoch 209 of 500 took 0.004s
  training loss:		0.007416
   (target: 0.004415,  side: 0.003000 (absolute))
  validation loss:		0.066787
  validation accuracy:		96.00 %
  side validation loss:		0.228854
  side validation accuracy:	nan %
Epoch 210 of 500 took 0.005s
  training loss:		0.007361
   (target: 0.004422,  side: 0.002939 (absolute))
  validation loss:		0.067285
  validation accuracy:		96.00 %
  side validation loss:		0.229092
  side validation accuracy:	nan %
Epoch 211 of 500 took 0.004s
  training loss:		0.007454
   (target: 0.004380,  side: 0.003074 (absolute))
  validation loss:		0.068055
  validation accuracy:		96.00 %
  side validation loss:		0.227879
  side validation accuracy:	nan %
Epoch 212 of 500 took 0.004s
  training loss:		0.007361
   (target: 0.004438,  side: 0.002923 (absolute))
  validation loss:		0.066717
  validation accuracy:		96.00 %
  side validation loss:		0.226481
  side validation accuracy:	nan %
Epoch 213 of 500 took 0.004s
  training loss:		0.007379
   (target: 0.004409,  side: 0.002970 (absolute))
  validation loss:		0.067844
  validation accuracy:		96.00 %
  side validation loss:		0.226681
  side validation accuracy:	nan %
Epoch 214 of 500 took 0.004s
  training loss:		0.007250
   (target: 0.004309,  side: 0.002941 (absolute))
  validation loss:		0.068071
  validation accuracy:		96.00 %
  side validation loss:		0.227773
  side validation accuracy:	nan %
Epoch 215 of 500 took 0.004s
  training loss:		0.007159
   (target: 0.004343,  side: 0.002816 (absolute))
  validation loss:		0.067462
  validation accuracy:		96.00 %
  side validation loss:		0.227829
  side validation accuracy:	nan %
Epoch 216 of 500 took 0.004s
  training loss:		0.007317
   (target: 0.004288,  side: 0.003029 (absolute))
  validation loss:		0.067678
  validation accuracy:		96.00 %
  side validation loss:		0.225970
  side validation accuracy:	nan %
Epoch 217 of 500 took 0.004s
  training loss:		0.007253
   (target: 0.004305,  side: 0.002948 (absolute))
  validation loss:		0.067261
  validation accuracy:		96.00 %
  side validation loss:		0.226899
  side validation accuracy:	nan %
Epoch 218 of 500 took 0.004s
  training loss:		0.007201
   (target: 0.004250,  side: 0.002951 (absolute))
  validation loss:		0.067158
  validation accuracy:		96.00 %
  side validation loss:		0.225978
  side validation accuracy:	nan %
Epoch 219 of 500 took 0.004s
  training loss:		0.007193
   (target: 0.004286,  side: 0.002907 (absolute))
  validation loss:		0.067697
  validation accuracy:		96.00 %
  side validation loss:		0.226210
  side validation accuracy:	nan %
Epoch 220 of 500 took 0.004s
  training loss:		0.007068
   (target: 0.004164,  side: 0.002905 (absolute))
  validation loss:		0.068680
  validation accuracy:		96.00 %
  side validation loss:		0.225415
  side validation accuracy:	nan %
Epoch 221 of 500 took 0.004s
  training loss:		0.007050
   (target: 0.004215,  side: 0.002835 (absolute))
  validation loss:		0.068179
  validation accuracy:		96.00 %
  side validation loss:		0.224623
  side validation accuracy:	nan %
Epoch 222 of 500 took 0.005s
  training loss:		0.007198
   (target: 0.004184,  side: 0.003014 (absolute))
  validation loss:		0.067254
  validation accuracy:		96.00 %
  side validation loss:		0.224346
  side validation accuracy:	nan %
Epoch 223 of 500 took 0.004s
  training loss:		0.007161
   (target: 0.004241,  side: 0.002919 (absolute))
  validation loss:		0.066039
  validation accuracy:		96.00 %
  side validation loss:		0.225044
  side validation accuracy:	nan %
Epoch 224 of 500 took 0.004s
  training loss:		0.007260
   (target: 0.004142,  side: 0.003118 (absolute))
  validation loss:		0.067194
  validation accuracy:		96.00 %
  side validation loss:		0.224824
  side validation accuracy:	nan %
Epoch 225 of 500 took 0.004s
  training loss:		0.007020
   (target: 0.004255,  side: 0.002765 (absolute))
  validation loss:		0.069200
  validation accuracy:		96.00 %
  side validation loss:		0.222674
  side validation accuracy:	nan %
Epoch 226 of 500 took 0.004s
  training loss:		0.007040
   (target: 0.004152,  side: 0.002888 (absolute))
  validation loss:		0.067099
  validation accuracy:		96.00 %
  side validation loss:		0.225070
  side validation accuracy:	nan %
Epoch 227 of 500 took 0.004s
  training loss:		0.006955
   (target: 0.004137,  side: 0.002818 (absolute))
  validation loss:		0.067032
  validation accuracy:		96.00 %
  side validation loss:		0.222839
  side validation accuracy:	nan %
Epoch 228 of 500 took 0.004s
  training loss:		0.006816
   (target: 0.004096,  side: 0.002719 (absolute))
  validation loss:		0.065816
  validation accuracy:		96.00 %
  side validation loss:		0.221982
  side validation accuracy:	nan %
Epoch 229 of 500 took 0.004s
  training loss:		0.006975
   (target: 0.004050,  side: 0.002925 (absolute))
  validation loss:		0.067802
  validation accuracy:		96.00 %
  side validation loss:		0.221483
  side validation accuracy:	nan %
Epoch 230 of 500 took 0.004s
  training loss:		0.006969
   (target: 0.004086,  side: 0.002883 (absolute))
  validation loss:		0.067316
  validation accuracy:		96.00 %
  side validation loss:		0.221705
  side validation accuracy:	nan %
Epoch 231 of 500 took 0.004s
  training loss:		0.006813
   (target: 0.004039,  side: 0.002774 (absolute))
  validation loss:		0.068497
  validation accuracy:		96.00 %
  side validation loss:		0.220396
  side validation accuracy:	nan %
Epoch 232 of 500 took 0.004s
  training loss:		0.006894
   (target: 0.004030,  side: 0.002864 (absolute))
  validation loss:		0.066863
  validation accuracy:		96.00 %
  side validation loss:		0.221740
  side validation accuracy:	nan %
Epoch 233 of 500 took 0.004s
  training loss:		0.006926
   (target: 0.003981,  side: 0.002945 (absolute))
  validation loss:		0.066686
  validation accuracy:		96.00 %
  side validation loss:		0.219907
  side validation accuracy:	nan %
Epoch 234 of 500 took 0.004s
  training loss:		0.006695
   (target: 0.004009,  side: 0.002686 (absolute))
  validation loss:		0.067941
  validation accuracy:		96.00 %
  side validation loss:		0.220131
  side validation accuracy:	nan %
Epoch 235 of 500 took 0.005s
  training loss:		0.006773
   (target: 0.003944,  side: 0.002829 (absolute))
  validation loss:		0.068480
  validation accuracy:		97.00 %
  side validation loss:		0.219360
  side validation accuracy:	nan %
Epoch 236 of 500 took 0.004s
  training loss:		0.006750
   (target: 0.004027,  side: 0.002723 (absolute))
  validation loss:		0.068676
  validation accuracy:		96.00 %
  side validation loss:		0.219162
  side validation accuracy:	nan %
Epoch 237 of 500 took 0.004s
  training loss:		0.006812
   (target: 0.003905,  side: 0.002907 (absolute))
  validation loss:		0.066932
  validation accuracy:		96.00 %
  side validation loss:		0.218875
  side validation accuracy:	nan %
Epoch 238 of 500 took 0.004s
  training loss:		0.006717
   (target: 0.003930,  side: 0.002787 (absolute))
  validation loss:		0.067011
  validation accuracy:		96.00 %
  side validation loss:		0.217310
  side validation accuracy:	nan %
Epoch 239 of 500 took 0.004s
  training loss:		0.006635
   (target: 0.003957,  side: 0.002678 (absolute))
  validation loss:		0.067912
  validation accuracy:		96.00 %
  side validation loss:		0.215180
  side validation accuracy:	nan %
Epoch 240 of 500 took 0.004s
  training loss:		0.006523
   (target: 0.003938,  side: 0.002585 (absolute))
  validation loss:		0.068054
  validation accuracy:		97.00 %
  side validation loss:		0.218223
  side validation accuracy:	nan %
Epoch 241 of 500 took 0.004s
  training loss:		0.006630
   (target: 0.003926,  side: 0.002705 (absolute))
  validation loss:		0.066132
  validation accuracy:		96.00 %
  side validation loss:		0.216546
  side validation accuracy:	nan %
Epoch 242 of 500 took 0.004s
  training loss:		0.006571
   (target: 0.003865,  side: 0.002706 (absolute))
  validation loss:		0.066870
  validation accuracy:		97.00 %
  side validation loss:		0.217160
  side validation accuracy:	nan %
Epoch 243 of 500 took 0.004s
  training loss:		0.006707
   (target: 0.003903,  side: 0.002804 (absolute))
  validation loss:		0.066832
  validation accuracy:		96.00 %
  side validation loss:		0.216875
  side validation accuracy:	nan %
Epoch 244 of 500 took 0.004s
  training loss:		0.006642
   (target: 0.003897,  side: 0.002745 (absolute))
  validation loss:		0.066414
  validation accuracy:		97.00 %
  side validation loss:		0.215719
  side validation accuracy:	nan %
Epoch 245 of 500 took 0.004s
  training loss:		0.006484
   (target: 0.003790,  side: 0.002693 (absolute))
  validation loss:		0.067225
  validation accuracy:		96.00 %
  side validation loss:		0.217314
  side validation accuracy:	nan %
Epoch 246 of 500 took 0.004s
  training loss:		0.006627
   (target: 0.003840,  side: 0.002786 (absolute))
  validation loss:		0.065764
  validation accuracy:		97.00 %
  side validation loss:		0.214508
  side validation accuracy:	nan %
Epoch 247 of 500 took 0.005s
  training loss:		0.006729
   (target: 0.003723,  side: 0.003006 (absolute))
  validation loss:		0.066590
  validation accuracy:		96.00 %
  side validation loss:		0.215457
  side validation accuracy:	nan %
Epoch 248 of 500 took 0.004s
  training loss:		0.006645
   (target: 0.003955,  side: 0.002690 (absolute))
  validation loss:		0.066429
  validation accuracy:		96.00 %
  side validation loss:		0.215901
  side validation accuracy:	nan %
Epoch 249 of 500 took 0.004s
  training loss:		0.006412
   (target: 0.003831,  side: 0.002581 (absolute))
  validation loss:		0.067551
  validation accuracy:		97.00 %
  side validation loss:		0.215015
  side validation accuracy:	nan %
Epoch 250 of 500 took 0.004s
  training loss:		0.006394
   (target: 0.003695,  side: 0.002699 (absolute))
  validation loss:		0.067491
  validation accuracy:		97.00 %
  side validation loss:		0.213802
  side validation accuracy:	nan %
Epoch 251 of 500 took 0.004s
  training loss:		0.006295
   (target: 0.003830,  side: 0.002465 (absolute))
  validation loss:		0.066717
  validation accuracy:		96.00 %
  side validation loss:		0.213823
  side validation accuracy:	nan %
Epoch 252 of 500 took 0.004s
  training loss:		0.006366
   (target: 0.003672,  side: 0.002694 (absolute))
  validation loss:		0.066666
  validation accuracy:		97.00 %
  side validation loss:		0.212981
  side validation accuracy:	nan %
Epoch 253 of 500 took 0.004s
  training loss:		0.006402
   (target: 0.003772,  side: 0.002630 (absolute))
  validation loss:		0.067236
  validation accuracy:		96.00 %
  side validation loss:		0.214999
  side validation accuracy:	nan %
Epoch 254 of 500 took 0.004s
  training loss:		0.006409
   (target: 0.003673,  side: 0.002736 (absolute))
  validation loss:		0.066765
  validation accuracy:		97.00 %
  side validation loss:		0.213395
  side validation accuracy:	nan %
Epoch 255 of 500 took 0.004s
  training loss:		0.006331
   (target: 0.003876,  side: 0.002456 (absolute))
  validation loss:		0.066347
  validation accuracy:		96.00 %
  side validation loss:		0.212840
  side validation accuracy:	nan %
Epoch 256 of 500 took 0.004s
  training loss:		0.006255
   (target: 0.003562,  side: 0.002693 (absolute))
  validation loss:		0.066141
  validation accuracy:		96.00 %
  side validation loss:		0.212227
  side validation accuracy:	nan %
Epoch 257 of 500 took 0.004s
  training loss:		0.006268
   (target: 0.003697,  side: 0.002571 (absolute))
  validation loss:		0.065848
  validation accuracy:		97.00 %
  side validation loss:		0.211326
  side validation accuracy:	nan %
Epoch 258 of 500 took 0.004s
  training loss:		0.006342
   (target: 0.003582,  side: 0.002761 (absolute))
  validation loss:		0.066707
  validation accuracy:		97.00 %
  side validation loss:		0.210561
  side validation accuracy:	nan %
Epoch 259 of 500 took 0.005s
  training loss:		0.006235
   (target: 0.003723,  side: 0.002512 (absolute))
  validation loss:		0.065671
  validation accuracy:		97.00 %
  side validation loss:		0.211080
  side validation accuracy:	nan %
Epoch 260 of 500 took 0.004s
  training loss:		0.006308
   (target: 0.003568,  side: 0.002740 (absolute))
  validation loss:		0.066798
  validation accuracy:		96.00 %
  side validation loss:		0.210955
  side validation accuracy:	nan %
Epoch 261 of 500 took 0.004s
  training loss:		0.006246
   (target: 0.003797,  side: 0.002449 (absolute))
  validation loss:		0.066036
  validation accuracy:		97.00 %
  side validation loss:		0.211799
  side validation accuracy:	nan %
Epoch 262 of 500 took 0.004s
  training loss:		0.006218
   (target: 0.003497,  side: 0.002721 (absolute))
  validation loss:		0.067062
  validation accuracy:		97.00 %
  side validation loss:		0.210428
  side validation accuracy:	nan %
Epoch 263 of 500 took 0.004s
  training loss:		0.006162
   (target: 0.003649,  side: 0.002513 (absolute))
  validation loss:		0.065481
  validation accuracy:		97.00 %
  side validation loss:		0.211516
  side validation accuracy:	nan %
Epoch 264 of 500 took 0.004s
  training loss:		0.006175
   (target: 0.003447,  side: 0.002727 (absolute))
  validation loss:		0.066369
  validation accuracy:		96.00 %
  side validation loss:		0.209683
  side validation accuracy:	nan %
Epoch 265 of 500 took 0.004s
  training loss:		0.006196
   (target: 0.003595,  side: 0.002600 (absolute))
  validation loss:		0.066085
  validation accuracy:		97.00 %
  side validation loss:		0.209052
  side validation accuracy:	nan %
Epoch 266 of 500 took 0.004s
  training loss:		0.006064
   (target: 0.003608,  side: 0.002456 (absolute))
  validation loss:		0.066142
  validation accuracy:		97.00 %
  side validation loss:		0.210394
  side validation accuracy:	nan %
Epoch 267 of 500 took 0.004s
  training loss:		0.006049
   (target: 0.003602,  side: 0.002447 (absolute))
  validation loss:		0.066586
  validation accuracy:		97.00 %
  side validation loss:		0.208905
  side validation accuracy:	nan %
Epoch 268 of 500 took 0.004s
  training loss:		0.005993
   (target: 0.003536,  side: 0.002456 (absolute))
  validation loss:		0.066237
  validation accuracy:		97.00 %
  side validation loss:		0.210030
  side validation accuracy:	nan %
Epoch 269 of 500 took 0.004s
  training loss:		0.006013
   (target: 0.003457,  side: 0.002556 (absolute))
  validation loss:		0.066390
  validation accuracy:		97.00 %
  side validation loss:		0.209042
  side validation accuracy:	nan %
Epoch 270 of 500 took 0.004s
  training loss:		0.005961
   (target: 0.003594,  side: 0.002367 (absolute))
  validation loss:		0.066158
  validation accuracy:		97.00 %
  side validation loss:		0.209111
  side validation accuracy:	nan %
Epoch 271 of 500 took 0.005s
  training loss:		0.006127
   (target: 0.003454,  side: 0.002673 (absolute))
  validation loss:		0.066051
  validation accuracy:		97.00 %
  side validation loss:		0.206935
  side validation accuracy:	nan %
Epoch 272 of 500 took 0.004s
  training loss:		0.006001
   (target: 0.003531,  side: 0.002470 (absolute))
  validation loss:		0.065170
  validation accuracy:		97.00 %
  side validation loss:		0.207768
  side validation accuracy:	nan %
Epoch 273 of 500 took 0.004s
  training loss:		0.005931
   (target: 0.003427,  side: 0.002504 (absolute))
  validation loss:		0.064576
  validation accuracy:		97.00 %
  side validation loss:		0.207300
  side validation accuracy:	nan %
Epoch 274 of 500 took 0.004s
  training loss:		0.005985
   (target: 0.003398,  side: 0.002586 (absolute))
  validation loss:		0.066402
  validation accuracy:		97.00 %
  side validation loss:		0.207272
  side validation accuracy:	nan %
Epoch 275 of 500 took 0.004s
  training loss:		0.005997
   (target: 0.003419,  side: 0.002578 (absolute))
  validation loss:		0.065458
  validation accuracy:		98.00 %
  side validation loss:		0.207377
  side validation accuracy:	nan %
Epoch 276 of 500 took 0.004s
  training loss:		0.005894
   (target: 0.003505,  side: 0.002389 (absolute))
  validation loss:		0.065822
  validation accuracy:		97.00 %
  side validation loss:		0.205813
  side validation accuracy:	nan %
Epoch 277 of 500 took 0.004s
  training loss:		0.005876
   (target: 0.003398,  side: 0.002478 (absolute))
  validation loss:		0.065559
  validation accuracy:		97.00 %
  side validation loss:		0.206163
  side validation accuracy:	nan %
Epoch 278 of 500 took 0.004s
  training loss:		0.005929
   (target: 0.003424,  side: 0.002505 (absolute))
  validation loss:		0.065172
  validation accuracy:		97.00 %
  side validation loss:		0.205117
  side validation accuracy:	nan %
Epoch 279 of 500 took 0.004s
  training loss:		0.006013
   (target: 0.003463,  side: 0.002551 (absolute))
  validation loss:		0.066835
  validation accuracy:		97.00 %
  side validation loss:		0.206228
  side validation accuracy:	nan %
Epoch 280 of 500 took 0.004s
  training loss:		0.005897
   (target: 0.003382,  side: 0.002514 (absolute))
  validation loss:		0.064461
  validation accuracy:		97.00 %
  side validation loss:		0.205127
  side validation accuracy:	nan %
Epoch 281 of 500 took 0.004s
  training loss:		0.005797
   (target: 0.003317,  side: 0.002480 (absolute))
  validation loss:		0.065987
  validation accuracy:		97.00 %
  side validation loss:		0.205067
  side validation accuracy:	nan %
Epoch 282 of 500 took 0.004s
  training loss:		0.005755
   (target: 0.003389,  side: 0.002366 (absolute))
  validation loss:		0.065734
  validation accuracy:		97.00 %
  side validation loss:		0.205466
  side validation accuracy:	nan %
Epoch 283 of 500 took 0.005s
  training loss:		0.005850
   (target: 0.003387,  side: 0.002463 (absolute))
  validation loss:		0.064346
  validation accuracy:		97.00 %
  side validation loss:		0.203526
  side validation accuracy:	nan %
Epoch 284 of 500 took 0.004s
  training loss:		0.005651
   (target: 0.003355,  side: 0.002296 (absolute))
  validation loss:		0.065356
  validation accuracy:		97.00 %
  side validation loss:		0.203942
  side validation accuracy:	nan %
Epoch 285 of 500 took 0.004s
  training loss:		0.005771
   (target: 0.003311,  side: 0.002460 (absolute))
  validation loss:		0.064323
  validation accuracy:		97.00 %
  side validation loss:		0.203106
  side validation accuracy:	nan %
Epoch 286 of 500 took 0.004s
  training loss:		0.005791
   (target: 0.003401,  side: 0.002390 (absolute))
  validation loss:		0.064820
  validation accuracy:		97.00 %
  side validation loss:		0.202011
  side validation accuracy:	nan %
Epoch 287 of 500 took 0.004s
  training loss:		0.005771
   (target: 0.003346,  side: 0.002425 (absolute))
  validation loss:		0.064741
  validation accuracy:		98.00 %
  side validation loss:		0.203806
  side validation accuracy:	nan %
Epoch 288 of 500 took 0.004s
  training loss:		0.005752
   (target: 0.003298,  side: 0.002454 (absolute))
  validation loss:		0.063682
  validation accuracy:		98.00 %
  side validation loss:		0.202554
  side validation accuracy:	nan %
Epoch 289 of 500 took 0.004s
  training loss:		0.005767
   (target: 0.003248,  side: 0.002518 (absolute))
  validation loss:		0.064727
  validation accuracy:		97.00 %
  side validation loss:		0.202846
  side validation accuracy:	nan %
Epoch 290 of 500 took 0.004s
  training loss:		0.005669
   (target: 0.003258,  side: 0.002411 (absolute))
  validation loss:		0.064398
  validation accuracy:		97.00 %
  side validation loss:		0.202358
  side validation accuracy:	nan %
Epoch 291 of 500 took 0.004s
  training loss:		0.005777
   (target: 0.003411,  side: 0.002367 (absolute))
  validation loss:		0.065405
  validation accuracy:		97.00 %
  side validation loss:		0.201639
  side validation accuracy:	nan %
Epoch 292 of 500 took 0.004s
  training loss:		0.005667
   (target: 0.003205,  side: 0.002462 (absolute))
  validation loss:		0.065175
  validation accuracy:		97.00 %
  side validation loss:		0.201391
  side validation accuracy:	nan %
Epoch 293 of 500 took 0.004s
  training loss:		0.005759
   (target: 0.003241,  side: 0.002518 (absolute))
  validation loss:		0.064939
  validation accuracy:		97.00 %
  side validation loss:		0.201698
  side validation accuracy:	nan %
Epoch 294 of 500 took 0.004s
  training loss:		0.005585
   (target: 0.003255,  side: 0.002330 (absolute))
  validation loss:		0.065095
  validation accuracy:		97.00 %
  side validation loss:		0.201398
  side validation accuracy:	nan %
Epoch 295 of 500 took 0.004s
  training loss:		0.005679
   (target: 0.003254,  side: 0.002425 (absolute))
  validation loss:		0.064178
  validation accuracy:		97.00 %
  side validation loss:		0.201473
  side validation accuracy:	nan %
Epoch 296 of 500 took 0.005s
  training loss:		0.005646
   (target: 0.003322,  side: 0.002324 (absolute))
  validation loss:		0.065210
  validation accuracy:		98.00 %
  side validation loss:		0.201693
  side validation accuracy:	nan %
Epoch 297 of 500 took 0.004s
  training loss:		0.005666
   (target: 0.003164,  side: 0.002502 (absolute))
  validation loss:		0.066385
  validation accuracy:		97.00 %
  side validation loss:		0.200058
  side validation accuracy:	nan %
Epoch 298 of 500 took 0.004s
  training loss:		0.005551
   (target: 0.003247,  side: 0.002304 (absolute))
  validation loss:		0.065117
  validation accuracy:		97.00 %
  side validation loss:		0.200076
  side validation accuracy:	nan %
Epoch 299 of 500 took 0.004s
  training loss:		0.005666
   (target: 0.003256,  side: 0.002410 (absolute))
  validation loss:		0.063203
  validation accuracy:		98.00 %
  side validation loss:		0.199411
  side validation accuracy:	nan %
Epoch 300 of 500 took 0.004s
  training loss:		0.005585
   (target: 0.003152,  side: 0.002433 (absolute))
  validation loss:		0.065426
  validation accuracy:		98.00 %
  side validation loss:		0.199427
  side validation accuracy:	nan %
Epoch 301 of 500 took 0.004s
  training loss:		0.005481
   (target: 0.003226,  side: 0.002255 (absolute))
  validation loss:		0.066222
  validation accuracy:		97.00 %
  side validation loss:		0.201277
  side validation accuracy:	nan %
Epoch 302 of 500 took 0.004s
  training loss:		0.005459
   (target: 0.003119,  side: 0.002341 (absolute))
  validation loss:		0.063442
  validation accuracy:		98.00 %
  side validation loss:		0.199899
  side validation accuracy:	nan %
Epoch 303 of 500 took 0.004s
  training loss:		0.005572
   (target: 0.003190,  side: 0.002382 (absolute))
  validation loss:		0.064178
  validation accuracy:		98.00 %
  side validation loss:		0.199943
  side validation accuracy:	nan %
Epoch 304 of 500 took 0.004s
  training loss:		0.005661
   (target: 0.003101,  side: 0.002560 (absolute))
  validation loss:		0.065722
  validation accuracy:		98.00 %
  side validation loss:		0.196673
  side validation accuracy:	nan %
Epoch 305 of 500 took 0.004s
  training loss:		0.005476
   (target: 0.003218,  side: 0.002258 (absolute))
  validation loss:		0.064633
  validation accuracy:		97.00 %
  side validation loss:		0.197601
  side validation accuracy:	nan %
Epoch 306 of 500 took 0.004s
  training loss:		0.005440
   (target: 0.003096,  side: 0.002344 (absolute))
  validation loss:		0.063555
  validation accuracy:		97.00 %
  side validation loss:		0.199523
  side validation accuracy:	nan %
Epoch 307 of 500 took 0.004s
  training loss:		0.005429
   (target: 0.003147,  side: 0.002282 (absolute))
  validation loss:		0.065404
  validation accuracy:		97.00 %
  side validation loss:		0.198376
  side validation accuracy:	nan %
Epoch 308 of 500 took 0.005s
  training loss:		0.005619
   (target: 0.003089,  side: 0.002530 (absolute))
  validation loss:		0.063919
  validation accuracy:		98.00 %
  side validation loss:		0.196743
  side validation accuracy:	nan %
Epoch 309 of 500 took 0.004s
  training loss:		0.005562
   (target: 0.003276,  side: 0.002286 (absolute))
  validation loss:		0.064751
  validation accuracy:		97.00 %
  side validation loss:		0.198817
  side validation accuracy:	nan %
Epoch 310 of 500 took 0.004s
  training loss:		0.005382
   (target: 0.003045,  side: 0.002337 (absolute))
  validation loss:		0.064145
  validation accuracy:		98.00 %
  side validation loss:		0.196599
  side validation accuracy:	nan %
Epoch 311 of 500 took 0.004s
  training loss:		0.005285
   (target: 0.003063,  side: 0.002222 (absolute))
  validation loss:		0.064272
  validation accuracy:		97.00 %
  side validation loss:		0.196817
  side validation accuracy:	nan %
Epoch 312 of 500 took 0.004s
  training loss:		0.005366
   (target: 0.003003,  side: 0.002363 (absolute))
  validation loss:		0.065413
  validation accuracy:		97.00 %
  side validation loss:		0.198179
  side validation accuracy:	nan %
Epoch 313 of 500 took 0.004s
  training loss:		0.005349
   (target: 0.003185,  side: 0.002164 (absolute))
  validation loss:		0.065334
  validation accuracy:		97.00 %
  side validation loss:		0.196359
  side validation accuracy:	nan %
Epoch 314 of 500 took 0.004s
  training loss:		0.005297
   (target: 0.003048,  side: 0.002249 (absolute))
  validation loss:		0.065355
  validation accuracy:		97.00 %
  side validation loss:		0.196406
  side validation accuracy:	nan %
Epoch 315 of 500 took 0.004s
  training loss:		0.005491
   (target: 0.003049,  side: 0.002442 (absolute))
  validation loss:		0.064548
  validation accuracy:		98.00 %
  side validation loss:		0.196607
  side validation accuracy:	nan %
Epoch 316 of 500 took 0.004s
  training loss:		0.005317
   (target: 0.003023,  side: 0.002294 (absolute))
  validation loss:		0.065634
  validation accuracy:		97.00 %
  side validation loss:		0.195278
  side validation accuracy:	nan %
Epoch 317 of 500 took 0.004s
  training loss:		0.005417
   (target: 0.003081,  side: 0.002336 (absolute))
  validation loss:		0.064007
  validation accuracy:		97.00 %
  side validation loss:		0.195845
  side validation accuracy:	nan %
Epoch 318 of 500 took 0.004s
  training loss:		0.005294
   (target: 0.003012,  side: 0.002282 (absolute))
  validation loss:		0.064230
  validation accuracy:		98.00 %
  side validation loss:		0.194812
  side validation accuracy:	nan %
Epoch 319 of 500 took 0.004s
  training loss:		0.005287
   (target: 0.002964,  side: 0.002323 (absolute))
  validation loss:		0.063680
  validation accuracy:		97.00 %
  side validation loss:		0.194536
  side validation accuracy:	nan %
Epoch 320 of 500 took 0.005s
  training loss:		0.005242
   (target: 0.003015,  side: 0.002227 (absolute))
  validation loss:		0.064738
  validation accuracy:		98.00 %
  side validation loss:		0.195156
  side validation accuracy:	nan %
Epoch 321 of 500 took 0.004s
  training loss:		0.005340
   (target: 0.003094,  side: 0.002246 (absolute))
  validation loss:		0.063971
  validation accuracy:		97.00 %
  side validation loss:		0.193963
  side validation accuracy:	nan %
Epoch 322 of 500 took 0.004s
  training loss:		0.005292
   (target: 0.003006,  side: 0.002286 (absolute))
  validation loss:		0.063132
  validation accuracy:		98.00 %
  side validation loss:		0.194442
  side validation accuracy:	nan %
Epoch 323 of 500 took 0.004s
  training loss:		0.005220
   (target: 0.002945,  side: 0.002275 (absolute))
  validation loss:		0.064205
  validation accuracy:		98.00 %
  side validation loss:		0.194018
  side validation accuracy:	nan %
Epoch 324 of 500 took 0.004s
  training loss:		0.005164
   (target: 0.002933,  side: 0.002231 (absolute))
  validation loss:		0.064342
  validation accuracy:		98.00 %
  side validation loss:		0.193089
  side validation accuracy:	nan %
Epoch 325 of 500 took 0.004s
  training loss:		0.005191
   (target: 0.002956,  side: 0.002235 (absolute))
  validation loss:		0.064063
  validation accuracy:		98.00 %
  side validation loss:		0.192757
  side validation accuracy:	nan %
Epoch 326 of 500 took 0.004s
  training loss:		0.005178
   (target: 0.003032,  side: 0.002146 (absolute))
  validation loss:		0.064425
  validation accuracy:		98.00 %
  side validation loss:		0.193109
  side validation accuracy:	nan %
Epoch 327 of 500 took 0.004s
  training loss:		0.005185
   (target: 0.002900,  side: 0.002284 (absolute))
  validation loss:		0.064431
  validation accuracy:		97.00 %
  side validation loss:		0.193357
  side validation accuracy:	nan %
Epoch 328 of 500 took 0.004s
  training loss:		0.005122
   (target: 0.002919,  side: 0.002202 (absolute))
  validation loss:		0.063195
  validation accuracy:		98.00 %
  side validation loss:		0.193855
  side validation accuracy:	nan %
Epoch 329 of 500 took 0.004s
  training loss:		0.005202
   (target: 0.002949,  side: 0.002253 (absolute))
  validation loss:		0.064037
  validation accuracy:		97.00 %
  side validation loss:		0.191808
  side validation accuracy:	nan %
Epoch 330 of 500 took 0.004s
  training loss:		0.005314
   (target: 0.002962,  side: 0.002352 (absolute))
  validation loss:		0.062352
  validation accuracy:		98.00 %
  side validation loss:		0.191805
  side validation accuracy:	nan %
Epoch 331 of 500 took 0.004s
  training loss:		0.005235
   (target: 0.002928,  side: 0.002307 (absolute))
  validation loss:		0.062488
  validation accuracy:		98.00 %
  side validation loss:		0.191259
  side validation accuracy:	nan %
Epoch 332 of 500 took 0.005s
  training loss:		0.005245
   (target: 0.002949,  side: 0.002296 (absolute))
  validation loss:		0.063178
  validation accuracy:		98.00 %
  side validation loss:		0.190387
  side validation accuracy:	nan %
Epoch 333 of 500 took 0.005s
  training loss:		0.005096
   (target: 0.002933,  side: 0.002164 (absolute))
  validation loss:		0.063618
  validation accuracy:		98.00 %
  side validation loss:		0.190596
  side validation accuracy:	nan %
Epoch 334 of 500 took 0.004s
  training loss:		0.005101
   (target: 0.002818,  side: 0.002283 (absolute))
  validation loss:		0.063337
  validation accuracy:		98.00 %
  side validation loss:		0.190542
  side validation accuracy:	nan %
Epoch 335 of 500 took 0.004s
  training loss:		0.005053
   (target: 0.002906,  side: 0.002147 (absolute))
  validation loss:		0.064536
  validation accuracy:		98.00 %
  side validation loss:		0.190327
  side validation accuracy:	nan %
Epoch 336 of 500 took 0.004s
  training loss:		0.005113
   (target: 0.002929,  side: 0.002184 (absolute))
  validation loss:		0.063368
  validation accuracy:		98.00 %
  side validation loss:		0.189794
  side validation accuracy:	nan %
Epoch 337 of 500 took 0.004s
  training loss:		0.005090
   (target: 0.002862,  side: 0.002228 (absolute))
  validation loss:		0.063493
  validation accuracy:		98.00 %
  side validation loss:		0.190647
  side validation accuracy:	nan %
Epoch 338 of 500 took 0.004s
  training loss:		0.005082
   (target: 0.002890,  side: 0.002192 (absolute))
  validation loss:		0.062668
  validation accuracy:		98.00 %
  side validation loss:		0.188265
  side validation accuracy:	nan %
Epoch 339 of 500 took 0.004s
  training loss:		0.005016
   (target: 0.002856,  side: 0.002159 (absolute))
  validation loss:		0.063378
  validation accuracy:		98.00 %
  side validation loss:		0.189191
  side validation accuracy:	nan %
Epoch 340 of 500 took 0.004s
  training loss:		0.005002
   (target: 0.002861,  side: 0.002141 (absolute))
  validation loss:		0.063092
  validation accuracy:		98.00 %
  side validation loss:		0.189687
  side validation accuracy:	nan %
Epoch 341 of 500 took 0.004s
  training loss:		0.005007
   (target: 0.002820,  side: 0.002187 (absolute))
  validation loss:		0.063026
  validation accuracy:		98.00 %
  side validation loss:		0.188710
  side validation accuracy:	nan %
Epoch 342 of 500 took 0.004s
  training loss:		0.005007
   (target: 0.002938,  side: 0.002070 (absolute))
  validation loss:		0.063449
  validation accuracy:		98.00 %
  side validation loss:		0.188547
  side validation accuracy:	nan %
Epoch 343 of 500 took 0.004s
  training loss:		0.004938
   (target: 0.002762,  side: 0.002177 (absolute))
  validation loss:		0.062801
  validation accuracy:		98.00 %
  side validation loss:		0.188711
  side validation accuracy:	nan %
Epoch 344 of 500 took 0.005s
  training loss:		0.004955
   (target: 0.002860,  side: 0.002095 (absolute))
  validation loss:		0.063754
  validation accuracy:		98.00 %
  side validation loss:		0.187513
  side validation accuracy:	nan %
Epoch 345 of 500 took 0.005s
  training loss:		0.005052
   (target: 0.002800,  side: 0.002252 (absolute))
  validation loss:		0.063286
  validation accuracy:		98.00 %
  side validation loss:		0.187139
  side validation accuracy:	nan %
Epoch 346 of 500 took 0.004s
  training loss:		0.005115
   (target: 0.002850,  side: 0.002265 (absolute))
  validation loss:		0.065094
  validation accuracy:		97.00 %
  side validation loss:		0.186801
  side validation accuracy:	nan %
Epoch 347 of 500 took 0.004s
  training loss:		0.004953
   (target: 0.002749,  side: 0.002203 (absolute))
  validation loss:		0.063193
  validation accuracy:		98.00 %
  side validation loss:		0.188499
  side validation accuracy:	nan %
Epoch 348 of 500 took 0.004s
  training loss:		0.004918
   (target: 0.002841,  side: 0.002076 (absolute))
  validation loss:		0.062194
  validation accuracy:		98.00 %
  side validation loss:		0.187228
  side validation accuracy:	nan %
Epoch 349 of 500 took 0.004s
  training loss:		0.004877
   (target: 0.002809,  side: 0.002068 (absolute))
  validation loss:		0.063718
  validation accuracy:		98.00 %
  side validation loss:		0.187804
  side validation accuracy:	nan %
Epoch 350 of 500 took 0.004s
  training loss:		0.004870
   (target: 0.002733,  side: 0.002138 (absolute))
  validation loss:		0.064491
  validation accuracy:		97.00 %
  side validation loss:		0.186510
  side validation accuracy:	nan %
Epoch 351 of 500 took 0.004s
  training loss:		0.004913
   (target: 0.002795,  side: 0.002118 (absolute))
  validation loss:		0.062353
  validation accuracy:		98.00 %
  side validation loss:		0.188027
  side validation accuracy:	nan %
Epoch 352 of 500 took 0.004s
  training loss:		0.004804
   (target: 0.002793,  side: 0.002011 (absolute))
  validation loss:		0.063606
  validation accuracy:		98.00 %
  side validation loss:		0.185435
  side validation accuracy:	nan %
Epoch 353 of 500 took 0.004s
  training loss:		0.004948
   (target: 0.002768,  side: 0.002179 (absolute))
  validation loss:		0.063665
  validation accuracy:		98.00 %
  side validation loss:		0.185109
  side validation accuracy:	nan %
Epoch 354 of 500 took 0.004s
  training loss:		0.004798
   (target: 0.002706,  side: 0.002093 (absolute))
  validation loss:		0.063025
  validation accuracy:		98.00 %
  side validation loss:		0.186872
  side validation accuracy:	nan %
Epoch 355 of 500 took 0.004s
  training loss:		0.004885
   (target: 0.002735,  side: 0.002150 (absolute))
  validation loss:		0.062992
  validation accuracy:		98.00 %
  side validation loss:		0.185678
  side validation accuracy:	nan %
Epoch 356 of 500 took 0.004s
  training loss:		0.004896
   (target: 0.002732,  side: 0.002164 (absolute))
  validation loss:		0.062763
  validation accuracy:		98.00 %
  side validation loss:		0.184275
  side validation accuracy:	nan %
Epoch 357 of 500 took 0.005s
  training loss:		0.004807
   (target: 0.002781,  side: 0.002026 (absolute))
  validation loss:		0.064147
  validation accuracy:		98.00 %
  side validation loss:		0.186372
  side validation accuracy:	nan %
Epoch 358 of 500 took 0.004s
  training loss:		0.004791
   (target: 0.002666,  side: 0.002125 (absolute))
  validation loss:		0.062950
  validation accuracy:		98.00 %
  side validation loss:		0.184200
  side validation accuracy:	nan %
Epoch 359 of 500 took 0.005s
  training loss:		0.004714
   (target: 0.002635,  side: 0.002078 (absolute))
  validation loss:		0.062833
  validation accuracy:		98.00 %
  side validation loss:		0.185198
  side validation accuracy:	nan %
Epoch 360 of 500 took 0.004s
  training loss:		0.004840
   (target: 0.002779,  side: 0.002060 (absolute))
  validation loss:		0.062383
  validation accuracy:		98.00 %
  side validation loss:		0.185864
  side validation accuracy:	nan %
Epoch 361 of 500 took 0.004s
  training loss:		0.004796
   (target: 0.002702,  side: 0.002094 (absolute))
  validation loss:		0.063422
  validation accuracy:		98.00 %
  side validation loss:		0.184131
  side validation accuracy:	nan %
Epoch 362 of 500 took 0.004s
  training loss:		0.004971
   (target: 0.002742,  side: 0.002229 (absolute))
  validation loss:		0.062444
  validation accuracy:		98.00 %
  side validation loss:		0.183128
  side validation accuracy:	nan %
Epoch 363 of 500 took 0.004s
  training loss:		0.004944
   (target: 0.002768,  side: 0.002176 (absolute))
  validation loss:		0.063718
  validation accuracy:		98.00 %
  side validation loss:		0.184156
  side validation accuracy:	nan %
Epoch 364 of 500 took 0.004s
  training loss:		0.004816
   (target: 0.002697,  side: 0.002119 (absolute))
  validation loss:		0.062798
  validation accuracy:		98.00 %
  side validation loss:		0.183564
  side validation accuracy:	nan %
Epoch 365 of 500 took 0.004s
  training loss:		0.004721
   (target: 0.002704,  side: 0.002017 (absolute))
  validation loss:		0.063115
  validation accuracy:		98.00 %
  side validation loss:		0.183269
  side validation accuracy:	nan %
Epoch 366 of 500 took 0.004s
  training loss:		0.004739
   (target: 0.002674,  side: 0.002065 (absolute))
  validation loss:		0.063018
  validation accuracy:		98.00 %
  side validation loss:		0.181980
  side validation accuracy:	nan %
Epoch 367 of 500 took 0.004s
  training loss:		0.004769
   (target: 0.002617,  side: 0.002152 (absolute))
  validation loss:		0.062866
  validation accuracy:		98.00 %
  side validation loss:		0.182685
  side validation accuracy:	nan %
Epoch 368 of 500 took 0.004s
  training loss:		0.004723
   (target: 0.002729,  side: 0.001994 (absolute))
  validation loss:		0.063028
  validation accuracy:		98.00 %
  side validation loss:		0.182309
  side validation accuracy:	nan %
Epoch 369 of 500 took 0.005s
  training loss:		0.004695
   (target: 0.002659,  side: 0.002036 (absolute))
  validation loss:		0.062893
  validation accuracy:		98.00 %
  side validation loss:		0.182669
  side validation accuracy:	nan %
Epoch 370 of 500 took 0.004s
  training loss:		0.004733
   (target: 0.002628,  side: 0.002105 (absolute))
  validation loss:		0.063107
  validation accuracy:		98.00 %
  side validation loss:		0.181808
  side validation accuracy:	nan %
Epoch 371 of 500 took 0.004s
  training loss:		0.004652
   (target: 0.002676,  side: 0.001975 (absolute))
  validation loss:		0.062718
  validation accuracy:		98.00 %
  side validation loss:		0.183349
  side validation accuracy:	nan %
Epoch 372 of 500 took 0.004s
  training loss:		0.004665
   (target: 0.002687,  side: 0.001979 (absolute))
  validation loss:		0.063138
  validation accuracy:		98.00 %
  side validation loss:		0.182352
  side validation accuracy:	nan %
Epoch 373 of 500 took 0.004s
  training loss:		0.004681
   (target: 0.002543,  side: 0.002138 (absolute))
  validation loss:		0.062868
  validation accuracy:		98.00 %
  side validation loss:		0.181372
  side validation accuracy:	nan %
Epoch 374 of 500 took 0.004s
  training loss:		0.004662
   (target: 0.002667,  side: 0.001995 (absolute))
  validation loss:		0.063157
  validation accuracy:		98.00 %
  side validation loss:		0.182634
  side validation accuracy:	nan %
Epoch 375 of 500 took 0.004s
  training loss:		0.004607
   (target: 0.002554,  side: 0.002052 (absolute))
  validation loss:		0.062329
  validation accuracy:		98.00 %
  side validation loss:		0.182790
  side validation accuracy:	nan %
Epoch 376 of 500 took 0.004s
  training loss:		0.004639
   (target: 0.002624,  side: 0.002016 (absolute))
  validation loss:		0.062204
  validation accuracy:		98.00 %
  side validation loss:		0.181096
  side validation accuracy:	nan %
Epoch 377 of 500 took 0.004s
  training loss:		0.004605
   (target: 0.002572,  side: 0.002033 (absolute))
  validation loss:		0.062309
  validation accuracy:		98.00 %
  side validation loss:		0.181730
  side validation accuracy:	nan %
Epoch 378 of 500 took 0.004s
  training loss:		0.004671
   (target: 0.002607,  side: 0.002064 (absolute))
  validation loss:		0.062818
  validation accuracy:		98.00 %
  side validation loss:		0.179899
  side validation accuracy:	nan %
Epoch 379 of 500 took 0.004s
  training loss:		0.004634
   (target: 0.002598,  side: 0.002036 (absolute))
  validation loss:		0.063079
  validation accuracy:		98.00 %
  side validation loss:		0.181205
  side validation accuracy:	nan %
Epoch 380 of 500 took 0.004s
  training loss:		0.004676
   (target: 0.002587,  side: 0.002089 (absolute))
  validation loss:		0.062318
  validation accuracy:		98.00 %
  side validation loss:		0.180848
  side validation accuracy:	nan %
Epoch 381 of 500 took 0.005s
  training loss:		0.004600
   (target: 0.002561,  side: 0.002039 (absolute))
  validation loss:		0.062612
  validation accuracy:		98.00 %
  side validation loss:		0.179407
  side validation accuracy:	nan %
Epoch 382 of 500 took 0.004s
  training loss:		0.004565
   (target: 0.002573,  side: 0.001992 (absolute))
  validation loss:		0.061737
  validation accuracy:		98.00 %
  side validation loss:		0.179728
  side validation accuracy:	nan %
Epoch 383 of 500 took 0.004s
  training loss:		0.004590
   (target: 0.002551,  side: 0.002039 (absolute))
  validation loss:		0.062785
  validation accuracy:		98.00 %
  side validation loss:		0.180754
  side validation accuracy:	nan %
Epoch 384 of 500 took 0.004s
  training loss:		0.004578
   (target: 0.002614,  side: 0.001964 (absolute))
  validation loss:		0.062162
  validation accuracy:		98.00 %
  side validation loss:		0.179787
  side validation accuracy:	nan %
Epoch 385 of 500 took 0.004s
  training loss:		0.004565
   (target: 0.002575,  side: 0.001990 (absolute))
  validation loss:		0.061538
  validation accuracy:		98.00 %
  side validation loss:		0.180025
  side validation accuracy:	nan %
Epoch 386 of 500 took 0.004s
  training loss:		0.004475
   (target: 0.002449,  side: 0.002026 (absolute))
  validation loss:		0.061775
  validation accuracy:		98.00 %
  side validation loss:		0.179525
  side validation accuracy:	nan %
Epoch 387 of 500 took 0.004s
  training loss:		0.004556
   (target: 0.002556,  side: 0.001999 (absolute))
  validation loss:		0.062876
  validation accuracy:		98.00 %
  side validation loss:		0.179387
  side validation accuracy:	nan %
Epoch 388 of 500 took 0.004s
  training loss:		0.004545
   (target: 0.002599,  side: 0.001947 (absolute))
  validation loss:		0.062022
  validation accuracy:		98.00 %
  side validation loss:		0.179144
  side validation accuracy:	nan %
Epoch 389 of 500 took 0.004s
  training loss:		0.004446
   (target: 0.002405,  side: 0.002041 (absolute))
  validation loss:		0.062176
  validation accuracy:		98.00 %
  side validation loss:		0.178932
  side validation accuracy:	nan %
Epoch 390 of 500 took 0.004s
  training loss:		0.004506
   (target: 0.002624,  side: 0.001882 (absolute))
  validation loss:		0.061755
  validation accuracy:		98.00 %
  side validation loss:		0.177827
  side validation accuracy:	nan %
Epoch 391 of 500 took 0.004s
  training loss:		0.004527
   (target: 0.002463,  side: 0.002065 (absolute))
  validation loss:		0.061200
  validation accuracy:		98.00 %
  side validation loss:		0.177675
  side validation accuracy:	nan %
Epoch 392 of 500 took 0.004s
  training loss:		0.004495
   (target: 0.002513,  side: 0.001982 (absolute))
  validation loss:		0.060669
  validation accuracy:		98.00 %
  side validation loss:		0.178880
  side validation accuracy:	nan %
Epoch 393 of 500 took 0.005s
  training loss:		0.004462
   (target: 0.002513,  side: 0.001949 (absolute))
  validation loss:		0.063002
  validation accuracy:		98.00 %
  side validation loss:		0.178406
  side validation accuracy:	nan %
Epoch 394 of 500 took 0.005s
  training loss:		0.004564
   (target: 0.002498,  side: 0.002067 (absolute))
  validation loss:		0.060998
  validation accuracy:		98.00 %
  side validation loss:		0.176296
  side validation accuracy:	nan %
Epoch 395 of 500 took 0.004s
  training loss:		0.004463
   (target: 0.002513,  side: 0.001950 (absolute))
  validation loss:		0.062732
  validation accuracy:		98.00 %
  side validation loss:		0.175924
  side validation accuracy:	nan %
Epoch 396 of 500 took 0.004s
  training loss:		0.004565
   (target: 0.002441,  side: 0.002124 (absolute))
  validation loss:		0.061264
  validation accuracy:		98.00 %
  side validation loss:		0.176723
  side validation accuracy:	nan %
Epoch 397 of 500 took 0.004s
  training loss:		0.004414
   (target: 0.002469,  side: 0.001945 (absolute))
  validation loss:		0.062559
  validation accuracy:		98.00 %
  side validation loss:		0.176822
  side validation accuracy:	nan %
Epoch 398 of 500 took 0.004s
  training loss:		0.004350
   (target: 0.002453,  side: 0.001896 (absolute))
  validation loss:		0.061915
  validation accuracy:		98.00 %
  side validation loss:		0.176112
  side validation accuracy:	nan %
Epoch 399 of 500 took 0.004s
  training loss:		0.004418
   (target: 0.002453,  side: 0.001964 (absolute))
  validation loss:		0.061656
  validation accuracy:		98.00 %
  side validation loss:		0.177579
  side validation accuracy:	nan %
Epoch 400 of 500 took 0.004s
  training loss:		0.004432
   (target: 0.002476,  side: 0.001956 (absolute))
  validation loss:		0.060936
  validation accuracy:		98.00 %
  side validation loss:		0.174240
  side validation accuracy:	nan %
Epoch 401 of 500 took 0.004s
  training loss:		0.004376
   (target: 0.002486,  side: 0.001890 (absolute))
  validation loss:		0.060936
  validation accuracy:		98.00 %
  side validation loss:		0.175088
  side validation accuracy:	nan %
Epoch 402 of 500 took 0.004s
  training loss:		0.004398
   (target: 0.002433,  side: 0.001965 (absolute))
  validation loss:		0.061738
  validation accuracy:		98.00 %
  side validation loss:		0.176436
  side validation accuracy:	nan %
Epoch 403 of 500 took 0.004s
  training loss:		0.004518
   (target: 0.002514,  side: 0.002004 (absolute))
  validation loss:		0.061849
  validation accuracy:		98.00 %
  side validation loss:		0.174797
  side validation accuracy:	nan %
Epoch 404 of 500 took 0.004s
  training loss:		0.004341
   (target: 0.002428,  side: 0.001914 (absolute))
  validation loss:		0.061416
  validation accuracy:		98.00 %
  side validation loss:		0.175385
  side validation accuracy:	nan %
Epoch 405 of 500 took 0.004s
  training loss:		0.004340
   (target: 0.002471,  side: 0.001869 (absolute))
  validation loss:		0.060859
  validation accuracy:		98.00 %
  side validation loss:		0.175232
  side validation accuracy:	nan %
Epoch 406 of 500 took 0.005s
  training loss:		0.004381
   (target: 0.002431,  side: 0.001950 (absolute))
  validation loss:		0.061377
  validation accuracy:		98.00 %
  side validation loss:		0.174764
  side validation accuracy:	nan %
Epoch 407 of 500 took 0.004s
  training loss:		0.004419
   (target: 0.002399,  side: 0.002020 (absolute))
  validation loss:		0.060697
  validation accuracy:		98.00 %
  side validation loss:		0.173881
  side validation accuracy:	nan %
Epoch 408 of 500 took 0.004s
  training loss:		0.004337
   (target: 0.002428,  side: 0.001910 (absolute))
  validation loss:		0.061702
  validation accuracy:		98.00 %
  side validation loss:		0.174635
  side validation accuracy:	nan %
Epoch 409 of 500 took 0.004s
  training loss:		0.004364
   (target: 0.002489,  side: 0.001875 (absolute))
  validation loss:		0.062438
  validation accuracy:		98.00 %
  side validation loss:		0.176253
  side validation accuracy:	nan %
Epoch 410 of 500 took 0.004s
  training loss:		0.004383
   (target: 0.002355,  side: 0.002028 (absolute))
  validation loss:		0.061210
  validation accuracy:		98.00 %
  side validation loss:		0.174366
  side validation accuracy:	nan %
Epoch 411 of 500 took 0.004s
  training loss:		0.004244
   (target: 0.002419,  side: 0.001825 (absolute))
  validation loss:		0.061288
  validation accuracy:		98.00 %
  side validation loss:		0.173753
  side validation accuracy:	nan %
Epoch 412 of 500 took 0.004s
  training loss:		0.004298
   (target: 0.002410,  side: 0.001887 (absolute))
  validation loss:		0.061107
  validation accuracy:		98.00 %
  side validation loss:		0.173859
  side validation accuracy:	nan %
Epoch 413 of 500 took 0.004s
  training loss:		0.004337
   (target: 0.002440,  side: 0.001897 (absolute))
  validation loss:		0.060366
  validation accuracy:		98.00 %
  side validation loss:		0.174240
  side validation accuracy:	nan %
Epoch 414 of 500 took 0.004s
  training loss:		0.004219
   (target: 0.002312,  side: 0.001907 (absolute))
  validation loss:		0.060344
  validation accuracy:		98.00 %
  side validation loss:		0.173675
  side validation accuracy:	nan %
Epoch 415 of 500 took 0.004s
  training loss:		0.004299
   (target: 0.002445,  side: 0.001854 (absolute))
  validation loss:		0.061754
  validation accuracy:		98.00 %
  side validation loss:		0.172855
  side validation accuracy:	nan %
Epoch 416 of 500 took 0.004s
  training loss:		0.004384
   (target: 0.002354,  side: 0.002030 (absolute))
  validation loss:		0.061160
  validation accuracy:		98.00 %
  side validation loss:		0.171671
  side validation accuracy:	nan %
Epoch 417 of 500 took 0.004s
  training loss:		0.004319
   (target: 0.002442,  side: 0.001877 (absolute))
  validation loss:		0.061711
  validation accuracy:		98.00 %
  side validation loss:		0.174183
  side validation accuracy:	nan %
Epoch 418 of 500 took 0.005s
  training loss:		0.004525
   (target: 0.002367,  side: 0.002158 (absolute))
  validation loss:		0.060718
  validation accuracy:		98.00 %
  side validation loss:		0.174133
  side validation accuracy:	nan %
Epoch 419 of 500 took 0.004s
  training loss:		0.004385
   (target: 0.002346,  side: 0.002039 (absolute))
  validation loss:		0.061210
  validation accuracy:		98.00 %
  side validation loss:		0.171397
  side validation accuracy:	nan %
Epoch 420 of 500 took 0.004s
  training loss:		0.004321
   (target: 0.002387,  side: 0.001934 (absolute))
  validation loss:		0.061792
  validation accuracy:		98.00 %
  side validation loss:		0.170418
  side validation accuracy:	nan %
Epoch 421 of 500 took 0.004s
  training loss:		0.004311
   (target: 0.002353,  side: 0.001959 (absolute))
  validation loss:		0.061015
  validation accuracy:		98.00 %
  side validation loss:		0.171339
  side validation accuracy:	nan %
Epoch 422 of 500 took 0.004s
  training loss:		0.004214
   (target: 0.002401,  side: 0.001812 (absolute))
  validation loss:		0.061855
  validation accuracy:		98.00 %
  side validation loss:		0.171814
  side validation accuracy:	nan %
Epoch 423 of 500 took 0.004s
  training loss:		0.004208
   (target: 0.002329,  side: 0.001879 (absolute))
  validation loss:		0.060544
  validation accuracy:		98.00 %
  side validation loss:		0.172246
  side validation accuracy:	nan %
Epoch 424 of 500 took 0.004s
  training loss:		0.004180
   (target: 0.002317,  side: 0.001863 (absolute))
  validation loss:		0.062089
  validation accuracy:		98.00 %
  side validation loss:		0.170819
  side validation accuracy:	nan %
Epoch 425 of 500 took 0.004s
  training loss:		0.004259
   (target: 0.002371,  side: 0.001887 (absolute))
  validation loss:		0.061313
  validation accuracy:		98.00 %
  side validation loss:		0.172253
  side validation accuracy:	nan %
Epoch 426 of 500 took 0.004s
  training loss:		0.004258
   (target: 0.002347,  side: 0.001912 (absolute))
  validation loss:		0.060282
  validation accuracy:		98.00 %
  side validation loss:		0.170462
  side validation accuracy:	nan %
Epoch 427 of 500 took 0.004s
  training loss:		0.004191
   (target: 0.002360,  side: 0.001831 (absolute))
  validation loss:		0.061394
  validation accuracy:		98.00 %
  side validation loss:		0.171625
  side validation accuracy:	nan %
Epoch 428 of 500 took 0.004s
  training loss:		0.004203
   (target: 0.002304,  side: 0.001900 (absolute))
  validation loss:		0.061194
  validation accuracy:		98.00 %
  side validation loss:		0.171293
  side validation accuracy:	nan %
Epoch 429 of 500 took 0.004s
  training loss:		0.004143
   (target: 0.002347,  side: 0.001797 (absolute))
  validation loss:		0.060522
  validation accuracy:		98.00 %
  side validation loss:		0.170297
  side validation accuracy:	nan %
Epoch 430 of 500 took 0.005s
  training loss:		0.004098
   (target: 0.002254,  side: 0.001845 (absolute))
  validation loss:		0.061389
  validation accuracy:		98.00 %
  side validation loss:		0.171096
  side validation accuracy:	nan %
Epoch 431 of 500 took 0.004s
  training loss:		0.004262
   (target: 0.002303,  side: 0.001959 (absolute))
  validation loss:		0.059968
  validation accuracy:		98.00 %
  side validation loss:		0.169753
  side validation accuracy:	nan %
Epoch 432 of 500 took 0.004s
  training loss:		0.004127
   (target: 0.002337,  side: 0.001791 (absolute))
  validation loss:		0.060652
  validation accuracy:		98.00 %
  side validation loss:		0.169754
  side validation accuracy:	nan %
Epoch 433 of 500 took 0.004s
  training loss:		0.004027
   (target: 0.002303,  side: 0.001725 (absolute))
  validation loss:		0.059661
  validation accuracy:		98.00 %
  side validation loss:		0.170902
  side validation accuracy:	nan %
Epoch 434 of 500 took 0.004s
  training loss:		0.004149
   (target: 0.002296,  side: 0.001853 (absolute))
  validation loss:		0.061232
  validation accuracy:		98.00 %
  side validation loss:		0.170218
  side validation accuracy:	nan %
Epoch 435 of 500 took 0.004s
  training loss:		0.004215
   (target: 0.002355,  side: 0.001859 (absolute))
  validation loss:		0.059981
  validation accuracy:		98.00 %
  side validation loss:		0.168863
  side validation accuracy:	nan %
Epoch 436 of 500 took 0.004s
  training loss:		0.004261
   (target: 0.002276,  side: 0.001986 (absolute))
  validation loss:		0.059967
  validation accuracy:		98.00 %
  side validation loss:		0.169996
  side validation accuracy:	nan %
Epoch 437 of 500 took 0.004s
  training loss:		0.004129
   (target: 0.002276,  side: 0.001853 (absolute))
  validation loss:		0.060520
  validation accuracy:		98.00 %
  side validation loss:		0.169564
  side validation accuracy:	nan %
Epoch 438 of 500 took 0.004s
  training loss:		0.004140
   (target: 0.002339,  side: 0.001802 (absolute))
  validation loss:		0.061498
  validation accuracy:		98.00 %
  side validation loss:		0.169800
  side validation accuracy:	nan %
Epoch 439 of 500 took 0.004s
  training loss:		0.004079
   (target: 0.002258,  side: 0.001821 (absolute))
  validation loss:		0.060409
  validation accuracy:		98.00 %
  side validation loss:		0.169638
  side validation accuracy:	nan %
Epoch 440 of 500 took 0.004s
  training loss:		0.004111
   (target: 0.002262,  side: 0.001849 (absolute))
  validation loss:		0.060120
  validation accuracy:		98.00 %
  side validation loss:		0.169170
  side validation accuracy:	nan %
Epoch 441 of 500 took 0.004s
  training loss:		0.004102
   (target: 0.002271,  side: 0.001831 (absolute))
  validation loss:		0.060521
  validation accuracy:		98.00 %
  side validation loss:		0.167756
  side validation accuracy:	nan %
Epoch 442 of 500 took 0.005s
  training loss:		0.004080
   (target: 0.002210,  side: 0.001870 (absolute))
  validation loss:		0.060509
  validation accuracy:		98.00 %
  side validation loss:		0.167760
  side validation accuracy:	nan %
Epoch 443 of 500 took 0.005s
  training loss:		0.004088
   (target: 0.002298,  side: 0.001790 (absolute))
  validation loss:		0.061653
  validation accuracy:		98.00 %
  side validation loss:		0.168491
  side validation accuracy:	nan %
Epoch 444 of 500 took 0.004s
  training loss:		0.004081
   (target: 0.002255,  side: 0.001826 (absolute))
  validation loss:		0.060446
  validation accuracy:		98.00 %
  side validation loss:		0.168669
  side validation accuracy:	nan %
Epoch 445 of 500 took 0.004s
  training loss:		0.004040
   (target: 0.002234,  side: 0.001806 (absolute))
  validation loss:		0.060230
  validation accuracy:		98.00 %
  side validation loss:		0.167596
  side validation accuracy:	nan %
Epoch 446 of 500 took 0.004s
  training loss:		0.004040
   (target: 0.002209,  side: 0.001831 (absolute))
  validation loss:		0.061327
  validation accuracy:		98.00 %
  side validation loss:		0.168032
  side validation accuracy:	nan %
Epoch 447 of 500 took 0.004s
  training loss:		0.004038
   (target: 0.002294,  side: 0.001744 (absolute))
  validation loss:		0.060619
  validation accuracy:		98.00 %
  side validation loss:		0.167871
  side validation accuracy:	nan %
Epoch 448 of 500 took 0.004s
  training loss:		0.004040
   (target: 0.002165,  side: 0.001876 (absolute))
  validation loss:		0.060814
  validation accuracy:		98.00 %
  side validation loss:		0.168016
  side validation accuracy:	nan %
Epoch 449 of 500 took 0.004s
  training loss:		0.004059
   (target: 0.002256,  side: 0.001803 (absolute))
  validation loss:		0.060901
  validation accuracy:		98.00 %
  side validation loss:		0.167709
  side validation accuracy:	nan %
Epoch 450 of 500 took 0.004s
  training loss:		0.004147
   (target: 0.002196,  side: 0.001952 (absolute))
  validation loss:		0.060105
  validation accuracy:		98.00 %
  side validation loss:		0.166511
  side validation accuracy:	nan %
Epoch 451 of 500 took 0.004s
  training loss:		0.004099
   (target: 0.002235,  side: 0.001864 (absolute))
  validation loss:		0.059999
  validation accuracy:		98.00 %
  side validation loss:		0.167060
  side validation accuracy:	nan %
Epoch 452 of 500 took 0.004s
  training loss:		0.004052
   (target: 0.002242,  side: 0.001810 (absolute))
  validation loss:		0.060346
  validation accuracy:		98.00 %
  side validation loss:		0.166814
  side validation accuracy:	nan %
Epoch 453 of 500 took 0.004s
  training loss:		0.004001
   (target: 0.002265,  side: 0.001736 (absolute))
  validation loss:		0.060628
  validation accuracy:		98.00 %
  side validation loss:		0.166915
  side validation accuracy:	nan %
Epoch 454 of 500 took 0.004s
  training loss:		0.004032
   (target: 0.002178,  side: 0.001854 (absolute))
  validation loss:		0.060533
  validation accuracy:		98.00 %
  side validation loss:		0.166669
  side validation accuracy:	nan %
Epoch 455 of 500 took 0.005s
  training loss:		0.004023
   (target: 0.002233,  side: 0.001790 (absolute))
  validation loss:		0.059262
  validation accuracy:		98.00 %
  side validation loss:		0.166895
  side validation accuracy:	nan %
Epoch 456 of 500 took 0.004s
  training loss:		0.004090
   (target: 0.002233,  side: 0.001857 (absolute))
  validation loss:		0.060169
  validation accuracy:		98.00 %
  side validation loss:		0.166143
  side validation accuracy:	nan %
Epoch 457 of 500 took 0.004s
  training loss:		0.004102
   (target: 0.002216,  side: 0.001886 (absolute))
  validation loss:		0.060401
  validation accuracy:		98.00 %
  side validation loss:		0.166845
  side validation accuracy:	nan %
Epoch 458 of 500 took 0.004s
  training loss:		0.004064
   (target: 0.002207,  side: 0.001857 (absolute))
  validation loss:		0.060651
  validation accuracy:		98.00 %
  side validation loss:		0.166166
  side validation accuracy:	nan %
Epoch 459 of 500 took 0.004s
  training loss:		0.003961
   (target: 0.002195,  side: 0.001766 (absolute))
  validation loss:		0.060941
  validation accuracy:		98.00 %
  side validation loss:		0.166128
  side validation accuracy:	nan %
Epoch 460 of 500 took 0.004s
  training loss:		0.004164
   (target: 0.002205,  side: 0.001959 (absolute))
  validation loss:		0.061264
  validation accuracy:		98.00 %
  side validation loss:		0.165625
  side validation accuracy:	nan %
Epoch 461 of 500 took 0.004s
  training loss:		0.004053
   (target: 0.002223,  side: 0.001831 (absolute))
  validation loss:		0.060561
  validation accuracy:		98.00 %
  side validation loss:		0.165219
  side validation accuracy:	nan %
Epoch 462 of 500 took 0.004s
  training loss:		0.003975
   (target: 0.002158,  side: 0.001817 (absolute))
  validation loss:		0.060430
  validation accuracy:		98.00 %
  side validation loss:		0.164982
  side validation accuracy:	nan %
Epoch 463 of 500 took 0.004s
  training loss:		0.003918
   (target: 0.002201,  side: 0.001717 (absolute))
  validation loss:		0.059591
  validation accuracy:		98.00 %
  side validation loss:		0.164420
  side validation accuracy:	nan %
Epoch 464 of 500 took 0.004s
  training loss:		0.003959
   (target: 0.002131,  side: 0.001829 (absolute))
  validation loss:		0.058754
  validation accuracy:		98.00 %
  side validation loss:		0.165686
  side validation accuracy:	nan %
Epoch 465 of 500 took 0.004s
  training loss:		0.003923
   (target: 0.002215,  side: 0.001708 (absolute))
  validation loss:		0.060121
  validation accuracy:		98.00 %
  side validation loss:		0.165166
  side validation accuracy:	nan %
Epoch 466 of 500 took 0.004s
  training loss:		0.003892
   (target: 0.002152,  side: 0.001740 (absolute))
  validation loss:		0.058452
  validation accuracy:		98.00 %
  side validation loss:		0.165395
  side validation accuracy:	nan %
Epoch 467 of 500 took 0.005s
  training loss:		0.003971
   (target: 0.002163,  side: 0.001808 (absolute))
  validation loss:		0.059714
  validation accuracy:		98.00 %
  side validation loss:		0.163596
  side validation accuracy:	nan %
Epoch 468 of 500 took 0.004s
  training loss:		0.003935
   (target: 0.002130,  side: 0.001805 (absolute))
  validation loss:		0.059751
  validation accuracy:		98.00 %
  side validation loss:		0.164066
  side validation accuracy:	nan %
Epoch 469 of 500 took 0.004s
  training loss:		0.003930
   (target: 0.002164,  side: 0.001767 (absolute))
  validation loss:		0.059232
  validation accuracy:		98.00 %
  side validation loss:		0.163732
  side validation accuracy:	nan %
Epoch 470 of 500 took 0.004s
  training loss:		0.003915
   (target: 0.002156,  side: 0.001759 (absolute))
  validation loss:		0.059717
  validation accuracy:		98.00 %
  side validation loss:		0.165217
  side validation accuracy:	nan %
Epoch 471 of 500 took 0.004s
  training loss:		0.003892
   (target: 0.002100,  side: 0.001792 (absolute))
  validation loss:		0.059991
  validation accuracy:		98.00 %
  side validation loss:		0.163301
  side validation accuracy:	nan %
Epoch 472 of 500 took 0.004s
  training loss:		0.003920
   (target: 0.002168,  side: 0.001752 (absolute))
  validation loss:		0.059792
  validation accuracy:		98.00 %
  side validation loss:		0.163499
  side validation accuracy:	nan %
Epoch 473 of 500 took 0.004s
  training loss:		0.003982
   (target: 0.002092,  side: 0.001890 (absolute))
  validation loss:		0.058418
  validation accuracy:		98.00 %
  side validation loss:		0.164114
  side validation accuracy:	nan %
Epoch 474 of 500 took 0.004s
  training loss:		0.003920
   (target: 0.002174,  side: 0.001746 (absolute))
  validation loss:		0.061460
  validation accuracy:		98.00 %
  side validation loss:		0.163353
  side validation accuracy:	nan %
Epoch 475 of 500 took 0.004s
  training loss:		0.003881
   (target: 0.002143,  side: 0.001738 (absolute))
  validation loss:		0.059588
  validation accuracy:		98.00 %
  side validation loss:		0.163339
  side validation accuracy:	nan %
Epoch 476 of 500 took 0.004s
  training loss:		0.003990
   (target: 0.002052,  side: 0.001938 (absolute))
  validation loss:		0.058967
  validation accuracy:		98.00 %
  side validation loss:		0.162110
  side validation accuracy:	nan %
Epoch 477 of 500 took 0.004s
  training loss:		0.003943
   (target: 0.002212,  side: 0.001731 (absolute))
  validation loss:		0.059616
  validation accuracy:		98.00 %
  side validation loss:		0.164123
  side validation accuracy:	nan %
Epoch 478 of 500 took 0.004s
  training loss:		0.003909
   (target: 0.002036,  side: 0.001873 (absolute))
  validation loss:		0.059080
  validation accuracy:		98.00 %
  side validation loss:		0.162756
  side validation accuracy:	nan %
Epoch 479 of 500 took 0.005s
  training loss:		0.004005
   (target: 0.002171,  side: 0.001834 (absolute))
  validation loss:		0.059042
  validation accuracy:		98.00 %
  side validation loss:		0.160957
  side validation accuracy:	nan %
Epoch 480 of 500 took 0.005s
  training loss:		0.003820
   (target: 0.002080,  side: 0.001740 (absolute))
  validation loss:		0.059125
  validation accuracy:		98.00 %
  side validation loss:		0.162545
  side validation accuracy:	nan %
Epoch 481 of 500 took 0.004s
  training loss:		0.003734
   (target: 0.002105,  side: 0.001629 (absolute))
  validation loss:		0.059301
  validation accuracy:		98.00 %
  side validation loss:		0.162071
  side validation accuracy:	nan %
Epoch 482 of 500 took 0.004s
  training loss:		0.003924
   (target: 0.002076,  side: 0.001849 (absolute))
  validation loss:		0.058934
  validation accuracy:		98.00 %
  side validation loss:		0.162197
  side validation accuracy:	nan %
Epoch 483 of 500 took 0.004s
  training loss:		0.003788
   (target: 0.002121,  side: 0.001667 (absolute))
  validation loss:		0.058786
  validation accuracy:		98.00 %
  side validation loss:		0.161627
  side validation accuracy:	nan %
Epoch 484 of 500 took 0.004s
  training loss:		0.003791
   (target: 0.002075,  side: 0.001716 (absolute))
  validation loss:		0.058737
  validation accuracy:		98.00 %
  side validation loss:		0.161628
  side validation accuracy:	nan %
Epoch 485 of 500 took 0.004s
  training loss:		0.003773
   (target: 0.002062,  side: 0.001712 (absolute))
  validation loss:		0.059580
  validation accuracy:		98.00 %
  side validation loss:		0.160740
  side validation accuracy:	nan %
Epoch 486 of 500 took 0.004s
  training loss:		0.003838
   (target: 0.002144,  side: 0.001694 (absolute))
  validation loss:		0.058535
  validation accuracy:		98.00 %
  side validation loss:		0.162468
  side validation accuracy:	nan %
Epoch 487 of 500 took 0.004s
  training loss:		0.003801
   (target: 0.002082,  side: 0.001719 (absolute))
  validation loss:		0.059511
  validation accuracy:		98.00 %
  side validation loss:		0.161823
  side validation accuracy:	nan %
Epoch 488 of 500 took 0.004s
  training loss:		0.003779
   (target: 0.002068,  side: 0.001711 (absolute))
  validation loss:		0.058275
  validation accuracy:		98.00 %
  side validation loss:		0.161468
  side validation accuracy:	nan %
Epoch 489 of 500 took 0.004s
  training loss:		0.003811
   (target: 0.002075,  side: 0.001736 (absolute))
  validation loss:		0.058410
  validation accuracy:		98.00 %
  side validation loss:		0.160279
  side validation accuracy:	nan %
Epoch 490 of 500 took 0.004s
  training loss:		0.003797
   (target: 0.002128,  side: 0.001668 (absolute))
  validation loss:		0.059112
  validation accuracy:		98.00 %
  side validation loss:		0.161064
  side validation accuracy:	nan %
Epoch 491 of 500 took 0.004s
  training loss:		0.003794
   (target: 0.002002,  side: 0.001793 (absolute))
  validation loss:		0.058642
  validation accuracy:		98.00 %
  side validation loss:		0.160398
  side validation accuracy:	nan %
Epoch 492 of 500 took 0.005s
  training loss:		0.003819
   (target: 0.002112,  side: 0.001707 (absolute))
  validation loss:		0.058983
  validation accuracy:		98.00 %
  side validation loss:		0.160900
  side validation accuracy:	nan %
Epoch 493 of 500 took 0.004s
  training loss:		0.003808
   (target: 0.002038,  side: 0.001770 (absolute))
  validation loss:		0.058744
  validation accuracy:		98.00 %
  side validation loss:		0.160203
  side validation accuracy:	nan %
Epoch 494 of 500 took 0.004s
  training loss:		0.003737
   (target: 0.002055,  side: 0.001682 (absolute))
  validation loss:		0.060337
  validation accuracy:		98.00 %
  side validation loss:		0.161312
  side validation accuracy:	nan %
Epoch 495 of 500 took 0.004s
  training loss:		0.003763
   (target: 0.001984,  side: 0.001778 (absolute))
  validation loss:		0.058235
  validation accuracy:		98.00 %
  side validation loss:		0.160249
  side validation accuracy:	nan %
Epoch 496 of 500 took 0.004s
  training loss:		0.003748
   (target: 0.002076,  side: 0.001673 (absolute))
  validation loss:		0.059169
  validation accuracy:		98.00 %
  side validation loss:		0.160728
  side validation accuracy:	nan %
Epoch 497 of 500 took 0.004s
  training loss:		0.003815
   (target: 0.002027,  side: 0.001788 (absolute))
  validation loss:		0.058794
  validation accuracy:		98.00 %
  side validation loss:		0.159533
  side validation accuracy:	nan %
Epoch 498 of 500 took 0.004s
  training loss:		0.003759
   (target: 0.002073,  side: 0.001686 (absolute))
  validation loss:		0.058611
  validation accuracy:		98.00 %
  side validation loss:		0.160658
  side validation accuracy:	nan %
Epoch 499 of 500 took 0.004s
  training loss:		0.003715
   (target: 0.001953,  side: 0.001762 (absolute))
  validation loss:		0.059512
  validation accuracy:		98.00 %
  side validation loss:		0.159068
  side validation accuracy:	nan %
Epoch 500 of 500 took 0.004s
  training loss:		0.003780
   (target: 0.002110,  side: 0.001670 (absolute))
  validation loss:		0.058076
  validation accuracy:		98.00 %
  side validation loss:		0.158164
  side validation accuracy:	nan %

Some statistics: Test score.


In [32]:
trainer.score(X_test, y_test, verbose=True)    
pass


Score:
  loss:			0.029269
  accuracy:		99.00 %

We can also compute a test score for the side loss:


In [33]:
trainer.score_side([X_test, Z_test], verbose=True)    
pass


Score for side:
  loss:			0.127295
  accuracy:		nan %

You can then also query the prediction output, similar to the scikit-learn API:


In [34]:
trainer.predict(X_test)


Out[34]:
array([0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0,
       1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0,
       0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1,
       0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1,
       0, 1, 0, 1, 0, 1, 1, 0])