Skip to content

Instantly share code, notes, and snippets.

@Lay4U
Created February 18, 2020 00:43
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Lay4U/96e0ba8d8c251046e89eae4bc5d40510 to your computer and use it in GitHub Desktop.
Save Lay4U/96e0ba8d8c251046e89eae4bc5d40510 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"colab_type": "text",
"id": "2Pmxv2ioyCRw"
},
"source": [
"##### Copyright 2019 The TensorFlow Authors."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"cellView": "form",
"colab": {},
"colab_type": "code",
"id": "b-2ShX25yNWf"
},
"outputs": [],
"source": [
"#@title Licensed under the Apache License, Version 2.0 (the \"License\");\n",
"# you may not use this file except in compliance with the License.\n",
"# You may obtain a copy of the License at\n",
"#\n",
"# https://www.apache.org/licenses/LICENSE-2.0\n",
"#\n",
"# Unless required by applicable law or agreed to in writing, software\n",
"# distributed under the License is distributed on an \"AS IS\" BASIS,\n",
"# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n",
"# See the License for the specific language governing permissions and\n",
"# limitations under the License."
]
},
{
"cell_type": "markdown",
"metadata": {
"colab_type": "text",
"id": "pa49bUnKyRgF"
},
"source": [
"# Time series forecasting"
]
},
{
"cell_type": "markdown",
"metadata": {
"colab_type": "text",
"id": "11Ilg92myRcw"
},
"source": [
"<table class=\"tfo-notebook-buttons\" align=\"left\">\n",
" <td>\n",
" <a target=\"_blank\" href=\"https://www.tensorflow.org/tutorials/structured_data/time_series\"><img src=\"https://www.tensorflow.org/images/tf_logo_32px.png\" />View on TensorFlow.org</a>\n",
" </td>\n",
" <td>\n",
" <a target=\"_blank\" href=\"https://colab.research.google.com/github/tensorflow/docs/blob/master/site/en/tutorials/structured_data/time_series.ipynb\"><img src=\"https://www.tensorflow.org/images/colab_logo_32px.png\" />Run in Google Colab</a>\n",
" </td>\n",
" <td>\n",
" <a target=\"_blank\" href=\"https://github.com/tensorflow/docs/blob/master/site/en/tutorials/structured_data/time_series.ipynb\"><img src=\"https://www.tensorflow.org/images/GitHub-Mark-32px.png\" />View source on GitHub</a>\n",
" </td>\n",
" <td>\n",
" <a href=\"https://storage.googleapis.com/tensorflow_docs/docs/site/en/tutorials/structured_data/time_series.ipynb\"><img src=\"https://www.tensorflow.org/images/download_logo_32px.png\" />Download notebook</a>\n",
" </td>\n",
"</table>"
]
},
{
"cell_type": "markdown",
"metadata": {
"colab_type": "text",
"id": "GU8C5qm_4vZb"
},
"source": [
"This tutorial is an introduction to time series forecasting using Recurrent Neural Networks (RNNs). This is covered in two parts: first, you will forecast a univariate time series, then you will forecast a multivariate time series."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"colab": {},
"colab_type": "code",
"id": "7rZnJaGTWQw0"
},
"outputs": [],
"source": [
"from __future__ import absolute_import, division, print_function, unicode_literals\n",
"try:\n",
" # %tensorflow_version only exists in Colab.\n",
" %tensorflow_version 2.x\n",
"except Exception:\n",
" pass\n",
"import tensorflow as tf\n",
"\n",
"import matplotlib as mpl\n",
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"import os\n",
"import pandas as pd\n",
"\n",
"mpl.rcParams['figure.figsize'] = (8, 6)\n",
"mpl.rcParams['axes.grid'] = False"
]
},
{
"cell_type": "markdown",
"metadata": {
"colab_type": "text",
"id": "TokBlnUhWFw9"
},
"source": [
"## The weather dataset\n",
"This tutorial uses a <a href=\"https://www.bgc-jena.mpg.de/wetter/\" class=\"external\">[weather time series dataset</a> recorded by the <a href=\"https://www.bgc-jena.mpg.de\" class=\"external\">Max Planck Institute for Biogeochemistry</a>.\n",
"\n",
"This dataset contains 14 different features such as air temperature, atmospheric pressure, and humidity. These were collected every 10 minutes, beginning in 2003. For efficiency, you will use only the data collected between 2009 and 2016. This section of the dataset was prepared by François Chollet for his book [Deep Learning with Python](https://www.manning.com/books/deep-learning-with-python)."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"colab": {},
"colab_type": "code",
"id": "xyv_i85IWInT"
},
"outputs": [],
"source": [
"zip_path = tf.keras.utils.get_file(\n",
" origin='https://storage.googleapis.com/tensorflow/tf-keras-datasets/jena_climate_2009_2016.csv.zip',\n",
" fname='jena_climate_2009_2016.csv.zip',\n",
" extract=True)\n",
"csv_path, _ = os.path.splitext(zip_path)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"colab": {},
"colab_type": "code",
"id": "TX6uGeeeWIkG"
},
"outputs": [],
"source": [
"df = pd.read_csv(csv_path)"
]
},
{
"cell_type": "markdown",
"metadata": {
"colab_type": "text",
"id": "VdbOWXiTWM2T"
},
"source": [
"Let's take a glance at the data."
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"colab": {},
"colab_type": "code",
"id": "ojHE-iCCWIhz"
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Date Time</th>\n",
" <th>p (mbar)</th>\n",
" <th>T (degC)</th>\n",
" <th>Tpot (K)</th>\n",
" <th>Tdew (degC)</th>\n",
" <th>rh (%)</th>\n",
" <th>VPmax (mbar)</th>\n",
" <th>VPact (mbar)</th>\n",
" <th>VPdef (mbar)</th>\n",
" <th>sh (g/kg)</th>\n",
" <th>H2OC (mmol/mol)</th>\n",
" <th>rho (g/m**3)</th>\n",
" <th>wv (m/s)</th>\n",
" <th>max. wv (m/s)</th>\n",
" <th>wd (deg)</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>01.01.2009 00:10:00</td>\n",
" <td>996.52</td>\n",
" <td>-8.02</td>\n",
" <td>265.40</td>\n",
" <td>-8.90</td>\n",
" <td>93.3</td>\n",
" <td>3.33</td>\n",
" <td>3.11</td>\n",
" <td>0.22</td>\n",
" <td>1.94</td>\n",
" <td>3.12</td>\n",
" <td>1307.75</td>\n",
" <td>1.03</td>\n",
" <td>1.75</td>\n",
" <td>152.3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>01.01.2009 00:20:00</td>\n",
" <td>996.57</td>\n",
" <td>-8.41</td>\n",
" <td>265.01</td>\n",
" <td>-9.28</td>\n",
" <td>93.4</td>\n",
" <td>3.23</td>\n",
" <td>3.02</td>\n",
" <td>0.21</td>\n",
" <td>1.89</td>\n",
" <td>3.03</td>\n",
" <td>1309.80</td>\n",
" <td>0.72</td>\n",
" <td>1.50</td>\n",
" <td>136.1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>01.01.2009 00:30:00</td>\n",
" <td>996.53</td>\n",
" <td>-8.51</td>\n",
" <td>264.91</td>\n",
" <td>-9.31</td>\n",
" <td>93.9</td>\n",
" <td>3.21</td>\n",
" <td>3.01</td>\n",
" <td>0.20</td>\n",
" <td>1.88</td>\n",
" <td>3.02</td>\n",
" <td>1310.24</td>\n",
" <td>0.19</td>\n",
" <td>0.63</td>\n",
" <td>171.6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>01.01.2009 00:40:00</td>\n",
" <td>996.51</td>\n",
" <td>-8.31</td>\n",
" <td>265.12</td>\n",
" <td>-9.07</td>\n",
" <td>94.2</td>\n",
" <td>3.26</td>\n",
" <td>3.07</td>\n",
" <td>0.19</td>\n",
" <td>1.92</td>\n",
" <td>3.08</td>\n",
" <td>1309.19</td>\n",
" <td>0.34</td>\n",
" <td>0.50</td>\n",
" <td>198.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>01.01.2009 00:50:00</td>\n",
" <td>996.51</td>\n",
" <td>-8.27</td>\n",
" <td>265.15</td>\n",
" <td>-9.04</td>\n",
" <td>94.1</td>\n",
" <td>3.27</td>\n",
" <td>3.08</td>\n",
" <td>0.19</td>\n",
" <td>1.92</td>\n",
" <td>3.09</td>\n",
" <td>1309.00</td>\n",
" <td>0.32</td>\n",
" <td>0.63</td>\n",
" <td>214.3</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Date Time p (mbar) T (degC) Tpot (K) Tdew (degC) rh (%) \\\n",
"0 01.01.2009 00:10:00 996.52 -8.02 265.40 -8.90 93.3 \n",
"1 01.01.2009 00:20:00 996.57 -8.41 265.01 -9.28 93.4 \n",
"2 01.01.2009 00:30:00 996.53 -8.51 264.91 -9.31 93.9 \n",
"3 01.01.2009 00:40:00 996.51 -8.31 265.12 -9.07 94.2 \n",
"4 01.01.2009 00:50:00 996.51 -8.27 265.15 -9.04 94.1 \n",
"\n",
" VPmax (mbar) VPact (mbar) VPdef (mbar) sh (g/kg) H2OC (mmol/mol) \\\n",
"0 3.33 3.11 0.22 1.94 3.12 \n",
"1 3.23 3.02 0.21 1.89 3.03 \n",
"2 3.21 3.01 0.20 1.88 3.02 \n",
"3 3.26 3.07 0.19 1.92 3.08 \n",
"4 3.27 3.08 0.19 1.92 3.09 \n",
"\n",
" rho (g/m**3) wv (m/s) max. wv (m/s) wd (deg) \n",
"0 1307.75 1.03 1.75 152.3 \n",
"1 1309.80 0.72 1.50 136.1 \n",
"2 1310.24 0.19 0.63 171.6 \n",
"3 1309.19 0.34 0.50 198.0 \n",
"4 1309.00 0.32 0.63 214.3 "
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.head()"
]
},
{
"cell_type": "markdown",
"metadata": {
"colab_type": "text",
"id": "qfbpcV0MWQzl"
},
"source": [
"As you can see above, an observation is recorded every 10 mintues. This means that, for a single hour, you will have 6 observations. Similarly, a single day will contain 144 (6x24) observations. \n",
"\n",
"Given a specific time, let's say you want to predict the temperature 6 hours in the future. In order to make this prediction, you choose to use 5 days of observations. Thus, you would create a window containing the last 720(5x144) observations to train the model. Many such configurations are possible, making this dataset a good one to experiment with.\n",
"\n",
"The function below returns the above described windows of time for the model to train on. The parameter `history_size` is the size of the past window of information. The `target_size` is how far in the future does the model need to learn to predict. The `target_size` is the label that needs to be predicted."
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"colab": {},
"colab_type": "code",
"id": "7AoxQuTrWIbi"
},
"outputs": [],
"source": [
"def univariate_data(dataset, start_index, end_index, history_size, target_size):\n",
" data = []\n",
" labels = []\n",
"\n",
" start_index = start_index + history_size\n",
" if end_index is None:\n",
" end_index = len(dataset) - target_size\n",
"\n",
" for i in range(start_index, end_index):\n",
" indices = range(i-history_size, i)\n",
" # Reshape data from (history_size,) to (history_size, 1)\n",
" data.append(np.reshape(dataset[indices], (history_size, 1)))\n",
" labels.append(dataset[i+target_size])\n",
" return np.array(data), np.array(labels)"
]
},
{
"cell_type": "markdown",
"metadata": {
"colab_type": "text",
"id": "qoFJZmXBaxCc"
},
"source": [
"In both the following tutorials, the first 300,000 rows of the data will be the training dataset, and there remaining will be the validation dataset. This amounts to ~2100 days worth of training data."
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"colab": {},
"colab_type": "code",
"id": "ia-MPAHxbInX"
},
"outputs": [],
"source": [
"TRAIN_SPLIT = 300000"
]
},
{
"cell_type": "markdown",
"metadata": {
"colab_type": "text",
"id": "EowWDtaNnH1y"
},
"source": [
"Setting seed to ensure reproducibility."
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"colab": {},
"colab_type": "code",
"id": "-x-GgENynHdx"
},
"outputs": [],
"source": [
"tf.random.set_seed(13)"
]
},
{
"cell_type": "markdown",
"metadata": {
"colab_type": "text",
"id": "8YEwr-NoWUpV"
},
"source": [
"## Part 1: Forecast a univariate time series\n",
"First, you will train a model using only a single feature (temperature), and use it to make predictions for that value in the future.\n",
"\n",
"Let's first extract only the temperature from the dataset."
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"colab": {},
"colab_type": "code",
"id": "nbdcnm1_WIY9"
},
"outputs": [
{
"data": {
"text/plain": [
"Date Time\n",
"01.01.2009 00:10:00 -8.02\n",
"01.01.2009 00:20:00 -8.41\n",
"01.01.2009 00:30:00 -8.51\n",
"01.01.2009 00:40:00 -8.31\n",
"01.01.2009 00:50:00 -8.27\n",
"Name: T (degC), dtype: float64"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"uni_data = df['T (degC)']\n",
"uni_data.index = df['Date Time']\n",
"uni_data.head()"
]
},
{
"cell_type": "markdown",
"metadata": {
"colab_type": "text",
"id": "aQB-46MyWZMm"
},
"source": [
"Let's observe how this data looks across time."
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"colab": {},
"colab_type": "code",
"id": "ftOExwAqWXSU"
},
"outputs": [
{
"data": {
"text/plain": [
"array([<matplotlib.axes._subplots.AxesSubplot object at 0x000002C65D9FFEB8>],\n",
" dtype=object)"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 576x432 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"uni_data.plot(subplots=True)"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"colab": {},
"colab_type": "code",
"id": "ejSEiDqBWXQa"
},
"outputs": [],
"source": [
"uni_data = uni_data.values"
]
},
{
"cell_type": "markdown",
"metadata": {
"colab_type": "text",
"id": "-eFckdUUHWmT"
},
"source": [
"It is important to scale features before training a neural network. Standardization is a common way of doing this scaling by subtracting the mean and dividing by the standard deviation of each feature.You could also use a `tf.keras.utils.normalize` method that rescales the values into a range of [0,1]."
]
},
{
"cell_type": "markdown",
"metadata": {
"colab_type": "text",
"id": "mxbIic5TMlxx"
},
"source": [
"Note: The mean and standard deviation should only be computed using the training data."
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"colab": {},
"colab_type": "code",
"id": "Eji6njXvHusN"
},
"outputs": [],
"source": [
"uni_train_mean = uni_data[:TRAIN_SPLIT].mean()\n",
"uni_train_std = uni_data[:TRAIN_SPLIT].std()"
]
},
{
"cell_type": "markdown",
"metadata": {
"colab_type": "text",
"id": "8Gob1YJYH0cH"
},
"source": [
"Let's standardize the data."
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"colab": {},
"colab_type": "code",
"id": "BO55yRD6H0Dx"
},
"outputs": [],
"source": [
"uni_data = (uni_data-uni_train_mean)/uni_train_std"
]
},
{
"cell_type": "markdown",
"metadata": {
"colab_type": "text",
"id": "gn8A_nrccKtn"
},
"source": [
"Let's now create the data for the univariate model. For part 1, the model will be given the last 20 recorded temperature observations, and needs to learn to predict the temperature at the next time step. "
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"colab": {},
"colab_type": "code",
"id": "aJJ-T49vWXOZ"
},
"outputs": [],
"source": [
"univariate_past_history = 20\n",
"univariate_future_target = 0\n",
"\n",
"x_train_uni, y_train_uni = univariate_data(uni_data, 0, TRAIN_SPLIT,\n",
" univariate_past_history,\n",
" univariate_future_target)\n",
"x_val_uni, y_val_uni = univariate_data(uni_data, TRAIN_SPLIT, None,\n",
" univariate_past_history,\n",
" univariate_future_target)"
]
},
{
"cell_type": "markdown",
"metadata": {
"colab_type": "text",
"id": "aWpVMENsdp0N"
},
"source": [
"This is what the `univariate_data` function returns."
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"colab": {},
"colab_type": "code",
"id": "feDd95XFdz5H"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Single window of past history\n",
"[[-1.99766294]\n",
" [-2.04281897]\n",
" [-2.05439744]\n",
" [-2.0312405 ]\n",
" [-2.02660912]\n",
" [-2.00113649]\n",
" [-1.95134907]\n",
" [-1.95134907]\n",
" [-1.98492663]\n",
" [-2.04513467]\n",
" [-2.08334362]\n",
" [-2.09723778]\n",
" [-2.09376424]\n",
" [-2.09144854]\n",
" [-2.07176515]\n",
" [-2.07176515]\n",
" [-2.07639653]\n",
" [-2.08913285]\n",
" [-2.09260639]\n",
" [-2.10418486]]\n",
"\n",
" Target temperature to predict\n",
"-2.1041848598100876\n"
]
}
],
"source": [
"print ('Single window of past history')\n",
"print (x_train_uni[0])\n",
"print ('\\n Target temperature to predict')\n",
"print (y_train_uni[0])"
]
},
{
"cell_type": "markdown",
"metadata": {
"colab_type": "text",
"id": "hni3Jt9OMR1_"
},
"source": [
"Now that the data has been created, let's take a look at a single example. The information given to the network is given in blue, and it must predict the value at the red cross."
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"colab": {},
"colab_type": "code",
"id": "qVukM9dRipop"
},
"outputs": [],
"source": [
"def create_time_steps(length):\n",
" return list(range(-length, 0))"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"colab": {},
"colab_type": "code",
"id": "QQeGvh7cWXMR"
},
"outputs": [],
"source": [
"def show_plot(plot_data, delta, title):\n",
" labels = ['History', 'True Future', 'Model Prediction']\n",
" marker = ['.-', 'rx', 'go']\n",
" time_steps = create_time_steps(plot_data[0].shape[0])\n",
" if delta:\n",
" future = delta\n",
" else:\n",
" future = 0\n",
"\n",
" plt.title(title)\n",
" for i, x in enumerate(plot_data):\n",
" if i:\n",
" plt.plot(future, plot_data[i], marker[i], markersize=10,\n",
" label=labels[i])\n",
" else:\n",
" plt.plot(time_steps, plot_data[i].flatten(), marker[i], label=labels[i])\n",
" plt.legend()\n",
" plt.xlim([time_steps[0], (future+5)*2])\n",
" plt.xlabel('Time-Step')\n",
" return plt"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"colab": {},
"colab_type": "code",
"id": "Pd05iV-UWXKL"
},
"outputs": [
{
"data": {
"text/plain": [
"<module 'matplotlib.pyplot' from 'C:\\\\Users\\\\HL_ML\\\\Anaconda3\\\\envs\\\\me2\\\\lib\\\\site-packages\\\\matplotlib\\\\pyplot.py'>"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 576x432 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"show_plot([x_train_uni[0], y_train_uni[0]], 0, 'Sample Example')"
]
},
{
"cell_type": "markdown",
"metadata": {
"colab_type": "text",
"id": "b5rUJ_2YMWzG"
},
"source": [
"### Baseline\n",
"Before proceeding to train a model, let's first set a simple baseline. Given an input point, the baseline method looks at all the history and predicts the next point to be the average of the last 20 observations."
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"colab": {},
"colab_type": "code",
"id": "P9nYWcxMMWnr"
},
"outputs": [],
"source": [
"def baseline(history):\n",
" return np.mean(history)"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"colab": {},
"colab_type": "code",
"id": "KMcdFYKQMWlm"
},
"outputs": [
{
"data": {
"text/plain": [
"<module 'matplotlib.pyplot' from 'C:\\\\Users\\\\HL_ML\\\\Anaconda3\\\\envs\\\\me2\\\\lib\\\\site-packages\\\\matplotlib\\\\pyplot.py'>"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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7uHUU0/ljTfeoKioqG0r2AsvvJB9+/YBUFRUxPTp0znttNOOWzb35ZdfbmuJqK2t5cYbb6SgoIDCwkKeeuop7rrrLurr65kxYwbXXXdd2zPBN3D5jjvuYNq0aRQUFPD444+33fPDH/4wV111FVOmTOG6666jLyeOKcELO8rqmDiibwbYtZqT78U5eGu3avEi/eUPG/7wgZp7e40tjfx+w+97/YxrrrmGpUuXcvToUTZs2MCpp57adu1b3/oWM2fOZMOGDfzgBz/gE5/4BADf/va3OeOMM3jrrbe47LLL2L17N+Bbwe3xxx/n9ddfZ/369cTFxbFkyZJux/Lcc89RUFAAQF1dHdOmTePNN9/k1FNP5T//8z958sknKSoq4qabbuLuu+8G4MYbb+TBBx/kjTfe6PC+3/3ud8nMzGTjxo1s2LCBc845h8WLF5OSksL69es/EOPTTz/N+vXrefvtt1m5ciV33HFH2xeKt956i//+7//m3Xffpbi4mNdff73b76+n+mWhGxm4Gppa2F1xhIsL+maKXKvpeVnEeYyiXZV8+ERtGijSH2obasNaLpjCwkJ27tzJH//4RxYuXHjctddee42nnnoKgHPOOYfy8nKqq6t55ZVXePrppwG4+OKL8Xp9C2K99NJLFBUVtW01W19fz4gRXf97MX/+fOLi4igsLOR73/seAHFxcXz0ox8FYOvWrWzatInzzz8f8DXZjx49murqaqqqqjj77LMBWLRoEStWfHBMwsqVK1m6dGnbcWu8HXnttde49tpriYuLY+TIkZx99tmsXbuWjIwM5s6d27Ye/4wZM9i5cydnnHFGl++xN5TgY9zuijqaW1zYl6htb0hSPCeNTtdIepF+lJaYRk1DTbfKheKyyy7jq1/9Ki+//DLl5eVt54M1P7euhRFsTQznHDfccAP33Xdfj56/atUqhg07fpXz5ORk4uLi2u578sknf6CWXlVV1a21OXq6hkdnze6tm+KA70tIR9vchoOa6GNc6xr04dxFriOzx3pZX1JFU3NL14VFJGTXF15Pgqfz5acTPAksKlzUaZmu3HTTTdxzzz1tzeOtzjrrrLbm65dffplhw4aRkZFx3PkVK1ZQWen74n/uuefy5JNPcvCgb+fwiooKdu3aFVJsACeeeCJlZWVtCb6xsZF33nmHrKwsMjMzee211wA67A644IILeOihh9qOW+NNSEigsfGDXSBnnXUWjz/+OM3NzZSVlfHKK68wd+7ckN9HTynBx7gdZb6mub6uwQPMHpfNkYZmtuzvukYhIqH7ymlfISGuiwQfl8Dt824P6Tm5ubl88Ytf/MD5e++9l3Xr1lFYWMhdd93Fb3/7W8DXN//KK68wa9YsXnjhBcaOHQv49mT/3ve+xwUXXEBhYSHnn39+W991KBITE3nyySf52te+xvTp05kxY0bbiPdf//rXfP7zn+e0004jJSX4TKJvfOMbVFZWMm3aNKZPn84q/xa7t9xyC4WFhW2D7FpdeeWVFBYWMn36dM455xx+9KMfMWpUsE1Z+1aX28UORNouNny++qe3eeW9MtbcfV6fP2tPVT0fWvx37r10Kp/80Pg+f55INOvWdrH45sFf9aeraGxuPG7AXYIngYS4BJ68+kkumnRRX4YqPdRv28VKdCsuq+2X2jtATlYKozOTKdpd1S/PExG4aNJFbLh1A7fMvoWMpAw85iEjKYNbZt/Chls3KLlHMQ2yi2Gtm8xc0kebzAQzK99L0c6KfnueiMDE7Ik8tPAhHlr4UNeFJWqoBh/D2jaZ6YcBdq3m5HvZW32UvVX1/fZMEZFYpAQfw/49gr5/mujBt6IdaOMZkXAYjGOopHPh/EyV4GNYsX8EfX9MkWt10ugMUhLilOBFQpScnEx5ebmSfBRxzlFeXk5ycnJY7qc++Bi2o6yWxHgPY7L6ZpOZYBLiPEzPy1SCFwlRbm4upaWllJWVRToUCaPk5OS2le5CpQQfw4rL6pgwrG83mQlmdr6XR/5RzJGGJlIT9X9Bkd5ISEhg/HhNN5WOqYk+hhUfquu3KXKB5uRn09ziWF+i6XIiIn1FCT5GtW4y05/9761mjs0C0P7wIiJ9SAk+RvXXJjPBZKUmMmlEmvrhRUT6kBJ8jNp+sP82mQlmdr6Xol2VtLRoBLCISF9Qgo9RxYd8U+TGD+v/Gjz4Evzho01tm92IiEh4KcHHqB0H6xiZkUR6cuc7TfWV1gVv1qmZXkSkTyjBx6jiQ7VMGBaZ5nnwtRxkD0lUP7yISB9Rgo9Bzjl2HOy/XeSCMTNmjfUqwYuI9BEl+BhUXtfA4aNNERtg12rOOC/vH6qjvPZYROMQEYlGSvAxqNi/yUwka/CgjWdERPqSEnwM2hGBTWaCKcjJJCHOKNqtBC8iEm5K8DGouKyWpHgPOf24yUwwyQlxTMvJpGinEryISLiFlODN7Goze8fMWsxsTiflvmhmm/xlvxRwfoaZrTaz9Wa2zszmhhKPdM+OsjrGDxuCp583mQlmTr6XDXuqOdbUHOlQRESiSqg1+E3AR4BXOipgZtOATwNzgenAJWY2yX/5R8C3nXMzgHv8x9LHistqI94832p2vpeGphY27Tkc6VBERKJKSAneObfZObe1i2InAaudc0ecc03AP4ArW28BZPh/zwT2hhKPdO1YU7N/k5nIDrBrNcs/0E4bz4iIhFd/9MFvAs4ys6FmlgosBPL8174E3G9mJcCPga93dBMzu8XfjL+urKysz4OOVrvLj9DiYMIAqcGPSE9mbHYq63ZVRDoUEZGo0mWCN7OV/v7z9j+Xd+cBzrnNwA+BF4G/AW8DTf7LnwVud87lAbcDv+zkPj93zs1xzs0ZPnx4dx4tQewYIFPkAs3J91K0qwrntPGMiEi4dJngnXPnOeemBfl5trsPcc790jk3yzl3FlABbPNfugF42v/7n/D100sfap0iN1Bq8OBrpj9Ue4zdFUciHYqISNTol2lyZjbC/79j8Q3K+6P/0l7gbP/v5/DvxC99pLjMt8lMWlJ8pENpowVvRETCL9RpcleaWSlwGrDMzJ73nx9jZssDij5lZu8CfwU+75xr/Zf808BPzOxt4AfALaHEI13bMYBG0LeaPDKd9KR47SwnIhJGIVXjnHPPAM8EOb8X32C61uMzO3j9a8DsUGKQ7nPOUVxWy2UzxkQ6lOPEeYwZY7M0kl5EJIy0kl0MOVQ7MDaZCWZOfjZbD9RQXd8Y6VBERKKCEnwMKR6AA+xazc734hysL6mKdCgiIlFBCT6GFB/yTZEbKIvcBJoxNgsDHnl5uwbbiYiEgRJ8DNlxsJbkBA9jMiO7yUwwW/fXAPBGcQXXPbpaSV5EJERK8DGk+FAd44YOjE1m2ltdXE7rMjeNTS2sLi6PaDwiIoOdEnwM2VFWy8QRA6//HWDehKHE+794JMR7mDdhaIQjEhEZ3JTgY8SxpmZKKo4wcdjA638H3yC7T50xHoD/uWZm2+I3IiLSO0rwMWKXf5OZgVqDB/jQCcMAyEpJiHAkIiKDnxJ8jGibIjds4Cb4XK9v8F9pZX2EIxERGfyU4GPEQNxFrr0cbwpmUFKpTWdEREKlBB8jdpTVMiojmSEDaJOZ9pLi4xiZnkxJhWrwIiKhUoKPEcVldUwcMXBr761yvSmUqgYvIhIyJfgY4JxjR1ntgO5/b5WXnao+eBGRMFCCjwGHahuoOdo0IJeobS/Pm8K+6noam1siHYqIyKCmBB8DdgzgTWbay/Wm0uJgX9XRSIciIjKoKcHHgOJBMIK+VW62b6qcRtKLiIRGCT4G7CgbuJvMtJfnTQXQQDsRkRApwceA4rJaxg9LG5CbzLQ3OjOZOI9pqpyISIiU4GNA8aG6QTHADiA+zsPozGQ10YuIhEgJPsq1bjIzGAbYtfLNhVcNXklBTtIAACAASURBVEQkFErwUa5tk5lBUoMHXz98SYVq8CIioVCCj3I7DvqmyE0cVDX4VA7WHONoY3OkQxERGbSU4KNc8SHfFLnxA3Qf+GDy/FPl9lSpmV5EpLeU4KPcjoO1jM4c2JvMtJeX7Zsqp2Z6EZHeU4KPcjsO1Q2KBW4CaV94EZHQKcFHMeccxWW1g6r/HWBkejKJcR5NlRMRCcGgTPAHa45RtKsy0mEMeGW1x6g52sSEQdT/DuDxGDmaKiciEpJBmeAPHD7KdY+uVpLvQusa9BNHDK4aPPjnwqsPXkSk1wZlggdobGphdXF5pMMY0AbTLnLt5XpTKVENXkSk10JO8GZ2v5ltMbMNZvaMmWV1UG6BmW01s+1mdlfA+fFm9qaZbTOzx80ssTvPTYj3MG/C0FDDj2rFZXWkJMQxOiM50qH0WK43hYq6BuqONUU6FBGRQSkcNfgXgWnOuULgPeDr7QuYWRzwMHARMBW41sym+i//EHjAOTcJqAQ+1Z2H/uy6WczO94Yh/Oi1o6yW8cOGDIpNZtprnSqnfngRkd4JOcE7515wzrVWs1YDuUGKzQW2O+eKnXMNwFLgcjMz4BzgSX+53wJXdOe5yQmDZ153pBSX1Q3K/neAvLapcuqHFxHpjXD3wd8ErAhyPgcoCTgu9Z8bClQFfEFoPd+lbQdrQggz+h1tbKak8sigG0HfKterxW5ERELRrWqwma0ERgW5dLdz7ll/mbuBJmBJsFsEOec6OR8shluAWwCSRp3A1v1K8J1ZsXE/zoENvtZ5AIalJZKc4NFAOxGRXupWgnfOndfZdTO7AbgEONc5FyxBlwJ5Ace5wF7gEJBlZvH+Wnzr+WAx/Bz4OUB2/hS37UBtd0KPSUW7KrnzqbcB+N+Xd3DmpOGDbryCmZHrTVUTvYhIL4VjFP0C4GvAZc65jv41XgtM8o+YTwSuAf7i/zKwCrjKX+4G4NmunpmUEMfWAzUE/y4hq4vLaWz2/W2amwfvdMI8bwolFarBi4j0Rjj64B8C0oEXzWy9mT0CYGZjzGw5gL92/gXgeWAz8IRz7h3/678GfNnMtuPrk/9lVw9Mjo+jur6RsppjYQg/+swbn93W9zGYpxPmZasGLyLSWyEPRXfOndDB+b3AwoDj5cDyIOWK8Y2y77akBA9Hga0HahgxCOd497W05AQccOHJI7nlrImDrnm+Va43hcNHm6iubyQzJSHS4YiIDCqDciW75IQ4AN5TP3xQKzcfAOC7l08btMkdIE8j6UVEem1QJvh4jzF0SCLvaSR9UC9tPkBhbuagb91onSqnxW5ERHpuUCZ4gEkj03hPc+E/4FDtMd4qqeLcKSMjHUrI8rK12I2ISG8N2gR/4sh0th2o1Uj6dlZtOYhzcO5JIyIdSsgyUxJIT4pXE72ISC8M2gQ/aWQ6tcea2Ft9NNKhDCgrNx9gdGYyJ4/JiHQoITPTvvAiIr01aBP8iaPSAdQPH+BoYzOvbjvEOVNGYIN1Cbt28rJTKVETvYhIjw3aBD95hD/BH1CCb7W6uJwjDc2cd9Lg739vledNpbSyXl0xIiI9NGgTfGZqAiMzktiqBN/mpc0HSUmI47SJg3Nhm2ByvSkcaWimoq4h0qGIiAwqgzbBA0z2D7QTcM7x0uYDnDFpWNs6AdGgdV94bTojItIzgz/BH6yhpUXNt5v31bC3+ijnRcHo+UC52hdeRKRXBnmCT+NoY4sGYeFb3MYMzomC+e+B2mrw2nRGRKRHBnmC9w20097wsHLLQabnZjE8PSnSoYRVWlI83tQE1eBFRHpoUCf4Sf4Ev+1gbPfDH6w5ytslVVHXPN8q15uqPngRkR4a1Ak+LSmenKyUmJ8qt2rLQQDOjaLpcYHyslMo1Wp2IiI9MqgTPPj64WO9iX7l5oPkZKUwxb/4T7TJ9aZSWlWvwZQiIj0w+BP8qHSKy+poam6JdCgRcbSxmde2HeLck6Jn9br28rwpNDS1UFZ7LNKhiIgMGoM/wY9Ip6G5hZ3lsdmE+88dh6hvbI7a5nmA3OzWbWNj8zMWEemNQZ/gW9ek3xaj/fArNx9kSGIc8yZkRzqUPpPnnwuvqXIiIt036BP8xOFpmBGTS9Y65/j75oOcOWk4SfHRs3pde7ne1rnwqsGLiHTXoE/wKYlx5GenxuSSte/sPcz+w0ejYu/3ziQnxDEsLUnbxoqI9MCgT/Dgmw8fizX4lf7V6+ZPie4ED76pclqxUESk+6IiwZ84Mp2dh+o41tQc6VD61UubDzIzL4thadG1el0wrdvGiohI90RFgp80Mo2mFsf7h+oiHUq/OXD4KBv3VEf16PlAud4U9lbV06y58CIi3RIVCb51JP17MdQP/9Jm3+p150+NjQSfl51KU4tjX7Vq8SIi3REVCX78sCHEeYz3YmhFu5c2HyAvO4VJI9IiHUq/yPO2zoVXghcR6Y6oSPBJ8XGMG5oaM2vS1zc089r2Q5w7ZWTUrl7XXm7bXHgNtBMR6Y6oSPDga6aPlQT/+vZDHGtq4bwY6X8HGJOVghnaVU5EpJuiJsFPGpHOroojHG2M/pH0L205QHpSPHPHR+/qde0lxnsYlZGs5WpFRLopahL8iaPScQ62R/ne8C0tjpWbD3LW5OEkxkfNx9cted5USrVcrYhIt0RNhpg80jfYLNqb6Tfuqaas5ljUr14XTG52imrwIiLdFFKCN7P7zWyLmW0ws2fMLKuDcgvMbKuZbTezuwLOL/Gf32RmvzKzhN7Gkj90CIlxnqhf0e6lzQfwGMw/MQYTvDeVfYeP0tAUm1sDi4j0RKg1+BeBac65QuA94OvtC5hZHPAwcBEwFbjWzKb6Ly8BpgAFQApwc28DSYjzMGH4kKhfk37l5oPMzvfiHZIY6VD6XZ43Bedgb5Wa6UVEuhJSgnfOveCca/IfrgZygxSbC2x3zhU75xqApcDl/tcvd37Amg5e322TR6azNYrnwu+tqufdfYdjZvW69nI1F15EpNvC2Qd/E7AiyPkcoCTguNR/ro2/aX4R8LdQApg8Mo09VfXUHmvquvAg9NIW3+p158Vg/zv4NpwBtOmMiEg3dJngzWylv4+8/c/lAWXuBprwNbl/4BZBzrVfUPx/gVecc692EsctZrbOzNaVlZUFLTN5pG/J2m1R2g//0uYD5A9NZeLw2Fi9rr1RGcnEe0wD7UREuiG+qwLOufM6u25mNwCXAOf6m9rbKwXyAo5zgb0Br/8WMBz4TBdx/Bz4OcCcOXOC7jjy7wRfy8yx3s5uN+gcaWjinzvKuf7U/JhZva69+DgPo7OSKdFUORGRLnWZ4DtjZguArwFnO+c6qlatBSaZ2XhgD3AN8HH/628GLsT35SDkodF52akkJ0TnSPpXtx2ioamF86bGZvN8qzxvqproRUS6IdQ++IeAdOBFM1tvZo8AmNkYM1sO4B+E9wXgeWAz8IRz7h3/6x8BRgJv+F9/TyjBxHmME0akReVc+Jc2HyA9OZ5TxsXO6nXB5HpTNMhORKQbQqrBO+dO6OD8XmBhwPFyYHmQciE9P5jJI9N5ffuhcN82olpaHH/fUsaHTxxBQlzUrE3UK3neVMpqjnG0sZnkhLhIhyMiMmBFXbaYPDKdA4ePUX2kMdKhhM3bpVUcqj0Ws6PnA+Vla6qciEh3RF2CP9E/0O69g9HTTL9y8wHiPMaHJyvBt20bq354EZFORV2CnxSFa9K/tPkgc/K9ZKb2eiXfqNFWg9e+8CIinYq6BJ+TlcKQxDjei5IV7Uorj7Blf01M7f3emeFpSSTGe9RELyLShahL8GbGpJHpvBcla9K/tNm3el0s7h4XjMdj5GalqIleRKQLUZfgwdcPHw1N9EW7Kvn16+8zJjOZCTG6el0wudmpqsGLiHQhKhP8pJFplNc1cKj2WKRD6bWiXZVc94vV7Cw/woGaYxTtqox0SANGrjeFEvXBi4h0KioT/Imj/CPpB3Et/ul/lXLUv++5c47VxeURjmjgyPOmUnmkMWo3FRIRCYeoTPCBa9IPNuW1x7jzybdZ8uZuADwGifEe5k0YGuHIBo7WXeW06YyISMfCvpLcQDAiPYnMlIRBtSZ9c4vjj2t2c//zW6k71sRnzprAWZOHs76kinkThjI7P7o2zwlF677wJRX1TBmVEeFoREQGpqhM8GbG5JFpg2bb2LdLqvjms5vYUFrNvAnZfOfyaW2tEB86YViEoxt48ryqwYuIdCUqEzzApJHpLNuwD+fcgN1etbKugftf2Mof1+xmWFoS/3PNDC6bPmbAxjtQZA9JJCUhTtvGioh0ImoT/Ikj03msfjcHa44xMiM50uEcp6XF8aeiEhav2MLho03cePp4bj9/EunJWqmuO8yMvGzNhRcR6UzUJvjAJWsHUoLftKeae57dxL92V3HKOC/fuXwaJ41WP3JP5Xk1F15EpDNRm+BbN53Zur+GMycNj2gsRbsq+cfWg2w7WMvz7+wne0giP7l6Oh+ZlaPm+F7K9aaw5v2KAd0FIyISSVGb4IemJTF0SGLEp8oV7arkmp+/QWOzA+CiaaNY/NFCMlPUHB+KvOxUao41UV3fSFZqYqTDEREZcKJyHnyrySPTIz5V7s9v7WlL7h6DaTmZSu5h0DpVTs30IiLBRXmC902Vc85FLIbq+gYA4rRgTVi17QuvJWtFRIKK2iZ6gMmj0qlraGZPVX1bja8/Oeco2lXF7Hwv50wZoQVrwqhtX3jV4EVEgoruBB+wZG0kEvzbpdXsqarn9vMnc9Xs3H5/fjTLTEkgPTleU+VERDoQ3U30I/wj6SPUD7984z4S4ozzTxoZkedHuzxvqproRUQ6ENUJPjM1gZEZSRHZVc45x/KN+/jQCcPITNWgur6Ql52iJnoRkQ5EdYIHXzN9JBL8xj3VlFbWs7BgdL8/O1bk+he7ieQgShGRgSomEvz2g7U0t/RvEli2cR/xHuOCqWqe7yt53hTqG5spr2uIdCgiIgNO1Cf4E0emc7SxpV/7agOb57UIS9/597ax6ocXEWkv6hN84Jr0/WXTnsOUVNSzsGBUvz0zFrVOlStRP7yIyAfEQIL3jaTvzwS/fNM+4jzGBVOV4PtSrvaFFxHpUNQn+LSkeHKyUnivn9akb22eP33iULxD1Dzfl4YkxZM9JFH7wouIBBH1CR7gxFH9N5L+nb2H2VV+hIs1er5f5HlTVIMXEQkiJhL8pJFpFJfV0djc0ufPWr7R3zx/sprn+0Ou9oUXEQkq5ARvZveb2RYz22Bmz5hZVgflFpjZVjPbbmZ3Bbn+UzPrk3b0E0em09Dcwq7yur64fZvW5vnTJgwlW83z/SI3O4U9lfW09PM0SBGRgS4cNfgXgWnOuULgPeDr7QuYWRzwMHARMBW41symBlyfAwT9YhAOk9sG2vVtP/zmfTXsLD+ixW36UZ43lYbmFg7WHIt0KCIiA0rICd4594Jzrsl/uBoItqvKXGC7c67YOdcALAUuh7bkfz9wZ6ixdOSEEWmYwdb9fdsP39o8f+HJWtymv7RtG6t+eBGR44S7D/4mYEWQ8zlAScBxqf8cwBeAvzjn9nV2YzO7xczWmdm6srKyHgWVnBBHfnYq2w72XYJvbZ6fNyGboWlJffYcOd6/t41VghcRCdStBG9mK81sU5CfywPK3A00AUuC3SLIOWdmY4CrgZ92FYNz7ufOuTnOuTnDhw/vTtjHmTwyvU9r8Fv211B8qE7N8/0sJ8tfg9dUORGR43RrP3jn3HmdXTezG4BLgHNd8J0/SoG8gONcYC8wEzgB2G5mAKlmtt05d0J34uqJySPTeWnLQY41NZMUHxfu27Ni4z48Bhdq9Hy/Sk6IY0R6kparFRFpp1sJvjNmtgD4GnC2c66jf2XXApPMbDywB7gG+Lhz7h2gLSOaWW1fJHeAyaPSaW5xFJfVcdLojLDe2znHso37OHX8UIapeb7f5WVrqpyISHvh6IN/CEgHXjSz9Wb2CICZjTGz5QD+QXhfAJ4HNgNP+JN7v5nsX5P+4VXbKdpVGdZ7v3eglh1ldSwsVPN8JOR6UzTITkSknZBr8B3VuJ1ze4GFAcfLgeVd3Cst1Hg6UnXEt6Xosg37WLn5AEtunsfsfG9Y7r1s4z7MYIGa5yMiz5vKcxv20dTcQnxcTKzdJCLSpZj517BoVxUADmhoamF1cXnY7r184z7mjstmeLqa5yMhLzuF5hbHvuqjkQ5FRGTAiJkEP2/CUJLifW/XAXPHZ4flvtsO1LD9YC0Xq3k+Ytr2hVczvYhIm5hJ8LPzvTz26XksnDYK52BDaXVY7tvWPD9NzfORkudP8L97Y1fYx1eIiAxWMZPgwZfkH75uFudMGcH9z29h56HQ16ZfvnEfp4zLZkR6chgilN7Yf9g3gv75Tfu57tHVSvIiIsRYggcwM35wZQEJcR7ufGpDSJuUbD9Yw3sHarU1bISt3elL6A5oDPP4ChGRwSrmEjzAqMxkvnnJVNa8X8HvV+/q9X2Wb9yv5vkBYN6EoXj8ayUmxHuYN2FoZAOSmLWjYgefW/Y5Mu7LwPNtDxn3ZfC5ZZ9jR8WOSIcmMSgmEzzA1bNzOXvycBav2MLu8t4Nzlq+cR9z8r2MzFDzfCTNzvdyzSm+hRJ/8Yk5YZv+KNITK7atoPCRQh7916PUNNTgcNQ01PDovx6l8JFCVmwLtk2HSN+J2QRvZtz3kQLiPcadT73d46b6HWW1bNlfo7XnB4gLp/k+hzhPsG0PRPrWjoodXPWnqzjSeITGlsbjrjW2NHKk8QhX/ekq1eSlX8VsggcYk5XC3RefxOriCpas2d2j1y7f4Nv87qJpSvADQUFOJgCb9oRndoRIT/zkjZ/Q2NzYaZnG5kYeWP1AP0UkEuMJHuBjp+Rx5qRh3Ld8c482LFnmb54flanm+YEge0giOVkpbNxzONKhSAz6w4Y/fKDm3l5jSyO/3/D7fopIRAkeM2PxRwsx4K6nNxB8M7zjFfub5y9S8/yAUpCTycbSqkiHITGotqE2rOVEwiHmEzz49hT/r4tP4vXt5fxxTUmX5Vds2g/AwgKNnh9ICnIz2Vl+hOr6zmtSIuGWlti9bTS6W04kHJTg/T4+dyynTxzKD5ZvZk9V51uPLtuwj1ljsxidmdJP0Ul3tPbDv6N+eOln1xdeT4InodMyCZ4EFhUu6qeIRJTg25gZP/xoIS3OcddTHTfV7zxUx7v7Dmv0/ADUmuA3KsFLP/vKaV8hIa6LBB+XwO3zbu+niESU4I+Tl53K1y+awqvbDvHEuuBN9cs2+kfPK8EPON62gXZK8NK/JmZP5MmrnyQ1IfUDNfkETwKpCak8efWTTMyeGKEIJRYpwbdz3an5zJuQzfee28y+6g821a/YtI8ZeVnkZKl5fiAqzM1UgpeIuGjSRWy4dQO3zL6FjKQMPOYhIymDW2bfwoZbN3DRpIsiHaLEGCX4djwe40cfnU5Ti+PrT288rql+d/kRNu05rLXnB7BpOZns0kA7iZCJ2RN5aOFDVN9VTfM9zVTfVc1DCx9SzV0iQgk+iLFDU/naghN5eWsZTxaVtp3/d/O8Rs8PVIW5GmgnIgJK8B36xGnjmDsum+889y77q48CvrXnp+dlkevff1wGnmljfAl+gxK8iMQ4JfgOeDzGD68qpLG5hf96ZiO7y4+wcU81C7Vz3IDmHZJIrlcD7URE4iMdwEA2ftgQ7rhwCt997t22ufFjs1V7H+gKczPZWKoELyKxTTX4Lnzy9HGcOCqdrftrALj9ifUU7aqMcFTSmWk5meyuOEL1EQ20E5HYpQTfhTiPccYJw9qOG5taWF1cHsGIpCttO8vtVS1eRGKXEnw3LCwYTXK8hziDhHgP8yYMjXRI0onWBL9BzfQiEsPUB98Ns/O9LPn0PFYXlzNvwlBm53sjHZJ0Iis1kbzsFO0NLyIxTQm+m2bne5XYB5HCnCw27NHWsSISu9REL1FpWk4mJRX1VB1piHQoIiIRoQQvUaltoN2ewxGOREQkMpTgJSq1DbRTM72IxCgleIlKmakJjM1O1UA7EYlZISV4M7vfzLaY2QYze8bMsjoot8DMtprZdjO7K+C8mdn3zew9M9tsZreFEo9IoAJtHSsiMSzUGvyLwDTnXCHwHvD19gXMLA54GLgImApca2ZT/Zc/CeQBU5xzJwFLQ4xHpE2Bf6BdZZ0G2olI7AkpwTvnXnDONfkPVwO5QYrNBbY754qdcw34kvjl/mufBb7jnGvx3+9gKPGIBNKKdiISy8LZB38TsCLI+RygJOC41H8OYCLwMTNbZ2YrzGxSRzc3s1v85daVlZWFLWiJXm1bx2pFOxGJQV0meDNbaWabgvxcHlDmbqAJWBLsFkHOOf//JgFHnXNzgF8Av+ooDufcz51zc5xzc4YPH95V2CJkpiaQP1QD7UQkNnW5kp1z7rzOrpvZDcAlwLnOORekSCm+fvZWucDegGtP+X9/Bvh1V/GI9ERBTibrSzRVTkRiT6ij6BcAXwMuc84d6aDYWmCSmY03s0TgGuAv/mt/Bs7x/342voF6ImFTkJNJaaUG2olI7Am1D/4hIB140czWm9kjAGY2xsyWA/gH4X0BeB7YDDzhnHvH//rFwEfNbCNwH3BziPGIHKd1oJ2my4lIrAlpsxnn3AkdnN8LLAw4Xg4sD1KuCrg4lBhEOnNyQII/a7LGbohI7NBKdhLVMlMSGDc0lY0aSS8iMUYJXqJeQW6WmuhFJOYowUvUK8jJYE9VPRUaaCciMUQJXqLeNA20E5EYpAQvUa8twZdqPryIxA4leIl6GckJjB82RDV4EYkpSvASEwpyMtm053CkwxAR6TdK8BITCnIy2VNVT3ntsUiHIiLSL5TgJSZooJ2IxBoleIkJ03IyALSznIjEDCV4iQnpyQlMGDZEe8OLSMxQgpeYUZCbqRq8iMQMJXiJGQU5meytPsohDbQTkRigBC8xQwPtRCSWKMFLzDh5TAZmsEn98CISA5TgJWak+1e02xDDNfiiXZU8vGo7Rbsq+/W1ItL/4iMdgEh/KsjJZM37FZEOIyKKdlVy7S9W09DUgsdg7vhsvKmJ3Xpt5ZEG1rxfgXOQGO/hsU/PY3a+t48jFpFQKMFLTCnIyeTZ9XspqznG8PSkSIfTr1YXl9PQ1AJAi4PtB2vJHtK9BF9R10CL8/1+rKmFX7xazMy8WXg81lfhikiIlOAlphT4B9pt2lPN/CkjIhxN/5o8Ih0AA5ISPPzfojndroUX7arkukd9tX8H/G3Tfq7+vzf4zuUnc/KYzL4LWkR6TQleYsrJOZmY+UbSx1qC33rAt9nOzWeOZ8G00T1qYp+d72XJzfNYXVzOqeOzef9QHYtXbOHSn77GJ04bx5cvmExGckJfhS4ivaAELzElLSk+Jle0a2lxPL6uhNMnDuXui6f26h6z871tXwrmjMvmgqmj+PELW/ntGzt5bsM+/mvhFK6cmYOZmu1FBgKNopeY49s6NrYS/BvF5ZRU1POxU/LCds/M1AS+e8U0/vL5M8jxpvDlJ97mYz9fzdb9NWF7hoj0nhK8xJyC3Cz2Hz7KwZqjkQ6l3yxdW0JmSgIXnjwq7PcuyM3kmc+ezn0fKeC9AzUsfPBVvvfcu9Qeawr7s0Sk+5TgJeYEDrSLBZV1DTy/aT9XzswhOSGuT57h8RjXzh3Lqq98mP+Yk8svX3+fc3/yMn95ey/OuT55poh0TgleYk7rinYbSw9HOpR+8ef1e2hobglr83xHvEMSue8jhTz92dMZnp7EbX98i+sefZO/rN+jRXJE+pkG2UnMGZIUz8ThaWzcUxXpUPqcc46la0qYnpvJSaMz+u25M8d6efbzZ/DYmt3ct3wz/9xR3jY9b8nNWiRHpD+oBi8xqSAnMyY2nXm7tJqtB2r4j36ovbcX5zEWzcvnxg+NA8ABDU0trC4u7/dYRGKRErzEpIKcTA4cPsbBw9E90O7xtSWkJMRx2fQxEYvhnCkjSYr3/VPjgFPHZ0csFpFYogQvMakgN/q3jq071sRf1u/h4sLRpEdwEZrZ+V4e+/Q8FkwbhXOws/xIxGIRiSVK8BKTpo7OwGPRneCXbdxHXUNzvwyu68rsfC//+/FZzBqbxX3LN1Nd3xjpkESiXsgJ3szuN7MtZrbBzJ4xs6wOyi0ws61mtt3M7go4f66Z/cvM1pvZa2Z2QqgxiXSlbaBdFK9o9/jaEiYMH8KcATKgzeMxvnP5NCqPNPD/Xtga6XBEol44avAvAtOcc4XAe8DX2xcwszjgYeAiYCpwrZm1rpf5M+A659wM4DHgG2GISaRL0TzQbvvBGop2VXLNKXkDaunYaTmZLJqXz+9X74qZdQhEIiXkBO+ce8E517pk1WogN0ixucB251yxc64BWApc3noLoHX+TiawN9SYRLqjIDeTgzXHOBCFA+0eX1tCvMf4yKxg/zlG1pcvOBFvaiLffHYTLS1aBEekr4S7D/4mYEWQ8zlAScBxqf8cwM3AcjMrBRYBi4Pd2MxuMbN1ZraurKwsjCFLrGpd0S7amukbmlp46l97OO+kkQxLG3h73memJPD1hSfx1u4qniwqjXQ4IlGrWwnezFaa2aYgP5cHlLkbaAKWBLtFkHOtX91vBxY653KBXwP/L1gMzrmfO+fmOOfmDB8+vDthi3Rq6pjoHGi3cvMBKuoa+NjcyA+u68hHZ+Vwyjgvi/+2haojDZEORyQqdSvBO+fOc85NC/LzLICZ3QBcgq8vPVibWykQ+K9NLrDXzIYD051zb/rPPw6c3ut3I9IDqYnxnDAiLeoS/ONrSxidmcxZkwbuF2Ez34C76vpGfqwBdyJ9Ihyj6BcAXwMuc851NMF1LTDJzMabWSJwDfAXoBLINLPJ/nLnA5tDjUmku6ZF2UC7PVX1vLKtjKvn5BHnGTiD64I5aXQGnzgtnyVv7o66bhKRgSAcffAPfyCxiQAAEp1JREFUAenAi/6pbo8AmNkYM1sO4B+E9wXgeXwJ/Ann3Dv+858GnjKzt/H1wd8RhphEuqUwJ5OyKBpo96d1vqEuV88eeIPrgrn9/MkMHZLENzTgTiTswjGK/gTnXJ5zbob/51b/+b3OuYUB5ZY75yY75yY6574fcP4Z51yBc266c+7DzrniUGMS6a7WFe0Wr9gy6Hc6a25x/GldKWecMIy87NRIh9MtGckJ3H3xFN4uqeLxdSVdv0BEuk0r2UlMO9bYAsAzb+3hukdXD+ok//r2Q+ypqh8QK9f1xBUzcpg7Lpsf/m0LlXUacCcSLkrwEtPeKvn3lrGDfaezx9eW4E1N4PypIyMdSo+YGd+54mRqjjbxo+c14E4kXJTgJabNmzC0baez1uPBqLz2GC+8u58rZ+aSFB8X6XB6bMqoDG48fRxL1+5mfcCXLhHpPSV4iWmtO52dOWkYLc7Xjz0YPfPWHhqb3aBrng/0xfMmMTwtiXue3TRoPweRgUQJXmLe7HwvP180h1EZyXx/2buDbjS3c47H15Ywc2wWJ45Kj3Q4vZaenMDdF5/EhtJq/rhmd6TDERn0lOBFgJTEOL564Ym8XVrNcxv3RTqcHvnX7iq2HazlY3MGb+291WXTxzBvQjb3P7+V8tpjkQ5HZFBTghfxu3JmDieNzuBHf9vCsabmSIfTbY+v3U1qYhyXTB8T6VBC1rrCXd2xJn70Nw24EwmFEryIX5zH+K+FUyitrOf3b+yKdDjdUnusiec27OPSwjGkJcVHOpywmDwynZvOGM/j60r41+7BO21RJNKU4EUCnDlpOGdPHs6DL20bFJugPPf2Xo40NA/ojWV647ZzJzEyI4lv/lkD7kR6SwlepJ2vL5xC7bEmHvr79kiH0qWla0uYNCKNmXlZkQ4lrNKS4vnGxVN5Z+9hHntzcLSmiAw0SvAi7UwZlcFVs3P53Ru72F3e0f5Jkbd1fw3rS6r42Cl5mA3sjWV645LC0XzohKHct2IL9z8/+JcSFulvSvAiQXz5/BOJ8xg/en5LpEPp0ONrS0iIMz4ya3BsLNNTZsbH5uRxpKGZh1ft4Jqfv8Ga9wfvSoMi/U0JXiSIUZnJfPrM8Ty3Yd+AXFntWFMzT79VygUnjyJ7SGKkw+kzJZX1/7+9Ow+ysjrzOP799QIYIdjsGExLs4kokKFjWo2EFlS0UEwmWFmLiXFLNJuTTHTMbiqxgk4mFWMScYzOlMuQjFtcQYKiJghNJOw7atgXFRFEaPqZP+6L3GAvt2m63+7bv09V1333+/SpU/30e97znsPBton9B4LL/7uKu15Yx+53qlONy6wtcII3q8MVHxtAj84d+Mljy4hoXR29pi/Zwht79ufFu+/1qSjrTsfiAgoFxYWiT9dj+MEfl3LGTX9iylPL2Zon0/yaNYf8eK/GrBl07ljE18cN5jsPLWb60i2cN6xP2iEBMP+V17n5qRX06NyBjw7skXY4zWpUaQn3XFbBnLU7qCjrzqjSEua/8hpTZ6/jtmfWMHX2Oi7+0PFcdlYZg3u33VH8zJqDWtudSS7Ky8ujqqoq7TCsHag+UMN5/zmbCHjqG6MpLky30Wvuuh187o4X2XcgKCoQ/3vl6YwqLUk1prS8vH03d76wjmlVf2fv/hoqh/Tk8tFlnF7WPS87HVr7Jml+RJQ35hw30ZvVo6iwgOvPH8ra7bu5P6Xx0Xfu2c/DCzbw1fte4vP/NZd9BzL/lNdEtOnpbZvqxB7H8qOJp/CX68byr+cMZtGGnXxm6otceOvzPLxgA/sP1KQdolmqfAdv1oCI4FO3z2H11rd45ltj6NKpuNm/8+Xtu3l62RZmLtvK3Jdf40BN0P3YDozo15XnVm+npiYoLirgnssq2u0d/OH27j/AQy9tYOpza1mzbTfHd+3EucN6U/K+Dnx0UE+Xk7VpR3IH7wRvloOF69/goltf4OrKAXzrvJOO+vUP1AR/ffV1nl62haeXbmHNtt0ADOndhbFDezF2aG9GnnAchQVi/iuv/8MzaftHNTXBrBVbuWX6CpZu2gVAp2L/M2Rt25EkeHeyM8vB8H7HMXHk8dzx3Do+V1FK367HNPmaz63axu+r1rPz7X0sXL+T1/fsp6hAVJR153MVpYwb2psTur3vPeeNKi1xoqpHQYEYO7Q3yzfvYtmmFQSwr7qGOWt3uNysXXGCN8vRN88dwhOLNnPzUyu55ZIRR3ydVVt28dMnlvGn5dve3TZ6cA8uKT+B0YN78v4WeATQHhx8xW7v/hpqAob2dS97a1/cyc4sRyd0ex9fOPNEHnhpPUs27mzUuRHBn9ds5wu/m8s5P5/N7JXb391XKPhI/+5MGH68k/tRdPAVu0vPPJGiAvGH+evTDsmsRTnBmzXClysH0vWYYn76+PKcBr/Zf6CGhxds4MJbn+czU19k4fqdXHvOYKZOLqfTwQFcigqoKOveAtG3P6NKS/jehcO49tzBPL5oM48t3JR2SGYtxk30Zo3Q9ZhivnL2IG58dCnPrtzGmCG9aj3urXequX/uq/zuhZfZ8MbblPU8lp9+4lQ+/qEP0Km4EOA9A7hY87nirDKeXLyZ7z28mIqybnTv3DHtkMyanXvRmzXSvuoaxv3HsxxTXMjjXzuLwoJDg6ps3rmX3/15Hfe++Cq79lZzWv9uXHFWGWef1IuCAg++kqYVm3cx4ZfPcd6wPtz6mX9KOxyzRnEverMW0KGogG+PP4mr7/0rt0xfzrEdi+nbtRPPr97OIws2UhPB+af25fKzyhiZZ/O0t2VD+nThq2cP4pYZK5kwfBPjT+mbdkhmzcoJ3uwIXHBqHwb37sxtz6x9d1vHogI+f3opl57Zv9bX2yx9V40ZwJNLNvOdhxbzkf7dKcnjmfjM3MnO7AhIory026F14MrRZXz/wmFO7q1YcWEBUz45gjf27OeHf1ySdjhmzcoJ3uwI/fOofnQsyvSE71hcwMfq6HBnrcvJx7+fa84eyEMLNjJ9yea0wzFrNk1K8JKmSFouaaGkByXV+sBR0p2StkpafNj2bpJmSFqVfLorsbUZo0pLuPfyCq49d4iHQW1jvjxmICf16cINDy3mjT370g7HrFk09Q5+BnBKRAwHVgLX13HcXcD4WrZfB8yMiEHAzGTdrM0YVVrC1ZUDndzbmA5FBdw8aQSv7d7Hjx5dmnY4Zs2iSQk+IqZHRHWyOgfoV8dxs4HXatk1Ebg7Wb4buLgp8ZiZ5eqUD3Tl6jEDeOCvG/jT8i1ph2N21B3NZ/CXAk808pzeEbEJIPn0Q0wzazHXnD2IIb27cP0Di9j59v60wzE7qhpM8JKelrS4lp+JWcfcAFQD9zRXoJKukFQlqWrbtm0Nn2Bm1oAORQVMmTSc7W/t48duqrc80+B78BExrr79kiYDE4Cx0fhh8bZI6hsRmyT1BbbWE8ftwO2QGcmukd9jZlar4f2O48rRZdz2zBouGN6XSr8NYXmiqb3oxwPfBi6KiD1HcIlHgMnJ8mTg4abEY2Z2JL42bhCDenXm3x9YxJt73VRv+aGpz+BvBboAMyQtkPQbAEnHS3r84EGS7gP+AgyRtF7SF5NdNwHnSFoFnJOsm5m1qI5FhUyZNIItb+7lJ48ta/wFfvYzmDWr/mNmzcocZ9ZCmjRUbUQMrGP7RuCCrPVP13HcDmBsU2IwMzsaRp5wHJePLuO3z67lglP7Mnpwz9xP/vCH4ZJLYNo0qKx87/5Zsw7tN2shHsnOzCzxjXGDKet5LNc/sIhdjWmqr6zMJO9LLnnvnXx2cq8t+Zs1Eyd4M7NEp+JCpnxyBBt3vs210/7Gr2atZv4rr+d2cm1J3sndUuTZ5MzMsowqLWHCqX3548JNzFy2hQ5FBbkPRZyd5L/0Jfj1r53cLTW+gzczO8zAXp0BqAnYX13DnLU7cj+5sjKT3G+8MfPp5G4pcYI3MzvMRwf1pFNxZqbA4qICKsq6537yrFmZO/fvfjfz2VDverNm4iZ6M7PDjCot4Z7LKpizdgcVZd1zn0zo8GfulZV+Bm+pcYI3M6vFqNKSxs0SWFuHuuxn8k7y1sLcRG9m1lT19Zav7xU6s2bkBG9m1lTz5tV/h34wyc+b17JxWbumxs8Pk77y8vKoqqpKOwwzM7MWIWl+RJQ35hzfwZuZmeUhJ3gzM7M85ARvZmaWh5zgzczM8pATvJmZWR5ygjczM8tDTvBmZmZ5yAnezMwsD7XJgW4k7QJWpB1HG9AD2J52EG2Eyyo3Lqfcuaxy43LKzZCI6NKYE9rqZDMrGjuiT3skqcrllBuXVW5cTrlzWeXG5ZQbSY0evtVN9GZmZnnICd7MzCwPtdUEf3vaAbQRLqfcuaxy43LKncsqNy6n3DS6nNpkJzszMzOrX1u9gzczM7N6tKkEL2mKpOWSFkp6UNJxWfuul7Ra0gpJ56UZZ9okTZK0RFKNpPKs7SdKelvSguTnN2nGmba6yinZ5/pUB0k/kLQhqx5dkHZMrYmk8Um9WS3purTjac0kvSxpUVKPGt1LPF9JulPSVkmLs7Z1kzRD0qrks6Sh67SpBA/MAE6JiOHASuB6AEknA58ChgHjgdskFaYWZfoWA58AZteyb01EjEx+rmrhuFqbWsvJ9SknP8+qR4+nHUxrkdSTXwHnAycDn07qk9WtMqlHflXukLvI/O3Jdh0wMyIGATOT9Xq1qQQfEdMjojpZnQP0S5YnAvdHxDsRsQ5YDZyWRoytQUQsiwgPBNSAesrJ9cmO1GnA6ohYGxH7gPvJ1CeznEXEbOC1wzZPBO5Olu8GLm7oOm0qwR/mUuCJZPkDwN+z9q1Pttl79Zf0kqRnJZ2VdjCtlOtTw65JHpXdmUtTYTviutM4AUyXNF/SFWkH08r1johNAMlnr4ZOaHUj2Ul6GuhTy64bIuLh5JgbgGrgnoOn1XJ8Xr8ekEs51WIT8MGI2CFpFPCQpGER8WazBZqyIyyndlefDldfuQG/Bm4kUyY3AreQ+YfbXHca68yI2CipFzBD0vLk7tWOglaX4CNiXH37JU0GJgBj49A7fuuBE7IO6wdsbJ4IW4eGyqmOc94B3kmW50taAwwG8rZzy5GUE+2wPh0u13KTNBV4tJnDaUvafd1pjIjYmHxulfQgmUccTvC12yKpb0RsktQX2NrQCW2qiV7SeODbwEURsSdr1yPApyR1lNQfGATMTSPG1kxSz4OdxSSVkSmntelG1Sq5PtUj+eNy0MfJdFa0jHnAIEn9JXUg01nzkZRjapUkHSupy8Fl4Fxcl+rzCDA5WZ4M1NUC+a5WdwffgFuBjmSacgDmRMRVEbFE0jRgKZmm+6sj4kCKcaZK0seBXwI9gcckLYiI84DRwI8kVQMHgKsi4vCOHO1GXeXk+tSgn0kaSabp+WXgynTDaT0iolrSNcBTQCFwZ0QsSTms1qo38GDyt7wIuDcinkw3pNZB0n3AGKCHpPXA94GbgGmSvgi8Ckxq8Doeyc7MzCz/tKkmejMzM8uNE7yZmVkecoI3MzPLQ07wZmZmecgJ3szMLA+1tdfkzKwOkrqTmYQCMqPQHQC2Jet7IuKMZvjOCWRGsysAioFfRMRvJV0MrIyIpUf7O80sN35NziwPSfoB8FZE3NyM31EMvAKcFhHrJXUEToyIFZLuAh6NiD801/ebWf3cRG/WDkh6K/kck0w0NE3SSkk3SfqspLnJvNwDkuN6Svo/SfOSnzNruWwXMq2AOyAzFHKS3M8ALgKmJPN8D0h+nkwmFXlO0knJ99wl6TfJtpVJi4CZHQVuojdrf0YAQ8lMR7kWuCMiTpP0NeArwNeBX5CZ8/15SR8kMzLb0OyLRMRrkh4BXpE0k8yY9PdFxJ+T7e/ewSf7r4qIVZI+AtwGnJ1c6kTgY8AAYJakgRGxtzkLwKw9cII3a3/mHZx2MplwaHqyfRFQmSyPA05OhhEFeL+kLhGxK/tCEXGZpFOT478JnAP8S/YxkjoDZwC/z7pex6xDpkVEDbBK0lrgJGBBU39Js/bOCd6s/Xkna7kma72GQ38TCoDTI+Lt7BMlPUVmDPGqiLgMICIWAYsk/Q+wjsMSfHKtNyJiZB3xHN4RyB2DzI4CP4M3s9pMB645uJJMLkMyGc/I5M69s6QxWeeMJNPpDmAXmWf0RMSbwDpJk5JrSdKIrPMmSSpInv+XASua65cya0+c4M2sNl8FyiUtlLQUuKqWYwT8m6QVkhYAP+TQ3fv9wLckvZQk7s8CX5T0N2AJMDHrOiuAZ4EnyDyn9/N3s6PAr8mZWWr8Op1Z8/EdvJmZWR7yHbyZmVke8h28mZlZHnKCNzMzy0NO8GZmZnnICd7MzCwPOcGbmZnlISd4MzOzPPT/x5km9iHV8o8AAAAASUVORK5CYII=\n",
"text/plain": [
"<Figure size 576x432 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"show_plot([x_train_uni[0], y_train_uni[0], baseline(x_train_uni[0])], 0,\n",
" 'Baseline Prediction Example')"
]
},
{
"cell_type": "markdown",
"metadata": {
"colab_type": "text",
"id": "067m6t8cMakb"
},
"source": [
"Let's see if you can beat this baseline using a recurrent neural network."
]
},
{
"cell_type": "markdown",
"metadata": {
"colab_type": "text",
"id": "H4crpOcoMlSe"
},
"source": [
"### Recurrent neural network\n",
"\n",
"A Recurrent Neural Network (RNN) is a type of neural network well-suited to time series data. RNNs process a time series step-by-step, maintaining an internal state summarizing the information they've seen so far. For more details, read the [RNN tutorial](https://www.tensorflow.org/tutorials/sequences/recurrent). In this tutorial, you will use a specialized RNN layer called Long Short Term Memory ([LSTM](https://www.tensorflow.org/versions/r2.0/api_docs/python/tf/keras/layers/LSTM))\n",
"\n",
"Let's now use `tf.data` to shuffle, batch, and cache the dataset."
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"colab": {},
"colab_type": "code",
"id": "kk-evkrmMWh9"
},
"outputs": [],
"source": [
"BATCH_SIZE = 256\n",
"BUFFER_SIZE = 10000\n",
"\n",
"train_univariate = tf.data.Dataset.from_tensor_slices((x_train_uni, y_train_uni))\n",
"train_univariate = train_univariate.cache().shuffle(BUFFER_SIZE).batch(BATCH_SIZE).repeat()\n",
"\n",
"val_univariate = tf.data.Dataset.from_tensor_slices((x_val_uni, y_val_uni))\n",
"val_univariate = val_univariate.batch(BATCH_SIZE).repeat()"
]
},
{
"cell_type": "markdown",
"metadata": {
"colab_type": "text",
"id": "n2AmKkyVS5Ht"
},
"source": [
"The following visualisation should help you understand how the data is represented after batching.\n",
"\n",
"![Time Series](images/time_series.png)"
]
},
{
"cell_type": "markdown",
"metadata": {
"colab_type": "text",
"id": "4nagdTRNfPuZ"
},
"source": [
"You will see the LSTM requires the input shape of the data it is being given."
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {
"colab": {},
"colab_type": "code",
"id": "IDbpHosCMWZO"
},
"outputs": [],
"source": [
"simple_lstm_model = tf.keras.models.Sequential([\n",
" tf.keras.layers.LSTM(8, input_shape=x_train_uni.shape[-2:]),\n",
" tf.keras.layers.Dense(1)\n",
"])\n",
"\n",
"simple_lstm_model.compile(optimizer='adam', loss='mae')"
]
},
{
"cell_type": "markdown",
"metadata": {
"colab_type": "text",
"id": "n2AmKkyVS5Ht"
},
"source": [
"here is my code"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Train for 200 steps, validate for 50 steps\n",
"Epoch 1/10\n",
"200/200 [==============================] - 4s 18ms/step - loss: 0.4075 - val_loss: 0.1351\n",
"Epoch 2/10\n",
"200/200 [==============================] - 1s 3ms/step - loss: 0.1118 - val_loss: 0.0360\n",
"Epoch 3/10\n",
"200/200 [==============================] - 1s 3ms/step - loss: 0.0490 - val_loss: 0.0289\n",
"Epoch 4/10\n",
"200/200 [==============================] - 1s 3ms/step - loss: 0.0444 - val_loss: 0.0257\n",
"Epoch 5/10\n",
"200/200 [==============================] - 1s 3ms/step - loss: 0.0299 - val_loss: 0.0235\n",
"Epoch 6/10\n",
"200/200 [==============================] - 1s 4ms/step - loss: 0.0317 - val_loss: 0.0224\n",
"Epoch 7/10\n",
"200/200 [==============================] - 1s 4ms/step - loss: 0.0287 - val_loss: 0.0206\n",
"Epoch 8/10\n",
"200/200 [==============================] - 1s 3ms/step - loss: 0.0263 - val_loss: 0.0200\n",
"Epoch 9/10\n",
"200/200 [==============================] - 1s 3ms/step - loss: 0.0254 - val_loss: 0.0182\n",
"Epoch 10/10\n",
"200/200 [==============================] - 1s 3ms/step - loss: 0.0228 - val_loss: 0.0173\n"
]
},
{
"data": {
"text/plain": [
"<tensorflow.python.keras.callbacks.History at 0x2c606321e48>"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"EVALUATION_INTERVAL = 200\n",
"EPOCHS = 10\n",
"\n",
"simple_lstm_model.fit(train_univariate, epochs=EPOCHS,\n",
" steps_per_epoch=EVALUATION_INTERVAL,\n",
" validation_data=val_univariate, validation_steps=50)"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [],
"source": [
"model = simple_lstm_model"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [],
"source": [
"y = y_val_uni"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [],
"source": [
"a = y[-20:]"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [],
"source": [
"tmp = model.predict(a.reshape(-1, 20, 1))"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [],
"source": [
"for i in range(100):\n",
" tmp = model.predict(a.reshape(-1, 20, 1)) #predict a new value n times.\n",
" a = a[1:] #remove first \n",
" a = np.append(a, tmp) #insert predicted value"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x2c626d04208>]"
]
},
"execution_count": 30,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 576x432 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.plot(a)"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x2c626c56ef0>]"
]
},
"execution_count": 31,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 576x432 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.plot(y[-100:])"
]
}
],
"metadata": {
"accelerator": "GPU",
"colab": {
"collapsed_sections": [],
"name": "time_series.ipynb",
"private_outputs": true,
"toc_visible": true
},
"kernelspec": {
"display_name": "me2",
"language": "python",
"name": "me2"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.10"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment