0

i was training a mlp through variational inference for a regression task on a small dataset with 1 feature. The nn works and the training loss goes down but the validation loss has random spikes and i do not understand how to avoid them

import tensorflow_probability as tfp
import tensorflow as tf
 
from tensorflow.keras.layers import Input
from tensorflow.keras.layers import Dense
from tensorflow.keras.models import Model
from tensorflow.keras.optimizers import Adam

def create_flipout_bnn_model(train_size):
  def normal_sp(params): 
      return tfd.Normal(loc=params[:,0:1], scale=1e-3 + tf.math.softplus(0.05 * params[:,1:2]))

  kernel_divergence_fn=lambda q, p, _: tfp.distributions.kl_divergence(q, p) / (train_size)
  bias_divergence_fn=lambda q, p, _: tfp.distributions.kl_divergence(q, p) / (train_size)


  inputs = Input(shape=(1,),name="input layer")


  hidden = tfp.layers.DenseFlipout(30,
                           kernel_divergence_fn=kernel_divergence_fn,
                           activation="relu",name="DenseFlipout_layer_1")(inputs)
  hidden = tfp.layers.DenseFlipout(30,
                           kernel_divergence_fn=kernel_divergence_fn,
                           activation="relu",name="DenseFlipout_layer_2")(hidden)
  hidden = tfp.layers.DenseFlipout(30,
                           kernel_divergence_fn=kernel_divergence_fn,
                           activation="relu",name="DenseFlipout_layer_3")(hidden)
  params = tfp.layers.DenseFlipout(2,
                           kernel_divergence_fn=kernel_divergence_fn,
                           name="DenseFlipout_layer_5")(hidden)
  dist = tfp.layers.DistributionLambda(normal_sp,name = 'normal_sp')(params) 

  model = Model(inputs=inputs, outputs=dist)

 
  return model

batch_size  = train_size
 
callback = tf.keras.callbacks.EarlyStopping(monitor='val_loss', patience=1830,restore_best_weights=True)
flipout_BNN = create_flipout_bnn_model(train_size=train_size)
flipout_BNN.compile(optimizer=Adam(learning_rate=0.002 ),jit_compile=True,
                  loss=NLL,metrics= [tf.keras.metrics.RootMeanSquaredError()]
                 ) 
flipout_BNN.summary()
history_flipout_BNN = flipout_BNN.fit(X_train, y_train, epochs=30000, verbose=0, batch_size=batch_size,validation_data=(X_val,y_val),callbacks=[callback] )

the result of the training is almost always something like this

how can i avoid this issue? enter image description here

Alexander L. Hayes
  • 3,892
  • 4
  • 13
  • 34
Alucard
  • 187
  • 7
  • Based on my somewhat limited experience with Bayesian network, huge fluctuation tends to happen in later stages during training where the predicted variance for certain input can be very small, even with your default base of `1e-3`. This will amplify the negative log-likelihood for outliers, causing the fluctuations you saw. One way this can be mitigated is to clip the gradients and/or increasing the default base of variance prediction. – bui Nov 21 '22 at 01:58
  • @bui i have never used gradient clipping, how should i implement it? is there an integrated function in keras? – Alucard Nov 22 '22 at 05:29
  • You'll want to subclass the `Model` class and override its `train_step` method where you will manually calculate the gradient (with the help of gradient tape) and clip the gradient tensors with `tf.clip_by_norm`. You can see an example of overriding `train_step` in the official [tutorial](https://www.tensorflow.org/guide/keras/writing_a_training_loop_from_scratch) – bui Nov 22 '22 at 06:50
  • @bui in your experience those this problem only appears with with fully bayesian nn ? because i have also tried deep ensembles and concrete dropout to model uncertainty and none of them shows these spikes – Alucard Nov 22 '22 at 20:01
  • I think spikes can happen with any model that overfits, but the effect is especially relevant with bayesian network or (just my guess) simply with log-based loss function in general, as there is no bound to it when the output is near zero. A common trick that seems to help is to add the bias term as you did. – bui Nov 23 '22 at 02:58

1 Answers1

0

The fluctuating val_loss could be due to the dataset containing outliers. To tackle this situation we can Normalize the dataset and can use loss=tf.keras.losses.MeanAbsoluteError() for better results. I have tried replicating the above code using one of the datasets from this page.

Please have a look at the output: (Attaching the gist for your reference)

history_flipout_BNN = flipout_BNN.fit(train_features,train_labels, epochs=500, verbose=2, batch_size=batch_size,validation_data=(test_features,test_labels),callbacks=[callback] )

Output:

Epoch 401/500
10/10 - 0s - loss: 26.9614 - mean_absolute_error: 5.7971 - val_loss: 25.3911 - val_mean_absolute_error: 4.2861 - 99ms/epoch - 10ms/step
Epoch 402/500
10/10 - 0s - loss: 26.0816 - mean_absolute_error: 5.0223 - val_loss: 25.5811 - val_mean_absolute_error: 4.5798 - 85ms/epoch - 8ms/step
Epoch 403/500
10/10 - 0s - loss: 25.8087 - mean_absolute_error: 4.8529 - val_loss: 26.4341 - val_mean_absolute_error: 5.5357 - 90ms/epoch - 9ms/step
Epoch 404/500
10/10 - 0s - loss: 25.3384 - mean_absolute_error: 4.4862 - val_loss: 25.0166 - val_mean_absolute_error: 4.2234 - 92ms/epoch - 9ms/step
Epoch 405/500
10/10 - 0s - loss: 25.5521 - mean_absolute_error: 4.8063 - val_loss: 25.1751 - val_mean_absolute_error: 4.4889 - 103ms/epoch - 10ms/step
Epoch 406/500
10/10 - 0s - loss: 25.2258 - mean_absolute_error: 4.5854 - val_loss: 25.0371 - val_mean_absolute_error: 4.4541 - 89ms/epoch - 9ms/step
Epoch 407/500
10/10 - 0s - loss: 25.1053 - mean_absolute_error: 4.5674 - val_loss: 25.2423 - val_mean_absolute_error: 4.7611 - 74ms/epoch - 7ms/step
Epoch 408/500
10/10 - 0s - loss: 25.4199 - mean_absolute_error: 4.9825 - val_loss: 25.0862 - val_mean_absolute_error: 4.7047 - 73ms/epoch - 7ms/step
Epoch 409/500
10/10 - 0s - loss: 25.2182 - mean_absolute_error: 4.8814 - val_loss: 25.0651 - val_mean_absolute_error: 4.7841 - 75ms/epoch - 8ms/step
Epoch 410/500
10/10 - 0s - loss: 24.6748 - mean_absolute_error: 4.4359 - val_loss: 24.5389 - val_mean_absolute_error: 4.3531 - 93ms/epoch - 9ms/step
Epoch 411/500
10/10 - 0s - loss: 25.5475 - mean_absolute_error: 5.4029 - val_loss: 24.3203 - val_mean_absolute_error: 4.2277 - 98ms/epoch - 10ms/step
Epoch 412/500
10/10 - 0s - loss: 24.5997 - mean_absolute_error: 4.5493 - val_loss: 24.5846 - val_mean_absolute_error: 4.5878 - 86ms/epoch - 9ms/step
Epoch 413/500
10/10 - 0s - loss: 24.7902 - mean_absolute_error: 4.8364 - val_loss: 24.7510 - val_mean_absolute_error: 4.8514 - 73ms/epoch - 7ms/step
Epoch 414/500
10/10 - 0s - loss: 24.5510 - mean_absolute_error: 4.6942 - val_loss: 24.8243 - val_mean_absolute_error: 5.0216 - 74ms/epoch - 7ms/step
Epoch 415/500
10/10 - 0s - loss: 25.2334 - mean_absolute_error: 5.4727 - val_loss: 24.1006 - val_mean_absolute_error: 4.3917 - 93ms/epoch - 9ms/step
Epoch 416/500
10/10 - 0s - loss: 25.1920 - mean_absolute_error: 5.5221 - val_loss: 24.9322 - val_mean_absolute_error: 5.3105 - 71ms/epoch - 7ms/step
Epoch 417/500
10/10 - 0s - loss: 24.0554 - mean_absolute_error: 4.4716 - val_loss: 23.5270 - val_mean_absolute_error: 3.9934 - 91ms/epoch - 9ms/step
Epoch 418/500
10/10 - 0s - loss: 24.3465 - mean_absolute_error: 4.8528 - val_loss: 24.0905 - val_mean_absolute_error: 4.6466 - 68ms/epoch - 7ms/step
Epoch 419/500
10/10 - 0s - loss: 23.8700 - mean_absolute_error: 4.4655 - val_loss: 25.7271 - val_mean_absolute_error: 6.3734 - 91ms/epoch - 9ms/step
Epoch 420/500
10/10 - 0s - loss: 23.9039 - mean_absolute_error: 4.5902 - val_loss: 23.9026 - val_mean_absolute_error: 4.6395 - 73ms/epoch - 7ms/step
Epoch 421/500
10/10 - 0s - loss: 23.8635 - mean_absolute_error: 4.6409 - val_loss: 23.6810 - val_mean_absolute_error: 4.5092 - 80ms/epoch - 8ms/step
Epoch 422/500
10/10 - 0s - loss: 23.6667 - mean_absolute_error: 4.5341 - val_loss: 23.3594 - val_mean_absolute_error: 4.2762 - 95ms/epoch - 9ms/step
Epoch 423/500
10/10 - 0s - loss: 23.7698 - mean_absolute_error: 4.7262 - val_loss: 23.7548 - val_mean_absolute_error: 4.7614 - 91ms/epoch - 9ms/step
Epoch 424/500
10/10 - 0s - loss: 23.4459 - mean_absolute_error: 4.4925 - val_loss: 23.1056 - val_mean_absolute_error: 4.2023 - 106ms/epoch - 11ms/step
Epoch 425/500
10/10 - 0s - loss: 23.0812 - mean_absolute_error: 4.2165 - val_loss: 25.4889 - val_mean_absolute_error: 6.6729 - 86ms/epoch - 9ms/step
Epoch 426/500
10/10 - 0s - loss: 23.5379 - mean_absolute_error: 4.7600 - val_loss: 23.3109 - val_mean_absolute_error: 4.5815 - 81ms/epoch - 8ms/step
Epoch 427/500
10/10 - 0s - loss: 23.0973 - mean_absolute_error: 4.4067 - val_loss: 23.1382 - val_mean_absolute_error: 4.4958 - 86ms/epoch - 9ms/step
Epoch 428/500
10/10 - 0s - loss: 23.1789 - mean_absolute_error: 4.5741 - val_loss: 22.8976 - val_mean_absolute_error: 4.3397 - 95ms/epoch - 10ms/step
Epoch 429/500
10/10 - 0s - loss: 23.5457 - mean_absolute_error: 5.0253 - val_loss: 23.5527 - val_mean_absolute_error: 5.0789 - 72ms/epoch - 7ms/step
Epoch 430/500
10/10 - 0s - loss: 23.3083 - mean_absolute_error: 4.8688 - val_loss: 23.1191 - val_mean_absolute_error: 4.7235 - 66ms/epoch - 7ms/step
Epoch 431/500
10/10 - 0s - loss: 22.9547 - mean_absolute_error: 4.5943 - val_loss: 23.0954 - val_mean_absolute_error: 4.7804 - 79ms/epoch - 8ms/step
Epoch 432/500
10/10 - 0s - loss: 23.2755 - mean_absolute_error: 4.9968 - val_loss: 22.9616 - val_mean_absolute_error: 4.7283 - 88ms/epoch - 9ms/step
Epoch 433/500
10/10 - 0s - loss: 23.5949 - mean_absolute_error: 5.3955 - val_loss: 22.3164 - val_mean_absolute_error: 4.1575 - 90ms/epoch - 9ms/step
Epoch 434/500
10/10 - 0s - loss: 22.9300 - mean_absolute_error: 4.8030 - val_loss: 22.6514 - val_mean_absolute_error: 4.5655 - 76ms/epoch - 8ms/step
Epoch 435/500
10/10 - 0s - loss: 22.8438 - mean_absolute_error: 4.7912 - val_loss: 22.4905 - val_mean_absolute_error: 4.4806 - 89ms/epoch - 9ms/step
Epoch 436/500
10/10 - 0s - loss: 22.4169 - mean_absolute_error: 4.4417 - val_loss: 22.8025 - val_mean_absolute_error: 4.8712 - 83ms/epoch - 8ms/step
Epoch 437/500
10/10 - 0s - loss: 22.5422 - mean_absolute_error: 4.6457 - val_loss: 24.9054 - val_mean_absolute_error: 7.0521 - 69ms/epoch - 7ms/step
Epoch 438/500
10/10 - 0s - loss: 22.5137 - mean_absolute_error: 4.6931 - val_loss: 21.7106 - val_mean_absolute_error: 3.9314 - 85ms/epoch - 9ms/step
Epoch 439/500
10/10 - 0s - loss: 22.3283 - mean_absolute_error: 4.5823 - val_loss: 22.6495 - val_mean_absolute_error: 4.9456 - 99ms/epoch - 10ms/step
Epoch 440/500
10/10 - 0s - loss: 22.0736 - mean_absolute_error: 4.4034 - val_loss: 22.3924 - val_mean_absolute_error: 4.7656 - 70ms/epoch - 7ms/step
Epoch 441/500
10/10 - 0s - loss: 22.3100 - mean_absolute_error: 4.7172 - val_loss: 22.6311 - val_mean_absolute_error: 5.0808 - 85ms/epoch - 8ms/step
Epoch 442/500
10/10 - 0s - loss: 23.0256 - mean_absolute_error: 5.5076 - val_loss: 22.9733 - val_mean_absolute_error: 5.4954 - 75ms/epoch - 7ms/step
Epoch 443/500
10/10 - 0s - loss: 21.6798 - mean_absolute_error: 4.2348 - val_loss: 21.6242 - val_mean_absolute_error: 4.2211 - 91ms/epoch - 9ms/step
Epoch 444/500
10/10 - 0s - loss: 21.9015 - mean_absolute_error: 4.5319 - val_loss: 22.2187 - val_mean_absolute_error: 4.8911 - 83ms/epoch - 8ms/step
Epoch 445/500
10/10 - 0s - loss: 21.8007 - mean_absolute_error: 4.5058 - val_loss: 21.4597 - val_mean_absolute_error: 4.2052 - 109ms/epoch - 11ms/step
Epoch 446/500
10/10 - 0s - loss: 21.7802 - mean_absolute_error: 4.5573 - val_loss: 21.0135 - val_mean_absolute_error: 3.8313 - 91ms/epoch - 9ms/step
Epoch 447/500
10/10 - 0s - loss: 21.8448 - mean_absolute_error: 4.6948 - val_loss: 21.4467 - val_mean_absolute_error: 4.3360 - 71ms/epoch - 7ms/step
Epoch 448/500
10/10 - 0s - loss: 21.4740 - mean_absolute_error: 4.3944 - val_loss: 21.8361 - val_mean_absolute_error: 4.7958 - 87ms/epoch - 9ms/step
Epoch 449/500
10/10 - 0s - loss: 21.3762 - mean_absolute_error: 4.3665 - val_loss: 21.1680 - val_mean_absolute_error: 4.1976 - 97ms/epoch - 10ms/step
Epoch 450/500
10/10 - 0s - loss: 21.1940 - mean_absolute_error: 4.2551 - val_loss: 21.6621 - val_mean_absolute_error: 4.7631 - 83ms/epoch - 8ms/step
Epoch 451/500
10/10 - 0s - loss: 21.2462 - mean_absolute_error: 4.3787 - val_loss: 21.3224 - val_mean_absolute_error: 4.4936 - 74ms/epoch - 7ms/step
Epoch 452/500
10/10 - 0s - loss: 21.4716 - mean_absolute_error: 4.6725 - val_loss: 21.3193 - val_mean_absolute_error: 4.5576 - 84ms/epoch - 8ms/step
Epoch 453/500
10/10 - 0s - loss: 21.1026 - mean_absolute_error: 4.3706 - val_loss: 21.8985 - val_mean_absolute_error: 5.2052 - 72ms/epoch - 7ms/step
Epoch 454/500
10/10 - 0s - loss: 20.9130 - mean_absolute_error: 4.2509 - val_loss: 20.8512 - val_mean_absolute_error: 4.2281 - 95ms/epoch - 9ms/step
Epoch 455/500
10/10 - 0s - loss: 20.7118 - mean_absolute_error: 4.1189 - val_loss: 24.0372 - val_mean_absolute_error: 7.4822 - 105ms/epoch - 10ms/step
Epoch 456/500
10/10 - 0s - loss: 20.9174 - mean_absolute_error: 4.3919 - val_loss: 20.5719 - val_mean_absolute_error: 4.0837 - 99ms/epoch - 10ms/step
Epoch 457/500
10/10 - 0s - loss: 21.0356 - mean_absolute_error: 4.5764 - val_loss: 21.6790 - val_mean_absolute_error: 5.2558 - 73ms/epoch - 7ms/step
Epoch 458/500
10/10 - 0s - loss: 21.0807 - mean_absolute_error: 4.6846 - val_loss: 20.1755 - val_mean_absolute_error: 3.8142 - 93ms/epoch - 9ms/step
Epoch 459/500
10/10 - 0s - loss: 20.3427 - mean_absolute_error: 4.0099 - val_loss: 45.3344 - val_mean_absolute_error: 29.0383 - 70ms/epoch - 7ms/step
Epoch 460/500
10/10 - 0s - loss: 20.8348 - mean_absolute_error: 4.5675 - val_loss: 20.6027 - val_mean_absolute_error: 4.3719 - 69ms/epoch - 7ms/step
Epoch 461/500
10/10 - 0s - loss: 20.4903 - mean_absolute_error: 4.2877 - val_loss: 20.9089 - val_mean_absolute_error: 4.7427 - 69ms/epoch - 7ms/step
Epoch 462/500
10/10 - 0s - loss: 20.3484 - mean_absolute_error: 4.2115 - val_loss: 20.4108 - val_mean_absolute_error: 4.3104 - 86ms/epoch - 9ms/step
Epoch 463/500
10/10 - 0s - loss: 22.3694 - mean_absolute_error: 6.2942 - val_loss: 20.5144 - val_mean_absolute_error: 4.4713 - 71ms/epoch - 7ms/step
Epoch 464/500
10/10 - 0s - loss: 20.8265 - mean_absolute_error: 4.8048 - val_loss: 20.5560 - val_mean_absolute_error: 4.5620 - 69ms/epoch - 7ms/step
Epoch 465/500
10/10 - 0s - loss: 20.3374 - mean_absolute_error: 4.3669 - val_loss: 20.2208 - val_mean_absolute_error: 4.2813 - 77ms/epoch - 8ms/step
Epoch 466/500
10/10 - 0s - loss: 20.5049 - mean_absolute_error: 4.5907 - val_loss: 19.7859 - val_mean_absolute_error: 3.9031 - 96ms/epoch - 10ms/step
Epoch 467/500
10/10 - 0s - loss: 20.2043 - mean_absolute_error: 4.3468 - val_loss: 19.7356 - val_mean_absolute_error: 3.9101 - 123ms/epoch - 12ms/step
Epoch 468/500
10/10 - 0s - loss: 19.8643 - mean_absolute_error: 4.0647 - val_loss: 22.0424 - val_mean_absolute_error: 6.2759 - 73ms/epoch - 7ms/step
Epoch 469/500
10/10 - 0s - loss: 20.0671 - mean_absolute_error: 4.3277 - val_loss: 20.1854 - val_mean_absolute_error: 4.4798 - 77ms/epoch - 8ms/step
Epoch 470/500
10/10 - 0s - loss: 20.0209 - mean_absolute_error: 4.3407 - val_loss: 20.3919 - val_mean_absolute_error: 4.7435 - 89ms/epoch - 9ms/step
Epoch 471/500
10/10 - 0s - loss: 20.0756 - mean_absolute_error: 4.4520 - val_loss: 19.9796 - val_mean_absolute_error: 4.3877 - 76ms/epoch - 8ms/step
Epoch 472/500
10/10 - 0s - loss: 20.0424 - mean_absolute_error: 4.4758 - val_loss: 19.5151 - val_mean_absolute_error: 3.9802 - 118ms/epoch - 12ms/step
Epoch 473/500
10/10 - 0s - loss: 19.6751 - mean_absolute_error: 4.1645 - val_loss: 19.7584 - val_mean_absolute_error: 4.2778 - 73ms/epoch - 7ms/step
Epoch 474/500
10/10 - 0s - loss: 20.1219 - mean_absolute_error: 4.6639 - val_loss: 19.6155 - val_mean_absolute_error: 4.1857 - 70ms/epoch - 7ms/step
Epoch 475/500
10/10 - 0s - loss: 19.7404 - mean_absolute_error: 4.3327 - val_loss: 20.8408 - val_mean_absolute_error: 5.4616 - 76ms/epoch - 8ms/step
Epoch 476/500
10/10 - 0s - loss: 19.8373 - mean_absolute_error: 4.4821 - val_loss: 19.5820 - val_mean_absolute_error: 4.2573 - 70ms/epoch - 7ms/step
Epoch 477/500
10/10 - 0s - loss: 19.4083 - mean_absolute_error: 4.1082 - val_loss: 19.3071 - val_mean_absolute_error: 4.0379 - 88ms/epoch - 9ms/step
Epoch 478/500
10/10 - 0s - loss: 19.4480 - mean_absolute_error: 4.2032 - val_loss: 19.2325 - val_mean_absolute_error: 4.0184 - 120ms/epoch - 12ms/step
Epoch 479/500
10/10 - 0s - loss: 19.6966 - mean_absolute_error: 4.5051 - val_loss: 18.7808 - val_mean_absolute_error: 3.6175 - 91ms/epoch - 9ms/step
Epoch 480/500
10/10 - 0s - loss: 19.0331 - mean_absolute_error: 3.8921 - val_loss: 19.1469 - val_mean_absolute_error: 4.0343 - 72ms/epoch - 7ms/step
Epoch 481/500
10/10 - 0s - loss: 19.5920 - mean_absolute_error: 4.5013 - val_loss: 19.6969 - val_mean_absolute_error: 4.6326 - 69ms/epoch - 7ms/step
Epoch 482/500
10/10 - 0s - loss: 19.1715 - mean_absolute_error: 4.1272 - val_loss: 19.1224 - val_mean_absolute_error: 4.1040 - 74ms/epoch - 7ms/step
Epoch 483/500
10/10 - 0s - loss: 19.8812 - mean_absolute_error: 4.8832 - val_loss: 18.6707 - val_mean_absolute_error: 3.6980 - 95ms/epoch - 10ms/step
Epoch 484/500
10/10 - 0s - loss: 19.1581 - mean_absolute_error: 4.2063 - val_loss: 19.3597 - val_mean_absolute_error: 4.4352 - 78ms/epoch - 8ms/step
Epoch 485/500
10/10 - 0s - loss: 19.0230 - mean_absolute_error: 4.1206 - val_loss: 18.4774 - val_mean_absolute_error: 3.6028 - 92ms/epoch - 9ms/step
Epoch 486/500
10/10 - 0s - loss: 18.8798 - mean_absolute_error: 4.0279 - val_loss: 20.5281 - val_mean_absolute_error: 5.7055 - 87ms/epoch - 9ms/step
Epoch 487/500
10/10 - 0s - loss: 19.0226 - mean_absolute_error: 4.2233 - val_loss: 19.2094 - val_mean_absolute_error: 4.4396 - 72ms/epoch - 7ms/step
Epoch 488/500
10/10 - 0s - loss: 18.9576 - mean_absolute_error: 4.2107 - val_loss: 19.1106 - val_mean_absolute_error: 4.3923 - 77ms/epoch - 8ms/step
Epoch 489/500
10/10 - 0s - loss: 19.3164 - mean_absolute_error: 4.6182 - val_loss: 20.5644 - val_mean_absolute_error: 5.8904 - 85ms/epoch - 8ms/step
Epoch 490/500
10/10 - 0s - loss: 18.5034 - mean_absolute_error: 3.8501 - val_loss: 19.6553 - val_mean_absolute_error: 5.0289 - 84ms/epoch - 8ms/step
Epoch 491/500
10/10 - 0s - loss: 18.9104 - mean_absolute_error: 4.3049 - val_loss: 18.4100 - val_mean_absolute_error: 3.8302 - 89ms/epoch - 9ms/step
Epoch 492/500
10/10 - 0s - loss: 19.3977 - mean_absolute_error: 4.8379 - val_loss: 19.0681 - val_mean_absolute_error: 4.5329 - 89ms/epoch - 9ms/step
Epoch 493/500
10/10 - 0s - loss: 18.5063 - mean_absolute_error: 3.9908 - val_loss: 18.5971 - val_mean_absolute_error: 4.1069 - 72ms/epoch - 7ms/step
Epoch 494/500
10/10 - 0s - loss: 23.5121 - mean_absolute_error: 9.0426 - val_loss: 18.0131 - val_mean_absolute_error: 3.5696 - 92ms/epoch - 9ms/step
Epoch 495/500
10/10 - 0s - loss: 18.6455 - mean_absolute_error: 4.2199 - val_loss: 18.5258 - val_mean_absolute_error: 4.1229 - 78ms/epoch - 8ms/step
Epoch 496/500
10/10 - 0s - loss: 18.8162 - mean_absolute_error: 4.4317 - val_loss: 18.3150 - val_mean_absolute_error: 3.9539 - 75ms/epoch - 8ms/step
Epoch 497/500
10/10 - 0s - loss: 18.5742 - mean_absolute_error: 4.2320 - val_loss: 18.9121 - val_mean_absolute_error: 4.5930 - 69ms/epoch - 7ms/step
Epoch 498/500
10/10 - 0s - loss: 18.7194 - mean_absolute_error: 4.4183 - val_loss: 18.6576 - val_mean_absolute_error: 4.3785 - 74ms/epoch - 7ms/step
Epoch 499/500
10/10 - 0s - loss: 18.4750 - mean_absolute_error: 4.2142 - val_loss: 17.9634 - val_mean_absolute_error: 3.7261 - 108ms/epoch - 11ms/step
Epoch 500/500
10/10 - 0s - loss: 17.9538 - mean_absolute_error: 3.7362 - val_loss: 17.6494 - val_mean_absolute_error: 3.4570 - 111ms/epoch - 11ms/step