In [1]:
import numpy as np
import matplotlib.pyplot as plt
import tensorflow as tf

keras = tf.keras
In [2]:
def plot_series(time, series, format="-", start=0, end=None, label=None):
    plt.plot(time[start:end], series[start:end], format, label=label)
    plt.xlabel("Time")
    plt.ylabel("Value")
    if label:
        plt.legend(fontsize=14)
    plt.grid(True)
    
def trend(time, slope=0):
    return slope * time
  
  
def seasonal_pattern(season_time):
    """Just an arbitrary pattern, you can change it if you wish"""
    return np.where(season_time < 0.4,
                    np.cos(season_time * 2 * np.pi),
                    1 / np.exp(3 * season_time))

  
def seasonality(time, period, amplitude=1, phase=0):
    """Repeats the same pattern at each period"""
    season_time = ((time + phase) % period) / period
    return amplitude * seasonal_pattern(season_time)
  
  
def white_noise(time, noise_level=1, seed=None):
    rnd = np.random.RandomState(seed)
    return rnd.randn(len(time)) * noise_level
In [3]:
time = np.arange(4 * 365 + 1)

slope = 0.05
baseline = 10
amplitude = 40
series = baseline + trend(time, slope) + seasonality(time, period=365, amplitude=amplitude)

noise_level = 5
noise = white_noise(time, noise_level, seed=42)

series += noise

plt.figure(figsize=(10, 6))
plot_series(time, series)
plt.show()

Forecasting with Machine Learning

First, we will train a model to forecast the next step given the previous 30 steps, therefore, we need to create a dataset of 30-step windows for training.

In [4]:
def window_dataset(series, window_size, batch_size=32,
                   shuffle_buffer=1000):
    dataset = tf.data.Dataset.from_tensor_slices(series)
    dataset = dataset.window(window_size + 1, shift=1, drop_remainder=True)
    dataset = dataset.flat_map(lambda window: window.batch(window_size + 1))
    dataset = dataset.shuffle(shuffle_buffer)
    dataset = dataset.map(lambda window: (window[:-1], window[-1]))
    dataset = dataset.batch(batch_size).prefetch(1)
    return dataset

Split train and test

In [5]:
split_time = 1000
time_train = time[:split_time]
x_train = series[:split_time]
time_valid = time[split_time:]
x_valid = series[split_time:]

Linear Model

In [6]:
keras.backend.clear_session()
tf.random.set_seed(42)
np.random.seed(42)

window_size = 30
train_set = window_dataset(x_train, window_size)
valid_set = window_dataset(x_valid, window_size)

model = keras.models.Sequential([
  keras.layers.Dense(1, input_shape=[window_size])
])
optimizer = keras.optimizers.SGD(lr=1e-5, momentum=0.9)
model.compile(loss=keras.losses.Huber(),
              optimizer=optimizer,
              metrics=["mae"])
model.fit(train_set, epochs=100, validation_data=valid_set)
Epoch 1/100
31/31 [==============================] - 0s 8ms/step - loss: 46.6813 - mae: 47.1784 - val_loss: 23.1475 - val_mae: 23.6473
Epoch 2/100
31/31 [==============================] - 0s 5ms/step - loss: 11.9123 - mae: 12.4017 - val_loss: 10.6108 - val_mae: 11.0934
Epoch 3/100
31/31 [==============================] - 0s 4ms/step - loss: 10.2063 - mae: 10.6947 - val_loss: 9.1115 - val_mae: 9.6013
Epoch 4/100
31/31 [==============================] - 0s 4ms/step - loss: 9.8053 - mae: 10.2898 - val_loss: 9.0103 - val_mae: 9.4965
Epoch 5/100
31/31 [==============================] - 0s 4ms/step - loss: 9.7068 - mae: 10.1940 - val_loss: 8.9696 - val_mae: 9.4569
Epoch 6/100
31/31 [==============================] - 0s 4ms/step - loss: 9.5858 - mae: 10.0706 - val_loss: 9.2814 - val_mae: 9.7695
Epoch 7/100
31/31 [==============================] - 0s 4ms/step - loss: 9.5716 - mae: 10.0561 - val_loss: 8.7506 - val_mae: 9.2409
Epoch 8/100
31/31 [==============================] - 0s 4ms/step - loss: 9.4335 - mae: 9.9208 - val_loss: 8.9409 - val_mae: 9.4259
Epoch 9/100
31/31 [==============================] - 0s 4ms/step - loss: 9.2821 - mae: 9.7655 - val_loss: 8.7019 - val_mae: 9.1887
Epoch 10/100
31/31 [==============================] - 0s 5ms/step - loss: 9.1588 - mae: 9.6455 - val_loss: 9.1858 - val_mae: 9.6757
Epoch 11/100
31/31 [==============================] - 0s 4ms/step - loss: 9.1080 - mae: 9.5909 - val_loss: 8.3841 - val_mae: 8.8717
Epoch 12/100
31/31 [==============================] - 0s 4ms/step - loss: 9.0054 - mae: 9.4901 - val_loss: 8.3203 - val_mae: 8.8105
Epoch 13/100
31/31 [==============================] - 0s 4ms/step - loss: 8.8572 - mae: 9.3423 - val_loss: 8.2304 - val_mae: 8.7186
Epoch 14/100
31/31 [==============================] - 0s 4ms/step - loss: 8.7560 - mae: 9.2400 - val_loss: 8.2015 - val_mae: 8.6929
Epoch 15/100
31/31 [==============================] - 0s 5ms/step - loss: 8.7060 - mae: 9.1891 - val_loss: 8.0562 - val_mae: 8.5446
Epoch 16/100
31/31 [==============================] - 0s 4ms/step - loss: 8.6244 - mae: 9.1106 - val_loss: 7.9800 - val_mae: 8.4679
Epoch 17/100
31/31 [==============================] - 0s 4ms/step - loss: 8.4941 - mae: 8.9788 - val_loss: 7.8962 - val_mae: 8.3846
Epoch 18/100
31/31 [==============================] - 0s 4ms/step - loss: 8.3914 - mae: 8.8778 - val_loss: 7.8248 - val_mae: 8.3136
Epoch 19/100
31/31 [==============================] - 0s 4ms/step - loss: 8.3789 - mae: 8.8672 - val_loss: 7.9163 - val_mae: 8.4018
Epoch 20/100
31/31 [==============================] - 0s 4ms/step - loss: 8.2872 - mae: 8.7752 - val_loss: 7.9781 - val_mae: 8.4660
Epoch 21/100
31/31 [==============================] - 0s 4ms/step - loss: 8.1183 - mae: 8.6040 - val_loss: 7.6067 - val_mae: 8.0948
Epoch 22/100
31/31 [==============================] - 0s 4ms/step - loss: 8.1174 - mae: 8.6013 - val_loss: 7.6044 - val_mae: 8.0939
Epoch 23/100
31/31 [==============================] - 0s 4ms/step - loss: 7.9768 - mae: 8.4606 - val_loss: 7.5181 - val_mae: 8.0027
Epoch 24/100
31/31 [==============================] - 0s 4ms/step - loss: 7.9488 - mae: 8.4330 - val_loss: 7.4165 - val_mae: 7.9037
Epoch 25/100
31/31 [==============================] - 0s 4ms/step - loss: 7.8248 - mae: 8.3076 - val_loss: 7.4864 - val_mae: 7.9701
Epoch 26/100
31/31 [==============================] - 0s 3ms/step - loss: 7.7746 - mae: 8.2588 - val_loss: 7.3600 - val_mae: 7.8449
Epoch 27/100
31/31 [==============================] - 0s 4ms/step - loss: 7.6489 - mae: 8.1347 - val_loss: 7.4656 - val_mae: 7.9534
Epoch 28/100
31/31 [==============================] - 0s 4ms/step - loss: 7.5881 - mae: 8.0748 - val_loss: 7.2633 - val_mae: 7.7468
Epoch 29/100
31/31 [==============================] - 0s 4ms/step - loss: 7.5281 - mae: 8.0121 - val_loss: 7.2226 - val_mae: 7.7046
Epoch 30/100
31/31 [==============================] - 0s 4ms/step - loss: 7.4287 - mae: 7.9117 - val_loss: 7.4429 - val_mae: 7.9314
Epoch 31/100
31/31 [==============================] - 0s 5ms/step - loss: 7.4079 - mae: 7.8897 - val_loss: 7.0365 - val_mae: 7.5220
Epoch 32/100
31/31 [==============================] - 0s 4ms/step - loss: 7.2735 - mae: 7.7602 - val_loss: 6.9825 - val_mae: 7.4673
Epoch 33/100
31/31 [==============================] - 0s 4ms/step - loss: 7.2739 - mae: 7.7580 - val_loss: 6.9299 - val_mae: 7.4151
Epoch 34/100
31/31 [==============================] - 0s 4ms/step - loss: 7.1570 - mae: 7.6430 - val_loss: 7.1487 - val_mae: 7.6338
Epoch 35/100
31/31 [==============================] - 0s 5ms/step - loss: 7.1307 - mae: 7.6135 - val_loss: 6.8096 - val_mae: 7.2905
Epoch 36/100
31/31 [==============================] - 0s 4ms/step - loss: 7.0562 - mae: 7.5384 - val_loss: 6.8589 - val_mae: 7.3451
Epoch 37/100
31/31 [==============================] - 0s 5ms/step - loss: 6.9709 - mae: 7.4550 - val_loss: 6.6912 - val_mae: 7.1721
Epoch 38/100
31/31 [==============================] - 0s 5ms/step - loss: 6.9274 - mae: 7.4110 - val_loss: 6.7854 - val_mae: 7.2720
Epoch 39/100
31/31 [==============================] - 0s 4ms/step - loss: 6.8287 - mae: 7.3123 - val_loss: 7.0975 - val_mae: 7.5836
Epoch 40/100
31/31 [==============================] - 0s 4ms/step - loss: 6.7947 - mae: 7.2743 - val_loss: 6.6359 - val_mae: 7.1221
Epoch 41/100
31/31 [==============================] - 0s 4ms/step - loss: 6.7593 - mae: 7.2443 - val_loss: 6.6222 - val_mae: 7.1082
Epoch 42/100
31/31 [==============================] - 0s 4ms/step - loss: 6.6816 - mae: 7.1641 - val_loss: 6.4618 - val_mae: 6.9384
Epoch 43/100
31/31 [==============================] - 0s 4ms/step - loss: 6.5978 - mae: 7.0800 - val_loss: 6.6013 - val_mae: 7.0877
Epoch 44/100
31/31 [==============================] - 0s 4ms/step - loss: 6.6256 - mae: 7.1066 - val_loss: 6.4921 - val_mae: 6.9772
Epoch 45/100
31/31 [==============================] - 0s 4ms/step - loss: 6.5119 - mae: 6.9944 - val_loss: 6.4523 - val_mae: 6.9408
Epoch 46/100
31/31 [==============================] - 0s 4ms/step - loss: 6.5113 - mae: 6.9923 - val_loss: 6.3676 - val_mae: 6.8539
Epoch 47/100
31/31 [==============================] - 0s 4ms/step - loss: 6.4703 - mae: 6.9551 - val_loss: 6.4135 - val_mae: 6.9027
Epoch 48/100
31/31 [==============================] - 0s 4ms/step - loss: 6.3575 - mae: 6.8423 - val_loss: 6.2646 - val_mae: 6.7469
Epoch 49/100
31/31 [==============================] - 0s 4ms/step - loss: 6.3132 - mae: 6.7936 - val_loss: 6.5807 - val_mae: 7.0648
Epoch 50/100
31/31 [==============================] - 0s 4ms/step - loss: 6.3524 - mae: 6.8329 - val_loss: 6.1738 - val_mae: 6.6523
Epoch 51/100
31/31 [==============================] - 0s 4ms/step - loss: 6.2175 - mae: 6.7013 - val_loss: 6.5609 - val_mae: 7.0448
Epoch 52/100
31/31 [==============================] - 0s 5ms/step - loss: 6.2483 - mae: 6.7297 - val_loss: 6.3995 - val_mae: 6.8871
Epoch 53/100
31/31 [==============================] - 0s 4ms/step - loss: 6.2216 - mae: 6.7043 - val_loss: 6.0807 - val_mae: 6.5592
Epoch 54/100
31/31 [==============================] - 0s 4ms/step - loss: 6.0713 - mae: 6.5524 - val_loss: 6.0608 - val_mae: 6.5410
Epoch 55/100
31/31 [==============================] - 0s 5ms/step - loss: 6.0764 - mae: 6.5575 - val_loss: 6.0446 - val_mae: 6.5258
Epoch 56/100
31/31 [==============================] - 0s 4ms/step - loss: 6.0693 - mae: 6.5438 - val_loss: 5.9976 - val_mae: 6.4784
Epoch 57/100
31/31 [==============================] - 0s 4ms/step - loss: 5.9879 - mae: 6.4677 - val_loss: 6.5870 - val_mae: 7.0729
Epoch 58/100
31/31 [==============================] - 0s 4ms/step - loss: 5.9670 - mae: 6.4472 - val_loss: 6.2659 - val_mae: 6.7540
Epoch 59/100
31/31 [==============================] - 0s 4ms/step - loss: 5.9528 - mae: 6.4379 - val_loss: 5.9457 - val_mae: 6.4270
Epoch 60/100
31/31 [==============================] - 0s 5ms/step - loss: 5.8707 - mae: 6.3552 - val_loss: 5.9626 - val_mae: 6.4462
Epoch 61/100
31/31 [==============================] - 0s 4ms/step - loss: 5.8656 - mae: 6.3480 - val_loss: 6.0507 - val_mae: 6.5383
Epoch 62/100
31/31 [==============================] - 0s 4ms/step - loss: 5.8503 - mae: 6.3305 - val_loss: 5.9375 - val_mae: 6.4194
Epoch 63/100
31/31 [==============================] - 0s 4ms/step - loss: 5.7668 - mae: 6.2473 - val_loss: 5.8891 - val_mae: 6.3675
Epoch 64/100
31/31 [==============================] - 0s 4ms/step - loss: 5.7735 - mae: 6.2540 - val_loss: 5.7918 - val_mae: 6.2716
Epoch 65/100
31/31 [==============================] - 0s 5ms/step - loss: 5.7196 - mae: 6.1992 - val_loss: 5.7822 - val_mae: 6.2677
Epoch 66/100
31/31 [==============================] - 0s 4ms/step - loss: 5.7195 - mae: 6.2001 - val_loss: 5.8370 - val_mae: 6.3169
Epoch 67/100
31/31 [==============================] - 0s 4ms/step - loss: 5.7116 - mae: 6.1953 - val_loss: 5.8026 - val_mae: 6.2866
Epoch 68/100
31/31 [==============================] - 0s 5ms/step - loss: 5.6455 - mae: 6.1273 - val_loss: 5.8970 - val_mae: 6.3825
Epoch 69/100
31/31 [==============================] - 0s 4ms/step - loss: 5.5995 - mae: 6.0752 - val_loss: 6.1008 - val_mae: 6.5871
Epoch 70/100
31/31 [==============================] - 0s 5ms/step - loss: 5.6110 - mae: 6.0918 - val_loss: 5.9595 - val_mae: 6.4444
Epoch 71/100
31/31 [==============================] - 0s 4ms/step - loss: 5.5976 - mae: 6.0817 - val_loss: 5.6474 - val_mae: 6.1311
Epoch 72/100
31/31 [==============================] - 0s 4ms/step - loss: 5.5355 - mae: 6.0157 - val_loss: 5.6318 - val_mae: 6.1172
Epoch 73/100
31/31 [==============================] - 0s 4ms/step - loss: 5.5398 - mae: 6.0224 - val_loss: 5.6279 - val_mae: 6.1140
Epoch 74/100
31/31 [==============================] - 0s 5ms/step - loss: 5.5468 - mae: 6.0275 - val_loss: 5.5921 - val_mae: 6.0779
Epoch 75/100
31/31 [==============================] - 0s 5ms/step - loss: 5.4855 - mae: 5.9659 - val_loss: 6.0817 - val_mae: 6.5651
Epoch 76/100
31/31 [==============================] - 0s 5ms/step - loss: 5.4834 - mae: 5.9646 - val_loss: 5.6142 - val_mae: 6.0898
Epoch 77/100
31/31 [==============================] - 0s 4ms/step - loss: 5.4842 - mae: 5.9646 - val_loss: 5.5331 - val_mae: 6.0186
Epoch 78/100
31/31 [==============================] - 0s 4ms/step - loss: 5.4070 - mae: 5.8878 - val_loss: 5.5209 - val_mae: 6.0072
Epoch 79/100
31/31 [==============================] - 0s 4ms/step - loss: 5.3568 - mae: 5.8389 - val_loss: 5.5470 - val_mae: 6.0356
Epoch 80/100
31/31 [==============================] - 0s 5ms/step - loss: 5.3579 - mae: 5.8375 - val_loss: 5.5790 - val_mae: 6.0657
Epoch 81/100
31/31 [==============================] - 0s 4ms/step - loss: 5.3304 - mae: 5.8088 - val_loss: 5.7429 - val_mae: 6.2243
Epoch 82/100
31/31 [==============================] - 0s 4ms/step - loss: 5.2761 - mae: 5.7589 - val_loss: 5.7831 - val_mae: 6.2640
Epoch 83/100
31/31 [==============================] - 0s 4ms/step - loss: 5.3007 - mae: 5.7804 - val_loss: 5.4424 - val_mae: 5.9216
Epoch 84/100
31/31 [==============================] - 0s 4ms/step - loss: 5.2705 - mae: 5.7502 - val_loss: 5.6147 - val_mae: 6.0958
Epoch 85/100
31/31 [==============================] - 0s 4ms/step - loss: 5.2405 - mae: 5.7215 - val_loss: 5.4449 - val_mae: 5.9350
Epoch 86/100
31/31 [==============================] - 0s 4ms/step - loss: 5.2553 - mae: 5.7318 - val_loss: 5.3910 - val_mae: 5.8785
Epoch 87/100
31/31 [==============================] - 0s 4ms/step - loss: 5.1897 - mae: 5.6698 - val_loss: 5.3836 - val_mae: 5.8726
Epoch 88/100
31/31 [==============================] - 0s 4ms/step - loss: 5.1770 - mae: 5.6583 - val_loss: 5.5470 - val_mae: 6.0273
Epoch 89/100
31/31 [==============================] - 0s 4ms/step - loss: 5.1712 - mae: 5.6501 - val_loss: 5.3334 - val_mae: 5.8172
Epoch 90/100
31/31 [==============================] - 0s 4ms/step - loss: 5.1521 - mae: 5.6322 - val_loss: 5.3244 - val_mae: 5.8025
Epoch 91/100
31/31 [==============================] - 0s 4ms/step - loss: 5.1463 - mae: 5.6261 - val_loss: 5.4182 - val_mae: 5.9050
Epoch 92/100
31/31 [==============================] - 0s 4ms/step - loss: 5.1003 - mae: 5.5802 - val_loss: 5.3004 - val_mae: 5.7758
Epoch 93/100
31/31 [==============================] - 0s 5ms/step - loss: 5.0947 - mae: 5.5750 - val_loss: 5.4387 - val_mae: 5.9227
Epoch 94/100
31/31 [==============================] - 0s 5ms/step - loss: 5.0597 - mae: 5.5381 - val_loss: 5.3146 - val_mae: 5.8038
Epoch 95/100
31/31 [==============================] - 0s 4ms/step - loss: 5.0638 - mae: 5.5395 - val_loss: 5.4179 - val_mae: 5.9012
Epoch 96/100
31/31 [==============================] - 0s 4ms/step - loss: 5.0408 - mae: 5.5199 - val_loss: 5.2369 - val_mae: 5.7242
Epoch 97/100
31/31 [==============================] - 0s 4ms/step - loss: 5.0147 - mae: 5.4941 - val_loss: 5.3345 - val_mae: 5.8204
Epoch 98/100
31/31 [==============================] - 0s 5ms/step - loss: 5.0047 - mae: 5.4842 - val_loss: 5.2042 - val_mae: 5.6894
Epoch 99/100
31/31 [==============================] - 0s 4ms/step - loss: 5.0098 - mae: 5.4891 - val_loss: 5.3813 - val_mae: 5.8612
Epoch 100/100
31/31 [==============================] - 0s 5ms/step - loss: 5.0298 - mae: 5.5070 - val_loss: 5.7582 - val_mae: 6.2393
Out[6]:
<tensorflow.python.keras.callbacks.History at 0x7f633fd23da0>
In [7]:
keras.backend.clear_session()
tf.random.set_seed(42)
np.random.seed(42)

window_size = 30
train_set = window_dataset(x_train, window_size)

model = keras.models.Sequential([
  keras.layers.Dense(1, input_shape=[window_size])
])

lr_schedule = keras.callbacks.LearningRateScheduler(
    lambda epoch: 1e-6 * 10**(epoch / 30))
optimizer = keras.optimizers.SGD(lr=1e-6, momentum=0.9)
model.compile(loss=keras.losses.Huber(),
              optimizer=optimizer,
              metrics=["mae"])
history = model.fit(train_set, epochs=100, callbacks=[lr_schedule])
Epoch 1/100
31/31 [==============================] - 0s 2ms/step - loss: 67.6867 - mae: 68.1863
Epoch 2/100
31/31 [==============================] - 0s 2ms/step - loss: 52.3572 - mae: 52.8561
Epoch 3/100
31/31 [==============================] - 0s 2ms/step - loss: 34.6465 - mae: 35.1446
Epoch 4/100
31/31 [==============================] - 0s 2ms/step - loss: 17.6521 - mae: 18.1484
Epoch 5/100
31/31 [==============================] - 0s 1ms/step - loss: 8.4604 - mae: 8.9488
Epoch 6/100
31/31 [==============================] - 0s 2ms/step - loss: 7.9765 - mae: 8.4627
Epoch 7/100
31/31 [==============================] - 0s 2ms/step - loss: 7.9201 - mae: 8.4035
Epoch 8/100
31/31 [==============================] - 0s 2ms/step - loss: 7.8785 - mae: 8.3609
Epoch 9/100
31/31 [==============================] - 0s 2ms/step - loss: 7.8191 - mae: 8.3014
Epoch 10/100
31/31 [==============================] - 0s 2ms/step - loss: 7.7701 - mae: 8.2547
Epoch 11/100
31/31 [==============================] - 0s 1ms/step - loss: 7.7249 - mae: 8.2097
Epoch 12/100
31/31 [==============================] - 0s 2ms/step - loss: 7.6673 - mae: 8.1525
Epoch 13/100
31/31 [==============================] - 0s 1ms/step - loss: 7.6269 - mae: 8.1136
Epoch 14/100
31/31 [==============================] - 0s 2ms/step - loss: 7.5684 - mae: 8.0530
Epoch 15/100
31/31 [==============================] - 0s 1ms/step - loss: 7.5128 - mae: 8.0016
Epoch 16/100
31/31 [==============================] - 0s 1ms/step - loss: 7.4312 - mae: 7.9150
Epoch 17/100
31/31 [==============================] - 0s 2ms/step - loss: 7.3864 - mae: 7.8736
Epoch 18/100
31/31 [==============================] - 0s 2ms/step - loss: 7.3137 - mae: 7.7950
Epoch 19/100
31/31 [==============================] - 0s 2ms/step - loss: 7.2457 - mae: 7.7273
Epoch 20/100
31/31 [==============================] - 0s 2ms/step - loss: 7.1735 - mae: 7.6544
Epoch 21/100
31/31 [==============================] - 0s 2ms/step - loss: 7.1804 - mae: 7.6662
Epoch 22/100
31/31 [==============================] - 0s 2ms/step - loss: 7.0853 - mae: 7.5706
Epoch 23/100
31/31 [==============================] - 0s 2ms/step - loss: 7.0073 - mae: 7.4884
Epoch 24/100
31/31 [==============================] - 0s 2ms/step - loss: 6.9851 - mae: 7.4691
Epoch 25/100
31/31 [==============================] - 0s 2ms/step - loss: 6.8725 - mae: 7.3567
Epoch 26/100
31/31 [==============================] - 0s 2ms/step - loss: 6.8170 - mae: 7.2973
Epoch 27/100
31/31 [==============================] - 0s 2ms/step - loss: 6.7869 - mae: 7.2673
Epoch 28/100
31/31 [==============================] - 0s 1ms/step - loss: 6.6955 - mae: 7.1753
Epoch 29/100
31/31 [==============================] - 0s 2ms/step - loss: 6.7099 - mae: 7.1941
Epoch 30/100
31/31 [==============================] - 0s 2ms/step - loss: 6.6355 - mae: 7.1132
Epoch 31/100
31/31 [==============================] - 0s 1ms/step - loss: 6.5437 - mae: 7.0231
Epoch 32/100
31/31 [==============================] - 0s 2ms/step - loss: 6.5368 - mae: 7.0210
Epoch 33/100
31/31 [==============================] - 0s 2ms/step - loss: 6.4093 - mae: 6.8926
Epoch 34/100
31/31 [==============================] - 0s 2ms/step - loss: 6.4816 - mae: 6.9675
Epoch 35/100
31/31 [==============================] - 0s 2ms/step - loss: 6.3046 - mae: 6.7875
Epoch 36/100
31/31 [==============================] - 0s 2ms/step - loss: 6.2577 - mae: 6.7419
Epoch 37/100
31/31 [==============================] - 0s 2ms/step - loss: 6.2191 - mae: 6.6986
Epoch 38/100
31/31 [==============================] - 0s 2ms/step - loss: 6.1605 - mae: 6.6405
Epoch 39/100
31/31 [==============================] - 0s 2ms/step - loss: 6.1336 - mae: 6.6142
Epoch 40/100
31/31 [==============================] - 0s 2ms/step - loss: 6.0521 - mae: 6.5349
Epoch 41/100
31/31 [==============================] - 0s 2ms/step - loss: 5.9596 - mae: 6.4395
Epoch 42/100
31/31 [==============================] - 0s 2ms/step - loss: 5.8883 - mae: 6.3673
Epoch 43/100
31/31 [==============================] - 0s 2ms/step - loss: 5.9301 - mae: 6.4072
Epoch 44/100
31/31 [==============================] - 0s 2ms/step - loss: 5.8831 - mae: 6.3622
Epoch 45/100
31/31 [==============================] - 0s 1ms/step - loss: 5.7877 - mae: 6.2663
Epoch 46/100
31/31 [==============================] - 0s 2ms/step - loss: 5.6731 - mae: 6.1480
Epoch 47/100
31/31 [==============================] - 0s 2ms/step - loss: 5.7843 - mae: 6.2660
Epoch 48/100
31/31 [==============================] - 0s 2ms/step - loss: 5.8111 - mae: 6.2936
Epoch 49/100
31/31 [==============================] - 0s 2ms/step - loss: 5.6778 - mae: 6.1561
Epoch 50/100
31/31 [==============================] - 0s 2ms/step - loss: 5.6273 - mae: 6.1083
Epoch 51/100
31/31 [==============================] - 0s 2ms/step - loss: 5.4036 - mae: 5.8842
Epoch 52/100
31/31 [==============================] - 0s 1ms/step - loss: 5.4779 - mae: 5.9611
Epoch 53/100
31/31 [==============================] - 0s 2ms/step - loss: 5.2399 - mae: 5.7194
Epoch 54/100
31/31 [==============================] - 0s 2ms/step - loss: 5.4156 - mae: 5.8931
Epoch 55/100
31/31 [==============================] - 0s 2ms/step - loss: 5.0955 - mae: 5.5773
Epoch 56/100
31/31 [==============================] - 0s 2ms/step - loss: 5.3713 - mae: 5.8517
Epoch 57/100
31/31 [==============================] - 0s 1ms/step - loss: 4.9477 - mae: 5.4255
Epoch 58/100
31/31 [==============================] - 0s 2ms/step - loss: 5.0357 - mae: 5.5195
Epoch 59/100
31/31 [==============================] - 0s 2ms/step - loss: 5.3320 - mae: 5.8154
Epoch 60/100
31/31 [==============================] - 0s 2ms/step - loss: 5.0502 - mae: 5.5320
Epoch 61/100
31/31 [==============================] - 0s 2ms/step - loss: 5.4312 - mae: 5.9079
Epoch 62/100
31/31 [==============================] - 0s 2ms/step - loss: 4.7412 - mae: 5.2177
Epoch 63/100
31/31 [==============================] - 0s 2ms/step - loss: 4.7009 - mae: 5.1809
Epoch 64/100
31/31 [==============================] - 0s 2ms/step - loss: 5.1740 - mae: 5.6554
Epoch 65/100
31/31 [==============================] - 0s 2ms/step - loss: 5.5442 - mae: 6.0202
Epoch 66/100
31/31 [==============================] - 0s 2ms/step - loss: 5.2931 - mae: 5.7768
Epoch 67/100
31/31 [==============================] - 0s 2ms/step - loss: 5.4318 - mae: 5.9117
Epoch 68/100
31/31 [==============================] - 0s 2ms/step - loss: 4.7712 - mae: 5.2507
Epoch 69/100
31/31 [==============================] - 0s 2ms/step - loss: 5.6458 - mae: 6.1271
Epoch 70/100
31/31 [==============================] - 0s 1ms/step - loss: 6.4273 - mae: 6.9116
Epoch 71/100
31/31 [==============================] - 0s 2ms/step - loss: 6.8479 - mae: 7.3314
Epoch 72/100
31/31 [==============================] - 0s 1ms/step - loss: 4.9178 - mae: 5.3961
Epoch 73/100
31/31 [==============================] - 0s 2ms/step - loss: 5.4522 - mae: 5.9313
Epoch 74/100
31/31 [==============================] - 0s 2ms/step - loss: 7.2815 - mae: 7.7614
Epoch 75/100
31/31 [==============================] - 0s 2ms/step - loss: 7.6446 - mae: 8.1322
Epoch 76/100
31/31 [==============================] - 0s 2ms/step - loss: 7.2290 - mae: 7.7151
Epoch 77/100
31/31 [==============================] - 0s 2ms/step - loss: 20.8707 - mae: 21.3640
Epoch 78/100
31/31 [==============================] - 0s 2ms/step - loss: 10.4873 - mae: 10.9763
Epoch 79/100
31/31 [==============================] - 0s 2ms/step - loss: 16.0964 - mae: 16.5907
Epoch 80/100
31/31 [==============================] - 0s 2ms/step - loss: 17.7538 - mae: 18.2488
Epoch 81/100
31/31 [==============================] - 0s 2ms/step - loss: 8.8343 - mae: 9.3221
Epoch 82/100
31/31 [==============================] - 0s 2ms/step - loss: 16.1783 - mae: 16.6707
Epoch 83/100
31/31 [==============================] - 0s 1ms/step - loss: 10.1924 - mae: 10.6824
Epoch 84/100
31/31 [==============================] - 0s 2ms/step - loss: 10.1753 - mae: 10.6635
Epoch 85/100
31/31 [==============================] - 0s 2ms/step - loss: 46.8143 - mae: 47.3134
Epoch 86/100
31/31 [==============================] - 0s 1ms/step - loss: 47.7720 - mae: 48.2703
Epoch 87/100
31/31 [==============================] - 0s 2ms/step - loss: 29.6844 - mae: 30.1787
Epoch 88/100
31/31 [==============================] - 0s 2ms/step - loss: 20.4365 - mae: 20.9286
Epoch 89/100
31/31 [==============================] - 0s 2ms/step - loss: 20.8585 - mae: 21.3513
Epoch 90/100
31/31 [==============================] - 0s 2ms/step - loss: 42.0193 - mae: 42.5178
Epoch 91/100
31/31 [==============================] - 0s 2ms/step - loss: 37.6780 - mae: 38.1743
Epoch 92/100
31/31 [==============================] - 0s 2ms/step - loss: 49.3149 - mae: 49.8129
Epoch 93/100
31/31 [==============================] - 0s 2ms/step - loss: 44.5546 - mae: 45.0522
Epoch 94/100
31/31 [==============================] - 0s 1ms/step - loss: 46.7470 - mae: 47.2456
Epoch 95/100
31/31 [==============================] - 0s 2ms/step - loss: 92.3724 - mae: 92.8704
Epoch 96/100
31/31 [==============================] - 0s 2ms/step - loss: 62.0775 - mae: 62.5747
Epoch 97/100
31/31 [==============================] - 0s 2ms/step - loss: 119.9134 - mae: 120.4125
Epoch 98/100
31/31 [==============================] - 0s 2ms/step - loss: 144.7987 - mae: 145.2971
Epoch 99/100
31/31 [==============================] - 0s 2ms/step - loss: 81.5680 - mae: 82.0657
Epoch 100/100
31/31 [==============================] - 0s 2ms/step - loss: 134.7170 - mae: 135.2166
In [8]:
plt.semilogx(history.history["lr"], history.history["loss"])
plt.axis([1e-6, 1e-3, 0, 20])
Out[8]:
(1e-06, 0.001, 0.0, 20.0)
In [9]:
keras.backend.clear_session()
tf.random.set_seed(42)
np.random.seed(42)

window_size = 30
train_set = window_dataset(x_train, window_size)
valid_set = window_dataset(x_valid, window_size)

model = keras.models.Sequential([
  keras.layers.Dense(1, input_shape=[window_size])
])
optimizer = keras.optimizers.SGD(lr=1e-5, momentum=0.9)
model.compile(loss=keras.losses.Huber(),
              optimizer=optimizer,
              metrics=["mae"])
early_stopping = keras.callbacks.EarlyStopping(patience=10)
model.fit(train_set, epochs=500,
          validation_data=valid_set,
          callbacks=[early_stopping])
Epoch 1/500
31/31 [==============================] - 0s 6ms/step - loss: 46.6813 - mae: 47.1784 - val_loss: 23.1475 - val_mae: 23.6473
Epoch 2/500
31/31 [==============================] - 0s 4ms/step - loss: 11.9123 - mae: 12.4017 - val_loss: 10.6108 - val_mae: 11.0934
Epoch 3/500
31/31 [==============================] - 0s 4ms/step - loss: 10.2063 - mae: 10.6947 - val_loss: 9.1115 - val_mae: 9.6013
Epoch 4/500
31/31 [==============================] - 0s 4ms/step - loss: 9.8053 - mae: 10.2898 - val_loss: 9.0103 - val_mae: 9.4965
Epoch 5/500
31/31 [==============================] - 0s 5ms/step - loss: 9.7068 - mae: 10.1940 - val_loss: 8.9696 - val_mae: 9.4569
Epoch 6/500
31/31 [==============================] - 0s 4ms/step - loss: 9.5858 - mae: 10.0706 - val_loss: 9.2814 - val_mae: 9.7695
Epoch 7/500
31/31 [==============================] - 0s 4ms/step - loss: 9.5716 - mae: 10.0561 - val_loss: 8.7506 - val_mae: 9.2409
Epoch 8/500
31/31 [==============================] - 0s 4ms/step - loss: 9.4335 - mae: 9.9208 - val_loss: 8.9409 - val_mae: 9.4259
Epoch 9/500
31/31 [==============================] - 0s 4ms/step - loss: 9.2821 - mae: 9.7655 - val_loss: 8.7019 - val_mae: 9.1887
Epoch 10/500
31/31 [==============================] - 0s 5ms/step - loss: 9.1588 - mae: 9.6455 - val_loss: 9.1858 - val_mae: 9.6757
Epoch 11/500
31/31 [==============================] - 0s 4ms/step - loss: 9.1080 - mae: 9.5909 - val_loss: 8.3841 - val_mae: 8.8717
Epoch 12/500
31/31 [==============================] - 0s 3ms/step - loss: 9.0054 - mae: 9.4901 - val_loss: 8.3203 - val_mae: 8.8105
Epoch 13/500
31/31 [==============================] - 0s 4ms/step - loss: 8.8572 - mae: 9.3423 - val_loss: 8.2304 - val_mae: 8.7186
Epoch 14/500
31/31 [==============================] - 0s 4ms/step - loss: 8.7560 - mae: 9.2400 - val_loss: 8.2015 - val_mae: 8.6929
Epoch 15/500
31/31 [==============================] - 0s 4ms/step - loss: 8.7060 - mae: 9.1891 - val_loss: 8.0562 - val_mae: 8.5446
Epoch 16/500
31/31 [==============================] - 0s 5ms/step - loss: 8.6244 - mae: 9.1106 - val_loss: 7.9800 - val_mae: 8.4679
Epoch 17/500
31/31 [==============================] - 0s 4ms/step - loss: 8.4941 - mae: 8.9788 - val_loss: 7.8962 - val_mae: 8.3846
Epoch 18/500
31/31 [==============================] - 0s 4ms/step - loss: 8.3914 - mae: 8.8778 - val_loss: 7.8248 - val_mae: 8.3136
Epoch 19/500
31/31 [==============================] - 0s 5ms/step - loss: 8.3789 - mae: 8.8672 - val_loss: 7.9163 - val_mae: 8.4018
Epoch 20/500
31/31 [==============================] - 0s 4ms/step - loss: 8.2872 - mae: 8.7752 - val_loss: 7.9781 - val_mae: 8.4660
Epoch 21/500
31/31 [==============================] - 0s 5ms/step - loss: 8.1183 - mae: 8.6040 - val_loss: 7.6067 - val_mae: 8.0948
Epoch 22/500
31/31 [==============================] - 0s 4ms/step - loss: 8.1174 - mae: 8.6013 - val_loss: 7.6044 - val_mae: 8.0939
Epoch 23/500
31/31 [==============================] - 0s 5ms/step - loss: 7.9768 - mae: 8.4606 - val_loss: 7.5181 - val_mae: 8.0027
Epoch 24/500
31/31 [==============================] - 0s 4ms/step - loss: 7.9488 - mae: 8.4330 - val_loss: 7.4165 - val_mae: 7.9037
Epoch 25/500
31/31 [==============================] - 0s 4ms/step - loss: 7.8248 - mae: 8.3076 - val_loss: 7.4864 - val_mae: 7.9701
Epoch 26/500
31/31 [==============================] - 0s 4ms/step - loss: 7.7746 - mae: 8.2588 - val_loss: 7.3600 - val_mae: 7.8449
Epoch 27/500
31/31 [==============================] - 0s 4ms/step - loss: 7.6489 - mae: 8.1347 - val_loss: 7.4656 - val_mae: 7.9534
Epoch 28/500
31/31 [==============================] - 0s 4ms/step - loss: 7.5881 - mae: 8.0748 - val_loss: 7.2633 - val_mae: 7.7468
Epoch 29/500
31/31 [==============================] - 0s 4ms/step - loss: 7.5281 - mae: 8.0121 - val_loss: 7.2226 - val_mae: 7.7046
Epoch 30/500
31/31 [==============================] - 0s 4ms/step - loss: 7.4287 - mae: 7.9117 - val_loss: 7.4429 - val_mae: 7.9314
Epoch 31/500
31/31 [==============================] - 0s 4ms/step - loss: 7.4079 - mae: 7.8897 - val_loss: 7.0365 - val_mae: 7.5220
Epoch 32/500
31/31 [==============================] - 0s 4ms/step - loss: 7.2735 - mae: 7.7602 - val_loss: 6.9825 - val_mae: 7.4673
Epoch 33/500
31/31 [==============================] - 0s 4ms/step - loss: 7.2739 - mae: 7.7580 - val_loss: 6.9299 - val_mae: 7.4151
Epoch 34/500
31/31 [==============================] - 0s 4ms/step - loss: 7.1570 - mae: 7.6430 - val_loss: 7.1487 - val_mae: 7.6338
Epoch 35/500
31/31 [==============================] - 0s 4ms/step - loss: 7.1307 - mae: 7.6135 - val_loss: 6.8096 - val_mae: 7.2905
Epoch 36/500
31/31 [==============================] - 0s 4ms/step - loss: 7.0562 - mae: 7.5384 - val_loss: 6.8589 - val_mae: 7.3451
Epoch 37/500
31/31 [==============================] - 0s 4ms/step - loss: 6.9709 - mae: 7.4550 - val_loss: 6.6912 - val_mae: 7.1721
Epoch 38/500
31/31 [==============================] - 0s 4ms/step - loss: 6.9274 - mae: 7.4110 - val_loss: 6.7854 - val_mae: 7.2720
Epoch 39/500
31/31 [==============================] - 0s 5ms/step - loss: 6.8287 - mae: 7.3123 - val_loss: 7.0975 - val_mae: 7.5836
Epoch 40/500
31/31 [==============================] - 0s 4ms/step - loss: 6.7947 - mae: 7.2743 - val_loss: 6.6359 - val_mae: 7.1221
Epoch 41/500
31/31 [==============================] - 0s 4ms/step - loss: 6.7593 - mae: 7.2443 - val_loss: 6.6222 - val_mae: 7.1082
Epoch 42/500
31/31 [==============================] - 0s 4ms/step - loss: 6.6816 - mae: 7.1641 - val_loss: 6.4618 - val_mae: 6.9384
Epoch 43/500
31/31 [==============================] - 0s 4ms/step - loss: 6.5978 - mae: 7.0800 - val_loss: 6.6013 - val_mae: 7.0877
Epoch 44/500
31/31 [==============================] - 0s 5ms/step - loss: 6.6256 - mae: 7.1066 - val_loss: 6.4921 - val_mae: 6.9772
Epoch 45/500
31/31 [==============================] - 0s 4ms/step - loss: 6.5119 - mae: 6.9944 - val_loss: 6.4523 - val_mae: 6.9408
Epoch 46/500
31/31 [==============================] - 0s 4ms/step - loss: 6.5113 - mae: 6.9923 - val_loss: 6.3676 - val_mae: 6.8539
Epoch 47/500
31/31 [==============================] - 0s 5ms/step - loss: 6.4703 - mae: 6.9551 - val_loss: 6.4135 - val_mae: 6.9027
Epoch 48/500
31/31 [==============================] - 0s 4ms/step - loss: 6.3575 - mae: 6.8423 - val_loss: 6.2646 - val_mae: 6.7469
Epoch 49/500
31/31 [==============================] - 0s 4ms/step - loss: 6.3132 - mae: 6.7936 - val_loss: 6.5807 - val_mae: 7.0648
Epoch 50/500
31/31 [==============================] - 0s 4ms/step - loss: 6.3524 - mae: 6.8329 - val_loss: 6.1738 - val_mae: 6.6523
Epoch 51/500
31/31 [==============================] - 0s 4ms/step - loss: 6.2175 - mae: 6.7013 - val_loss: 6.5609 - val_mae: 7.0448
Epoch 52/500
31/31 [==============================] - 0s 4ms/step - loss: 6.2483 - mae: 6.7297 - val_loss: 6.3995 - val_mae: 6.8871
Epoch 53/500
31/31 [==============================] - 0s 4ms/step - loss: 6.2216 - mae: 6.7043 - val_loss: 6.0807 - val_mae: 6.5592
Epoch 54/500
31/31 [==============================] - 0s 4ms/step - loss: 6.0713 - mae: 6.5524 - val_loss: 6.0608 - val_mae: 6.5410
Epoch 55/500
31/31 [==============================] - 0s 4ms/step - loss: 6.0764 - mae: 6.5575 - val_loss: 6.0446 - val_mae: 6.5258
Epoch 56/500
31/31 [==============================] - 0s 4ms/step - loss: 6.0693 - mae: 6.5438 - val_loss: 5.9976 - val_mae: 6.4784
Epoch 57/500
31/31 [==============================] - 0s 5ms/step - loss: 5.9879 - mae: 6.4677 - val_loss: 6.5870 - val_mae: 7.0729
Epoch 58/500
31/31 [==============================] - 0s 4ms/step - loss: 5.9670 - mae: 6.4472 - val_loss: 6.2659 - val_mae: 6.7540
Epoch 59/500
31/31 [==============================] - 0s 4ms/step - loss: 5.9528 - mae: 6.4379 - val_loss: 5.9457 - val_mae: 6.4270
Epoch 60/500
31/31 [==============================] - 0s 4ms/step - loss: 5.8707 - mae: 6.3552 - val_loss: 5.9626 - val_mae: 6.4462
Epoch 61/500
31/31 [==============================] - 0s 4ms/step - loss: 5.8656 - mae: 6.3480 - val_loss: 6.0507 - val_mae: 6.5383
Epoch 62/500
31/31 [==============================] - 0s 4ms/step - loss: 5.8503 - mae: 6.3305 - val_loss: 5.9375 - val_mae: 6.4194
Epoch 63/500
31/31 [==============================] - 0s 4ms/step - loss: 5.7668 - mae: 6.2473 - val_loss: 5.8891 - val_mae: 6.3675
Epoch 64/500
31/31 [==============================] - 0s 4ms/step - loss: 5.7735 - mae: 6.2540 - val_loss: 5.7918 - val_mae: 6.2716
Epoch 65/500
31/31 [==============================] - 0s 4ms/step - loss: 5.7196 - mae: 6.1992 - val_loss: 5.7822 - val_mae: 6.2677
Epoch 66/500
31/31 [==============================] - 0s 4ms/step - loss: 5.7195 - mae: 6.2001 - val_loss: 5.8370 - val_mae: 6.3169
Epoch 67/500
31/31 [==============================] - 0s 5ms/step - loss: 5.7116 - mae: 6.1953 - val_loss: 5.8026 - val_mae: 6.2866
Epoch 68/500
31/31 [==============================] - 0s 4ms/step - loss: 5.6455 - mae: 6.1273 - val_loss: 5.8970 - val_mae: 6.3825
Epoch 69/500
31/31 [==============================] - 0s 4ms/step - loss: 5.5995 - mae: 6.0752 - val_loss: 6.1008 - val_mae: 6.5871
Epoch 70/500
31/31 [==============================] - 0s 4ms/step - loss: 5.6110 - mae: 6.0918 - val_loss: 5.9595 - val_mae: 6.4444
Epoch 71/500
31/31 [==============================] - 0s 4ms/step - loss: 5.5976 - mae: 6.0817 - val_loss: 5.6474 - val_mae: 6.1311
Epoch 72/500
31/31 [==============================] - 0s 4ms/step - loss: 5.5355 - mae: 6.0157 - val_loss: 5.6318 - val_mae: 6.1172
Epoch 73/500
31/31 [==============================] - 0s 4ms/step - loss: 5.5398 - mae: 6.0224 - val_loss: 5.6279 - val_mae: 6.1140
Epoch 74/500
31/31 [==============================] - 0s 5ms/step - loss: 5.5468 - mae: 6.0275 - val_loss: 5.5921 - val_mae: 6.0779
Epoch 75/500
31/31 [==============================] - 0s 4ms/step - loss: 5.4855 - mae: 5.9659 - val_loss: 6.0817 - val_mae: 6.5651
Epoch 76/500
31/31 [==============================] - 0s 4ms/step - loss: 5.4834 - mae: 5.9646 - val_loss: 5.6142 - val_mae: 6.0898
Epoch 77/500
31/31 [==============================] - 0s 5ms/step - loss: 5.4842 - mae: 5.9646 - val_loss: 5.5331 - val_mae: 6.0186
Epoch 78/500
31/31 [==============================] - 0s 5ms/step - loss: 5.4070 - mae: 5.8878 - val_loss: 5.5209 - val_mae: 6.0072
Epoch 79/500
31/31 [==============================] - 0s 4ms/step - loss: 5.3568 - mae: 5.8389 - val_loss: 5.5470 - val_mae: 6.0356
Epoch 80/500
31/31 [==============================] - 0s 4ms/step - loss: 5.3579 - mae: 5.8375 - val_loss: 5.5790 - val_mae: 6.0657
Epoch 81/500
31/31 [==============================] - 0s 3ms/step - loss: 5.3304 - mae: 5.8088 - val_loss: 5.7429 - val_mae: 6.2243
Epoch 82/500
31/31 [==============================] - 0s 5ms/step - loss: 5.2761 - mae: 5.7589 - val_loss: 5.7831 - val_mae: 6.2640
Epoch 83/500
31/31 [==============================] - 0s 4ms/step - loss: 5.3007 - mae: 5.7804 - val_loss: 5.4424 - val_mae: 5.9216
Epoch 84/500
31/31 [==============================] - 0s 5ms/step - loss: 5.2705 - mae: 5.7502 - val_loss: 5.6147 - val_mae: 6.0958
Epoch 85/500
31/31 [==============================] - 0s 4ms/step - loss: 5.2405 - mae: 5.7215 - val_loss: 5.4449 - val_mae: 5.9350
Epoch 86/500
31/31 [==============================] - 0s 4ms/step - loss: 5.2553 - mae: 5.7318 - val_loss: 5.3910 - val_mae: 5.8785
Epoch 87/500
31/31 [==============================] - 0s 4ms/step - loss: 5.1897 - mae: 5.6698 - val_loss: 5.3836 - val_mae: 5.8726
Epoch 88/500
31/31 [==============================] - 0s 5ms/step - loss: 5.1770 - mae: 5.6583 - val_loss: 5.5470 - val_mae: 6.0273
Epoch 89/500
31/31 [==============================] - 0s 4ms/step - loss: 5.1712 - mae: 5.6501 - val_loss: 5.3334 - val_mae: 5.8172
Epoch 90/500
31/31 [==============================] - 0s 4ms/step - loss: 5.1521 - mae: 5.6322 - val_loss: 5.3244 - val_mae: 5.8025
Epoch 91/500
31/31 [==============================] - 0s 5ms/step - loss: 5.1463 - mae: 5.6261 - val_loss: 5.4182 - val_mae: 5.9050
Epoch 92/500
31/31 [==============================] - 0s 5ms/step - loss: 5.1003 - mae: 5.5802 - val_loss: 5.3004 - val_mae: 5.7758
Epoch 93/500
31/31 [==============================] - 0s 5ms/step - loss: 5.0947 - mae: 5.5750 - val_loss: 5.4387 - val_mae: 5.9227
Epoch 94/500
31/31 [==============================] - 0s 4ms/step - loss: 5.0597 - mae: 5.5381 - val_loss: 5.3146 - val_mae: 5.8038
Epoch 95/500
31/31 [==============================] - 0s 4ms/step - loss: 5.0638 - mae: 5.5395 - val_loss: 5.4179 - val_mae: 5.9012
Epoch 96/500
31/31 [==============================] - 0s 5ms/step - loss: 5.0408 - mae: 5.5199 - val_loss: 5.2369 - val_mae: 5.7242
Epoch 97/500
31/31 [==============================] - 0s 4ms/step - loss: 5.0147 - mae: 5.4941 - val_loss: 5.3345 - val_mae: 5.8204
Epoch 98/500
31/31 [==============================] - 0s 4ms/step - loss: 5.0047 - mae: 5.4842 - val_loss: 5.2042 - val_mae: 5.6894
Epoch 99/500
31/31 [==============================] - 0s 4ms/step - loss: 5.0098 - mae: 5.4891 - val_loss: 5.3813 - val_mae: 5.8612
Epoch 100/500
31/31 [==============================] - 0s 4ms/step - loss: 5.0298 - mae: 5.5070 - val_loss: 5.7582 - val_mae: 6.2393
Epoch 101/500
31/31 [==============================] - 0s 4ms/step - loss: 4.9522 - mae: 5.4295 - val_loss: 5.2437 - val_mae: 5.7239
Epoch 102/500
31/31 [==============================] - 0s 4ms/step - loss: 5.0311 - mae: 5.5083 - val_loss: 5.1543 - val_mae: 5.6401
Epoch 103/500
31/31 [==============================] - 0s 5ms/step - loss: 4.9436 - mae: 5.4193 - val_loss: 5.1390 - val_mae: 5.6240
Epoch 104/500
31/31 [==============================] - 0s 4ms/step - loss: 4.9450 - mae: 5.4215 - val_loss: 5.3353 - val_mae: 5.8157
Epoch 105/500
31/31 [==============================] - 0s 4ms/step - loss: 4.9048 - mae: 5.3807 - val_loss: 5.1165 - val_mae: 5.6013
Epoch 106/500
31/31 [==============================] - 0s 4ms/step - loss: 4.9047 - mae: 5.3825 - val_loss: 5.3300 - val_mae: 5.8103
Epoch 107/500
31/31 [==============================] - 0s 4ms/step - loss: 4.9422 - mae: 5.4200 - val_loss: 5.1152 - val_mae: 5.6036
Epoch 108/500
31/31 [==============================] - 0s 4ms/step - loss: 4.8532 - mae: 5.3330 - val_loss: 5.2007 - val_mae: 5.6834
Epoch 109/500
31/31 [==============================] - 0s 5ms/step - loss: 4.8442 - mae: 5.3215 - val_loss: 5.6814 - val_mae: 6.1621
Epoch 110/500
31/31 [==============================] - 0s 5ms/step - loss: 4.9187 - mae: 5.3915 - val_loss: 5.1091 - val_mae: 5.5870
Epoch 111/500
31/31 [==============================] - 0s 4ms/step - loss: 4.8404 - mae: 5.3195 - val_loss: 5.0761 - val_mae: 5.5654
Epoch 112/500
31/31 [==============================] - 0s 4ms/step - loss: 4.8411 - mae: 5.3162 - val_loss: 5.0675 - val_mae: 5.5446
Epoch 113/500
31/31 [==============================] - 0s 5ms/step - loss: 4.8452 - mae: 5.3206 - val_loss: 5.0255 - val_mae: 5.5094
Epoch 114/500
31/31 [==============================] - 0s 4ms/step - loss: 4.8270 - mae: 5.3031 - val_loss: 5.3017 - val_mae: 5.7803
Epoch 115/500
31/31 [==============================] - 0s 5ms/step - loss: 4.8297 - mae: 5.3081 - val_loss: 5.0467 - val_mae: 5.5351
Epoch 116/500
31/31 [==============================] - 0s 5ms/step - loss: 4.7711 - mae: 5.2484 - val_loss: 5.0539 - val_mae: 5.5312
Epoch 117/500
31/31 [==============================] - 0s 5ms/step - loss: 4.8465 - mae: 5.3216 - val_loss: 4.9959 - val_mae: 5.4835
Epoch 118/500
31/31 [==============================] - 0s 5ms/step - loss: 4.8112 - mae: 5.2919 - val_loss: 5.1245 - val_mae: 5.6024
Epoch 119/500
31/31 [==============================] - 0s 5ms/step - loss: 4.7606 - mae: 5.2337 - val_loss: 4.9780 - val_mae: 5.4659
Epoch 120/500
31/31 [==============================] - 0s 5ms/step - loss: 4.7182 - mae: 5.1950 - val_loss: 5.1574 - val_mae: 5.6361
Epoch 121/500
31/31 [==============================] - 0s 4ms/step - loss: 4.7128 - mae: 5.1854 - val_loss: 5.0212 - val_mae: 5.5043
Epoch 122/500
31/31 [==============================] - 0s 4ms/step - loss: 4.6972 - mae: 5.1724 - val_loss: 5.1985 - val_mae: 5.6792
Epoch 123/500
31/31 [==============================] - 0s 5ms/step - loss: 4.7283 - mae: 5.2057 - val_loss: 5.0452 - val_mae: 5.5233
Epoch 124/500
31/31 [==============================] - 0s 5ms/step - loss: 4.7393 - mae: 5.2107 - val_loss: 4.9138 - val_mae: 5.3958
Epoch 125/500
31/31 [==============================] - 0s 5ms/step - loss: 4.7014 - mae: 5.1780 - val_loss: 5.0025 - val_mae: 5.4797
Epoch 126/500
31/31 [==============================] - 0s 5ms/step - loss: 4.6727 - mae: 5.1444 - val_loss: 4.9720 - val_mae: 5.4553
Epoch 127/500
31/31 [==============================] - 0s 5ms/step - loss: 4.6785 - mae: 5.1538 - val_loss: 4.9888 - val_mae: 5.4690
Epoch 128/500
31/31 [==============================] - 0s 4ms/step - loss: 4.6817 - mae: 5.1575 - val_loss: 4.8904 - val_mae: 5.3673
Epoch 129/500
31/31 [==============================] - 0s 5ms/step - loss: 4.6582 - mae: 5.1312 - val_loss: 4.9069 - val_mae: 5.3925
Epoch 130/500
31/31 [==============================] - 0s 5ms/step - loss: 4.6306 - mae: 5.0997 - val_loss: 4.9076 - val_mae: 5.3829
Epoch 131/500
31/31 [==============================] - 0s 5ms/step - loss: 4.7226 - mae: 5.1940 - val_loss: 4.9074 - val_mae: 5.3918
Epoch 132/500
31/31 [==============================] - 0s 4ms/step - loss: 4.6231 - mae: 5.0918 - val_loss: 5.1379 - val_mae: 5.6248
Epoch 133/500
31/31 [==============================] - 0s 5ms/step - loss: 4.6515 - mae: 5.1254 - val_loss: 4.8386 - val_mae: 5.3224
Epoch 134/500
31/31 [==============================] - 0s 5ms/step - loss: 4.6095 - mae: 5.0818 - val_loss: 4.8331 - val_mae: 5.3102
Epoch 135/500
31/31 [==============================] - 0s 5ms/step - loss: 4.5996 - mae: 5.0718 - val_loss: 4.8614 - val_mae: 5.3453
Epoch 136/500
31/31 [==============================] - 0s 5ms/step - loss: 4.6100 - mae: 5.0800 - val_loss: 5.0160 - val_mae: 5.4992
Epoch 137/500
31/31 [==============================] - 0s 4ms/step - loss: 4.5966 - mae: 5.0682 - val_loss: 5.0807 - val_mae: 5.5635
Epoch 138/500
31/31 [==============================] - 0s 5ms/step - loss: 4.6450 - mae: 5.1179 - val_loss: 4.8129 - val_mae: 5.2862
Epoch 139/500
31/31 [==============================] - 0s 4ms/step - loss: 4.5723 - mae: 5.0471 - val_loss: 4.7926 - val_mae: 5.2739
Epoch 140/500
31/31 [==============================] - 0s 5ms/step - loss: 4.6689 - mae: 5.1466 - val_loss: 5.1160 - val_mae: 5.5957
Epoch 141/500
31/31 [==============================] - 0s 5ms/step - loss: 4.5723 - mae: 5.0447 - val_loss: 4.8136 - val_mae: 5.2859
Epoch 142/500
31/31 [==============================] - 0s 4ms/step - loss: 4.5720 - mae: 5.0456 - val_loss: 5.7264 - val_mae: 6.2045
Epoch 143/500
31/31 [==============================] - 0s 4ms/step - loss: 4.6472 - mae: 5.1223 - val_loss: 4.8583 - val_mae: 5.3399
Epoch 144/500
31/31 [==============================] - 0s 5ms/step - loss: 4.5445 - mae: 5.0164 - val_loss: 4.8452 - val_mae: 5.3258
Epoch 145/500
31/31 [==============================] - 0s 5ms/step - loss: 4.5868 - mae: 5.0586 - val_loss: 4.7969 - val_mae: 5.2798
Epoch 146/500
31/31 [==============================] - 0s 4ms/step - loss: 4.5272 - mae: 4.9983 - val_loss: 4.8206 - val_mae: 5.3032
Epoch 147/500
31/31 [==============================] - 0s 5ms/step - loss: 4.5625 - mae: 5.0318 - val_loss: 4.7734 - val_mae: 5.2451
Epoch 148/500
31/31 [==============================] - 0s 4ms/step - loss: 4.5522 - mae: 5.0233 - val_loss: 5.1678 - val_mae: 5.6437
Epoch 149/500
31/31 [==============================] - 0s 5ms/step - loss: 4.5501 - mae: 5.0251 - val_loss: 4.7534 - val_mae: 5.2344
Epoch 150/500
31/31 [==============================] - 0s 4ms/step - loss: 4.5521 - mae: 5.0240 - val_loss: 4.8183 - val_mae: 5.3010
Epoch 151/500
31/31 [==============================] - 0s 5ms/step - loss: 4.5316 - mae: 5.0044 - val_loss: 5.3566 - val_mae: 5.8310
Epoch 152/500
31/31 [==============================] - 0s 4ms/step - loss: 4.6382 - mae: 5.1124 - val_loss: 4.7275 - val_mae: 5.1992
Epoch 153/500
31/31 [==============================] - 0s 5ms/step - loss: 4.5020 - mae: 4.9728 - val_loss: 5.2011 - val_mae: 5.6760
Epoch 154/500
31/31 [==============================] - 0s 5ms/step - loss: 4.5167 - mae: 4.9930 - val_loss: 4.7310 - val_mae: 5.2126
Epoch 155/500
31/31 [==============================] - 0s 4ms/step - loss: 4.4790 - mae: 4.9509 - val_loss: 4.7013 - val_mae: 5.1804
Epoch 156/500
31/31 [==============================] - 0s 4ms/step - loss: 4.4868 - mae: 4.9600 - val_loss: 4.7211 - val_mae: 5.2024
Epoch 157/500
31/31 [==============================] - 0s 4ms/step - loss: 4.5016 - mae: 4.9724 - val_loss: 4.6946 - val_mae: 5.1724
Epoch 158/500
31/31 [==============================] - 0s 4ms/step - loss: 4.5500 - mae: 5.0233 - val_loss: 4.7235 - val_mae: 5.2067
Epoch 159/500
31/31 [==============================] - 0s 5ms/step - loss: 4.4735 - mae: 4.9471 - val_loss: 4.6757 - val_mae: 5.1516
Epoch 160/500
31/31 [==============================] - 0s 4ms/step - loss: 4.5259 - mae: 4.9974 - val_loss: 4.7655 - val_mae: 5.2488
Epoch 161/500
31/31 [==============================] - 0s 5ms/step - loss: 4.4464 - mae: 4.9209 - val_loss: 5.4095 - val_mae: 5.8857
Epoch 162/500
31/31 [==============================] - 0s 5ms/step - loss: 4.5273 - mae: 4.9983 - val_loss: 4.6621 - val_mae: 5.1371
Epoch 163/500
31/31 [==============================] - 0s 4ms/step - loss: 4.4546 - mae: 4.9246 - val_loss: 4.7085 - val_mae: 5.1911
Epoch 164/500
31/31 [==============================] - 0s 4ms/step - loss: 4.4700 - mae: 4.9418 - val_loss: 4.6595 - val_mae: 5.1350
Epoch 165/500
31/31 [==============================] - 0s 5ms/step - loss: 4.4530 - mae: 4.9248 - val_loss: 4.8008 - val_mae: 5.2830
Epoch 166/500
31/31 [==============================] - 0s 4ms/step - loss: 4.4512 - mae: 4.9258 - val_loss: 4.7053 - val_mae: 5.1887
Epoch 167/500
31/31 [==============================] - 0s 4ms/step - loss: 4.5651 - mae: 5.0375 - val_loss: 5.1332 - val_mae: 5.6077
Epoch 168/500
31/31 [==============================] - 0s 5ms/step - loss: 4.4725 - mae: 4.9456 - val_loss: 4.6341 - val_mae: 5.1058
Epoch 169/500
31/31 [==============================] - 0s 5ms/step - loss: 4.4865 - mae: 4.9617 - val_loss: 4.7576 - val_mae: 5.2403
Epoch 170/500
31/31 [==============================] - 0s 5ms/step - loss: 4.5042 - mae: 4.9783 - val_loss: 4.7814 - val_mae: 5.2656
Epoch 171/500
31/31 [==============================] - 0s 4ms/step - loss: 4.5055 - mae: 4.9804 - val_loss: 4.8188 - val_mae: 5.3011
Epoch 172/500
31/31 [==============================] - 0s 4ms/step - loss: 4.4858 - mae: 4.9600 - val_loss: 4.6572 - val_mae: 5.1380
Epoch 173/500
31/31 [==============================] - 0s 4ms/step - loss: 4.4433 - mae: 4.9140 - val_loss: 4.6161 - val_mae: 5.0884
Epoch 174/500
31/31 [==============================] - 0s 5ms/step - loss: 4.4774 - mae: 4.9516 - val_loss: 4.6350 - val_mae: 5.1081
Epoch 175/500
31/31 [==============================] - 0s 4ms/step - loss: 4.4290 - mae: 4.9024 - val_loss: 4.6213 - val_mae: 5.0976
Epoch 176/500
31/31 [==============================] - 0s 4ms/step - loss: 4.4001 - mae: 4.8742 - val_loss: 4.6523 - val_mae: 5.1264
Epoch 177/500
31/31 [==============================] - 0s 5ms/step - loss: 4.4482 - mae: 4.9211 - val_loss: 4.6043 - val_mae: 5.0767
Epoch 178/500
31/31 [==============================] - 0s 4ms/step - loss: 4.4317 - mae: 4.9051 - val_loss: 4.6467 - val_mae: 5.1281
Epoch 179/500
31/31 [==============================] - 0s 4ms/step - loss: 4.4621 - mae: 4.9342 - val_loss: 4.6114 - val_mae: 5.0877
Epoch 180/500
31/31 [==============================] - 0s 4ms/step - loss: 4.4161 - mae: 4.8884 - val_loss: 4.5969 - val_mae: 5.0690
Epoch 181/500
31/31 [==============================] - 0s 4ms/step - loss: 4.4198 - mae: 4.8926 - val_loss: 4.5894 - val_mae: 5.0606
Epoch 182/500
31/31 [==============================] - 0s 4ms/step - loss: 4.4022 - mae: 4.8755 - val_loss: 4.7191 - val_mae: 5.2014
Epoch 183/500
31/31 [==============================] - 0s 4ms/step - loss: 4.4486 - mae: 4.9255 - val_loss: 4.5837 - val_mae: 5.0557
Epoch 184/500
31/31 [==============================] - 0s 4ms/step - loss: 4.4380 - mae: 4.9142 - val_loss: 4.5838 - val_mae: 5.0551
Epoch 185/500
31/31 [==============================] - 0s 4ms/step - loss: 4.4476 - mae: 4.9214 - val_loss: 4.7708 - val_mae: 5.2549
Epoch 186/500
31/31 [==============================] - 0s 4ms/step - loss: 4.4405 - mae: 4.9176 - val_loss: 4.9912 - val_mae: 5.4687
Epoch 187/500
31/31 [==============================] - 0s 4ms/step - loss: 4.3811 - mae: 4.8573 - val_loss: 4.8905 - val_mae: 5.3692
Epoch 188/500
31/31 [==============================] - 0s 4ms/step - loss: 4.4497 - mae: 4.9265 - val_loss: 4.5827 - val_mae: 5.0545
Epoch 189/500
31/31 [==============================] - 0s 4ms/step - loss: 4.5007 - mae: 4.9756 - val_loss: 4.7732 - val_mae: 5.2578
Epoch 190/500
31/31 [==============================] - 0s 4ms/step - loss: 4.3986 - mae: 4.8711 - val_loss: 4.8453 - val_mae: 5.3263
Epoch 191/500
31/31 [==============================] - 0s 5ms/step - loss: 4.3835 - mae: 4.8578 - val_loss: 4.6002 - val_mae: 5.0768
Epoch 192/500
31/31 [==============================] - 0s 5ms/step - loss: 4.3800 - mae: 4.8554 - val_loss: 4.7555 - val_mae: 5.2396
Epoch 193/500
31/31 [==============================] - 0s 5ms/step - loss: 4.3818 - mae: 4.8545 - val_loss: 4.5631 - val_mae: 5.0343
Epoch 194/500
31/31 [==============================] - 0s 4ms/step - loss: 4.4697 - mae: 4.9466 - val_loss: 4.7384 - val_mae: 5.2223
Epoch 195/500
31/31 [==============================] - 0s 4ms/step - loss: 4.4709 - mae: 4.9428 - val_loss: 4.5827 - val_mae: 5.0551
Epoch 196/500
31/31 [==============================] - 0s 4ms/step - loss: 4.3815 - mae: 4.8552 - val_loss: 4.7013 - val_mae: 5.1849
Epoch 197/500
31/31 [==============================] - 0s 4ms/step - loss: 4.4011 - mae: 4.8736 - val_loss: 4.5743 - val_mae: 5.0461
Epoch 198/500
31/31 [==============================] - 0s 4ms/step - loss: 4.4076 - mae: 4.8821 - val_loss: 4.5431 - val_mae: 5.0146
Epoch 199/500
31/31 [==============================] - 0s 4ms/step - loss: 4.5170 - mae: 4.9934 - val_loss: 4.5683 - val_mae: 5.0389
Epoch 200/500
31/31 [==============================] - 0s 5ms/step - loss: 4.4195 - mae: 4.8977 - val_loss: 4.6315 - val_mae: 5.1100
Epoch 201/500
31/31 [==============================] - 0s 4ms/step - loss: 4.4168 - mae: 4.8918 - val_loss: 4.5691 - val_mae: 5.0402
Epoch 202/500
31/31 [==============================] - 0s 4ms/step - loss: 4.3472 - mae: 4.8217 - val_loss: 4.6169 - val_mae: 5.0947
Epoch 203/500
31/31 [==============================] - 0s 5ms/step - loss: 4.3676 - mae: 4.8384 - val_loss: 4.5815 - val_mae: 5.0592
Epoch 204/500
31/31 [==============================] - 0s 4ms/step - loss: 4.3772 - mae: 4.8520 - val_loss: 4.5358 - val_mae: 5.0070
Epoch 205/500
31/31 [==============================] - 0s 4ms/step - loss: 4.4084 - mae: 4.8794 - val_loss: 4.7380 - val_mae: 5.2216
Epoch 206/500
31/31 [==============================] - 0s 5ms/step - loss: 4.4137 - mae: 4.8906 - val_loss: 4.5333 - val_mae: 5.0044
Epoch 207/500
31/31 [==============================] - 0s 4ms/step - loss: 4.4037 - mae: 4.8780 - val_loss: 4.7536 - val_mae: 5.2365
Epoch 208/500
31/31 [==============================] - 0s 5ms/step - loss: 4.3536 - mae: 4.8272 - val_loss: 4.5232 - val_mae: 4.9928
Epoch 209/500
31/31 [==============================] - 0s 4ms/step - loss: 4.3745 - mae: 4.8499 - val_loss: 4.5576 - val_mae: 5.0345
Epoch 210/500
31/31 [==============================] - 0s 4ms/step - loss: 4.4488 - mae: 4.9273 - val_loss: 4.6756 - val_mae: 5.1585
Epoch 211/500
31/31 [==============================] - 0s 4ms/step - loss: 4.4027 - mae: 4.8753 - val_loss: 4.6527 - val_mae: 5.1350
Epoch 212/500
31/31 [==============================] - 0s 4ms/step - loss: 4.3545 - mae: 4.8304 - val_loss: 4.5231 - val_mae: 4.9928
Epoch 213/500
31/31 [==============================] - 0s 4ms/step - loss: 4.3551 - mae: 4.8273 - val_loss: 4.5538 - val_mae: 5.0317
Epoch 214/500
31/31 [==============================] - 0s 4ms/step - loss: 4.3685 - mae: 4.8410 - val_loss: 4.5293 - val_mae: 5.0028
Epoch 215/500
31/31 [==============================] - 0s 4ms/step - loss: 4.3293 - mae: 4.8023 - val_loss: 4.7867 - val_mae: 5.2720
Epoch 216/500
31/31 [==============================] - 0s 4ms/step - loss: 4.4600 - mae: 4.9395 - val_loss: 4.5836 - val_mae: 5.0635
Epoch 217/500
31/31 [==============================] - 0s 4ms/step - loss: 4.3834 - mae: 4.8599 - val_loss: 4.5237 - val_mae: 4.9967
Epoch 218/500
31/31 [==============================] - 0s 4ms/step - loss: 4.3884 - mae: 4.8623 - val_loss: 4.5975 - val_mae: 5.0777
Epoch 219/500
31/31 [==============================] - 0s 4ms/step - loss: 4.3504 - mae: 4.8238 - val_loss: 4.5702 - val_mae: 5.0497
Epoch 220/500
31/31 [==============================] - 0s 4ms/step - loss: 4.3777 - mae: 4.8527 - val_loss: 5.0052 - val_mae: 5.4833
Epoch 221/500
31/31 [==============================] - 0s 4ms/step - loss: 4.3693 - mae: 4.8429 - val_loss: 4.6059 - val_mae: 5.0877
Epoch 222/500
31/31 [==============================] - 0s 4ms/step - loss: 4.3657 - mae: 4.8410 - val_loss: 4.7673 - val_mae: 5.2517
Out[9]:
<tensorflow.python.keras.callbacks.History at 0x7f633e23a6a0>
In [10]:
def model_forecast(model, series, window_size):
    ds = tf.data.Dataset.from_tensor_slices(series)
    ds = ds.window(window_size, shift=1, drop_remainder=True)
    ds = ds.flat_map(lambda w: w.batch(window_size))
    ds = ds.batch(32).prefetch(1)
    forecast = model.predict(ds)
    return forecast
In [11]:
lin_forecast = model_forecast(model, series[split_time - window_size:-1], window_size)[:, 0]
In [12]:
lin_forecast.shape
Out[12]:
(461,)
In [13]:
plt.figure(figsize=(10, 6))
plot_series(time_valid, x_valid)
plot_series(time_valid, lin_forecast)
In [14]:
keras.metrics.mean_absolute_error(x_valid, lin_forecast).numpy()
Out[14]:
5.1662674

Dense Model Forecasting

In [15]:
keras.backend.clear_session()
tf.random.set_seed(42)
np.random.seed(42)

window_size = 30
train_set = window_dataset(x_train, window_size)

model = keras.models.Sequential([
  keras.layers.Dense(10, activation="relu", input_shape=[window_size]),
  keras.layers.Dense(10, activation="relu"),
  keras.layers.Dense(1)
])

lr_schedule = keras.callbacks.LearningRateScheduler(
    lambda epoch: 1e-7 * 10**(epoch / 20))
optimizer = keras.optimizers.SGD(lr=1e-7, momentum=0.9)
model.compile(loss=keras.losses.Huber(),
              optimizer=optimizer,
              metrics=["mae"])
history = model.fit(train_set, epochs=100, callbacks=[lr_schedule])
Epoch 1/100
31/31 [==============================] - 0s 2ms/step - loss: 43.8270 - mae: 44.3262
Epoch 2/100
31/31 [==============================] - 0s 2ms/step - loss: 41.5210 - mae: 42.0202
Epoch 3/100
31/31 [==============================] - 0s 2ms/step - loss: 38.6253 - mae: 39.1248
Epoch 4/100
31/31 [==============================] - 0s 2ms/step - loss: 35.3203 - mae: 35.8201
Epoch 5/100
31/31 [==============================] - 0s 2ms/step - loss: 31.5905 - mae: 32.0903
Epoch 6/100
31/31 [==============================] - 0s 2ms/step - loss: 27.4033 - mae: 27.9022
Epoch 7/100
31/31 [==============================] - 0s 2ms/step - loss: 22.7830 - mae: 23.2804
Epoch 8/100
31/31 [==============================] - 0s 2ms/step - loss: 17.7632 - mae: 18.2594
Epoch 9/100
31/31 [==============================] - 0s 1ms/step - loss: 12.6771 - mae: 13.1682
Epoch 10/100
31/31 [==============================] - 0s 1ms/step - loss: 8.5974 - mae: 9.0856
Epoch 11/100
31/31 [==============================] - 0s 2ms/step - loss: 6.8492 - mae: 7.3315
Epoch 12/100
31/31 [==============================] - 0s 1ms/step - loss: 6.6324 - mae: 7.1175
Epoch 13/100
31/31 [==============================] - 0s 2ms/step - loss: 6.6240 - mae: 7.1077
Epoch 14/100
31/31 [==============================] - 0s 1ms/step - loss: 6.6150 - mae: 7.0992
Epoch 15/100
31/31 [==============================] - 0s 2ms/step - loss: 6.6021 - mae: 7.0864
Epoch 16/100
31/31 [==============================] - 0s 2ms/step - loss: 6.5907 - mae: 7.0744
Epoch 17/100
31/31 [==============================] - 0s 2ms/step - loss: 6.5780 - mae: 7.0608
Epoch 18/100
31/31 [==============================] - 0s 2ms/step - loss: 6.5633 - mae: 7.0463
Epoch 19/100
31/31 [==============================] - 0s 2ms/step - loss: 6.5439 - mae: 7.0269
Epoch 20/100
31/31 [==============================] - 0s 2ms/step - loss: 6.5262 - mae: 7.0090
Epoch 21/100
31/31 [==============================] - 0s 2ms/step - loss: 6.5036 - mae: 6.9854
Epoch 22/100
31/31 [==============================] - 0s 1ms/step - loss: 6.4846 - mae: 6.9654
Epoch 23/100
31/31 [==============================] - 0s 2ms/step - loss: 6.4581 - mae: 6.9401
Epoch 24/100
31/31 [==============================] - 0s 2ms/step - loss: 6.4487 - mae: 6.9276
Epoch 25/100
31/31 [==============================] - 0s 2ms/step - loss: 6.4031 - mae: 6.8834
Epoch 26/100
31/31 [==============================] - 0s 1ms/step - loss: 6.3747 - mae: 6.8538
Epoch 27/100
31/31 [==============================] - 0s 2ms/step - loss: 6.3502 - mae: 6.8289
Epoch 28/100
31/31 [==============================] - 0s 2ms/step - loss: 6.2981 - mae: 6.7802
Epoch 29/100
31/31 [==============================] - 0s 2ms/step - loss: 6.2842 - mae: 6.7625
Epoch 30/100
31/31 [==============================] - 0s 2ms/step - loss: 6.2212 - mae: 6.6987
Epoch 31/100
31/31 [==============================] - 0s 2ms/step - loss: 6.2325 - mae: 6.7086
Epoch 32/100
31/31 [==============================] - 0s 2ms/step - loss: 6.1728 - mae: 6.6505
Epoch 33/100
31/31 [==============================] - 0s 2ms/step - loss: 6.1273 - mae: 6.6050
Epoch 34/100
31/31 [==============================] - 0s 2ms/step - loss: 6.1122 - mae: 6.5893
Epoch 35/100
31/31 [==============================] - 0s 2ms/step - loss: 6.1123 - mae: 6.5921
Epoch 36/100
31/31 [==============================] - 0s 2ms/step - loss: 6.0450 - mae: 6.5217
Epoch 37/100
31/31 [==============================] - 0s 2ms/step - loss: 6.0152 - mae: 6.4915
Epoch 38/100
31/31 [==============================] - 0s 2ms/step - loss: 6.0342 - mae: 6.5135
Epoch 39/100
31/31 [==============================] - 0s 2ms/step - loss: 6.0322 - mae: 6.5112
Epoch 40/100
31/31 [==============================] - 0s 2ms/step - loss: 5.9744 - mae: 6.4509
Epoch 41/100
31/31 [==============================] - 0s 1ms/step - loss: 5.9914 - mae: 6.4690
Epoch 42/100
31/31 [==============================] - 0s 2ms/step - loss: 5.8855 - mae: 6.3654
Epoch 43/100
31/31 [==============================] - 0s 2ms/step - loss: 5.8357 - mae: 6.3136
Epoch 44/100
31/31 [==============================] - 0s 1ms/step - loss: 5.8881 - mae: 6.3705
Epoch 45/100
31/31 [==============================] - 0s 1ms/step - loss: 5.7689 - mae: 6.2470
Epoch 46/100
31/31 [==============================] - 0s 2ms/step - loss: 5.7805 - mae: 6.2587
Epoch 47/100
31/31 [==============================] - 0s 2ms/step - loss: 5.8350 - mae: 6.3123
Epoch 48/100
31/31 [==============================] - 0s 2ms/step - loss: 5.7155 - mae: 6.1955
Epoch 49/100
31/31 [==============================] - 0s 2ms/step - loss: 5.7046 - mae: 6.1883
Epoch 50/100
31/31 [==============================] - 0s 1ms/step - loss: 5.7044 - mae: 6.1864
Epoch 51/100
31/31 [==============================] - 0s 2ms/step - loss: 5.7984 - mae: 6.2822
Epoch 52/100
31/31 [==============================] - 0s 2ms/step - loss: 5.8983 - mae: 6.3823
Epoch 53/100
31/31 [==============================] - 0s 2ms/step - loss: 5.7020 - mae: 6.1834
Epoch 54/100
31/31 [==============================] - 0s 2ms/step - loss: 5.4734 - mae: 5.9536
Epoch 55/100
31/31 [==============================] - 0s 2ms/step - loss: 5.7362 - mae: 6.2165
Epoch 56/100
31/31 [==============================] - 0s 2ms/step - loss: 5.7525 - mae: 6.2322
Epoch 57/100
31/31 [==============================] - 0s 2ms/step - loss: 5.4157 - mae: 5.8924
Epoch 58/100
31/31 [==============================] - 0s 2ms/step - loss: 5.5249 - mae: 6.0041
Epoch 59/100
31/31 [==============================] - 0s 2ms/step - loss: 5.2515 - mae: 5.7304
Epoch 60/100
31/31 [==============================] - 0s 2ms/step - loss: 5.3036 - mae: 5.7855
Epoch 61/100
31/31 [==============================] - 0s 2ms/step - loss: 5.6514 - mae: 6.1299
Epoch 62/100
31/31 [==============================] - 0s 1ms/step - loss: 5.2128 - mae: 5.6914
Epoch 63/100
31/31 [==============================] - 0s 2ms/step - loss: 4.9886 - mae: 5.4681
Epoch 64/100
31/31 [==============================] - 0s 2ms/step - loss: 5.0251 - mae: 5.5017
Epoch 65/100
31/31 [==============================] - 0s 2ms/step - loss: 5.1802 - mae: 5.6567
Epoch 66/100
31/31 [==============================] - 0s 2ms/step - loss: 5.1126 - mae: 5.5875
Epoch 67/100
31/31 [==============================] - 0s 2ms/step - loss: 4.9667 - mae: 5.4448
Epoch 68/100
31/31 [==============================] - 0s 2ms/step - loss: 4.9381 - mae: 5.4168
Epoch 69/100
31/31 [==============================] - 0s 2ms/step - loss: 4.9661 - mae: 5.4451
Epoch 70/100
31/31 [==============================] - 0s 2ms/step - loss: 5.3599 - mae: 5.8435
Epoch 71/100
31/31 [==============================] - 0s 2ms/step - loss: 6.3751 - mae: 6.8591
Epoch 72/100
31/31 [==============================] - 0s 2ms/step - loss: 6.0132 - mae: 6.4978
Epoch 73/100
31/31 [==============================] - 0s 2ms/step - loss: 5.7134 - mae: 6.1975
Epoch 74/100
31/31 [==============================] - 0s 2ms/step - loss: 5.1209 - mae: 5.5980
Epoch 75/100
31/31 [==============================] - 0s 2ms/step - loss: 5.5465 - mae: 6.0276
Epoch 76/100
31/31 [==============================] - 0s 2ms/step - loss: 6.1505 - mae: 6.6297
Epoch 77/100
31/31 [==============================] - 0s 1ms/step - loss: 5.3202 - mae: 5.8000
Epoch 78/100
31/31 [==============================] - 0s 1ms/step - loss: 6.1551 - mae: 6.6403
Epoch 79/100
31/31 [==============================] - 0s 1ms/step - loss: 8.0051 - mae: 8.4911
Epoch 80/100
31/31 [==============================] - 0s 2ms/step - loss: 7.7067 - mae: 8.1947
Epoch 81/100
31/31 [==============================] - 0s 1ms/step - loss: 7.3399 - mae: 7.8272
Epoch 82/100
31/31 [==============================] - 0s 2ms/step - loss: 14.5133 - mae: 15.0060
Epoch 83/100
31/31 [==============================] - 0s 2ms/step - loss: 9.8772 - mae: 10.3665
Epoch 84/100
31/31 [==============================] - 0s 2ms/step - loss: 23.0369 - mae: 23.5319
Epoch 85/100
31/31 [==============================] - 0s 2ms/step - loss: 24.3461 - mae: 24.8440
Epoch 86/100
31/31 [==============================] - 0s 2ms/step - loss: 34.3419 - mae: 34.8405
Epoch 87/100
31/31 [==============================] - 0s 1ms/step - loss: 34.4281 - mae: 34.9260
Epoch 88/100
31/31 [==============================] - 0s 2ms/step - loss: 41.0063 - mae: 41.5041
Epoch 89/100
31/31 [==============================] - 0s 2ms/step - loss: 40.2649 - mae: 40.7630
Epoch 90/100
31/31 [==============================] - 0s 1ms/step - loss: 39.3288 - mae: 39.8253
Epoch 91/100
31/31 [==============================] - 0s 2ms/step - loss: 37.6394 - mae: 38.1358
Epoch 92/100
31/31 [==============================] - 0s 2ms/step - loss: 32.6259 - mae: 33.1238
Epoch 93/100
31/31 [==============================] - 0s 2ms/step - loss: 21.9301 - mae: 22.4252
Epoch 94/100
31/31 [==============================] - 0s 1ms/step - loss: 15.9135 - mae: 16.4059
Epoch 95/100
31/31 [==============================] - 0s 2ms/step - loss: 15.0994 - mae: 15.5924
Epoch 96/100
31/31 [==============================] - 0s 2ms/step - loss: 15.6075 - mae: 16.1007
Epoch 97/100
31/31 [==============================] - 0s 1ms/step - loss: 19.6802 - mae: 20.1750
Epoch 98/100
31/31 [==============================] - 0s 2ms/step - loss: 18.6277 - mae: 19.1213
Epoch 99/100
31/31 [==============================] - 0s 1ms/step - loss: 15.8504 - mae: 16.3450
Epoch 100/100
31/31 [==============================] - 0s 2ms/step - loss: 15.5356 - mae: 16.0282
In [16]:
plt.semilogx(history.history["lr"], history.history["loss"])
plt.axis([1e-7, 5e-3, 0, 30])
Out[16]:
(1e-07, 0.005, 0.0, 30.0)
In [17]:
keras.backend.clear_session()
tf.random.set_seed(42)
np.random.seed(42)

window_size = 30
train_set = window_dataset(x_train, window_size)
valid_set = window_dataset(x_valid, window_size)

model = keras.models.Sequential([
  keras.layers.Dense(10, activation="relu", input_shape=[window_size]),
  keras.layers.Dense(10, activation="relu"),
  keras.layers.Dense(1)
])

optimizer = keras.optimizers.SGD(lr=1e-5, momentum=0.9)
model.compile(loss=keras.losses.Huber(),
              optimizer=optimizer,
              metrics=["mae"])
early_stopping = keras.callbacks.EarlyStopping(patience=10)
model.fit(train_set, epochs=500,
          validation_data=valid_set,
          callbacks=[early_stopping])
Epoch 1/500
31/31 [==============================] - 0s 10ms/step - loss: 20.4049 - mae: 20.8986 - val_loss: 9.5125 - val_mae: 10.0037
Epoch 2/500
31/31 [==============================] - 0s 4ms/step - loss: 8.6179 - mae: 9.1027 - val_loss: 7.5804 - val_mae: 8.0585
Epoch 3/500
31/31 [==============================] - 0s 5ms/step - loss: 7.9849 - mae: 8.4702 - val_loss: 7.2411 - val_mae: 7.7189
Epoch 4/500
31/31 [==============================] - 0s 4ms/step - loss: 7.6780 - mae: 8.1603 - val_loss: 7.0971 - val_mae: 7.5798
Epoch 5/500
31/31 [==============================] - 0s 5ms/step - loss: 7.4285 - mae: 7.9136 - val_loss: 6.6877 - val_mae: 7.1663
Epoch 6/500
31/31 [==============================] - 0s 5ms/step - loss: 7.2165 - mae: 7.6989 - val_loss: 6.7449 - val_mae: 7.2319
Epoch 7/500
31/31 [==============================] - 0s 4ms/step - loss: 7.0491 - mae: 7.5318 - val_loss: 6.3436 - val_mae: 6.8156
Epoch 8/500
31/31 [==============================] - 0s 4ms/step - loss: 6.9028 - mae: 7.3848 - val_loss: 6.5575 - val_mae: 7.0435
Epoch 9/500
31/31 [==============================] - 0s 5ms/step - loss: 6.7285 - mae: 7.2134 - val_loss: 6.1564 - val_mae: 6.6327
Epoch 10/500
31/31 [==============================] - 0s 4ms/step - loss: 6.5739 - mae: 7.0545 - val_loss: 6.1365 - val_mae: 6.6166
Epoch 11/500
31/31 [==============================] - 0s 5ms/step - loss: 6.4917 - mae: 6.9751 - val_loss: 6.0710 - val_mae: 6.5529
Epoch 12/500
31/31 [==============================] - 0s 4ms/step - loss: 6.3698 - mae: 6.8519 - val_loss: 6.0569 - val_mae: 6.5385
Epoch 13/500
31/31 [==============================] - 0s 4ms/step - loss: 6.2862 - mae: 6.7685 - val_loss: 5.8964 - val_mae: 6.3704
Epoch 14/500
31/31 [==============================] - 0s 4ms/step - loss: 6.2392 - mae: 6.7235 - val_loss: 5.9185 - val_mae: 6.4008
Epoch 15/500
31/31 [==============================] - 0s 4ms/step - loss: 6.2024 - mae: 6.6859 - val_loss: 5.8176 - val_mae: 6.2957
Epoch 16/500
31/31 [==============================] - 0s 4ms/step - loss: 6.1559 - mae: 6.6389 - val_loss: 5.8143 - val_mae: 6.2939
Epoch 17/500
31/31 [==============================] - 0s 5ms/step - loss: 6.1469 - mae: 6.6283 - val_loss: 5.7770 - val_mae: 6.2569
Epoch 18/500
31/31 [==============================] - 0s 5ms/step - loss: 6.0487 - mae: 6.5312 - val_loss: 5.8036 - val_mae: 6.2811
Epoch 19/500
31/31 [==============================] - 0s 5ms/step - loss: 6.0462 - mae: 6.5311 - val_loss: 5.8459 - val_mae: 6.3204
Epoch 20/500
31/31 [==============================] - 0s 5ms/step - loss: 5.9691 - mae: 6.4515 - val_loss: 5.7281 - val_mae: 6.2104
Epoch 21/500
31/31 [==============================] - 0s 4ms/step - loss: 5.9475 - mae: 6.4314 - val_loss: 5.6406 - val_mae: 6.1186
Epoch 22/500
31/31 [==============================] - 0s 5ms/step - loss: 5.9024 - mae: 6.3848 - val_loss: 5.6382 - val_mae: 6.1190
Epoch 23/500
31/31 [==============================] - 0s 5ms/step - loss: 5.8469 - mae: 6.3291 - val_loss: 5.9977 - val_mae: 6.4816
Epoch 24/500
31/31 [==============================] - 0s 5ms/step - loss: 5.8802 - mae: 6.3612 - val_loss: 5.6908 - val_mae: 6.1675
Epoch 25/500
31/31 [==============================] - 0s 4ms/step - loss: 5.7917 - mae: 6.2766 - val_loss: 5.6000 - val_mae: 6.0798
Epoch 26/500
31/31 [==============================] - 0s 4ms/step - loss: 5.8217 - mae: 6.3069 - val_loss: 5.5738 - val_mae: 6.0552
Epoch 27/500
31/31 [==============================] - 0s 4ms/step - loss: 5.7690 - mae: 6.2534 - val_loss: 5.7255 - val_mae: 6.2086
Epoch 28/500
31/31 [==============================] - 0s 4ms/step - loss: 5.8085 - mae: 6.2930 - val_loss: 5.5122 - val_mae: 5.9927
Epoch 29/500
31/31 [==============================] - 0s 5ms/step - loss: 5.7321 - mae: 6.2148 - val_loss: 5.6341 - val_mae: 6.1126
Epoch 30/500
31/31 [==============================] - 0s 5ms/step - loss: 5.6991 - mae: 6.1808 - val_loss: 5.5333 - val_mae: 6.0103
Epoch 31/500
31/31 [==============================] - 0s 4ms/step - loss: 5.6720 - mae: 6.1514 - val_loss: 5.5871 - val_mae: 6.0643
Epoch 32/500
31/31 [==============================] - 0s 4ms/step - loss: 5.6642 - mae: 6.1479 - val_loss: 5.6710 - val_mae: 6.1541
Epoch 33/500
31/31 [==============================] - 0s 4ms/step - loss: 5.6133 - mae: 6.0965 - val_loss: 5.5384 - val_mae: 6.0146
Epoch 34/500
31/31 [==============================] - 0s 4ms/step - loss: 5.6377 - mae: 6.1193 - val_loss: 5.5215 - val_mae: 5.9972
Epoch 35/500
31/31 [==============================] - 0s 5ms/step - loss: 5.5874 - mae: 6.0645 - val_loss: 5.3812 - val_mae: 5.8583
Epoch 36/500
31/31 [==============================] - 0s 4ms/step - loss: 5.6027 - mae: 6.0879 - val_loss: 5.4237 - val_mae: 5.9048
Epoch 37/500
31/31 [==============================] - 0s 4ms/step - loss: 5.6141 - mae: 6.0915 - val_loss: 5.4910 - val_mae: 5.9729
Epoch 38/500
31/31 [==============================] - 0s 4ms/step - loss: 5.5909 - mae: 6.0724 - val_loss: 5.8065 - val_mae: 6.2873
Epoch 39/500
31/31 [==============================] - 0s 4ms/step - loss: 5.5284 - mae: 6.0080 - val_loss: 6.0727 - val_mae: 6.5558
Epoch 40/500
31/31 [==============================] - 0s 5ms/step - loss: 5.5446 - mae: 6.0267 - val_loss: 5.3343 - val_mae: 5.8174
Epoch 41/500
31/31 [==============================] - 0s 4ms/step - loss: 5.5197 - mae: 6.0011 - val_loss: 5.3013 - val_mae: 5.7805
Epoch 42/500
31/31 [==============================] - 0s 5ms/step - loss: 5.4749 - mae: 5.9566 - val_loss: 5.3074 - val_mae: 5.7903
Epoch 43/500
31/31 [==============================] - 0s 4ms/step - loss: 5.4665 - mae: 5.9480 - val_loss: 5.3096 - val_mae: 5.7900
Epoch 44/500
31/31 [==============================] - 0s 4ms/step - loss: 5.4397 - mae: 5.9217 - val_loss: 5.3484 - val_mae: 5.8242
Epoch 45/500
31/31 [==============================] - 0s 4ms/step - loss: 5.4373 - mae: 5.9183 - val_loss: 5.6576 - val_mae: 6.1352
Epoch 46/500
31/31 [==============================] - 0s 4ms/step - loss: 5.4640 - mae: 5.9452 - val_loss: 5.7575 - val_mae: 6.2423
Epoch 47/500
31/31 [==============================] - 0s 4ms/step - loss: 5.4859 - mae: 5.9670 - val_loss: 5.9034 - val_mae: 6.3868
Epoch 48/500
31/31 [==============================] - 0s 4ms/step - loss: 5.4198 - mae: 5.9016 - val_loss: 5.2066 - val_mae: 5.6867
Epoch 49/500
31/31 [==============================] - 0s 4ms/step - loss: 5.3805 - mae: 5.8602 - val_loss: 5.2942 - val_mae: 5.7708
Epoch 50/500
31/31 [==============================] - 0s 4ms/step - loss: 5.4262 - mae: 5.9075 - val_loss: 5.4608 - val_mae: 5.9444
Epoch 51/500
31/31 [==============================] - 0s 4ms/step - loss: 5.3880 - mae: 5.8703 - val_loss: 5.4590 - val_mae: 5.9310
Epoch 52/500
31/31 [==============================] - 0s 4ms/step - loss: 5.3822 - mae: 5.8613 - val_loss: 5.5157 - val_mae: 5.9895
Epoch 53/500
31/31 [==============================] - 0s 5ms/step - loss: 5.3546 - mae: 5.8377 - val_loss: 5.2389 - val_mae: 5.7165
Epoch 54/500
31/31 [==============================] - 0s 4ms/step - loss: 5.3461 - mae: 5.8288 - val_loss: 5.1781 - val_mae: 5.6589
Epoch 55/500
31/31 [==============================] - 0s 5ms/step - loss: 5.2768 - mae: 5.7589 - val_loss: 5.1607 - val_mae: 5.6413
Epoch 56/500
31/31 [==============================] - 0s 4ms/step - loss: 5.2539 - mae: 5.7373 - val_loss: 5.4277 - val_mae: 5.9119
Epoch 57/500
31/31 [==============================] - 0s 4ms/step - loss: 5.3347 - mae: 5.8184 - val_loss: 5.7525 - val_mae: 6.2345
Epoch 58/500
31/31 [==============================] - 0s 4ms/step - loss: 5.2696 - mae: 5.7501 - val_loss: 5.2096 - val_mae: 5.6877
Epoch 59/500
31/31 [==============================] - 0s 4ms/step - loss: 5.2272 - mae: 5.7103 - val_loss: 5.2327 - val_mae: 5.7112
Epoch 60/500
31/31 [==============================] - 0s 5ms/step - loss: 5.2658 - mae: 5.7458 - val_loss: 5.0744 - val_mae: 5.5567
Epoch 61/500
31/31 [==============================] - 0s 4ms/step - loss: 5.2125 - mae: 5.6927 - val_loss: 5.6904 - val_mae: 6.1728
Epoch 62/500
31/31 [==============================] - 0s 4ms/step - loss: 5.2602 - mae: 5.7420 - val_loss: 5.1116 - val_mae: 5.5904
Epoch 63/500
31/31 [==============================] - 0s 5ms/step - loss: 5.1874 - mae: 5.6697 - val_loss: 5.0692 - val_mae: 5.5508
Epoch 64/500
31/31 [==============================] - 0s 4ms/step - loss: 5.1751 - mae: 5.6555 - val_loss: 5.2834 - val_mae: 5.7662
Epoch 65/500
31/31 [==============================] - 0s 4ms/step - loss: 5.2088 - mae: 5.6886 - val_loss: 5.0484 - val_mae: 5.5301
Epoch 66/500
31/31 [==============================] - 0s 4ms/step - loss: 5.1744 - mae: 5.6535 - val_loss: 5.1831 - val_mae: 5.6589
Epoch 67/500
31/31 [==============================] - 0s 4ms/step - loss: 5.1534 - mae: 5.6338 - val_loss: 5.0369 - val_mae: 5.5184
Epoch 68/500
31/31 [==============================] - 0s 5ms/step - loss: 5.1575 - mae: 5.6382 - val_loss: 5.0227 - val_mae: 5.5027
Epoch 69/500
31/31 [==============================] - 0s 4ms/step - loss: 5.1541 - mae: 5.6362 - val_loss: 5.1051 - val_mae: 5.5804
Epoch 70/500
31/31 [==============================] - 0s 5ms/step - loss: 5.1305 - mae: 5.6106 - val_loss: 5.2578 - val_mae: 5.7416
Epoch 71/500
31/31 [==============================] - 0s 4ms/step - loss: 5.0891 - mae: 5.5636 - val_loss: 5.0369 - val_mae: 5.5136
Epoch 72/500
31/31 [==============================] - 0s 4ms/step - loss: 5.0904 - mae: 5.5700 - val_loss: 5.1257 - val_mae: 5.5994
Epoch 73/500
31/31 [==============================] - 0s 4ms/step - loss: 5.1133 - mae: 5.5959 - val_loss: 5.0332 - val_mae: 5.5098
Epoch 74/500
31/31 [==============================] - 0s 4ms/step - loss: 5.1160 - mae: 5.5939 - val_loss: 5.0354 - val_mae: 5.5141
Epoch 75/500
31/31 [==============================] - 0s 5ms/step - loss: 5.0561 - mae: 5.5355 - val_loss: 4.9754 - val_mae: 5.4559
Epoch 76/500
31/31 [==============================] - 0s 5ms/step - loss: 5.0500 - mae: 5.5295 - val_loss: 4.9669 - val_mae: 5.4473
Epoch 77/500
31/31 [==============================] - 0s 4ms/step - loss: 5.0397 - mae: 5.5198 - val_loss: 4.9841 - val_mae: 5.4657
Epoch 78/500
31/31 [==============================] - 0s 4ms/step - loss: 5.0633 - mae: 5.5433 - val_loss: 4.9915 - val_mae: 5.4689
Epoch 79/500
31/31 [==============================] - 0s 5ms/step - loss: 5.0161 - mae: 5.4968 - val_loss: 5.2080 - val_mae: 5.6843
Epoch 80/500
31/31 [==============================] - 0s 4ms/step - loss: 5.0274 - mae: 5.5082 - val_loss: 4.9782 - val_mae: 5.4590
Epoch 81/500
31/31 [==============================] - 0s 4ms/step - loss: 4.9630 - mae: 5.4395 - val_loss: 4.9678 - val_mae: 5.4490
Epoch 82/500
31/31 [==============================] - 0s 5ms/step - loss: 4.9942 - mae: 5.4722 - val_loss: 5.2049 - val_mae: 5.6827
Epoch 83/500
31/31 [==============================] - 0s 4ms/step - loss: 4.9730 - mae: 5.4516 - val_loss: 5.0278 - val_mae: 5.4998
Epoch 84/500
31/31 [==============================] - 0s 4ms/step - loss: 4.9698 - mae: 5.4500 - val_loss: 4.9309 - val_mae: 5.4122
Epoch 85/500
31/31 [==============================] - 0s 4ms/step - loss: 4.9676 - mae: 5.4458 - val_loss: 4.9285 - val_mae: 5.4099
Epoch 86/500
31/31 [==============================] - 0s 4ms/step - loss: 4.9898 - mae: 5.4698 - val_loss: 4.9307 - val_mae: 5.4135
Epoch 87/500
31/31 [==============================] - 0s 4ms/step - loss: 4.9521 - mae: 5.4326 - val_loss: 5.0003 - val_mae: 5.4712
Epoch 88/500
31/31 [==============================] - 0s 5ms/step - loss: 4.9209 - mae: 5.4001 - val_loss: 4.9297 - val_mae: 5.4065
Epoch 89/500
31/31 [==============================] - 0s 4ms/step - loss: 4.9469 - mae: 5.4234 - val_loss: 4.9102 - val_mae: 5.3918
Epoch 90/500
31/31 [==============================] - 0s 4ms/step - loss: 4.9656 - mae: 5.4439 - val_loss: 4.9475 - val_mae: 5.4207
Epoch 91/500
31/31 [==============================] - 0s 4ms/step - loss: 4.9077 - mae: 5.3837 - val_loss: 5.2979 - val_mae: 5.7770
Epoch 92/500
31/31 [==============================] - 0s 4ms/step - loss: 4.9466 - mae: 5.4274 - val_loss: 4.9204 - val_mae: 5.4007
Epoch 93/500
31/31 [==============================] - 0s 4ms/step - loss: 4.8801 - mae: 5.3606 - val_loss: 5.2442 - val_mae: 5.7227
Epoch 94/500
31/31 [==============================] - 0s 5ms/step - loss: 4.8994 - mae: 5.3776 - val_loss: 5.0214 - val_mae: 5.4928
Epoch 95/500
31/31 [==============================] - 0s 4ms/step - loss: 4.8727 - mae: 5.3513 - val_loss: 4.8865 - val_mae: 5.3652
Epoch 96/500
31/31 [==============================] - 0s 4ms/step - loss: 4.8795 - mae: 5.3570 - val_loss: 4.8865 - val_mae: 5.3673
Epoch 97/500
31/31 [==============================] - 0s 5ms/step - loss: 4.8868 - mae: 5.3668 - val_loss: 4.8741 - val_mae: 5.3554
Epoch 98/500
31/31 [==============================] - 0s 5ms/step - loss: 4.8808 - mae: 5.3592 - val_loss: 4.8602 - val_mae: 5.3408
Epoch 99/500
31/31 [==============================] - 0s 4ms/step - loss: 4.8471 - mae: 5.3256 - val_loss: 4.8552 - val_mae: 5.3356
Epoch 100/500
31/31 [==============================] - 0s 4ms/step - loss: 4.8479 - mae: 5.3255 - val_loss: 4.8525 - val_mae: 5.3327
Epoch 101/500
31/31 [==============================] - 0s 4ms/step - loss: 4.8653 - mae: 5.3406 - val_loss: 4.8489 - val_mae: 5.3295
Epoch 102/500
31/31 [==============================] - 0s 4ms/step - loss: 4.8551 - mae: 5.3323 - val_loss: 4.8471 - val_mae: 5.3287
Epoch 103/500
31/31 [==============================] - 0s 5ms/step - loss: 4.8306 - mae: 5.3099 - val_loss: 4.8481 - val_mae: 5.3292
Epoch 104/500
31/31 [==============================] - 0s 4ms/step - loss: 4.8556 - mae: 5.3320 - val_loss: 4.8353 - val_mae: 5.3144
Epoch 105/500
31/31 [==============================] - 0s 4ms/step - loss: 4.8136 - mae: 5.2912 - val_loss: 5.3163 - val_mae: 5.8016
Epoch 106/500
31/31 [==============================] - 0s 5ms/step - loss: 4.9170 - mae: 5.3932 - val_loss: 4.9734 - val_mae: 5.4454
Epoch 107/500
31/31 [==============================] - 0s 4ms/step - loss: 4.8636 - mae: 5.3387 - val_loss: 4.9875 - val_mae: 5.4577
Epoch 108/500
31/31 [==============================] - 0s 4ms/step - loss: 4.8161 - mae: 5.2935 - val_loss: 4.8249 - val_mae: 5.3072
Epoch 109/500
31/31 [==============================] - 0s 4ms/step - loss: 4.7934 - mae: 5.2684 - val_loss: 5.3332 - val_mae: 5.8128
Epoch 110/500
31/31 [==============================] - 0s 4ms/step - loss: 4.8247 - mae: 5.3031 - val_loss: 4.8576 - val_mae: 5.3363
Epoch 111/500
31/31 [==============================] - 0s 5ms/step - loss: 4.8192 - mae: 5.2967 - val_loss: 4.8143 - val_mae: 5.2924
Epoch 112/500
31/31 [==============================] - 0s 4ms/step - loss: 4.8120 - mae: 5.2869 - val_loss: 4.8396 - val_mae: 5.3194
Epoch 113/500
31/31 [==============================] - 0s 4ms/step - loss: 4.7951 - mae: 5.2737 - val_loss: 4.8295 - val_mae: 5.3095
Epoch 114/500
31/31 [==============================] - 0s 5ms/step - loss: 4.8072 - mae: 5.2841 - val_loss: 4.9524 - val_mae: 5.4232
Epoch 115/500
31/31 [==============================] - 0s 4ms/step - loss: 4.7906 - mae: 5.2679 - val_loss: 4.8346 - val_mae: 5.3121
Epoch 116/500
31/31 [==============================] - 0s 5ms/step - loss: 4.7736 - mae: 5.2540 - val_loss: 4.8053 - val_mae: 5.2867
Epoch 117/500
31/31 [==============================] - 0s 5ms/step - loss: 4.7790 - mae: 5.2556 - val_loss: 4.9063 - val_mae: 5.3782
Epoch 118/500
31/31 [==============================] - 0s 4ms/step - loss: 4.9092 - mae: 5.3913 - val_loss: 4.8032 - val_mae: 5.2814
Epoch 119/500
31/31 [==============================] - 0s 4ms/step - loss: 4.7897 - mae: 5.2676 - val_loss: 4.8939 - val_mae: 5.3669
Epoch 120/500
31/31 [==============================] - 0s 5ms/step - loss: 4.7613 - mae: 5.2389 - val_loss: 4.8447 - val_mae: 5.3209
Epoch 121/500
31/31 [==============================] - 0s 4ms/step - loss: 4.7511 - mae: 5.2276 - val_loss: 4.8397 - val_mae: 5.3164
Epoch 122/500
31/31 [==============================] - 0s 5ms/step - loss: 4.7653 - mae: 5.2440 - val_loss: 4.9183 - val_mae: 5.3906
Epoch 123/500
31/31 [==============================] - 0s 4ms/step - loss: 4.7959 - mae: 5.2753 - val_loss: 4.7707 - val_mae: 5.2476
Epoch 124/500
31/31 [==============================] - 0s 5ms/step - loss: 4.7766 - mae: 5.2513 - val_loss: 4.7665 - val_mae: 5.2440
Epoch 125/500
31/31 [==============================] - 0s 5ms/step - loss: 4.7814 - mae: 5.2602 - val_loss: 4.7709 - val_mae: 5.2495
Epoch 126/500
31/31 [==============================] - 0s 4ms/step - loss: 4.7547 - mae: 5.2327 - val_loss: 4.7648 - val_mae: 5.2428
Epoch 127/500
31/31 [==============================] - 0s 5ms/step - loss: 4.7337 - mae: 5.2090 - val_loss: 4.8925 - val_mae: 5.3660
Epoch 128/500
31/31 [==============================] - 0s 4ms/step - loss: 4.7231 - mae: 5.2004 - val_loss: 4.7861 - val_mae: 5.2643
Epoch 129/500
31/31 [==============================] - 0s 4ms/step - loss: 4.7312 - mae: 5.2095 - val_loss: 4.7655 - val_mae: 5.2437
Epoch 130/500
31/31 [==============================] - 0s 4ms/step - loss: 4.7267 - mae: 5.2040 - val_loss: 4.7819 - val_mae: 5.2601
Epoch 131/500
31/31 [==============================] - 0s 4ms/step - loss: 4.8444 - mae: 5.3232 - val_loss: 4.9965 - val_mae: 5.4721
Epoch 132/500
31/31 [==============================] - 0s 5ms/step - loss: 4.7132 - mae: 5.1888 - val_loss: 4.8432 - val_mae: 5.3246
Epoch 133/500
31/31 [==============================] - 0s 4ms/step - loss: 4.7116 - mae: 5.1851 - val_loss: 4.7525 - val_mae: 5.2311
Epoch 134/500
31/31 [==============================] - 0s 5ms/step - loss: 4.7332 - mae: 5.2071 - val_loss: 4.7661 - val_mae: 5.2428
Epoch 135/500
31/31 [==============================] - 0s 4ms/step - loss: 4.6982 - mae: 5.1762 - val_loss: 4.7733 - val_mae: 5.2507
Epoch 136/500
31/31 [==============================] - 0s 4ms/step - loss: 4.7233 - mae: 5.2013 - val_loss: 4.7833 - val_mae: 5.2613
Epoch 137/500
31/31 [==============================] - 0s 4ms/step - loss: 4.6844 - mae: 5.1625 - val_loss: 4.7817 - val_mae: 5.2603
Epoch 138/500
31/31 [==============================] - 0s 4ms/step - loss: 4.7006 - mae: 5.1761 - val_loss: 4.7402 - val_mae: 5.2175
Epoch 139/500
31/31 [==============================] - 0s 5ms/step - loss: 4.7188 - mae: 5.1966 - val_loss: 4.7549 - val_mae: 5.2319
Epoch 140/500
31/31 [==============================] - 0s 4ms/step - loss: 4.7832 - mae: 5.2612 - val_loss: 4.7764 - val_mae: 5.2548
Epoch 141/500
31/31 [==============================] - 0s 4ms/step - loss: 4.6848 - mae: 5.1601 - val_loss: 4.7251 - val_mae: 5.2023
Epoch 142/500
31/31 [==============================] - 0s 4ms/step - loss: 4.6835 - mae: 5.1576 - val_loss: 5.0954 - val_mae: 5.5717
Epoch 143/500
31/31 [==============================] - 0s 5ms/step - loss: 4.6978 - mae: 5.1762 - val_loss: 4.9924 - val_mae: 5.4680
Epoch 144/500
31/31 [==============================] - 0s 4ms/step - loss: 4.6690 - mae: 5.1458 - val_loss: 4.7208 - val_mae: 5.1963
Epoch 145/500
31/31 [==============================] - 0s 5ms/step - loss: 4.6886 - mae: 5.1673 - val_loss: 4.7512 - val_mae: 5.2292
Epoch 146/500
31/31 [==============================] - 0s 4ms/step - loss: 4.6627 - mae: 5.1376 - val_loss: 4.7311 - val_mae: 5.2084
Epoch 147/500
31/31 [==============================] - 0s 4ms/step - loss: 4.6506 - mae: 5.1225 - val_loss: 4.9450 - val_mae: 5.4194
Epoch 148/500
31/31 [==============================] - 0s 4ms/step - loss: 4.6968 - mae: 5.1762 - val_loss: 4.7605 - val_mae: 5.2392
Epoch 149/500
31/31 [==============================] - 0s 4ms/step - loss: 4.6838 - mae: 5.1613 - val_loss: 4.9710 - val_mae: 5.4454
Epoch 150/500
31/31 [==============================] - 0s 4ms/step - loss: 4.6996 - mae: 5.1714 - val_loss: 4.7135 - val_mae: 5.1892
Epoch 151/500
31/31 [==============================] - 0s 5ms/step - loss: 4.6514 - mae: 5.1285 - val_loss: 4.7589 - val_mae: 5.2363
Epoch 152/500
31/31 [==============================] - 0s 5ms/step - loss: 4.6623 - mae: 5.1385 - val_loss: 4.7050 - val_mae: 5.1791
Epoch 153/500
31/31 [==============================] - 0s 5ms/step - loss: 4.6448 - mae: 5.1220 - val_loss: 4.7148 - val_mae: 5.1915
Epoch 154/500
31/31 [==============================] - 0s 4ms/step - loss: 4.6684 - mae: 5.1441 - val_loss: 4.8884 - val_mae: 5.3626
Epoch 155/500
31/31 [==============================] - 0s 4ms/step - loss: 4.6418 - mae: 5.1171 - val_loss: 4.6947 - val_mae: 5.1698
Epoch 156/500
31/31 [==============================] - 0s 4ms/step - loss: 4.6204 - mae: 5.0927 - val_loss: 4.7574 - val_mae: 5.2344
Epoch 157/500
31/31 [==============================] - 0s 4ms/step - loss: 4.6318 - mae: 5.1044 - val_loss: 4.7524 - val_mae: 5.2307
Epoch 158/500
31/31 [==============================] - 0s 4ms/step - loss: 4.7601 - mae: 5.2390 - val_loss: 4.7316 - val_mae: 5.2102
Epoch 159/500
31/31 [==============================] - 0s 5ms/step - loss: 4.6336 - mae: 5.1116 - val_loss: 4.6982 - val_mae: 5.1747
Epoch 160/500
31/31 [==============================] - 0s 4ms/step - loss: 4.6979 - mae: 5.1753 - val_loss: 4.7169 - val_mae: 5.1950
Epoch 161/500
31/31 [==============================] - 0s 5ms/step - loss: 4.6180 - mae: 5.0925 - val_loss: 5.3132 - val_mae: 5.7911
Epoch 162/500
31/31 [==============================] - 0s 4ms/step - loss: 4.6749 - mae: 5.1497 - val_loss: 4.6884 - val_mae: 5.1635
Epoch 163/500
31/31 [==============================] - 0s 4ms/step - loss: 4.6078 - mae: 5.0830 - val_loss: 4.8182 - val_mae: 5.2940
Epoch 164/500
31/31 [==============================] - 0s 4ms/step - loss: 4.6889 - mae: 5.1660 - val_loss: 4.8031 - val_mae: 5.2860
Epoch 165/500
31/31 [==============================] - 0s 4ms/step - loss: 4.6872 - mae: 5.1613 - val_loss: 5.1839 - val_mae: 5.6627
Epoch 166/500
31/31 [==============================] - 0s 5ms/step - loss: 4.6009 - mae: 5.0765 - val_loss: 5.0716 - val_mae: 5.5501
Epoch 167/500
31/31 [==============================] - 0s 4ms/step - loss: 4.6209 - mae: 5.0946 - val_loss: 4.8871 - val_mae: 5.3612
Epoch 168/500
31/31 [==============================] - 0s 5ms/step - loss: 4.6476 - mae: 5.1252 - val_loss: 4.7961 - val_mae: 5.2717
Epoch 169/500
31/31 [==============================] - 0s 4ms/step - loss: 4.6302 - mae: 5.1063 - val_loss: 4.9232 - val_mae: 5.4075
Epoch 170/500
31/31 [==============================] - 0s 5ms/step - loss: 4.6589 - mae: 5.1350 - val_loss: 4.8675 - val_mae: 5.3426
Epoch 171/500
31/31 [==============================] - 0s 4ms/step - loss: 4.6239 - mae: 5.0990 - val_loss: 5.2334 - val_mae: 5.7113
Epoch 172/500
31/31 [==============================] - 0s 5ms/step - loss: 4.5918 - mae: 5.0683 - val_loss: 4.8114 - val_mae: 5.2875
Out[17]:
<tensorflow.python.keras.callbacks.History at 0x7f633ddc0da0>
In [18]:
dense_forecast = model_forecast(
    model,
    series[split_time - window_size:-1],
    window_size)[:, 0]
In [19]:
plt.figure(figsize=(10, 6))
plot_series(time_valid, x_valid)
plot_series(time_valid, dense_forecast)
In [20]:
keras.metrics.mean_absolute_error(x_valid, dense_forecast).numpy()
Out[20]:
5.202556