Skip to content

Instantly share code, notes, and snippets.

@ZhipengHe
Created May 3, 2024 06:14
Show Gist options
  • Save ZhipengHe/6daa3ee17381a0dc2388df0c40ba03e7 to your computer and use it in GitHub Desktop.
Save ZhipengHe/6daa3ee17381a0dc2388df0c40ba03e7 to your computer and use it in GitHub Desktop.
LSTM Autoencoder.ipynb
Display the source blob
Display the rendered blob
Raw
{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"provenance": [],
"toc_visible": true,
"gpuType": "T4",
"mount_file_id": "1g47n-xhphw8m5_nT9HMdnZ-p1xMCPtpX",
"authorship_tag": "ABX9TyMKh2u5UwNPInA65juJpENP",
"include_colab_link": true
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3"
},
"language_info": {
"name": "python"
},
"accelerator": "GPU"
},
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "view-in-github",
"colab_type": "text"
},
"source": [
"<a href=\"https://colab.research.google.com/gist/ZhipengHe/6daa3ee17381a0dc2388df0c40ba03e7/lstm-autoencoder.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
]
},
{
"cell_type": "markdown",
"source": [
"## Preprocessing data"
],
"metadata": {
"id": "p2zF-r8i2cwa"
}
},
{
"cell_type": "code",
"source": [
"from google.colab import drive\n",
"\n",
"drive.mount('/content/drive')"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "yMGyX_vwyns8",
"outputId": "209faa12-b4dc-4181-bcff-ad72f4b7e2e1"
},
"execution_count": 1,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Drive already mounted at /content/drive; to attempt to forcibly remount, call drive.mount(\"/content/drive\", force_remount=True).\n"
]
}
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"id": "cfomMlZ8wqbL"
},
"outputs": [],
"source": [
"import numpy as np\n",
"import pandas as pd\n",
"import seaborn as sns\n",
"sns.set(color_codes=True)\n",
"import matplotlib.pyplot as plt\n",
"%matplotlib inline\n",
"\n",
"# Parameters\n",
"dataDir = '/content/drive/MyDrive/Data/ECG/'\n",
"trainData = f'{dataDir}train_data.npz'\n",
"testData = f'{dataDir}test_data.npz'\n",
"\n",
"FS = 300 # Sampling rate: 300 Hz\n",
"WINDOW_SIZE = 9*FS # max 60 seconds"
]
},
{
"cell_type": "code",
"source": [
"import tensorflow as tf\n",
"from tensorflow.keras.models import Sequential\n",
"from tensorflow.keras.layers import LSTM, RepeatVector, TimeDistributed, Dense, Flatten"
],
"metadata": {
"id": "SHkHpqWHxMLz"
},
"execution_count": 3,
"outputs": []
},
{
"cell_type": "code",
"source": [
"print(tf.config.list_physical_devices('GPU'))"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "CE0DAGKZzB3X",
"outputId": "433e5930-cdfc-4c54-fa97-d1b35b556137"
},
"execution_count": 4,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"[PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')]\n"
]
}
]
},
{
"cell_type": "code",
"source": [
"# Load data from .npz files\n",
"train_npz = np.load(trainData)\n",
"train_names, train_data, train_labels = train_npz['name'], train_npz['data'], train_npz['label']\n",
"\n",
"test_npz = np.load(testData)\n",
"test_names, test_data, test_labels = test_npz['name'], test_npz['data'], test_npz['label']"
],
"metadata": {
"id": "4Dimm8PmxNNL"
},
"execution_count": 5,
"outputs": []
},
{
"cell_type": "markdown",
"source": [
"Data are preprocessed by:\n",
"```python\n",
"# Preprocess data\n",
"data = np.nan_to_num(data) # removing NaNs and Infs\n",
"data = data - np.mean(data)\n",
"data = data/np.std(data)\n",
"```"
],
"metadata": {
"id": "pVObTFhdEAAh"
}
},
{
"cell_type": "code",
"source": [
"X_train = train_data[:, : WINDOW_SIZE]\n",
"y_train = train_labels\n",
"X_test = test_data[:, : WINDOW_SIZE]\n",
"y_test = test_labels\n",
"\n",
"# Convert labels to binary (0 for normal, 1 for anomaly)\n",
"y_train_binary = np.where(y_train == 'normal', 0, 1) # only normal in training data\n",
"y_test_binary = np.where(y_test == 'normal', 0, 1)\n"
],
"metadata": {
"id": "ylIi8K2eyI77"
},
"execution_count": 6,
"outputs": []
},
{
"cell_type": "code",
"source": [
"from sklearn.preprocessing import MinMaxScaler\n",
"scaler = MinMaxScaler()\n",
"# scaler fit both training and testing data\n",
"combined_data = np.concatenate([X_train, X_test])\n",
"scaler.fit(combined_data)\n",
"X_train_scalered = scaler.transform(X_train)\n",
"y_train_scalered = scaler.transform(X_test)\n"
],
"metadata": {
"id": "HSpxYCGz3Z9b"
},
"execution_count": 7,
"outputs": []
},
{
"cell_type": "markdown",
"source": [
"## Build Models"
],
"metadata": {
"id": "2XC_ZzI6ySeM"
}
},
{
"cell_type": "code",
"source": [
"input_shape = (X_train_scalered.shape[1], 1)"
],
"metadata": {
"id": "rJJtl6aZyPvU"
},
"execution_count": 8,
"outputs": []
},
{
"cell_type": "code",
"source": [
"input_shape"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "7d40GMNW5H-p",
"outputId": "3ef652d6-7413-4b20-b866-8d766433c034"
},
"execution_count": 9,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"(2700, 1)"
]
},
"metadata": {},
"execution_count": 9
}
]
},
{
"cell_type": "code",
"source": [
"model = Sequential()\n",
"model.add(LSTM(128, activation='relu', input_shape=input_shape, return_sequences=True))\n",
"model.add(LSTM(64, activation='relu', return_sequences=False))\n",
"model.add(RepeatVector(input_shape[0]))\n",
"model.add(LSTM(64, activation='relu', return_sequences=True))\n",
"model.add(LSTM(128, activation='relu', return_sequences=True))\n",
"model.add(TimeDistributed(Dense(input_shape[1])))"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "1SX09TlWyRuY",
"outputId": "389821d3-f5a0-4e14-e38b-81b8f783d89e"
},
"execution_count": 10,
"outputs": [
{
"output_type": "stream",
"name": "stderr",
"text": [
"WARNING:tensorflow:Layer lstm will not use cuDNN kernels since it doesn't meet the criteria. It will use a generic GPU kernel as fallback when running on GPU.\n",
"WARNING:tensorflow:Layer lstm_1 will not use cuDNN kernels since it doesn't meet the criteria. It will use a generic GPU kernel as fallback when running on GPU.\n",
"WARNING:tensorflow:Layer lstm_2 will not use cuDNN kernels since it doesn't meet the criteria. It will use a generic GPU kernel as fallback when running on GPU.\n",
"WARNING:tensorflow:Layer lstm_3 will not use cuDNN kernels since it doesn't meet the criteria. It will use a generic GPU kernel as fallback when running on GPU.\n"
]
}
]
},
{
"cell_type": "code",
"source": [
"opt = tf.keras.optimizers.Adam(learning_rate=0.001)\n",
"model.compile(optimizer=opt, loss='mae')\n",
"\n",
"model.summary()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "z8y9XRtLyVeN",
"outputId": "3be836e2-5ea6-4849-a749-4c18f3934040"
},
"execution_count": 11,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Model: \"sequential\"\n",
"_________________________________________________________________\n",
" Layer (type) Output Shape Param # \n",
"=================================================================\n",
" lstm (LSTM) (None, 2700, 128) 66560 \n",
" \n",
" lstm_1 (LSTM) (None, 64) 49408 \n",
" \n",
" repeat_vector (RepeatVecto (None, 2700, 64) 0 \n",
" r) \n",
" \n",
" lstm_2 (LSTM) (None, 2700, 64) 33024 \n",
" \n",
" lstm_3 (LSTM) (None, 2700, 128) 98816 \n",
" \n",
" time_distributed (TimeDist (None, 2700, 1) 129 \n",
" ributed) \n",
" \n",
"=================================================================\n",
"Total params: 247937 (968.50 KB)\n",
"Trainable params: 247937 (968.50 KB)\n",
"Non-trainable params: 0 (0.00 Byte)\n",
"_________________________________________________________________\n"
]
}
]
},
{
"cell_type": "code",
"source": [
"history = model.fit(X_train_scalered[:100], X_train_scalered[:100], epochs=20, batch_size=32, validation_split=0.1).history"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "8wOnvQasyWbV",
"outputId": "52929c25-2100-47e1-911d-db414cbb96a9"
},
"execution_count": 12,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Epoch 1/20\n",
"3/3 [==============================] - 65s 16s/step - loss: 0.4781 - val_loss: 0.4389\n",
"Epoch 2/20\n",
"3/3 [==============================] - 50s 17s/step - loss: 0.4065 - val_loss: 0.3106\n",
"Epoch 3/20\n",
"3/3 [==============================] - 49s 17s/step - loss: 0.2230 - val_loss: 0.1606\n",
"Epoch 4/20\n",
"3/3 [==============================] - 47s 16s/step - loss: 0.1394 - val_loss: 0.0824\n",
"Epoch 5/20\n",
"3/3 [==============================] - 53s 17s/step - loss: 0.1014 - val_loss: 0.1171\n",
"Epoch 6/20\n",
"3/3 [==============================] - 49s 17s/step - loss: 0.1039 - val_loss: 0.0775\n",
"Epoch 7/20\n",
"3/3 [==============================] - 47s 16s/step - loss: 0.0887 - val_loss: 0.0919\n",
"Epoch 8/20\n",
"3/3 [==============================] - 49s 17s/step - loss: 0.0843 - val_loss: 0.0809\n",
"Epoch 9/20\n",
"3/3 [==============================] - 50s 18s/step - loss: 0.0841 - val_loss: 0.0828\n",
"Epoch 10/20\n",
"3/3 [==============================] - 47s 16s/step - loss: 0.0803 - val_loss: 0.0786\n",
"Epoch 11/20\n",
"3/3 [==============================] - 49s 17s/step - loss: 0.0806 - val_loss: 0.0787\n",
"Epoch 12/20\n",
"3/3 [==============================] - 48s 16s/step - loss: 0.0785 - val_loss: 0.0785\n",
"Epoch 13/20\n",
"3/3 [==============================] - 50s 17s/step - loss: 0.0792 - val_loss: 0.0775\n",
"Epoch 14/20\n",
"3/3 [==============================] - 61s 21s/step - loss: 0.0775 - val_loss: 0.0773\n",
"Epoch 15/20\n",
"3/3 [==============================] - 55s 20s/step - loss: 0.0782 - val_loss: 0.0770\n",
"Epoch 16/20\n",
"3/3 [==============================] - 52s 18s/step - loss: 0.0775 - val_loss: 0.0773\n",
"Epoch 17/20\n",
"3/3 [==============================] - 53s 19s/step - loss: 0.0778 - val_loss: 0.0767\n",
"Epoch 18/20\n",
"3/3 [==============================] - 50s 17s/step - loss: 0.0774 - val_loss: 0.0770\n",
"Epoch 19/20\n",
"3/3 [==============================] - 49s 17s/step - loss: 0.0775 - val_loss: 0.0766\n",
"Epoch 20/20\n",
"3/3 [==============================] - 48s 17s/step - loss: 0.0772 - val_loss: 0.0766\n"
]
}
]
},
{
"cell_type": "code",
"source": [
"# plot the training losses\n",
"fig, ax = plt.subplots(figsize=(14, 6), dpi=80)\n",
"ax.plot(history['loss'], 'b', label='Train', linewidth=2)\n",
"ax.plot(history['val_loss'], 'r', label='Validation', linewidth=2)\n",
"ax.set_title('Model loss', fontsize=16)\n",
"ax.set_ylabel('Loss (mae)')\n",
"ax.set_xlabel('Epoch')\n",
"ax.legend(loc='upper right')\n",
"plt.show()"
],
"metadata": {
"id": "ofl13e1cyayt",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 448
},
"outputId": "2d839cf8-07a3-49f4-ceb1-3e120adea123"
},
"execution_count": 13,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 1120x480 with 1 Axes>"
],
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA6sAAAG/CAYAAAC+OkEhAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAAxOAAAMTgF/d4wjAACFAklEQVR4nOzdd3yUVd7//9c1M5m0SUgIoZdQEzpRikqzgCgou8KKrooiiotrW1z3e1sXZfW397oFV917dV3LKpZVwK6IXaSjIAjBhBI6gZA2qZOZuX5/pEAgQEhmJleS9/PxyCMz13Wuc87kkwl85pzrHMM0TRMRERERERERC7E1dgdEREREREREjqdkVURERERERCxHyaqIiIiIiIhYjpJVERERERERsRwlqyIiIiIiImI5SlZFRERERETEcpSsioiIiIiIiOUoWRUREbGI6dOnc+GFF9b7+gsvvJDp06efttzixYtJTk5m9erV9W5LREQk2JSsioiIAKtXryY5OZnk5GT++te/1lpmw4YN1WUee+yxEPdQRESkZVGyKiIicozw8HDeffdd/H7/CecWL15MeHh4I/RKRESk5VGyKiIicoyLLrqIrKwsli9fXuN4WVkZH3/8MePGjWuknomIiLQsSlZFRESOMXjwYHr06MHbb79d4/hnn31GQUEBV1xxRa3Xeb1e/vWvf3HppZcyYMAAzjnnHH7zm9+QmZl5Qtn8/HwefPBBRowYwZAhQ5g+fTo//vjjSfv0ww8/MHv2bIYPH86AAQOYNGkSr7zyCqZpNui1Hm/Pnj3cc889nHfeeQwYMIAJEybw9NNP4/F4apTbt28f9957L+effz4DBgzgvPPO45prruGTTz6pLlNaWsrf//53JkyYwKBBgxg2bBiTJ0/mH//4R0D7LCIizZejsTsgIiJiNVdccQVPP/00brebmJgYoGIK8JAhQ+jevXut19xzzz18/PHHjB49mmuvvZaDBw/y6quvsnz5ct58883q68rLy7npppvYtGkTV1xxBYMGDSItLY0bb7yRuLi4E+r94osvuPPOO+nZsyc333wzLpeLVatW8eijj7J3717uu+++gLzmffv2MW3aNIqKirjmmmvo0qULK1as4KmnnmLTpk0888wzGIaB1+tl5syZuN1urr76ajp27EheXh5paWls2LCBCRMmAPDII4/w3nvvcdVVV5GSkkJZWRk7d+5k9erV3HbbbQHps4iING9KVkVERI7zs5/9jPnz5/Phhx9y9dVXk5WVxYoVK5g7d26t5ZcvX87HH3/MZZddxl/+8hcMwwBg3LhxXH311fzpT3/imWeeASqS3k2bNnHnnXfWSNp69uzJH//4Rzp16lR9rLS0lAceeIChQ4fy/PPPY7fbAbjmmmv44x//yMsvv8y1115L165dG/ya//a3v5GTk8Pzzz/PqFGjALj22muZO3cub7zxBkuXLmXChAls27aNzMxM5s+fz8SJE09a3+eff86VV17J73//+wb3TUREWiZNAxYRETlOu3btOO+886qnAr/77ruEhYUxadKkWst/+umnANx6663ViSrAkCFDOPfcc1m2bBmlpaVAxXTisLAwZsyYUaOOa665BpfLVePYihUryMnJ4YorriA/P5+cnJzqr7Fjx+L3+1m5cmWDX6/f7+eLL75g4MCB1YlqlV//+tc1XmPVSPOyZctwu90nrdPlcrFx40b27t3b4P6JiEjLpJFVERGRWkyZMoW7776bHTt28PbbbzNu3DhiYmLIz88/oezevXtxOBy1ThHu1asXK1as4MCBA3Tv3p09e/bQtm1boqOja5RzOp106dKFgoKC6mPbt28H4P/9v/930n5mZ2fX9yVWy8nJobi4mN69e59wrl27dsTExFQnnZ06dWL27Nk8++yzvP/++wwYMIBzzz2XSy+9lD59+lRfd//99/O73/2Oiy66iJ49e3LOOedw0UUXMXLkyAb3V0REWgYlqyIiIrUYN24csbGxzJs3jx07dnD//feHvA9VCyjdd999NRLBY3Xp0iWUXQJgzpw5TJ06la+++oq1a9fy8ssv88wzz3DPPfdw0003ARU/vy+++IKvv/6aNWvW8MUXX/Dqq68ybtw4nnrqKWw2Te4SEZFTU7IqIiJSi/DwcC699FL++9//0q5du1OOCHbp0oVly5aRmZlJz549a5zbvn07YWFhdOjQobrsypUrKSoqqjG66vF42LNnD61atao+1q1bNwCio6M577zzAvnyamjdujXR0dFs27bthHNZWVm43W46d+5c43jXrl25/vrruf766ykqKmL69OnMnz+f6dOn43Q6AYiPj+fnP/85P//5zzFNk4cffpg33niDtWvXMmLEiKC9HhERaR70saaIiMhJ3HDDDdx+++38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gPdcbd86itax4QBs0RY2IiIiIiKCklU5A61GVey56l67Bn9pScDqNQyjelVg3bcqIiIiIiKgZFXOQMyw4Rjh4ZhlZbjXrglo3QMq71vdujsXr88f0LpFRERERKTpqXOy6vf72bZtG+vWrWPbtm34/UooWhpbRCQxw4YDkP9tYPdc7dstHgMo9fjYsb8goHWLiIiIiEjT4zhdgc2bN/Piiy/y1VdfUVhYWH08Ojqa888/n5kzZ9K/f/+gdlKso9WoMRR8u4zS7dso27+f8I4dA1JvTJSTru1i2JXlZktmDn26xAWkXhERERERaZpOObJ63333MXv2bNq1a8fTTz/NypUr+fHHH1m5ciX/93//R4cOHZg9ezb33XdfqPorjSyiZy+c7TsAUBDghZb6da/cbzVT962KiIiIiLR0p0xW+/Tpw+eff87vfvc7zjnnHOLj43E4HMTHxzNixAjuuecePv/8c5KTk0PVX2lkhmEQO7piG5uClcsxvd6A1T2gcpGlHfsLKC4tD1i9IiIiIiLS9JwyWb3xxhtxOp2nrMDpdDJjxoxA9kksLvbckWC343O7KfxhQ8Dq7dU5DqfDhmlC2q68gNUrIiIiIiJNzxmtBlxYWMj777/Pc889B0B2djaHDx8OSsfEuhyxsbgGDQECOxU4zGGrvld1i6YCi4iIiIi0aHVOVtPS0rj44ot5+umn+b//+z8AtmzZwh/+8IegdU6sK3Z0xZ6rRT9uojwncIll9X6rSlZFRERERFq0Oier/9//9/9x22238cknn+BwVCwifNZZZ7Fhw4Zg9U0sLLr/QOxxcWCauNeuDli9VfutHsot4XBeScDqFRERERGRpqXOyWp6ejq//OUvgYpFdgBcLhdFRUXB6ZlYmmG3EzN0GACF69YGrN5OidG0iq64T1qjqyIiIiIiLVedk9XY2Fiys7NrHNu/fz9t2rQJeKekaYg5ezgApTt3UH4k+zSl68YwDPolVWxhs2WnklURERERkZaqzsnqpZdeyr333ktmZiYABw8e5A9/+AOXX355sPomFhfRs2fFVGCg8Lt1Aau36r7VtF25+P1mwOoVEREREZGmo87J6u23307btm255JJLKCgo4IILLsDhcHDLLbcEs39iYYbNRsxZQwFwB3AqcP/K+1aLSr1kHnQHrF4REREREWk6HHUt6HQ6+d///V/+53/+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901ERERERBpPnacBX3LJJdx2223MmTOHLl26sHv3bp588kkuvfTSOjcWGxvLk08+Weu59evXVz++/fbbuf32209az4033njaqcHSdMScPYyiHzZQ+MMG/OUebGH1mwqc3DUOu83A6/OTvjePAd0TAtxTEREREREJlTonq3fddRelpaXMmTOH0tJSwsPDmTp1KnfddVcw+yctQPSQIWC3Y5aVUvzjj7hSz6pXPZHhDnp0jCVjbz5bduYqWRURERERacLqPA3Y6XTy0EMPsX79elasWMGGDRt46KGH+O6774LZP2kB7FHRRFdOBXY3dCqw7lsVEREREWkW6pysVjEMg9atW2MYBuXl5cycOTMY/ZIWxnX2UACKfliPv7y83vVU3be693Ah+UWegPRNRERERERC74yT1ePVd7sYkWO5hpwFdjv+0lKKN/9Y73qSOsQQGV4xu31LpkZXRURERESaqgYnq4ZhBKIf0sLZo6OJ6tsfAPd39Z8KbLfZ6NstHoAtmgosIiIiItJkNThZFQmUmKGVU4E3NHAqcNV9q5k5GvkXEREREWmiTrsa8N///veTnvP7/QHtjLRsriFnkWX/D/6SEorTNuMaNKRe9fRPqhhZzS/0sD+7iE6Jdd8LWERERERErOG0yeq6detOeX5o5WiYSEPZXS6iUvpSvPlHCtetrXey2jY+ijatIsjOL2VzZq6SVRERERGRJui0yeorr7wSin6IABAzdFhFsrphPabXi+Go81bANfTv3pqvN+xnS2YOFw/rEuBeioiIiIhIsOmeVbEU15CzwGbDX1xMcdqWetdTtYXN1t25lHs1XV1EREREpKlRsiqWYo+JISqlLwDudfVfFbhvUjyGAZ5yP9v35QeqeyIiIiIiEiJKVsVyXEOHAVC4/ntMr7dedURHhJHUPhaAzdpvVURERESkyVGyKpbjSq2aClxE8da0etfTv3vlfqtKVkVEREREmhwlq2I5jphYopJTgIZNBa66bzXzgJvCkvrv2yoiIiIiIqGnZFUs6ehU4O/qPRW4Z6dWhIfZMYG0XbkB7J2IiIiIiASbklWxJFfq2WAY+IuKKP5pa73qcNhtJHeNA2DzTk0FFhERERFpSpSsiiU5YmOJrJwKXPhdw6cCr884TElZ/UZoRUREREQk9JSsimXFnF05Ffj77zF9vnrVMbxfOyKcdtzF5bz7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bYqPtSk+1qb4WJviY12KjbXUJR6GaZpmCPoiIiIiIiIiUmf6eEFEREREREQsR8mqiIiIiIiIWI6SVREREREREbEcJasiIiIiIiJiOUpWRURERERExHKUrIqIiIiIiIjlKFkVERERERERy1GyKiIiIiIiIpajZFVEREREREQsR8mqiIiIiIiIWI6SVREREREREbEcJauNqKCggLvuuovU1FRGjRrFSy+9dNKya9as4bLLLmPw4MFMnTqVrVu3hq6jLZDH4+GBBx7gwgsvJDU1lUmTJvH++++ftHxycjJDhgwhNTWV1NRUbr755hD2tuW59957GTBgQPXPOzU1lf3795+0fHp6OtOmTWPw4MFMnDiRlStXhrC3LcuxMUlNTaVfv37Mnj37pOX13gm+BQsWMGXKFAYMGMCcOXNqnDvT98aCBQsYPXo0qamp3HHHHeTn5wez6y3CyeKzc+dOfv3rX3PeeecxdOhQrrvuOjZt2nTSelavXk1KSkqN998zzzwTipfQbJ3qvXPhhRcyaNCg6p/1pEmTTlnXkiVLGDduHIMHD+aGG25g3759wex6i3Cy+Kxbt+6Ef4uSk5N58cUXa61H7x1rczR2B1qyefPm4fF4WLZsGfv27WPGjBl0796dsWPH1iiXm5vLr3/9ax588EEmTpzIq6++yq233sonn3yC0+lspN43b16vl7Zt2/Kf//yHzp0789133/GrX/2Kzp07k5qaWus1ixYtomfPniHuacs1Y8YM7rnnntOWKy8vZ/bs2UybNo0FCxbw2Wefcfvtt7N06VISEhJC0NOWZf369dWPfT4f559/Ppdeeukpr9F7J7jatm3Lr3/9a1asWEFubm718TN9byxfvpynnnqKF154gW7duvHAAw8wd+5cnnjiiRC+mubnZPFxu92MHTuWRx99lFatWvHaa68xa9YsvvjiC6KiomqtKyEhgeXLl4eq683eyWJT5emnn2bMmDGnrWf79u3cd999PPXUUwwdOpS//e1v/OY3v+Gtt94KRrdbjJPFZ+jQoTX+Ldq+fTuXXXYZEyZMOGldeu9Yl0ZWG0lxcTFLlixhzpw5uFwukpOTmTZtGosWLTqh7KeffkrXrl35+c9/jtPpZMaMGfj9flasWNEIPW8ZoqKiuOuuu+jSpQuGYTB06FDOOuusGn/8pGlYs2YNpaWl3HLLLTidTiZOnEjv3r1ZsmRJY3et2Vu2bBnFxcWn/A+CBN/FF1/MuHHjiI+Pr3H8TN8bixcvZsqUKfTv3x+Xy8WcOXP49NNPcbvdoXgZzdbJ4jNo0CCuuuoqWrdujd1uZ/r06ZSUlLBjx45G6mnLc7LYnKn33nuP0aNHM2rUKCIiIrjzzjvZunUrGRkZAeppy1TX+CxcuJBzzz2Xjh07hqhnEkhKVhtJZmYmpmnSp0+f6mMpKSm1/uFKT0+nb9++1c8NwyA5OZn09PSQ9FUqPlz48ccf6d2790nL3HDDDZx33nnccsst+gcoBN58802GDx/O5MmTWbhw4UnLZWRk0KdPH2y2o3/u+vbtq/dPCCxevJhJkyYRERFxynJ67zSOM31vZGRkkJKSUv08KSmJsLAwJU8hsnHjRvx+P926dTtpmby8PEaOHMkFF1zA73//e/Ly8kLXwRbo3nvv5ZxzzmH69Ol89913Jy2Xnp5e473jcrno2rWr/t6FgNfr5b333mPKlCmnLKf3jnUpWW0kxcXFuFyuGsdiY2MpKiqqtWxsbGyNYzExMbWWlcDz+/3ce++9DBw4kFGjRtVa5pVXXuGLL75g6dKl9O3bl5kzZ1JYWBjinrYc06dPZ8mSJaxYsYL777+fP//5z3zyySe1li0qKjrh/XOy95oETk5ODl988QVTp049ZTm9dxrPmb439G9R48nNzeV3v/sdd955JzExMbWW6dGjB++88w7Lli3jtdde4+DBg9x7770h7mnL8fjjj/PFF1/w1VdfcemllzJr1qyT3oeq907j+frrrykvL2f8+PEnLaP3jrUpWW0kUVFRJ/yRcrvdREdH11r2+GlWhYWFtZaVwDJNk7lz53Lo0CHmz5+PYRi1lhs+fDhOp7N6apzD4eD7778PcW9bjv79+9O6dWscDgfnnHMO11577UmnLkZHR5/w/jnZe00C5/3336dbt24MHjz4lOX03mk8Z/re0L9FjcPtdnPTTTcxevRoZs2addJyiYmJ9O7dG5vNRocOHXjooYf4+uuvKSkpCWFvW46hQ4cSERFBREQE11xzDf369eObb76ptazeO42naoZPeHj4ScvovWNtSlYbSVJSEkCNKSBpaWm1TjPt06cPaWlp1c9N0+Snn36qMYVYAs80TR555BHS0tL497//fUb/qBiGgWmaQeydHMtms5305927d2/S09Px+/3Vx9LS0vT+CbKq+xvPlN47oXOm743evXvX+Ldo165deDweevToEfS+tlRVierAgQN58MEHz+jaqr+Lej+Fxqn+dh3//7iioiJ27959yluLpOGOHDnC119/fcb/Fum9Yy1KVhtJVFQUEyZMYP78+RQWFpKens7ChQtrnTI3fvx4du3axbvvvovH4+E///kPAOedd16ou92izJs3jx9++IHnn3/+hCnbx8rIyGDz5s14vV5KSkp46qmnKCsrO+mqwdJwH330EYWFhfj9ftatW8eCBQtOOsVn+PDhhIeH8+9//xuPx8PHH39Meno6l1xySYh73XJs3ryZbdu28bOf/eyU5fTeCQ2v10tZWRlerxe/309ZWRnl5eVn/N6YMmUKixcvZsuWLRQVFfHEE08wfvz4k05Llbo5WXwKCwu5+eab6dmzJw8//PBp61m1ahV79+7FNE0OHz7Mo48+ysiRI0+6crCc3slis3//ftatW4fH48Hj8fDmm2/y448/nvRWocmTJ7Ns2TJWrFhBWVkZTz31FMnJyUpWG+hk8any3nvv0aNHDwYOHHjKevTesThTGk1+fr55xx13mEOGDDFHjhxpvvjii9XnhgwZYq5du7b6+apVq8xJkyaZAwcONKdMmWJu2bKlEXrccuzdu9fs06ePOWDAAHPIkCHVX//85z9N06wZn5UrV5oTJkwwBw8ebA4fPtycOXOmmZaW1pjdb/auueYa8+yzzzaHDBliTpw40Xz99ddrnJ84caL57rvvVj/funWr+Ytf/MIcOHCgeckll5grVqwIdZdblHnz5pm33nprref03gm9J5980uzTp0+Nr//5n/8xTfPU7421a9eaQ4YMqVHXK6+8Yo4cOdIcMmSIedttt5l5eXkhfS3N0cnis3jxYrNPnz7m4MGDa/w7VPX+OT4+L7zwgjlmzBhz0KBB5qhRo8z77rvPPHLkSGO9rGbhZLHJyMgwJ0+ebA4ZMsQcNmyYefXVV5urVq2qvm7fvn3mkCFDzH379lUf++ijj8wLL7zQHDRokDl9+nRz7969jfGSmpVT/W0zTdO87LLLavzfuoreO02LYZoa4xYRERERERFr0TRgERERERERsRwlqyIiIiIiImI5SlZFRERERETEcpSsioiIiIiIiOUoWRURERERERHLUbIqIiIiIiIilqNkVUREpIVYvXo1ycnJeL3exu6KiIjIaTkauwMiIiItyfTp01m/fj1hYWE1jj/22GNMnDixkXolIiJiPUpWRUREQuymm25izpw5jd0NERERS9M0YBEREYtYvHgxY8aM4T//+Q9jxoxhxIgR3HfffRQVFVWXycrK4q677uK8887jvPPO4ze/+Q1ZWVnV571eLy+++CITJ04kNTWVMWPG8K9//atGO5999hkTJkwgNTWVG2+8scb1IiIiVqFkVURExEKys7PZunUrS5Ys4b333iM9PZ0//vH/b+/+WRoJ4jCOP+tiYWCyBoOiiGChYGFAMG9AECt9B2lsRIs0sUqjpEmqIKQQCy1SWFmIlWKXXoUIYmmjoljkj0RElrE4WAh3eFyTzMH3Aws7M8XMbPcwv2GLkqQwDLWxsSHf93VxcaHz83NZa7W5uakwDCVJlUpFx8fHKpVKurq60tnZmdLpdNccl5eXOjk5Ua1W08fHh8rlcs/3CQDA3xBWAQDosaOjIy0uLnY9Dw8PkiRrrfL5vGKxmMbGxpTNZnV6eqowDFWv13V/f6+dnR0ZYxSPx7W7u6u7uzvd3t7KWqtqtapcLqdUKqWBgQENDw9rYWGha/5cLidjjIwxWl1dVb1e78NXAADgZ9xZBQCgx9bX1/94Z/X6+lrxeFzGmKhvcnJSX19fent70/Pzs4IgUBAE0XgikVAQBHp6etLU1JQ6nY6mp6d/nH90dDR6Hxoa6iozBgDAFZysAgDgkFarpXa7HbUfHx81ODioZDKp8fFxtVotNZvNaLzRaKjZbGpiYkKJREKxWCw6pQUA4H9GWAUAwCGe56lUKqnT6ejl5UWVSkVra2vyfV+pVEozMzMqFAp6f39Xu91WoVDQ3Nyc5ufn5XmeMpmMyuVyVBbcaDR0c3PT720BAPDPKAMGAKDHDg8PVa1Wu/q2trY0MjKiZDKp2dlZrays6PPzU0tLS8rn85Ik3/d1cHCgYrGo5eVlSVI6ndb+/r5835ckZbNZGWO0vb2t19dXGWOUyWR+u7cKAIDrPGut7fciAADAr1/X7O3tqVar9XspAAD0HWXAAAAAAADnEFYBAAAAAM6hDBgAAAAA4BxOVgEAAAAAziGsAgAAAACcQ1gFAAAAADiHsAoAAAAAcA5hFQAAAADgHMIqAAAAAMA5hFUAAAAAgHO+AethHva9+ydKAAAAAElFTkSuQmCC\n"
},
"metadata": {}
}
]
},
{
"cell_type": "code",
"source": [],
"metadata": {
"id": "HIgyeS7R71rP"
},
"execution_count": 13,
"outputs": []
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment