Files
uukssw/quote1/from_customer/「LSTM_Model_2_0_ipynb」的副本.ipynb
louiscklaw b79d5bc270 update,
2025-02-01 02:10:34 +08:00

894 lines
149 KiB
Plaintext

{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"provenance": []
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3"
},
"language_info": {
"name": "python"
}
},
"cells": [
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 35
},
"id": "k0oI8u0BjewA",
"outputId": "d1babf04-9ee3-493c-87a3-6ea09da05de3"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"'3.5.0'"
],
"application/vnd.google.colaboratory.intrinsic+json": {
"type": "string"
}
},
"metadata": {},
"execution_count": 1
}
],
"source": [
"import keras\n",
"keras.__version__"
]
},
{
"cell_type": "code",
"source": [
"from keras import models\n",
"from keras import layers\n",
"from keras import metrics\n",
"from keras import optimizers\n",
"\n",
"import numpy as np\n",
"import json\n",
"import os\n",
"import csv\n",
"import pandas as pd\n",
"import tensorflow as tf"
],
"metadata": {
"id": "16MIYdZvjrjQ"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"source": [
"from google.colab import drive\n",
"drive.mount('/content/drive')"
],
"metadata": {
"id": "2lzfI8tajuqE",
"colab": {
"base_uri": "https://localhost:8080/"
},
"outputId": "98db822c-3cd8-47c2-fa89-54ae9f40d4df"
},
"execution_count": null,
"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",
"source": [
"# Load the data\n",
"ur_path = '/content/drive/MyDrive/FYP/LSTM Dataset/UR_Dataset/ur_data.csv'\n",
"mc_fall_path = '/content/drive/MyDrive/FYP/LSTM Dataset/MC_Dataset/mc_fall_data.csv'\n",
"mc_notfall_path = '/content/drive/MyDrive/FYP/LSTM Dataset/MC_Dataset/mc_notfall_data.csv'\n",
"youtube_fall_path = '/content/drive/MyDrive/FYP/LSTM Dataset/Youtube_Dateset/youtube_fall_data.csv'\n",
"youtube_notfall_path = '/content/drive/MyDrive/FYP/LSTM Dataset/Youtube_Dateset/youtube_notfall_data.csv'"
],
"metadata": {
"id": "9WMirUCDj-iu"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"source": [
"# Read the data\n",
"def read_data(path):\n",
" video_data = []\n",
" with open(path, mode='r') as csv_file:\n",
" reader = csv.reader(csv_file)\n",
" for row in reader:\n",
" video_data.append(row)\n",
" return video_data\n",
"\n",
"ur_data = read_data(ur_path)\n",
"mc_fall_data = read_data(mc_fall_path)\n",
"mc_notfall_data = read_data(mc_notfall_path)\n",
"youtube_fall_data = read_data(youtube_fall_path)\n",
"youtube_notfall_data = read_data(youtube_notfall_path)\n",
"\n",
"print(ur_data[0])\n",
"print(mc_fall_data[0])\n",
"print(mc_notfall_data[0])\n",
"print(youtube_fall_data[0])\n",
"print(youtube_notfall_data[0])"
],
"metadata": {
"id": "jdDHSSZokN9O",
"colab": {
"base_uri": "https://localhost:8080/"
},
"outputId": "d30c8006-0b09-4dcd-9f24-65f2ed747bd7"
},
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"['520.972', '128.178', '0.833728', '544.571', '130.782', '0.739747', '540.636', '132.754', '0.726633', '553.086', '154.999', '0.800764', '541.285', '166.155', '0.742877', '549.144', '129.467', '0.745059', '572.703', '155.035', '0.841464', '543.266', '171.369', '0.817947', '572.067', '169.415', '0.607432', '564.874', '166.16', '0.534525', '526.875', '181.191', '0.862423', '554.389', '217.851', '0.612664', '577.962', '170.732', '0.619415', '535.402', '188.398', '0.760066', '560.284', '220.479', '0.65847', '545.882', '232.266', '0.604373', '553.078', '232.915', '0.532739', '566.184', '222.453', '0.655722', '541.939', '229.002', '0.399536', '541.943', '227.687', '0.344383', '560.285', '217.223', '0.153482', 'fall-16-cam0_000000000016_keypoints']\n",
"['504.171', '238.019', '0.119379', '481.995', '237.979', '0.647555', '471.564', '247.106', '0.6547', '485.918', '299.334', '0.780827', '525.04', '307.158', '0.770417', '495.036', '228.845', '0.474206', '519.863', '220.995', '0.283234', '539.41', '214.505', '0.246275', '478.096', '275.843', '0.378863', '474.176', '284.967', '0.370422', '528.986', '277.118', '0.213783', '0.0', '0.0', '0.0', '485.934', '266.741', '0.363281', '517.291', '258.887', '0.198486', '530.273', '274.524', '0.0747612', '542.03', '277.126', '0.114463', '539.417', '277.116', '0.0888912', '532.899', '274.487', '0.0731438', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '55_000000000000_keypoints']\n",
"['643.854', '174.088', '0.796968', '652.912', '202.706', '0.916605', '633.362', '192.272', '0.886062', '609.831', '214.468', '0.928492', '579.903', '235.396', '0.884458', '672.491', '213.16', '0.871428', '664.737', '253.631', '0.843892', '653.025', '284.941', '0.864034', '625.542', '257.608', '0.738263', '612.549', '253.669', '0.758785', '602.079', '296.765', '0.733292', '590.279', '330.665', '0.457905', '637.277', '265.416', '0.734225', '605.954', '303.234', '0.712669', '566.825', '341.124', '0.72449', '548.572', '350.196', '0.637416', '557.634', '352.806', '0.630046', '561.622', '348.878', '0.52683', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '590.367', '337.146', '0.274113', '60_000000000000_keypoints']\n",
"['0.0', '0.0', '0.0', '343.849', '66.0223', '0.188148', '357.543', '65.0651', '0.218538', '363.4', '88.5165', '0.191749', '372.217', '105.197', '0.108987', '332.118', '66.0279', '0.150296', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '326.252', '114.944', '0.284664', '338.962', '115.929', '0.30854', '347.785', '137.438', '0.560074', '343.839', '168.782', '0.551124', '312.554', '112.013', '0.206529', '318.401', '133.526', '0.458152', '302.762', '158.97', '0.660171', '317.411', '170.707', '0.600659', '315.461', '168.761', '0.53913', '296.89', '159.959', '0.631556', '349.714', '174.611', '0.319546', '348.751', '175.614', '0.397619', '340.902', '175.568', '0.545259', '20_000000000000_keypoints']\n",
"['127.682', '35.6818', '0.86715', '160.95', '62.1388', '0.695363', '175.59', '57.2496', '0.554826', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '149.194', '66.9858', '0.726184', '158.946', '134.519', '0.703452', '139.42', '185.404', '0.765717', '178.547', '178.524', '0.46768', '191.251', '177.548', '0.420402', '186.383', '242.124', '0.614888', '199.029', '301.81', '0.717645', '168.757', '179.502', '0.463228', '152.142', '247.998', '0.627453', '131.588', '310.611', '0.561644', '104.176', '303.749', '0.359979', '107.144', '308.644', '0.370667', '132.562', '323.297', '0.445868', '161.897', '314.483', '0.600495', '165.821', '311.581', '0.493078', '205.908', '309.59', '0.598985', '7_000000000000_keypoints']\n"
]
}
]
},
{
"cell_type": "code",
"source": [
"# Normalized the data\n",
"def normalize(list, width, height):\n",
" for record in list:\n",
" for i in range(0, 63, 3):\n",
" record[i] = float(record[i])/ width\n",
" record[i + 1] = float(record[i + 1]) / height\n",
"\n",
"normalize(ur_data, 640, 240)\n",
"normalize(mc_fall_data, 720, 480)\n",
"normalize(mc_notfall_data, 720, 480)\n",
"normalize(youtube_fall_data, 640, 360)\n",
"normalize(youtube_notfall_data, 640, 360)\n",
"\n",
"print(ur_data[0])\n",
"print(mc_fall_data[0])\n",
"print(mc_notfall_data[0])\n",
"print(youtube_fall_data[0])\n",
"print(youtube_notfall_data[0])"
],
"metadata": {
"id": "aho8JzbgkBUi",
"colab": {
"base_uri": "https://localhost:8080/"
},
"outputId": "c9f13e1d-8d5f-4631-f8ed-0be6de6dfec9"
},
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"[0.81401875, 0.534075, '0.833728', 0.8508921875000001, 0.544925, '0.739747', 0.8447437499999999, 0.5531416666666666, '0.726633', 0.864196875, 0.6458291666666667, '0.800764', 0.8457578124999999, 0.6923125, '0.742877', 0.8580375, 0.5394458333333334, '0.745059', 0.8948484375, 0.6459791666666667, '0.841464', 0.848853125, 0.7140375, '0.817947', 0.8938546875, 0.7058958333333333, '0.607432', 0.882615625, 0.6923333333333334, '0.534525', 0.8232421875, 0.7549625, '0.862423', 0.8662328125000001, 0.9077125, '0.612664', 0.903065625, 0.7113833333333334, '0.619415', 0.8365656250000001, 0.7849916666666666, '0.760066', 0.87544375, 0.9186625, '0.65847', 0.8529406249999999, 0.9677749999999999, '0.604373', 0.864184375, 0.9704791666666667, '0.532739', 0.8846624999999999, 0.9268875, '0.655722', 0.8467796875, 0.954175, '0.399536', 0.8467859375, 0.9486958333333334, '0.344383', 0.8754453124999999, 0.9050958333333334, '0.153482', 'fall-16-cam0_000000000016_keypoints']\n",
"[0.7002375, 0.49587291666666666, '0.119379', 0.6694375, 0.49578958333333334, '0.647555', 0.65495, 0.5148041666666666, '0.6547', 0.6748861111111111, 0.6236125, '0.780827', 0.7292222222222222, 0.6399125, '0.770417', 0.68755, 0.4767604166666667, '0.474206', 0.7220319444444445, 0.46040625, '0.283234', 0.7491805555555555, 0.44688541666666665, '0.246275', 0.6640222222222222, 0.5746729166666668, '0.378863', 0.6585777777777777, 0.5936812499999999, '0.370422', 0.7347027777777778, 0.5773291666666667, '0.213783', 0.0, 0.0, '0.0', 0.6749083333333333, 0.5557104166666667, '0.363281', 0.7184597222222223, 0.5393479166666667, '0.198486', 0.7364902777777778, 0.571925, '0.0747612', 0.7528194444444444, 0.5773458333333333, '0.114463', 0.7491902777777778, 0.577325, '0.0888912', 0.7401375, 0.5718479166666667, '0.0731438', 0.0, 0.0, '0.0', 0.0, 0.0, '0.0', 0.0, 0.0, '0.0', '55_000000000000_keypoints']\n",
"[0.8942416666666667, 0.3626833333333333, '0.796968', 0.9068222222222223, 0.42230416666666665, '0.916605', 0.8796694444444444, 0.4005666666666666, '0.886062', 0.8469875, 0.4468083333333333, '0.928492', 0.8054208333333334, 0.4904083333333333, '0.884458', 0.9340152777777777, 0.44408333333333333, '0.871428', 0.9232458333333333, 0.5283979166666667, '0.843892', 0.9069791666666667, 0.5936270833333332, '0.864034', 0.8688083333333334, 0.5366833333333333, '0.738263', 0.8507625, 0.5284770833333333, '0.758785', 0.8362208333333333, 0.6182604166666666, '0.733292', 0.8198319444444444, 0.6888854166666667, '0.457905', 0.8851069444444445, 0.5529499999999999, '0.734225', 0.8416027777777777, 0.6317375, '0.712669', 0.7872569444444445, 0.7106750000000001, '0.72449', 0.7619055555555556, 0.7295750000000001, '0.637416', 0.7744916666666667, 0.7350125, '0.630046', 0.7800305555555554, 0.7268291666666666, '0.52683', 0.0, 0.0, '0.0', 0.0, 0.0, '0.0', 0.8199541666666667, 0.7023875, '0.274113', '60_000000000000_keypoints']\n",
"[0.0, 0.0, '0.0', 0.5372640625, 0.18339527777777778, '0.188148', 0.5586609375, 0.1807363888888889, '0.218538', 0.5678124999999999, 0.24587916666666665, '0.191749', 0.5815890625, 0.2922138888888889, '0.108987', 0.518934375, 0.18341083333333333, '0.150296', 0.0, 0.0, '0.0', 0.0, 0.0, '0.0', 0.50976875, 0.3192888888888889, '0.284664', 0.529628125, 0.322025, '0.30854', 0.5434140625, 0.3817722222222222, '0.560074', 0.5372484375, 0.4688388888888889, '0.551124', 0.48836562499999997, 0.31114722222222224, '0.206529', 0.4975015625, 0.3709055555555556, '0.458152', 0.473065625, 0.4415833333333333, '0.660171', 0.4959546875, 0.4741861111111111, '0.600659', 0.49290781250000004, 0.46878055555555553, '0.53913', 0.463890625, 0.44433055555555556, '0.631556', 0.546428125, 0.4850305555555555, '0.319546', 0.5449234374999999, 0.4878166666666667, '0.397619', 0.5326593749999999, 0.48768888888888895, '0.545259', '20_000000000000_keypoints']\n",
"[0.199503125, 0.09911611111111111, '0.86715', 0.251484375, 0.17260777777777778, '0.695363', 0.274359375, 0.15902666666666668, '0.554826', 0.0, 0.0, '0.0', 0.0, 0.0, '0.0', 0.233115625, 0.18607166666666666, '0.726184', 0.248353125, 0.3736638888888889, '0.703452', 0.21784374999999997, 0.5150111111111111, '0.765717', 0.2789796875, 0.4959, '0.46768', 0.2988296875, 0.4931888888888889, '0.420402', 0.2912234375, 0.6725666666666666, '0.614888', 0.3109828125, 0.8383611111111111, '0.717645', 0.26368281250000003, 0.4986166666666667, '0.463228', 0.237721875, 0.6888833333333333, '0.627453', 0.20560625, 0.8628083333333333, '0.561644', 0.162775, 0.8437472222222223, '0.359979', 0.16741250000000002, 0.8573444444444445, '0.370667', 0.20712812500000002, 0.8980472222222223, '0.445868', 0.2529640625, 0.8735638888888889, '0.600495', 0.2590953125, 0.8655027777777778, '0.493078', 0.32173124999999997, 0.8599722222222221, '0.598985', '7_000000000000_keypoints']\n"
]
}
]
},
{
"cell_type": "code",
"source": [
"# Check the target label in the UR Dataset\n",
"# -1 = not lying; 0 = falling; 1 = lying\n",
"\n",
"target = []\n",
"\n",
"path1 = '/content/drive/MyDrive/FYP/LSTM Dataset/Target/urfall-cam0-falls.csv'\n",
"path2 = '/content/drive/MyDrive/FYP/LSTM Dataset/Target/urfall-cam0-adls.csv'\n",
"\n",
"def input_fall(path):\n",
" with open(path, mode='r') as csv_file:\n",
" reader = csv.reader(csv_file)\n",
" for row in reader:\n",
" record = []\n",
" record.append(row[0])\n",
" record.append(row[1])\n",
" label = row[2]\n",
" if label == '1' or label == '0':\n",
" record.append(1)\n",
" else:\n",
" record.append(0)\n",
" # each record: [, , label], eg: ['fall-17', '22', 0]\n",
" target.append(record)\n",
"\n",
"# though laying in the video, but it is not fall, so I mark 0 as label\n",
"def input_adl(path):\n",
" with open(path, mode='r') as csv_file:\n",
" reader = csv.reader(csv_file)\n",
" for row in reader:\n",
" record = []\n",
" record.append(row[0])\n",
" record.append(row[1])\n",
" record.append(0)\n",
" target.append(record)\n",
"\n",
"input_fall(path1)\n",
"print(\"Falls of UR dataset:\", len(target))\n",
"\n",
"input_adl(path2)\n",
"\n",
"df = pd.DataFrame.from_records(target)\n",
"df.to_csv (r'/content/drive/My Drive/FYP/LSTM Dataset/Target/target_data.csv', index = False, header=False)"
],
"metadata": {
"id": "xXuEfo_1ka9o",
"colab": {
"base_uri": "https://localhost:8080/"
},
"outputId": "34581de8-b44a-4e59-9b28-ffa4d77328ef"
},
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Falls of UR dataset: 2995\n"
]
}
]
},
{
"cell_type": "code",
"source": [
"# Create a dictionary for target of UR Dataset\n",
"\n",
"target_csv_path = '/content/drive/MyDrive/FYP/LSTM Dataset/Target/target_data.csv'\n",
"\n",
"idx = 0\n",
"idx_dict = {}\n",
"\n",
"with open(target_csv_path, mode='r') as csv_file:\n",
" reader = csv.reader(csv_file)\n",
" for row in reader:\n",
" # Check each row: [, , label], such as: ['fall-17', '22', 0]\n",
" idx_dict['.'.join(row[:2])] = idx # {'fall-17.22' : 112}\n",
" idx += 1"
],
"metadata": {
"id": "AW1_GUqAkBFA"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"source": [
"# Match body landmark data with labelled UR dataset\n",
"\n",
"bodylandmark = []\n",
"label = []\n",
"frame_name = []\n",
"\n",
"for landmark in ur_data:\n",
" video_name = landmark[-1].split(\"_\") # as named as \"fall-01-cam0_000000000001\"\n",
" video_name_split = video_name[0].split(\"-\") # spliting \"fall-01-cam0\" into [\"fall\", \"01\", \"cam0\"]\n",
" video_type = video_name_split[0] # \"fall\"\n",
" video_id = video_name_split[1] # \"01\"\n",
" frame_id = str(int(video_name[1])) # \"000000000001\" -> \"1\"\n",
"\n",
" try:\n",
" video_name_split = '.'.join([video_id, frame_id])\n",
" video_type_name_split = '-'.join([video_type, video_name_split])\n",
" label.append(target[idx_dict[video_type_name_split]][-1])\n",
"\n",
" # Convert str -> float\n",
" body_lm = landmark[:-1]\n",
" body_lm = list(map(float,body_lm))\n",
" bodylandmark.append(body_lm)\n",
" frameName = landmark[-1]\n",
" frame_name.append(frameName)\n",
"\n",
" except:\n",
" continue\n",
"\n",
"\n",
"# print(\"Bodylandmark Record Sample of UR Dataset:\" )\n",
"# print(bodylandmark[0])\n",
"# print(\"Bodylandmark of UR Dataset: \", len(bodylandmark))\n",
"# print(\"Label of UR Dataset: \", len(label))"
],
"metadata": {
"id": "NFssPfZJvO7c"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"source": [
"# Add MC Dataset to the whole dataset\n",
"# 1 = fall; 0 = not fall\n",
"\n",
"for record in mc_fall_data:\n",
" body_lm = record[:-1]\n",
" body_lm = list(map(float,body_lm))\n",
" bodylandmark.append(body_lm)\n",
"\n",
" label.append(1) # 1 = Fall\n",
" frameName = landmark[-1]\n",
" frame_name.append(frameName)\n",
"\n",
"for record in mc_notfall_data:\n",
" body_lm = record[:-1]\n",
" body_lm = list(map(float,body_lm))\n",
" bodylandmark.append(body_lm)\n",
"\n",
" label.append(0) # 0 = Not fall\n",
" frameName = landmark[-1]\n",
" frame_name.append(frameName)\n",
"\n",
"# print(\"Bodylandmark Record Sample of MC Dataset:\" )\n",
"# print(\"Bodylandmark of MC Dataset: \", len(bodylandmark))\n",
"# print(\"Label of MC Dataset: \", len(label))"
],
"metadata": {
"id": "Pj3_r-Hi5dQ3"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"source": [
"# Add Youtube Dataset to the whole dataset\n",
"# 1 = fall; 0 = not fall\n",
"\n",
"for record in youtube_fall_data:\n",
" body_lm = record[:-1]\n",
" body_lm = list(map(float,body_lm))\n",
" bodylandmark.append(body_lm)\n",
"\n",
" label.append(1) # 1 = Fall\n",
" frameName = landmark[-1]\n",
" frame_name.append(frameName)\n",
"\n",
"for record in youtube_notfall_data:\n",
" body_lm = record[:-1]\n",
" body_lm = list(map(float,body_lm))\n",
" bodylandmark.append(body_lm)\n",
"\n",
" label.append(0) # 0 = Not fall\n",
" frameName = landmark[-1]\n",
" frame_name.append(frameName)\n",
"\n",
"# print(\"Bodylandmark Record Sample of Youtube Dataset:\" )\n",
"# print(\"Bodylandmark of Youtube Dataset: \", len(bodylandmark))\n",
"# print(\"Label of Youtube Dataset: \", len(label))"
],
"metadata": {
"id": "SgPqhz8R6TRb"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"source": [
"# Change body landmark & label to the same data frame\n",
"all_data = []\n",
"\n",
"for i in range(len(bodylandmark)):\n",
" all_data.append([label[i]])\n",
" all_data[i] = all_data[i] + bodylandmark[i]"
],
"metadata": {
"id": "eyPGw85m9N-w"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"source": [
"# Count the number of \"Fall\" and \"Not fall\" in Label\n",
"\n",
"fall = label.count(1)\n",
"not_fall = label.count(0)\n",
"\n",
"print(\"Number of Fall:\", fall)\n",
"print(\"Number of Not fall:\", not_fall)\n",
"print(\"Number of All Data:\", len(label))"
],
"metadata": {
"id": "OIVYx6MS8lLl",
"colab": {
"base_uri": "https://localhost:8080/"
},
"outputId": "c2319ed1-e7e5-4080-c832-c5e1e01784c9"
},
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Number of Fall: 13128\n",
"Number of Not fall: 22151\n",
"Number of All Data: 35279\n"
]
}
]
},
{
"cell_type": "code",
"source": [
"# Split data into training dataset and validation dataset\n",
"# Divided into 6:4\n",
"\n",
"np.random.shuffle(all_data)\n",
"split_pt = len(all_data) // 10 * 6\n",
"\n",
"train_data = all_data[:split_pt]\n",
"valid_data = all_data[split_pt:]\n",
"\n",
"print(\"Number of Training Data:\", len(train_data))\n",
"print(\"Number of Validation Data:\", len(valid_data))\n",
"\n",
"# Check if all data has been split\n",
"print((len(train_data)+len(valid_data)) == len(label))"
],
"metadata": {
"id": "9kVZIgkA-MRD",
"colab": {
"base_uri": "https://localhost:8080/"
},
"outputId": "2fc83230-0dd4-40b0-ec09-e19702a9039f"
},
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Number of Training Data: 21162\n",
"Number of Validation Data: 14117\n",
"True\n"
]
}
]
},
{
"cell_type": "code",
"source": [
"from tensorflow.keras.layers import LSTM\n",
"from tensorflow.keras.models import Sequential\n",
"from tensorflow.keras import callbacks\n",
"from tensorflow.keras import layers\n",
"from numpy import array\n",
"\n",
"def scheduler(epoch):\n",
" if epoch < 10:\n",
" return 0.001\n",
" else:\n",
" return 0.001 * np.exp(0.1 * (10 - epoch))\n",
"\n",
"x_train = []\n",
"y_train = []\n",
"\n",
"for record in train_data:\n",
" x_train.append(record[1:])\n",
" label = int(record[0])\n",
" y_train.append(label)"
],
"metadata": {
"id": "oXn9Mn7sDhqk"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"source": [
"def train_lstm_model(x_train, y_train):\n",
" x_train = array(x_train)\n",
" x_train = x_train.reshape((len(x_train), 1, len(x_train[0])))\n",
"\n",
" y_train = array(y_train)\n",
"\n",
" lstm_model = Sequential()\n",
" lstm_model.add(LSTM(16,\n",
" input_shape=(1, 63),\n",
" return_sequences=True))\n",
" lstm_model.add(LSTM(16, ))\n",
" lstm_model.add(layers.Dense(1, activation='sigmoid'))\n",
" lstm_model.compile(optimizer='rmsprop',\n",
" loss='binary_crossentropy',\n",
" metrics=['acc',\n",
" metrics.AUC(),\n",
" metrics.FalseNegatives(),\n",
" metrics.Recall(),\n",
" metrics.Precision(),\n",
" metrics.FalseNegatives(),\n",
" metrics.TrueNegatives(),\n",
" metrics.FalsePositives(),\n",
" metrics.TruePositives()])\n",
"\n",
" lstm_history = lstm_model.fit(x_train, y_train,\n",
" epochs=100,\n",
" batch_size=16,\n",
" validation_split=0.2,\n",
" callbacks=[callbacks.EarlyStopping(monitor='val_loss', patience=5),\n",
" callbacks.LearningRateScheduler(scheduler)])\n",
"\n",
" print(\"Finish Training LSTM Model\")\n",
" return lstm_model, lstm_history\n",
"\n",
"lstm_model, lstm_history = train_lstm_model(x_train, y_train)"
],
"metadata": {
"id": "GAfiRGmuE4Va",
"colab": {
"base_uri": "https://localhost:8080/"
},
"outputId": "b9854f29-96a4-40b8-b86e-589224c9ca6c"
},
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Epoch 1/100\n"
]
},
{
"output_type": "stream",
"name": "stderr",
"text": [
"/usr/local/lib/python3.10/dist-packages/keras/src/layers/rnn/rnn.py:204: UserWarning: Do not pass an `input_shape`/`input_dim` argument to a layer. When using Sequential models, prefer using an `Input(shape)` object as the first layer in the model instead.\n",
" super().__init__(**kwargs)\n"
]
},
{
"output_type": "stream",
"name": "stdout",
"text": [
"\u001b[1m1059/1059\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m11s\u001b[0m 6ms/step - acc: 0.7130 - auc: 0.7821 - false_negatives: 1322.0255 - false_negatives_1: 1322.0255 - false_positives: 927.1651 - loss: 0.5311 - precision: 0.6823 - recall: 0.4605 - true_negatives: 4411.4756 - true_positives: 1827.2905 - val_acc: 0.7912 - val_auc: 0.9133 - val_false_negatives: 74.0000 - val_false_negatives_1: 74.0000 - val_false_positives: 810.0000 - val_loss: 0.4086 - val_precision: 0.6510 - val_recall: 0.9533 - val_true_negatives: 1838.0000 - val_true_positives: 1511.0000 - learning_rate: 0.0010\n",
"Epoch 2/100\n",
"\u001b[1m1059/1059\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m8s\u001b[0m 4ms/step - acc: 0.8322 - auc: 0.9184 - false_negatives: 421.2613 - false_negatives_1: 421.2613 - false_positives: 971.0821 - loss: 0.3509 - precision: 0.7344 - recall: 0.8658 - true_negatives: 4338.9170 - true_positives: 2756.6963 - val_acc: 0.7673 - val_auc: 0.8923 - val_false_negatives: 774.0000 - val_false_negatives_1: 774.0000 - val_false_positives: 211.0000 - val_loss: 0.5586 - val_precision: 0.7935 - val_recall: 0.5117 - val_true_negatives: 2437.0000 - val_true_positives: 811.0000 - learning_rate: 0.0010\n",
"Epoch 3/100\n",
"\u001b[1m1059/1059\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 5ms/step - acc: 0.8635 - auc: 0.9343 - false_negatives: 433.3990 - false_negatives_1: 433.3990 - false_positives: 712.7962 - loss: 0.3156 - precision: 0.7897 - recall: 0.8535 - true_negatives: 4625.7207 - true_positives: 2716.0405 - val_acc: 0.8545 - val_auc: 0.9400 - val_false_negatives: 375.0000 - val_false_negatives_1: 375.0000 - val_false_positives: 241.0000 - val_loss: 0.3215 - val_precision: 0.8339 - val_recall: 0.7634 - val_true_negatives: 2407.0000 - val_true_positives: 1210.0000 - learning_rate: 0.0010\n",
"Epoch 4/100\n",
"\u001b[1m1059/1059\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m4s\u001b[0m 4ms/step - acc: 0.8757 - auc: 0.9448 - false_negatives: 386.9387 - false_negatives_1: 386.9387 - false_positives: 666.8811 - loss: 0.2908 - precision: 0.8075 - recall: 0.8774 - true_negatives: 4647.8726 - true_positives: 2786.2642 - val_acc: 0.8795 - val_auc: 0.9520 - val_false_negatives: 285.0000 - val_false_negatives_1: 285.0000 - val_false_positives: 225.0000 - val_loss: 0.2798 - val_precision: 0.8525 - val_recall: 0.8202 - val_true_negatives: 2423.0000 - val_true_positives: 1300.0000 - learning_rate: 0.0010\n",
"Epoch 5/100\n",
"\u001b[1m1059/1059\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m4s\u001b[0m 3ms/step - acc: 0.8824 - auc: 0.9509 - false_negatives: 376.7010 - false_negatives_1: 376.7010 - false_positives: 619.0481 - loss: 0.2724 - precision: 0.8192 - recall: 0.8820 - true_negatives: 4668.3545 - true_positives: 2823.8528 - val_acc: 0.8972 - val_auc: 0.9600 - val_false_negatives: 203.0000 - val_false_negatives_1: 203.0000 - val_false_positives: 232.0000 - val_loss: 0.2504 - val_precision: 0.8563 - val_recall: 0.8719 - val_true_negatives: 2416.0000 - val_true_positives: 1382.0000 - learning_rate: 0.0010\n",
"Epoch 6/100\n",
"\u001b[1m1059/1059\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 5ms/step - acc: 0.8911 - auc: 0.9552 - false_negatives: 348.2170 - false_negatives_1: 348.2170 - false_positives: 581.0491 - loss: 0.2629 - precision: 0.8310 - recall: 0.8927 - true_negatives: 4716.0708 - true_positives: 2842.6199 - val_acc: 0.9024 - val_auc: 0.9641 - val_false_negatives: 142.0000 - val_false_negatives_1: 142.0000 - val_false_positives: 271.0000 - val_loss: 0.2325 - val_precision: 0.8419 - val_recall: 0.9104 - val_true_negatives: 2377.0000 - val_true_positives: 1443.0000 - learning_rate: 0.0010\n",
"Epoch 7/100\n",
"\u001b[1m1059/1059\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m4s\u001b[0m 3ms/step - acc: 0.8917 - auc: 0.9580 - false_negatives: 340.9396 - false_negatives_1: 340.9396 - false_positives: 578.9566 - loss: 0.2519 - precision: 0.8310 - recall: 0.8931 - true_negatives: 4743.6104 - true_positives: 2824.4500 - val_acc: 0.9039 - val_auc: 0.9632 - val_false_negatives: 183.0000 - val_false_negatives_1: 183.0000 - val_false_positives: 224.0000 - val_loss: 0.2339 - val_precision: 0.8622 - val_recall: 0.8845 - val_true_negatives: 2424.0000 - val_true_positives: 1402.0000 - learning_rate: 0.0010\n",
"Epoch 8/100\n",
"\u001b[1m1059/1059\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 4ms/step - acc: 0.8954 - auc: 0.9600 - false_negatives: 315.7274 - false_negatives_1: 315.7274 - false_positives: 562.1340 - loss: 0.2432 - precision: 0.8322 - recall: 0.8979 - true_negatives: 4775.2339 - true_positives: 2834.8613 - val_acc: 0.8871 - val_auc: 0.9619 - val_false_negatives: 294.0000 - val_false_negatives_1: 294.0000 - val_false_positives: 184.0000 - val_loss: 0.2609 - val_precision: 0.8753 - val_recall: 0.8145 - val_true_negatives: 2464.0000 - val_true_positives: 1291.0000 - learning_rate: 0.0010\n",
"Epoch 9/100\n",
"\u001b[1m1059/1059\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 4ms/step - acc: 0.8987 - auc: 0.9616 - false_negatives: 303.8632 - false_negatives_1: 303.8632 - false_positives: 551.9519 - loss: 0.2380 - precision: 0.8367 - recall: 0.9034 - true_negatives: 4789.3813 - true_positives: 2842.7605 - val_acc: 0.9062 - val_auc: 0.9705 - val_false_negatives: 92.0000 - val_false_negatives_1: 92.0000 - val_false_positives: 305.0000 - val_loss: 0.2228 - val_precision: 0.8304 - val_recall: 0.9420 - val_true_negatives: 2343.0000 - val_true_positives: 1493.0000 - learning_rate: 0.0010\n",
"Epoch 10/100\n",
"\u001b[1m1059/1059\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m4s\u001b[0m 4ms/step - acc: 0.9042 - auc: 0.9653 - false_negatives: 291.1453 - false_negatives_1: 291.1453 - false_positives: 525.3717 - loss: 0.2276 - precision: 0.8466 - recall: 0.9077 - true_negatives: 4806.7095 - true_positives: 2864.7302 - val_acc: 0.9109 - val_auc: 0.9709 - val_false_negatives: 130.0000 - val_false_negatives_1: 130.0000 - val_false_positives: 247.0000 - val_loss: 0.2088 - val_precision: 0.8549 - val_recall: 0.9180 - val_true_negatives: 2401.0000 - val_true_positives: 1455.0000 - learning_rate: 0.0010\n",
"Epoch 11/100\n",
"\u001b[1m1059/1059\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 5ms/step - acc: 0.9083 - auc: 0.9675 - false_negatives: 266.7264 - false_negatives_1: 266.7264 - false_positives: 514.1953 - loss: 0.2173 - precision: 0.8456 - recall: 0.9156 - true_negatives: 4843.2876 - true_positives: 2863.7471 - val_acc: 0.9050 - val_auc: 0.9705 - val_false_negatives: 222.0000 - val_false_negatives_1: 222.0000 - val_false_positives: 180.0000 - val_loss: 0.2178 - val_precision: 0.8833 - val_recall: 0.8599 - val_true_negatives: 2468.0000 - val_true_positives: 1363.0000 - learning_rate: 0.0010\n",
"Epoch 12/100\n",
"\u001b[1m1059/1059\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m9s\u001b[0m 4ms/step - acc: 0.9089 - auc: 0.9682 - false_negatives: 279.4274 - false_negatives_1: 279.4274 - false_positives: 497.3104 - loss: 0.2138 - precision: 0.8520 - recall: 0.9114 - true_negatives: 4841.7866 - true_positives: 2869.4321 - val_acc: 0.9095 - val_auc: 0.9720 - val_false_negatives: 87.0000 - val_false_negatives_1: 87.0000 - val_false_positives: 296.0000 - val_loss: 0.2163 - val_precision: 0.8350 - val_recall: 0.9451 - val_true_negatives: 2352.0000 - val_true_positives: 1498.0000 - learning_rate: 9.0484e-04\n",
"Epoch 13/100\n",
"\u001b[1m1059/1059\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 6ms/step - acc: 0.9096 - auc: 0.9681 - false_negatives: 268.4302 - false_negatives_1: 268.4302 - false_positives: 479.0509 - loss: 0.2147 - precision: 0.8557 - recall: 0.9144 - true_negatives: 4829.0962 - true_positives: 2911.3792 - val_acc: 0.9197 - val_auc: 0.9745 - val_false_negatives: 129.0000 - val_false_negatives_1: 129.0000 - val_false_positives: 211.0000 - val_loss: 0.1909 - val_precision: 0.8734 - val_recall: 0.9186 - val_true_negatives: 2437.0000 - val_true_positives: 1456.0000 - learning_rate: 8.1873e-04\n",
"Epoch 14/100\n",
"\u001b[1m1059/1059\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m4s\u001b[0m 4ms/step - acc: 0.9134 - auc: 0.9711 - false_negatives: 266.8792 - false_negatives_1: 266.8792 - false_positives: 471.2745 - loss: 0.2052 - precision: 0.8621 - recall: 0.9191 - true_negatives: 4834.7549 - true_positives: 2915.0481 - val_acc: 0.9135 - val_auc: 0.9723 - val_false_negatives: 187.0000 - val_false_negatives_1: 187.0000 - val_false_positives: 179.0000 - val_loss: 0.2068 - val_precision: 0.8865 - val_recall: 0.8820 - val_true_negatives: 2469.0000 - val_true_positives: 1398.0000 - learning_rate: 7.4082e-04\n",
"Epoch 15/100\n",
"\u001b[1m1059/1059\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 4ms/step - acc: 0.9150 - auc: 0.9718 - false_negatives: 262.8123 - false_negatives_1: 262.8123 - false_positives: 457.5189 - loss: 0.1998 - precision: 0.8621 - recall: 0.9149 - true_negatives: 4896.9009 - true_positives: 2870.7246 - val_acc: 0.9034 - val_auc: 0.9697 - val_false_negatives: 239.0000 - val_false_negatives_1: 239.0000 - val_false_positives: 170.0000 - val_loss: 0.2268 - val_precision: 0.8879 - val_recall: 0.8492 - val_true_negatives: 2478.0000 - val_true_positives: 1346.0000 - learning_rate: 6.7032e-04\n",
"Epoch 16/100\n",
"\u001b[1m1059/1059\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m7s\u001b[0m 5ms/step - acc: 0.9167 - auc: 0.9718 - false_negatives: 243.8896 - false_negatives_1: 243.8896 - false_positives: 465.1689 - loss: 0.1988 - precision: 0.8619 - recall: 0.9260 - true_negatives: 4847.4238 - true_positives: 2931.4746 - val_acc: 0.9194 - val_auc: 0.9745 - val_false_negatives: 154.0000 - val_false_negatives_1: 154.0000 - val_false_positives: 187.0000 - val_loss: 0.1928 - val_precision: 0.8844 - val_recall: 0.9028 - val_true_negatives: 2461.0000 - val_true_positives: 1431.0000 - learning_rate: 6.0653e-04\n",
"Epoch 17/100\n",
"\u001b[1m1059/1059\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m4s\u001b[0m 4ms/step - acc: 0.9171 - auc: 0.9726 - false_negatives: 254.1085 - false_negatives_1: 254.1085 - false_positives: 441.5359 - loss: 0.1958 - precision: 0.8684 - recall: 0.9190 - true_negatives: 4881.8340 - true_positives: 2910.4783 - val_acc: 0.9223 - val_auc: 0.9744 - val_false_negatives: 147.0000 - val_false_negatives_1: 147.0000 - val_false_positives: 182.0000 - val_loss: 0.1917 - val_precision: 0.8877 - val_recall: 0.9073 - val_true_negatives: 2466.0000 - val_true_positives: 1438.0000 - learning_rate: 5.4881e-04\n",
"Epoch 18/100\n",
"\u001b[1m1059/1059\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m4s\u001b[0m 4ms/step - acc: 0.9188 - auc: 0.9728 - false_negatives: 236.0472 - false_negatives_1: 236.0472 - false_positives: 438.9340 - loss: 0.1949 - precision: 0.8676 - recall: 0.9252 - true_negatives: 4882.0483 - true_positives: 2930.9272 - val_acc: 0.9211 - val_auc: 0.9754 - val_false_negatives: 104.0000 - val_false_negatives_1: 104.0000 - val_false_positives: 230.0000 - val_loss: 0.1895 - val_precision: 0.8656 - val_recall: 0.9344 - val_true_negatives: 2418.0000 - val_true_positives: 1481.0000 - learning_rate: 4.9659e-04\n",
"Epoch 19/100\n",
"\u001b[1m1059/1059\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m7s\u001b[0m 5ms/step - acc: 0.9203 - auc: 0.9727 - false_negatives: 247.0830 - false_negatives_1: 247.0830 - false_positives: 429.5802 - loss: 0.1923 - precision: 0.8710 - recall: 0.9206 - true_negatives: 4901.9375 - true_positives: 2909.3557 - val_acc: 0.9242 - val_auc: 0.9761 - val_false_negatives: 100.0000 - val_false_negatives_1: 100.0000 - val_false_positives: 221.0000 - val_loss: 0.1849 - val_precision: 0.8705 - val_recall: 0.9369 - val_true_negatives: 2427.0000 - val_true_positives: 1485.0000 - learning_rate: 4.4933e-04\n",
"Epoch 20/100\n",
"\u001b[1m1059/1059\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m4s\u001b[0m 4ms/step - acc: 0.9191 - auc: 0.9751 - false_negatives: 234.6953 - false_negatives_1: 234.6953 - false_positives: 452.0359 - loss: 0.1865 - precision: 0.8664 - recall: 0.9278 - true_negatives: 4854.7847 - true_positives: 2946.4407 - val_acc: 0.9244 - val_auc: 0.9761 - val_false_negatives: 122.0000 - val_false_negatives_1: 122.0000 - val_false_positives: 198.0000 - val_loss: 0.1825 - val_precision: 0.8808 - val_recall: 0.9230 - val_true_negatives: 2450.0000 - val_true_positives: 1463.0000 - learning_rate: 4.0657e-04\n",
"Epoch 21/100\n",
"\u001b[1m1059/1059\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m4s\u001b[0m 4ms/step - acc: 0.9211 - auc: 0.9751 - false_negatives: 229.6538 - false_negatives_1: 229.6538 - false_positives: 430.5726 - loss: 0.1857 - precision: 0.8731 - recall: 0.9278 - true_negatives: 4860.5010 - true_positives: 2967.2292 - val_acc: 0.9253 - val_auc: 0.9765 - val_false_negatives: 127.0000 - val_false_negatives_1: 127.0000 - val_false_positives: 189.0000 - val_loss: 0.1818 - val_precision: 0.8852 - val_recall: 0.9199 - val_true_negatives: 2459.0000 - val_true_positives: 1458.0000 - learning_rate: 3.6788e-04\n",
"Epoch 22/100\n",
"\u001b[1m1059/1059\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m7s\u001b[0m 6ms/step - acc: 0.9214 - auc: 0.9764 - false_negatives: 237.1085 - false_negatives_1: 237.1085 - false_positives: 432.9113 - loss: 0.1793 - precision: 0.8690 - recall: 0.9246 - true_negatives: 4916.2075 - true_positives: 2901.7292 - val_acc: 0.9242 - val_auc: 0.9763 - val_false_negatives: 123.0000 - val_false_negatives_1: 123.0000 - val_false_positives: 198.0000 - val_loss: 0.1824 - val_precision: 0.8807 - val_recall: 0.9224 - val_true_negatives: 2450.0000 - val_true_positives: 1462.0000 - learning_rate: 3.3287e-04\n",
"Epoch 23/100\n",
"\u001b[1m1059/1059\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m8s\u001b[0m 4ms/step - acc: 0.9224 - auc: 0.9753 - false_negatives: 241.6745 - false_negatives_1: 241.6745 - false_positives: 421.4113 - loss: 0.1850 - precision: 0.8767 - recall: 0.9229 - true_negatives: 4888.4961 - true_positives: 2936.3745 - val_acc: 0.9150 - val_auc: 0.9746 - val_false_negatives: 183.0000 - val_false_negatives_1: 183.0000 - val_false_positives: 177.0000 - val_loss: 0.1976 - val_precision: 0.8879 - val_recall: 0.8845 - val_true_negatives: 2471.0000 - val_true_positives: 1402.0000 - learning_rate: 3.0119e-04\n",
"Epoch 24/100\n",
"\u001b[1m1059/1059\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m7s\u001b[0m 6ms/step - acc: 0.9204 - auc: 0.9747 - false_negatives: 243.5802 - false_negatives_1: 243.5802 - false_positives: 418.4547 - loss: 0.1851 - precision: 0.8758 - recall: 0.9180 - true_negatives: 4890.4097 - true_positives: 2935.5122 - val_acc: 0.9261 - val_auc: 0.9772 - val_false_negatives: 108.0000 - val_false_negatives_1: 108.0000 - val_false_positives: 205.0000 - val_loss: 0.1792 - val_precision: 0.8781 - val_recall: 0.9319 - val_true_negatives: 2443.0000 - val_true_positives: 1477.0000 - learning_rate: 2.7253e-04\n",
"Epoch 25/100\n",
"\u001b[1m1059/1059\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m8s\u001b[0m 4ms/step - acc: 0.9229 - auc: 0.9759 - false_negatives: 228.1038 - false_negatives_1: 228.1038 - false_positives: 422.6179 - loss: 0.1795 - precision: 0.8726 - recall: 0.9276 - true_negatives: 4914.9766 - true_positives: 2922.2585 - val_acc: 0.9246 - val_auc: 0.9762 - val_false_negatives: 123.0000 - val_false_negatives_1: 123.0000 - val_false_positives: 196.0000 - val_loss: 0.1803 - val_precision: 0.8818 - val_recall: 0.9224 - val_true_negatives: 2452.0000 - val_true_positives: 1462.0000 - learning_rate: 2.4660e-04\n",
"Epoch 26/100\n",
"\u001b[1m1059/1059\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 6ms/step - acc: 0.9249 - auc: 0.9767 - false_negatives: 221.3736 - false_negatives_1: 221.3736 - false_positives: 420.6783 - loss: 0.1770 - precision: 0.8746 - recall: 0.9328 - true_negatives: 4900.1851 - true_positives: 2945.7197 - val_acc: 0.9251 - val_auc: 0.9762 - val_false_negatives: 122.0000 - val_false_negatives_1: 122.0000 - val_false_positives: 195.0000 - val_loss: 0.1805 - val_precision: 0.8824 - val_recall: 0.9230 - val_true_negatives: 2453.0000 - val_true_positives: 1463.0000 - learning_rate: 2.2313e-04\n",
"Epoch 27/100\n",
"\u001b[1m1059/1059\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m8s\u001b[0m 4ms/step - acc: 0.9248 - auc: 0.9769 - false_negatives: 225.0981 - false_negatives_1: 225.0981 - false_positives: 409.7236 - loss: 0.1771 - precision: 0.8791 - recall: 0.9262 - true_negatives: 4911.6113 - true_positives: 2941.5237 - val_acc: 0.9232 - val_auc: 0.9769 - val_false_negatives: 100.0000 - val_false_negatives_1: 100.0000 - val_false_positives: 225.0000 - val_loss: 0.1814 - val_precision: 0.8684 - val_recall: 0.9369 - val_true_negatives: 2423.0000 - val_true_positives: 1485.0000 - learning_rate: 2.0190e-04\n",
"Epoch 28/100\n",
"\u001b[1m1059/1059\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 5ms/step - acc: 0.9243 - auc: 0.9769 - false_negatives: 224.8500 - false_negatives_1: 224.8500 - false_positives: 408.6547 - loss: 0.1741 - precision: 0.8753 - recall: 0.9279 - true_negatives: 4909.5981 - true_positives: 2944.8538 - val_acc: 0.9230 - val_auc: 0.9758 - val_false_negatives: 149.0000 - val_false_negatives_1: 149.0000 - val_false_positives: 177.0000 - val_loss: 0.1869 - val_precision: 0.8903 - val_recall: 0.9060 - val_true_negatives: 2471.0000 - val_true_positives: 1436.0000 - learning_rate: 1.8268e-04\n",
"Epoch 29/100\n",
"\u001b[1m1059/1059\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 4ms/step - acc: 0.9230 - auc: 0.9760 - false_negatives: 234.0189 - false_negatives_1: 234.0189 - false_positives: 408.0641 - loss: 0.1807 - precision: 0.8755 - recall: 0.9245 - true_negatives: 4916.6602 - true_positives: 2929.2131 - val_acc: 0.9244 - val_auc: 0.9767 - val_false_negatives: 118.0000 - val_false_negatives_1: 118.0000 - val_false_positives: 202.0000 - val_loss: 0.1785 - val_precision: 0.8790 - val_recall: 0.9256 - val_true_negatives: 2446.0000 - val_true_positives: 1467.0000 - learning_rate: 1.6530e-04\n",
"Epoch 30/100\n",
"\u001b[1m1059/1059\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m4s\u001b[0m 4ms/step - acc: 0.9263 - auc: 0.9781 - false_negatives: 220.4953 - false_negatives_1: 220.4953 - false_positives: 406.4207 - loss: 0.1714 - precision: 0.8782 - recall: 0.9313 - true_negatives: 4924.4644 - true_positives: 2936.5764 - val_acc: 0.9249 - val_auc: 0.9769 - val_false_negatives: 137.0000 - val_false_negatives_1: 137.0000 - val_false_positives: 181.0000 - val_loss: 0.1814 - val_precision: 0.8889 - val_recall: 0.9136 - val_true_negatives: 2467.0000 - val_true_positives: 1448.0000 - learning_rate: 1.4957e-04\n",
"Epoch 31/100\n",
"\u001b[1m1059/1059\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m7s\u001b[0m 6ms/step - acc: 0.9265 - auc: 0.9776 - false_negatives: 216.2509 - false_negatives_1: 216.2509 - false_positives: 405.2868 - loss: 0.1753 - precision: 0.8785 - recall: 0.9338 - true_negatives: 4891.3237 - true_positives: 2975.0952 - val_acc: 0.9253 - val_auc: 0.9772 - val_false_negatives: 134.0000 - val_false_negatives_1: 134.0000 - val_false_positives: 182.0000 - val_loss: 0.1801 - val_precision: 0.8885 - val_recall: 0.9155 - val_true_negatives: 2466.0000 - val_true_positives: 1451.0000 - learning_rate: 1.3534e-04\n",
"Epoch 32/100\n",
"\u001b[1m1059/1059\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m8s\u001b[0m 4ms/step - acc: 0.9255 - auc: 0.9772 - false_negatives: 225.7311 - false_negatives_1: 225.7311 - false_positives: 404.6302 - loss: 0.1728 - precision: 0.8753 - recall: 0.9282 - true_negatives: 4944.0312 - true_positives: 2913.5642 - val_acc: 0.9261 - val_auc: 0.9773 - val_false_negatives: 105.0000 - val_false_negatives_1: 105.0000 - val_false_positives: 208.0000 - val_loss: 0.1770 - val_precision: 0.8768 - val_recall: 0.9338 - val_true_negatives: 2440.0000 - val_true_positives: 1480.0000 - learning_rate: 1.2246e-04\n",
"Epoch 33/100\n",
"\u001b[1m1059/1059\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 5ms/step - acc: 0.9264 - auc: 0.9779 - false_negatives: 223.5575 - false_negatives_1: 223.5575 - false_positives: 410.8311 - loss: 0.1711 - precision: 0.8768 - recall: 0.9283 - true_negatives: 4965.4829 - true_positives: 2888.0850 - val_acc: 0.9249 - val_auc: 0.9777 - val_false_negatives: 107.0000 - val_false_negatives_1: 107.0000 - val_false_positives: 211.0000 - val_loss: 0.1763 - val_precision: 0.8751 - val_recall: 0.9325 - val_true_negatives: 2437.0000 - val_true_positives: 1478.0000 - learning_rate: 1.1080e-04\n",
"Epoch 34/100\n",
"\u001b[1m1059/1059\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m9s\u001b[0m 4ms/step - acc: 0.9262 - auc: 0.9785 - false_negatives: 215.5972 - false_negatives_1: 215.5972 - false_positives: 415.5632 - loss: 0.1698 - precision: 0.8757 - recall: 0.9338 - true_negatives: 4914.4746 - true_positives: 2942.3218 - val_acc: 0.9242 - val_auc: 0.9770 - val_false_negatives: 101.0000 - val_false_negatives_1: 101.0000 - val_false_positives: 220.0000 - val_loss: 0.1787 - val_precision: 0.8709 - val_recall: 0.9363 - val_true_negatives: 2428.0000 - val_true_positives: 1484.0000 - learning_rate: 1.0026e-04\n",
"Epoch 35/100\n",
"\u001b[1m1059/1059\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m7s\u001b[0m 5ms/step - acc: 0.9288 - auc: 0.9793 - false_negatives: 212.0670 - false_negatives_1: 212.0670 - false_positives: 398.7594 - loss: 0.1655 - precision: 0.8805 - recall: 0.9358 - true_negatives: 4919.8198 - true_positives: 2957.3103 - val_acc: 0.9253 - val_auc: 0.9771 - val_false_negatives: 125.0000 - val_false_negatives_1: 125.0000 - val_false_positives: 191.0000 - val_loss: 0.1778 - val_precision: 0.8843 - val_recall: 0.9211 - val_true_negatives: 2457.0000 - val_true_positives: 1460.0000 - learning_rate: 9.0718e-05\n",
"Epoch 36/100\n",
"\u001b[1m1059/1059\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m4s\u001b[0m 4ms/step - acc: 0.9288 - auc: 0.9791 - false_negatives: 217.1302 - false_negatives_1: 217.1302 - false_positives: 409.3745 - loss: 0.1676 - precision: 0.8809 - recall: 0.9346 - true_negatives: 4919.0474 - true_positives: 2942.4048 - val_acc: 0.9256 - val_auc: 0.9771 - val_false_negatives: 117.0000 - val_false_negatives_1: 117.0000 - val_false_positives: 198.0000 - val_loss: 0.1768 - val_precision: 0.8812 - val_recall: 0.9262 - val_true_negatives: 2450.0000 - val_true_positives: 1468.0000 - learning_rate: 8.2085e-05\n",
"Epoch 37/100\n",
"\u001b[1m1059/1059\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 4ms/step - acc: 0.9257 - auc: 0.9787 - false_negatives: 218.8642 - false_negatives_1: 218.8642 - false_positives: 411.4877 - loss: 0.1688 - precision: 0.8784 - recall: 0.9307 - true_negatives: 4907.3237 - true_positives: 2950.2812 - val_acc: 0.9251 - val_auc: 0.9774 - val_false_negatives: 106.0000 - val_false_negatives_1: 106.0000 - val_false_positives: 211.0000 - val_loss: 0.1766 - val_precision: 0.8751 - val_recall: 0.9331 - val_true_negatives: 2437.0000 - val_true_positives: 1479.0000 - learning_rate: 7.4274e-05\n",
"Epoch 38/100\n",
"\u001b[1m1059/1059\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m7s\u001b[0m 5ms/step - acc: 0.9265 - auc: 0.9793 - false_negatives: 217.7292 - false_negatives_1: 217.7292 - false_positives: 413.4085 - loss: 0.1668 - precision: 0.8776 - recall: 0.9302 - true_negatives: 4931.0566 - true_positives: 2925.7622 - val_acc: 0.9256 - val_auc: 0.9774 - val_false_negatives: 113.0000 - val_false_negatives_1: 113.0000 - val_false_positives: 202.0000 - val_loss: 0.1762 - val_precision: 0.8793 - val_recall: 0.9287 - val_true_negatives: 2446.0000 - val_true_positives: 1472.0000 - learning_rate: 6.7206e-05\n",
"Epoch 39/100\n",
"\u001b[1m1059/1059\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m4s\u001b[0m 4ms/step - acc: 0.9254 - auc: 0.9775 - false_negatives: 219.4245 - false_negatives_1: 219.4245 - false_positives: 403.1764 - loss: 0.1738 - precision: 0.8786 - recall: 0.9282 - true_negatives: 4920.0640 - true_positives: 2945.2915 - val_acc: 0.9249 - val_auc: 0.9772 - val_false_negatives: 130.0000 - val_false_negatives_1: 130.0000 - val_false_positives: 188.0000 - val_loss: 0.1783 - val_precision: 0.8856 - val_recall: 0.9180 - val_true_negatives: 2460.0000 - val_true_positives: 1455.0000 - learning_rate: 6.0810e-05\n",
"Epoch 40/100\n",
"\u001b[1m1059/1059\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m4s\u001b[0m 4ms/step - acc: 0.9254 - auc: 0.9770 - false_negatives: 223.1670 - false_negatives_1: 223.1670 - false_positives: 405.3330 - loss: 0.1750 - precision: 0.8777 - recall: 0.9279 - true_negatives: 4914.5200 - true_positives: 2944.9368 - val_acc: 0.9253 - val_auc: 0.9774 - val_false_negatives: 119.0000 - val_false_negatives_1: 119.0000 - val_false_positives: 197.0000 - val_loss: 0.1760 - val_precision: 0.8815 - val_recall: 0.9249 - val_true_negatives: 2451.0000 - val_true_positives: 1466.0000 - learning_rate: 5.5023e-05\n",
"Epoch 41/100\n",
"\u001b[1m1059/1059\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 5ms/step - acc: 0.9259 - auc: 0.9763 - false_negatives: 219.2538 - false_negatives_1: 219.2538 - false_positives: 406.4641 - loss: 0.1769 - precision: 0.8794 - recall: 0.9288 - true_negatives: 4907.5669 - true_positives: 2954.6716 - val_acc: 0.9251 - val_auc: 0.9771 - val_false_negatives: 115.0000 - val_false_negatives_1: 115.0000 - val_false_positives: 202.0000 - val_loss: 0.1760 - val_precision: 0.8792 - val_recall: 0.9274 - val_true_negatives: 2446.0000 - val_true_positives: 1470.0000 - learning_rate: 4.9787e-05\n",
"Epoch 42/100\n",
"\u001b[1m1059/1059\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m9s\u001b[0m 4ms/step - acc: 0.9258 - auc: 0.9767 - false_negatives: 220.5613 - false_negatives_1: 220.5613 - false_positives: 415.4415 - loss: 0.1758 - precision: 0.8767 - recall: 0.9306 - true_negatives: 4919.8774 - true_positives: 2932.0764 - val_acc: 0.9251 - val_auc: 0.9772 - val_false_negatives: 123.0000 - val_false_negatives_1: 123.0000 - val_false_positives: 194.0000 - val_loss: 0.1766 - val_precision: 0.8829 - val_recall: 0.9224 - val_true_negatives: 2454.0000 - val_true_positives: 1462.0000 - learning_rate: 4.5049e-05\n",
"Epoch 43/100\n",
"\u001b[1m1059/1059\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 5ms/step - acc: 0.9246 - auc: 0.9771 - false_negatives: 217.8321 - false_negatives_1: 217.8321 - false_positives: 417.0085 - loss: 0.1727 - precision: 0.8741 - recall: 0.9312 - true_negatives: 4915.7856 - true_positives: 2937.3301 - val_acc: 0.9263 - val_auc: 0.9773 - val_false_negatives: 111.0000 - val_false_negatives_1: 111.0000 - val_false_positives: 201.0000 - val_loss: 0.1753 - val_precision: 0.8800 - val_recall: 0.9300 - val_true_negatives: 2447.0000 - val_true_positives: 1474.0000 - learning_rate: 4.0762e-05\n",
"Epoch 44/100\n",
"\u001b[1m1059/1059\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m10s\u001b[0m 5ms/step - acc: 0.9289 - auc: 0.9789 - false_negatives: 212.8189 - false_negatives_1: 212.8189 - false_positives: 400.7179 - loss: 0.1669 - precision: 0.8819 - recall: 0.9342 - true_negatives: 4927.9678 - true_positives: 2946.4519 - val_acc: 0.9256 - val_auc: 0.9773 - val_false_negatives: 116.0000 - val_false_negatives_1: 116.0000 - val_false_positives: 199.0000 - val_loss: 0.1756 - val_precision: 0.8807 - val_recall: 0.9268 - val_true_negatives: 2449.0000 - val_true_positives: 1469.0000 - learning_rate: 3.6883e-05\n",
"Epoch 45/100\n",
"\u001b[1m1059/1059\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 5ms/step - acc: 0.9268 - auc: 0.9786 - false_negatives: 211.5358 - false_negatives_1: 211.5358 - false_positives: 401.1283 - loss: 0.1696 - precision: 0.8774 - recall: 0.9325 - true_negatives: 4934.2866 - true_positives: 2941.0056 - val_acc: 0.9265 - val_auc: 0.9775 - val_false_negatives: 109.0000 - val_false_negatives_1: 109.0000 - val_false_positives: 202.0000 - val_loss: 0.1755 - val_precision: 0.8796 - val_recall: 0.9312 - val_true_negatives: 2446.0000 - val_true_positives: 1476.0000 - learning_rate: 3.3373e-05\n",
"Epoch 46/100\n",
"\u001b[1m1059/1059\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m4s\u001b[0m 4ms/step - acc: 0.9258 - auc: 0.9778 - false_negatives: 215.5047 - false_negatives_1: 215.5047 - false_positives: 409.5302 - loss: 0.1718 - precision: 0.8781 - recall: 0.9299 - true_negatives: 4909.0386 - true_positives: 2953.8831 - val_acc: 0.9246 - val_auc: 0.9773 - val_false_negatives: 126.0000 - val_false_negatives_1: 126.0000 - val_false_positives: 193.0000 - val_loss: 0.1773 - val_precision: 0.8832 - val_recall: 0.9205 - val_true_negatives: 2455.0000 - val_true_positives: 1459.0000 - learning_rate: 3.0197e-05\n",
"Epoch 47/100\n",
"\u001b[1m1059/1059\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 5ms/step - acc: 0.9271 - auc: 0.9785 - false_negatives: 213.9302 - false_negatives_1: 213.9302 - false_positives: 403.8387 - loss: 0.1697 - precision: 0.8806 - recall: 0.9316 - true_negatives: 4915.9414 - true_positives: 2954.2463 - val_acc: 0.9265 - val_auc: 0.9772 - val_false_negatives: 108.0000 - val_false_negatives_1: 108.0000 - val_false_positives: 203.0000 - val_loss: 0.1753 - val_precision: 0.8792 - val_recall: 0.9319 - val_true_negatives: 2445.0000 - val_true_positives: 1477.0000 - learning_rate: 2.7324e-05\n",
"Epoch 48/100\n",
"\u001b[1m1059/1059\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 5ms/step - acc: 0.9279 - auc: 0.9783 - false_negatives: 210.7793 - false_negatives_1: 210.7793 - false_positives: 403.8424 - loss: 0.1697 - precision: 0.8805 - recall: 0.9342 - true_negatives: 4908.6602 - true_positives: 2964.6746 - val_acc: 0.9256 - val_auc: 0.9774 - val_false_negatives: 114.0000 - val_false_negatives_1: 114.0000 - val_false_positives: 201.0000 - val_loss: 0.1752 - val_precision: 0.8798 - val_recall: 0.9281 - val_true_negatives: 2447.0000 - val_true_positives: 1471.0000 - learning_rate: 2.4724e-05\n",
"Epoch 49/100\n",
"\u001b[1m1059/1059\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m4s\u001b[0m 4ms/step - acc: 0.9306 - auc: 0.9808 - false_negatives: 211.3981 - false_negatives_1: 211.3981 - false_positives: 399.8443 - loss: 0.1614 - precision: 0.8854 - recall: 0.9350 - true_negatives: 4940.6113 - true_positives: 2936.1028 - val_acc: 0.9253 - val_auc: 0.9775 - val_false_negatives: 118.0000 - val_false_negatives_1: 118.0000 - val_false_positives: 198.0000 - val_loss: 0.1755 - val_precision: 0.8811 - val_recall: 0.9256 - val_true_negatives: 2450.0000 - val_true_positives: 1467.0000 - learning_rate: 2.2371e-05\n",
"Epoch 50/100\n",
"\u001b[1m1059/1059\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 4ms/step - acc: 0.9269 - auc: 0.9775 - false_negatives: 213.9679 - false_negatives_1: 213.9679 - false_positives: 410.8953 - loss: 0.1729 - precision: 0.8798 - recall: 0.9307 - true_negatives: 4918.9453 - true_positives: 2944.1482 - val_acc: 0.9261 - val_auc: 0.9775 - val_false_negatives: 109.0000 - val_false_negatives_1: 109.0000 - val_false_positives: 204.0000 - val_loss: 0.1749 - val_precision: 0.8786 - val_recall: 0.9312 - val_true_negatives: 2444.0000 - val_true_positives: 1476.0000 - learning_rate: 2.0242e-05\n",
"Epoch 51/100\n",
"\u001b[1m1059/1059\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 5ms/step - acc: 0.9263 - auc: 0.9778 - false_negatives: 222.8009 - false_negatives_1: 222.8009 - false_positives: 401.1557 - loss: 0.1721 - precision: 0.8786 - recall: 0.9274 - true_negatives: 4943.9067 - true_positives: 2920.0935 - val_acc: 0.9244 - val_auc: 0.9773 - val_false_negatives: 126.0000 - val_false_negatives_1: 126.0000 - val_false_positives: 194.0000 - val_loss: 0.1770 - val_precision: 0.8826 - val_recall: 0.9205 - val_true_negatives: 2454.0000 - val_true_positives: 1459.0000 - learning_rate: 1.8316e-05\n",
"Epoch 52/100\n",
"\u001b[1m1059/1059\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m4s\u001b[0m 4ms/step - acc: 0.9270 - auc: 0.9770 - false_negatives: 220.1217 - false_negatives_1: 220.1217 - false_positives: 396.9462 - loss: 0.1750 - precision: 0.8807 - recall: 0.9286 - true_negatives: 4948.0605 - true_positives: 2922.8284 - val_acc: 0.9263 - val_auc: 0.9772 - val_false_negatives: 112.0000 - val_false_negatives_1: 112.0000 - val_false_positives: 200.0000 - val_loss: 0.1753 - val_precision: 0.8805 - val_recall: 0.9293 - val_true_negatives: 2448.0000 - val_true_positives: 1473.0000 - learning_rate: 1.6573e-05\n",
"Epoch 53/100\n",
"\u001b[1m1059/1059\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m4s\u001b[0m 4ms/step - acc: 0.9263 - auc: 0.9778 - false_negatives: 224.3538 - false_negatives_1: 224.3538 - false_positives: 407.7726 - loss: 0.1724 - precision: 0.8804 - recall: 0.9299 - true_negatives: 4891.4526 - true_positives: 2964.3774 - val_acc: 0.9246 - val_auc: 0.9774 - val_false_negatives: 121.0000 - val_false_negatives_1: 121.0000 - val_false_positives: 198.0000 - val_loss: 0.1760 - val_precision: 0.8809 - val_recall: 0.9237 - val_true_negatives: 2450.0000 - val_true_positives: 1464.0000 - learning_rate: 1.4996e-05\n",
"Epoch 54/100\n",
"\u001b[1m1059/1059\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 5ms/step - acc: 0.9287 - auc: 0.9789 - false_negatives: 209.6726 - false_negatives_1: 209.6726 - false_positives: 399.6755 - loss: 0.1682 - precision: 0.8800 - recall: 0.9364 - true_negatives: 4921.8257 - true_positives: 2956.7830 - val_acc: 0.9251 - val_auc: 0.9774 - val_false_negatives: 118.0000 - val_false_negatives_1: 118.0000 - val_false_positives: 199.0000 - val_loss: 0.1755 - val_precision: 0.8806 - val_recall: 0.9256 - val_true_negatives: 2449.0000 - val_true_positives: 1467.0000 - learning_rate: 1.3569e-05\n",
"Epoch 55/100\n",
"\u001b[1m1059/1059\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m4s\u001b[0m 4ms/step - acc: 0.9276 - auc: 0.9782 - false_negatives: 215.0915 - false_negatives_1: 215.0915 - false_positives: 403.1726 - loss: 0.1700 - precision: 0.8812 - recall: 0.9326 - true_negatives: 4912.7690 - true_positives: 2956.9236 - val_acc: 0.9265 - val_auc: 0.9774 - val_false_negatives: 110.0000 - val_false_negatives_1: 110.0000 - val_false_positives: 201.0000 - val_loss: 0.1751 - val_precision: 0.8801 - val_recall: 0.9306 - val_true_negatives: 2447.0000 - val_true_positives: 1475.0000 - learning_rate: 1.2277e-05\n",
"Finish Training LSTM Model\n"
]
}
]
},
{
"cell_type": "code",
"source": [
"lstm_model.summary()\n",
"lstm_model.save(\"/content/drive/My Drive/FYP/LSTM/lstm_model.h5\")"
],
"metadata": {
"id": "xLttAVtvj6qW",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 274
},
"outputId": "78add4eb-6e7f-42b6-fe0a-813aa1ff6397"
},
"execution_count": null,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"\u001b[1mModel: \"sequential\"\u001b[0m\n"
],
"text/html": [
"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\">Model: \"sequential\"</span>\n",
"</pre>\n"
]
},
"metadata": {}
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┓\n",
"┃\u001b[1m \u001b[0m\u001b[1mLayer (type) \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mOutput Shape \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m Param #\u001b[0m\u001b[1m \u001b[0m┃\n",
"┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━┩\n",
"│ lstm (\u001b[38;5;33mLSTM\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m1\u001b[0m, \u001b[38;5;34m16\u001b[0m) │ \u001b[38;5;34m5,120\u001b[0m │\n",
"├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n",
"│ lstm_1 (\u001b[38;5;33mLSTM\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m16\u001b[0m) │ \u001b[38;5;34m2,112\u001b[0m │\n",
"├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n",
"│ dense (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m1\u001b[0m) │ \u001b[38;5;34m17\u001b[0m │\n",
"└──────────────────────────────────────┴─────────────────────────────┴─────────────────┘\n"
],
"text/html": [
"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┓\n",
"┃<span style=\"font-weight: bold\"> Layer (type) </span>┃<span style=\"font-weight: bold\"> Output Shape </span>┃<span style=\"font-weight: bold\"> Param # </span>┃\n",
"┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━┩\n",
"│ lstm (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">LSTM</span>) │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">1</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>) │ <span style=\"color: #00af00; text-decoration-color: #00af00\">5,120</span> │\n",
"├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n",
"│ lstm_1 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">LSTM</span>) │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">16</span>) │ <span style=\"color: #00af00; text-decoration-color: #00af00\">2,112</span> │\n",
"├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n",
"│ dense (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Dense</span>) │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">1</span>) │ <span style=\"color: #00af00; text-decoration-color: #00af00\">17</span> │\n",
"└──────────────────────────────────────┴─────────────────────────────┴─────────────────┘\n",
"</pre>\n"
]
},
"metadata": {}
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"\u001b[1m Total params: \u001b[0m\u001b[38;5;34m14,500\u001b[0m (56.64 KB)\n"
],
"text/html": [
"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Total params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">14,500</span> (56.64 KB)\n",
"</pre>\n"
]
},
"metadata": {}
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"\u001b[1m Trainable params: \u001b[0m\u001b[38;5;34m7,249\u001b[0m (28.32 KB)\n"
],
"text/html": [
"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Trainable params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">7,249</span> (28.32 KB)\n",
"</pre>\n"
]
},
"metadata": {}
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"\u001b[1m Non-trainable params: \u001b[0m\u001b[38;5;34m0\u001b[0m (0.00 B)\n"
],
"text/html": [
"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Non-trainable params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> (0.00 B)\n",
"</pre>\n"
]
},
"metadata": {}
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"\u001b[1m Optimizer params: \u001b[0m\u001b[38;5;34m7,251\u001b[0m (28.33 KB)\n"
],
"text/html": [
"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Optimizer params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">7,251</span> (28.33 KB)\n",
"</pre>\n"
]
},
"metadata": {}
},
{
"output_type": "stream",
"name": "stderr",
"text": [
"WARNING:absl:You are saving your model as an HDF5 file via `model.save()` or `keras.saving.save_model(model)`. This file format is considered legacy. We recommend using instead the native Keras format, e.g. `model.save('my_model.keras')` or `keras.saving.save_model(model, 'my_model.keras')`. \n"
]
}
]
},
{
"cell_type": "code",
"source": [
"import matplotlib.pyplot as plt\n",
"\n",
"def plotting_training(history):\n",
"\n",
" # Plot training & validation accuracy values\n",
" plt.plot(history.history['acc'])\n",
" plt.plot(history.history['val_acc'])\n",
" plt.title('Model accuracy')\n",
" plt.ylabel('Accuracy')\n",
" plt.xlabel('Epoch')\n",
" plt.legend(['Train Accuracy', 'Validation Accuracy'], loc='lower right')\n",
" plt.show()\n",
"\n",
" # Plot training & validation loss values\n",
" loss = history.history['loss']\n",
" val_loss = history.history['val_loss']\n",
" epochs = range(1, len(loss) + 1)\n",
" plt.figure()\n",
" plt.plot(epochs, loss, 'bo', label=\"Training loss\")\n",
" plt.plot(epochs, val_loss, 'b', label='Validation loss')\n",
" plt.title('Training & Validation loss')\n",
" plt.xlabel('epoch', fontsize=10)\n",
" plt.ylabel('loss', fontsize=10)\n",
" plt.ylim(0.0,0.5)\n",
" plt.legend()\n",
" plt.show()"
],
"metadata": {
"id": "0E5n7TeVpmXW"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"source": [
"plotting_training(lstm_history)"
],
"metadata": {
"id": "XZKZRFr0px9X",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 927
},
"outputId": "bef3ed4d-96fc-4f00-a329-c9f5021226af"
},
"execution_count": null,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
],
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAkgAAAHHCAYAAABEEKc/AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAAB+PUlEQVR4nO3dd3hUVf7H8fdMeg8hHQKh96KUCKio4CJoFEVFUCki6AoW0J+LCoK4iqsusiiW3aW4KkUU7KIURekKUoXQCS0JoaRB2sz9/XHJwKSRhAkJ8Hk9zzyZuffce8+9BObLOd9zjsUwDAMRERERcbBWdQVEREREqhsFSCIiIiKFKEASERERKUQBkoiIiEghCpBEREREClGAJCIiIlKIAiQRERGRQhQgiYiIiBSiAElERESkEAVIIlLtWCwWxo8fX+7j9u3bh8ViYebMmS6vk4hcWRQgiUixZs6cicViwWKxsHz58iL7DcMgJiYGi8XCbbfdVgU1FBGpPAqQRKRU3t7ezJo1q8j2ZcuWcfDgQby8vKqgViIilUsBkoiUqlevXsybN4/8/Hyn7bNmzaJdu3ZERkZWUc2uHFlZWVVdBZErjgIkESlVv379OHbsGIsWLXJsy83N5bPPPqN///7FHpOVlcXTTz9NTEwMXl5eNGnShDfffBPDMJzK5eTkMHLkSMLCwggICOD222/n4MGDxZ7z0KFDPPTQQ0RERODl5UWLFi2YPn16he7p+PHjPPPMM7Rq1Qp/f38CAwPp2bMnGzduLFI2Ozub8ePH07hxY7y9vYmKiuKuu+5i9+7djjJ2u51//etftGrVCm9vb8LCwrjlllv4/fffgdJzowrnW40fPx6LxcKff/5J//79qVGjBtdeey0AmzZtYtCgQdSvXx9vb28iIyN56KGHOHbsWLHPa8iQIURHR+Pl5UW9evX461//Sm5uLnv27MFisfDWW28VOW7lypVYLBZmz55d3scqcllxr+oKiEj1FhsbS6dOnZg9ezY9e/YE4PvvvyctLY377ruPKVOmOJU3DIPbb7+dn376iSFDhtC2bVt++OEH/u///o9Dhw45fSk//PDDfPzxx/Tv35/OnTuzdOlSbr311iJ1SE5O5pprrsFisTBixAjCwsL4/vvvGTJkCOnp6Tz11FPluqc9e/bwxRdfcM8991CvXj2Sk5P54IMP6Nq1K3/++SfR0dEA2Gw2brvtNpYsWcJ9993Hk08+SUZGBosWLWLLli00aNAAgCFDhjBz5kx69uzJww8/TH5+Pr/++iurV6+mffv25apbgXvuuYdGjRrx6quvOgLLRYsWsWfPHgYPHkxkZCRbt27l3//+N1u3bmX16tVYLBYADh8+TMeOHTl58iTDhg2jadOmHDp0iM8++4xTp05Rv359unTpwieffMLIkSOdrvvJJ58QEBDAHXfcUaF6i1w2DBGRYsyYMcMAjN9++8145513jICAAOPUqVOGYRjGPffcY9x4442GYRhG3bp1jVtvvdVx3BdffGEAxt///nen8919992GxWIxdu3aZRiGYWzYsMEAjMcee8ypXP/+/Q3AGDdunGPbkCFDjKioKCM1NdWp7H333WcEBQU56rV3714DMGbMmFHqvWVnZxs2m81p2969ew0vLy9jwoQJjm3Tp083AGPSpElFzmG32w3DMIylS5cagPHEE0+UWKa0ehW+13HjxhmA0a9fvyJlC+7zXLNnzzYA45dffnFsGzBggGG1Wo3ffvutxDp98MEHBmBs27bNsS83N9cIDQ01Bg4cWOQ4kSuNuthE5LzuvfdeTp8+zTfffENGRgbffPNNid1r3333HW5ubjzxxBNO259++mkMw+D77793lAOKlCvcGmQYBp9//jnx8fEYhkFqaqrj1aNHD9LS0li/fn257sfLywur1fznz2azcezYMfz9/WnSpInTuT7//HNCQ0N5/PHHi5yjoLXm888/x2KxMG7cuBLLVMSjjz5aZJuPj4/jfXZ2NqmpqVxzzTUAjnrb7Xa++OIL4uPji229KqjTvffei7e3N5988olj3w8//EBqaioPPPBAhestcrlQgCQi5xUWFkb37t2ZNWsW8+fPx2azcffddxdbdv/+/URHRxMQEOC0vVmzZo79BT+tVqujm6pAkyZNnD4fPXqUkydP8u9//5uwsDCn1+DBgwFISUkp1/3Y7XbeeustGjVqhJeXF6GhoYSFhbFp0ybS0tIc5Xbv3k2TJk1wdy85G2H37t1ER0cTEhJSrjqcT7169YpsO378OE8++SQRERH4+PgQFhbmKFdQ76NHj5Kenk7Lli1LPX9wcDDx8fFOIxQ/+eQTatWqxU033eTCOxG5NCkHSUTKpH///gwdOpSkpCR69uxJcHDwRbmu3W4H4IEHHmDg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iY2NdXweNGgQvXv35pVXXiE6OpomTZoA8NFHH9G+fXvHd13//v2LND5s3bqV2267jcDAQAICArjuuuvYvXs3v/zyCx4eHiQlJTmVf+qpp7juuuvO+0wuB1UaIOXm5rJu3Tq6d+/u2Ga1WunevTurVq0q0zmmTZvGfffdV2Jwk5yczLfffsuQIUOK7HvttdeoWbMmV111FW+88Uap/+vIyckhPT3d6VVZSu5iK2hB0jB/EXENwzA4lZt/0V+GYbj0PkaPHs1rr73Gtm3baN26NZmZmfTq1YslS5bwxx9/cMsttxAfH09iYmKp53nppZe499572bRpE7169eL+++/n+PHjpR4zY8YMbr31VoKCgnjggQeYNm2a0/733nuP4cOHM2zYMDZv3sxXX31Fw4YNAbDb7fTs2ZMVK1bw8ccf8+eff/Laa6+Ve2j6kiVLSEhIYNGiRY7gKi8vj5dffpmNGzfyxRdfsG/fPgYNGuQ45tChQ1x//fV4eXmxdOlS1q1bx0MPPUR+fj7XX3899evX56OPPnKUz8vL45NPPuGhhx4qV90uVVU6D1Jqaio2m42IiAin7REREWzfvv28x69du5YtW7YU+WU814cffkhAQAB33XWX0/YnnniCq6++mpCQEFauXMlzzz3HkSNHmDRpUrHnmThxIi+99FIZ7urCFQmQQpsAFjiVCplH1YIkIi5zOs9G8xd/uOjX/XNCD3w9XfcVNGHCBG6++WbH55CQENq0aeP4/PLLL7NgwQK++uorp9abwgYNGkS/fv0AePXVV5kyZQpr167llltuKba83W5n5syZvP322wDcd999PP300+zdu5d69eoB8Pe//52nn36aJ5980nFchw4dAFi8eDFr165l27ZtNG7cGKBIb0dZ+Pn58d///hdPT0/HtnMDmfr16zNlyhQ6dOhAZmYm/v7+TJ06laCgIObMmYOHhweAow4AQ4YMYcaMGfzf//0fAF9//TXZ2dnce++95a7fpajKu9guxLRp02jVqhUdO3Ysscz06dO5//778fb2dto+atQobrjhBlq3bs2jjz7KP//5T95++21ycnKKPc9zzz1HWlqa43XgwAGX3su5Ms8M83d0sXn6Qo1Y8/3RbQqQREQKad++vdPnzMxMnnnmGZo1a0ZwcDD+/v5s27btvC1IrVu3drz38/MjMDCwxJxYgEWLFpGV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gpgzZw4eHuZqDY0bN3Yc//e//52nn36aJ5980rGtQ4cO531+hU2YMMFpgduQkBDatGnj+Pzyyy+zYMECvvrqK0aMGMGOHTv49NNPWbRoEd27dwegfv36jvKDBg3ixRdfZO3atXTs2JG8vDxmzZpVpFXJldTFVs0UdLEFKEASEXFo2rQpnTt3Zvr06QDs2rWLX3/9lSFDhgBgs9l4+eWXadWqFSEhIfj7+/PDDz+QmJhYpvNv27aNmJgYR3AE0KlTpyLl5s6dS5cuXYiMjMTf358xY8aU+RrnXqtNmzaO4AigS5cu2O12EhISHNtatGiBm9vZfNSoqChSUlJKPK/NZuPDDz/kgQcecGx74IEHmDlzJna7HTC7pa677jpHcHSulJQUDh8+TLdu3cp1P8Vp37690+fMzEyeeeYZmjVrRnBwMP7+/mzbts3x7DZs2ICbmxtdu3Yt9nzR0dHceuutjj//r7/+mpycHO65554LrmtJ9C1czWSeGeavFiQRuSg8fM3WnKq4bjkNGTKExx9/nKlTpzJjxgwaNGjg+EJ94403+Ne//sXkyZNp1aoVfn5+PPXUU+Tm5rqsyqtWreL+++/npZdeokePHo6WmH/+858uu8a5CgcxFovFEegU54cffuDQoUP07dvXabvNZmPJkiXcfPPN+Pj4lHh8afsArFazTcUwDMe2knKizg3+AJ555hkWLVrEm2++ScOGDfHx8eHuu+92/Pmc79oADz/8MA8++CBvvfUWM2bMoG/fvpWaZK8WpGomS11sInIxWSxmV9fFfpUx/+hc9957L1arlVmzZvG///2Phx56yJGPtGLFCu644w4eeOAB2rRpQ/369dmxY0eZz92sWTMOHDjAkSNHHNtWr17tVGblypXUrVuXF154gfbt29OoUSP279/vVMbT0xObzXbea23cuJGsrCzHthUrVmC1WmnSpEmZ61zYtGnTuO+++9iwYYPT67777nMka7du3Zpff/212MAmICCA2NhYlixZUuz5w8LCAJye0bkJ26VZsWIFgwYN4s4776RVq1ZERkayb98+x/5WrVpht9tZtmxZiefo1asXfn5+vPfeeyxcuJCHHnqoTNeuKAVI1czZUWwa5i8ici5/f3/69u3Lc889x5EjRxg0aJBjX6NGjVi0aBErV65k27ZtPPLIIyQnJ5f53N27d6dx48YMHDiQjRs38uuvv/LCCy84lWnUqBGJiYnMmTOH3bt3M2XKFBYsWOBUJjY2lr1797JhwwZSU1OLnYfo/vvvx9vbm4EDB7JlyxZ++uknHn/8cR588EFH/lF5HT16lK+//pqBAwfSsmVLp9eAAQP44osvOH78OCNGjCA9PZ377ruP33//nZ07d/LRRx85uvbGjx/PP//5T6ZMmcLOnTtZv349b7/9NmC28lxzzTW89tprbNu2jWXLljnlZJWmUaNGzJ8/nw0bNrBx40b69+/v1BoWGxvLwIEDeeihh/jiiy/Yu3cvP//8M59++qmjjJubG4MGDeK5556jUaNGxXaBupICpGrIw82iFiQRkWIMGTKEEydO0KNHD6d8oTFjxnD11VfTo0cPbrjhBiIjI+ndu3eZz2u1WlmwYAGnT5+mY8eOPPzww7zyyitOZW6//XZGjhzJiBEjaNu2LStXrmTs2LFOZfr06cMtt9zCjTfeSFhYWLFTDfj6+vLDDz9w/PhxOnTowN133023bt145513yvcwzlGQ8F1c/lC3bt3w8fHh448/pmbNmixdupTMzEy6du1Ku3bt+M9//uPozhs4cCCTJ0/m3XffpUWLFtx2223s3LnTca7p06eTn59Pu3bteOqpp/j73/9epvpNmjSJGjVq0LlzZ+Lj4+nRowdXX321U5n33nuPu+++m8cee4ymTZsydOhQp1Y2MP/8c3NzGTx4cHkfUblZjHM7E6XM0tPTCQoKIi0tjcDAQJef3zAMR9OxiIgrZGdns3fvXurVq4e3t3dVV0ek3H799Ve6devGgQMHSm1tK+13vazf32qmqKYUHImIiJhycnI4evQo48eP55577qlwV2R5qItNREREqrXZs2dTt25dTp48yeuvv35RrqkASURERKq1QYMGYbPZWLduHbVq1boo11SAJCIiIlKIAiQRERGRQhQgiYhcYTR4WS53rvgdV4AkInKFKJjr5tSpU1VcE5HKVfA7Xtyac2WlYf4iIlcINzc3goODHQue+vr6akoRuawYhsGpU6dISUkhODjYabHf8lKAJCJyBYmMjAQodVV4kUtdcHCw43e9ohQgiYhcQSwWC1FRUYSHh5e4ErvIpczDw+OCWo4KKEASEbkCubm5ueRLRORypSRtERERkUIUIImIiIgUogBJREREpBDlIFVQwSRU6enpVVwTERERKauC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kUIUIImIiIgUogBJREREpBAFSCIiIiKFKEASERERKUQBkoiIiEghCpBEREREClGAJCLiIhaLhS+++KKqqyEiLqAASUQuC4MGDcJisRR53XLLLVVdNRG5BLlXdQVERFzllltuYcaMGU7bvLy8qqg2InIpUwuSiFw2vLy8iIyMdHrVqFEDMLu/3nvvPXr27ImPjw/169fns88+czp+8+bN3HTTTfj4+FCzZk2GDRtGZmamU5np06fTokULvLy8iIqKYsSIEU77U1NTufPOO/H19aVRo0Z89dVXlXvTIlIpFCCJyBVj7Nix9OnTh40bN3L//fdz3333sW3bNgCysrLo0aMHNWrU4LfffmPevHksXrzYKQB67733GD58OMOGDWPz5s189dVXNGzY0OkaL730Evfeey+bNm2iV69e3H///Rw/fvyi3qeIuEBVr5YrIuIKAwcONNzc3Aw/Pz+n1yuvvGIYhmEAxqOPPup0TFxcnPHXv/7VMAzD+Pe//23UqFHDyMzMdOz/9ttvDavVaiQlJRmGYRjR0dHGCy+8UGIdAGPMmDGOz5mZmQZgfP/99y67TxG5OJSDJCKXjRtvvJH33nvPaVtISIjjfadOnZz2derUiQ0bNgCwbds22rRpg5+fn2N/ly5dsNvtJCQkYLFYOHz4MN26dSu1Dq1bt3a89/PzIzAwkJSUlIrekohUEQVIInLZ8PPzK9Ll5So+Pj5lKufh4eH02WKxYLfbK6NKIlKJlIMkIleM1atXF/ncrFkzAJo1a8bGjRvJyspy7F+xYgVWq5UmTZoQEBBAbGwsS5Ysuah1FpGqoRYkEbls5OTkkJSU5LTN3d2d0NBQAObNm0f79u259tpr+eSTT1i7di3Tpk0D4P7772fcuHEMHDiQ8ePHc/ToUR5//HEefPBBIiIiABg/fjyPPvoo4eHh9OzZk4yMDFasWMHjjz9+cW9URCqdAiQRuWwsXLiQqKgop21NmjRh+/btgDnCbM6cOTz22GNERUUxe/ZsmjdvDoCvry8//PADTz75JB06dMDX15c+ffowadIkx7kGDhxIdnY2b731Fs888wyhoaHcfffdF+8GReSisRiGYVR1JUREKpvFYmHBggX07t27qqsiIpcA5SCJiIiIFKIASURERKQQ5SCJyBVB2QQiUh5qQRIREREpRAGSiIiISCEKkEREREQKUYAkIiIiUogCJBEREZFCFCCJiIiIFKIASURERKQQBUgiIiIihShAEhERESnk/wGDC7O3xsHZTgAAAABJRU5ErkJggg==\n"
},
"metadata": {}
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
],
"image/png": "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+nScOnUKrVq1QmhoKNLS0gotf//+fdStWxdz586Fl5dXOdeWiIiIKgKLhptFixZh1KhRGD58OJo2bYo1a9bA2dkZ69evL7R8u3btMH/+fAwePBgqlaqca0tEREQVgcXCTU5ODk6ePImQkJC8ytjZISQkBPHx8SY7T3Z2NjIyMvQeREREZLssFm5u3LgBtVoNT09Pve2enp5ISUkx2XkiIyPh5uame/j5+Zns2ERERGR9LD6g2NymTp2K9PR03SMpKcnSVSIiIiIzcrDUiatXrw57e3ukpqbqbU9NTTXpYGGVSsXxOURERI8Ri7XcKJVKtGnTBjExMbptGo0GMTExCAoKslS1iIiIqIKzWMsNAERERCA8PBxt27ZF+/btsWTJEmRmZmL48OEAgFdffRU+Pj6IjIwEIAch//7777rn165dw5kzZ+Di4oL69etb7HMQERGR9bBouAkLC8P169cxbdo0pKSkIDAwEPv27dMNMr569Srs7PIal/7991888cQTutcLFizAggUL0KVLF8TFxZV39YmIiMgKKYQQwtKVKE8ZGRlwc3NDeno6XF1dLV0dIiIiMoAx3982f7cUERERPV4YboiIiMimMNwQERGRTWG4ISIiIpvCcENEREQ2heGGiIiIbArDDREREdkUhhsiIiKyKQw3REREZFMYboiIiMimMNwQERGRTWG4ISIiIpvCcENEREQ2heGGiIiIbArDDREREdkUhhsiIiKyKQw3REREZFMYboiIiMimMNwQERGRTWG4ISIiIpvCcENEREQ2heGGiIiIbArDDREREdkUhhsiIiKyKQw3REREZFMYboiIiMimMNwQERGRTWG4ISIiIpvCcENEREQ2heGGiIiIbArDDREREdkUhhsiIiKyKQw3REREZFMYboiIiMimMNwQERGRTWG4ISIiIpvCcENEREQ2heGGiIiIbArDDREREdkUhhsiIiKyKQw3REREZFMYboiIiMimMNwQERGRTWG4ISIiIpvCcENEREQ2heGGiIiIbArDDREREdkUhhsiIiKyKQw3REREZFMYboiIiMimMNwQERGRTWG4ISIiIpvCcENEREQ2heGGiIiIbArDDREREdkUhhsiIiKyKQw3REREZFMYboiIiMimMNwQERGRTWG4ISIiIpvCcENEREQ2heGGiIiIbIpVhJuVK1ciICAAjo6O6NCh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\n"
},
"metadata": {}
}
]
},
{
"cell_type": "code",
"source": [],
"metadata": {
"id": "vdmwaTGk0ZdR"
},
"execution_count": null,
"outputs": []
}
]
}