From 6fead27328a1b79227c9fff1a34b46d91c17ff30 Mon Sep 17 00:00:00 2001
From: SurajSSingh <surajss@uci.edu>
Date: Thu, 12 May 2022 15:16:25 -0700
Subject: [PATCH] Updated Attention model

---
 .history/am_220512.csv                        |  21 +
 .model/attention/keras_metadata.pb            |  18 +-
 .model/attention/saved_model.pb               | Bin 139289 -> 126157 bytes
 .../variables/variables.data-00000-of-00001   | Bin 12644 -> 9432 bytes
 .model/attention/variables/variables.index    | Bin 1599 -> 814 bytes
 TEST.data-00000-of-00001                      | Bin 0 -> 10248 bytes
 TEST.index                                    | Bin 0 -> 1220 bytes
 attention.py                                  |  13 +-
 checkpoint                                    |   2 +
 tf_model.ipynb                                | 922 +++++++++++++++---
 10 files changed, 823 insertions(+), 153 deletions(-)
 create mode 100644 .history/am_220512.csv
 mode change 100755 => 100644 .model/attention/saved_model.pb
 mode change 100755 => 100644 .model/attention/variables/variables.data-00000-of-00001
 create mode 100644 TEST.data-00000-of-00001
 create mode 100644 TEST.index
 create mode 100644 checkpoint

diff --git a/.history/am_220512.csv b/.history/am_220512.csv
new file mode 100644
index 0000000..68a8171
--- /dev/null
+++ b/.history/am_220512.csv
@@ -0,0 +1,21 @@
+loss,categorical_crossentropy,categorical_accuracy,categorical_hinge,val_loss,val_categorical_crossentropy,val_categorical_accuracy,val_categorical_hinge
+0.6102505922317505,0.6102591753005981,0.7721169590950012,0.5578135251998901,0.2365977168083191,0.23661620914936066,0.9482620358467102,0.21556608378887177
+0.2410024255514145,0.24101324379444122,0.9489823579788208,0.22259768843650818,0.22830058634281158,0.22832421958446503,0.9520950317382812,0.219150111079216
+0.22811080515384674,0.22812050580978394,0.9507037997245789,0.22212223708629608,0.20287160575389862,0.20289486646652222,0.9597100019454956,0.21067200601100922
+0.2257438749074936,0.225755974650383,0.9488319158554077,0.22673241794109344,0.19838610291481018,0.19840732216835022,0.9598119854927063,0.1895865648984909
+0.24677418172359467,0.24678997695446014,0.9415083527565002,0.24014297127723694,0.20171019434928894,0.20173151791095734,0.9596517086029053,0.1882585883140564
+0.22916194796562195,0.22917920351028442,0.9510580897331238,0.22440536320209503,0.1999731957912445,0.19999487698078156,0.9598484039306641,0.19534263014793396
+0.21525806188583374,0.2152738720178604,0.9554435610771179,0.21104231476783752,0.19979862868785858,0.19982029497623444,0.9598557353019714,0.19377031922340393
+0.21643704175949097,0.2164536565542221,0.9556373953819275,0.21280315518379211,0.19801299273967743,0.19803403317928314,0.9598265886306763,0.1905786246061325
+0.22762203216552734,0.2276403158903122,0.9521276950836182,0.2212676852941513,0.21021290123462677,0.21023407578468323,0.9591853022575378,0.20358486473560333
+0.23046843707561493,0.2304823100566864,0.949951708316803,0.23079520463943481,0.19998398423194885,0.20000584423542023,0.9586096405982971,0.1999059021472931
+0.21614259481430054,0.21616177260875702,0.9552162289619446,0.21368272602558136,0.19799767434597015,0.19801850616931915,0.9597464203834534,0.19059626758098602
+0.2314920574426651,0.23151175677776337,0.950182318687439,0.23680256307125092,0.19927160441875458,0.1992924064397812,0.9598192572593689,0.19148322939872742
+0.19912201166152954,0.19913870096206665,0.9593844413757324,0.197440966963768,0.1971137374639511,0.1971348226070404,0.9596953988075256,0.1911185085773468
+0.22077631950378418,0.22079353034496307,0.9546881318092346,0.21700823307037354,0.19683417677879333,0.1968551129102707,0.9598119854927063,0.1903052181005478
+0.19817253947257996,0.19818846881389618,0.9590468406677246,0.1978733092546463,0.19659003615379333,0.19661082327365875,0.9597901105880737,0.1899634152650833
+0.21108753979206085,0.211105078458786,0.9546680450439453,0.21126605570316315,0.19589678943157196,0.19591759145259857,0.9598557353019714,0.1899382472038269
+0.20053814351558685,0.2005544900894165,0.9582446217536926,0.20047253370285034,0.19655226171016693,0.19657309353351593,0.959863007068634,0.19047877192497253
+0.19827072322368622,0.19828687608242035,0.95877605676651,0.19837716221809387,0.19621789455413818,0.19623875617980957,0.9598119854927063,0.189311683177948
+0.2156815230846405,0.2156958281993866,0.955353319644928,0.2140825092792511,0.1963217407464981,0.19634267687797546,0.9598484039306641,0.19015157222747803
+0.2074679136276245,0.20748521387577057,0.9574725031852722,0.2063201367855072,0.1954033225774765,0.19542405009269714,0.959863007068634,0.19042037427425385
diff --git a/.model/attention/keras_metadata.pb b/.model/attention/keras_metadata.pb
index a85a548..1306f14 100755
--- a/.model/attention/keras_metadata.pb
+++ b/.model/attention/keras_metadata.pb
@@ -1,15 +1,15 @@
 
-‘root"_tf_keras_sequential*ì{"name": "sequential", "trainable": true, "expects_training_arg": true, "dtype": "float32", "batch_input_shape": null, "must_restore_from_config": false, "class_name": "Sequential", "config": {"name": "sequential", "layers": [{"class_name": "InputLayer", "config": {"batch_input_shape": {"class_name": "__tuple__", "items": [null, 10, 7]}, "dtype": "float32", "sparse": false, "ragged": false, "name": "input_1"}}, {"class_name": "Attention", "config": {"name": "attention", "trainable": true, "dtype": "float32", "units": 16}}, {"class_name": "Dense", "config": {"name": "dense", "trainable": true, "dtype": "float32", "units": 4, "activation": "linear", "use_bias": true, "kernel_initializer": {"class_name": "GlorotUniform", "config": {"seed": null}}, "bias_initializer": {"class_name": "Zeros", "config": {}}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null}}]}, "shared_object_id": 5, "input_spec": [{"class_name": "InputSpec", "config": {"dtype": null, "shape": {"class_name": "__tuple__", "items": [null, 10, 7]}, "ndim": 3, "max_ndim": null, "min_ndim": null, "axes": {}}}], "build_input_shape": {"class_name": "TensorShape", "items": [null, 10, 7]}, "is_graph_network": true, "full_save_spec": {"class_name": "__tuple__", "items": [[{"class_name": "TypeSpec", "type_spec": "tf.TensorSpec", "serialized": [{"class_name": "TensorShape", "items": [null, 10, 7]}, "float32", "input_1"]}], {}]}, "save_spec": {"class_name": "TypeSpec", "type_spec": "tf.TensorSpec", "serialized": [{"class_name": "TensorShape", "items": [null, 10, 7]}, "float32", "input_1"]}, "keras_version": "2.8.0", "backend": "tensorflow", "model_config": {"class_name": "Sequential", "config": {"name": "sequential", "layers": [{"class_name": "InputLayer", "config": {"batch_input_shape": {"class_name": "__tuple__", "items": [null, 10, 7]}, "dtype": "float32", "sparse": false, "ragged": false, "name": "input_1"}, "shared_object_id": 0}, {"class_name": "Attention", "config": {"name": "attention", "trainable": true, "dtype": "float32", "units": 16}, "shared_object_id": 1}, {"class_name": "Dense", "config": {"name": "dense", "trainable": true, "dtype": "float32", "units": 4, "activation": "linear", "use_bias": true, "kernel_initializer": {"class_name": "GlorotUniform", "config": {"seed": null}, "shared_object_id": 2}, "bias_initializer": {"class_name": "Zeros", "config": {}, "shared_object_id": 3}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null}, "shared_object_id": 4}]}}, "training_config": {"loss": {"class_name": "CategoricalCrossentropy", "config": {"reduction": "auto", "name": "categorical_crossentropy", "from_logits": true, "label_smoothing": 0.0, "axis": -1}, "shared_object_id": 7}, "metrics": [[{"class_name": "CategoricalCrossentropy", "config": {"name": "categorical_crossentropy", "dtype": "float32", "from_logits": true, "label_smoothing": 0}, "shared_object_id": 8}, {"class_name": "CategoricalAccuracy", "config": {"name": "categorical_accuracy", "dtype": "float32"}, "shared_object_id": 9}, {"class_name": "CategoricalHinge", "config": {"name": "categorical_hinge", "dtype": "float32"}, "shared_object_id": 10}]], "weighted_metrics": null, "loss_weights": null, "optimizer_config": {"class_name": "Adam", "config": {"name": "Adam", "learning_rate": 0.0010000000474974513, "decay": 0.0, "beta_1": 0.8999999761581421, "beta_2": 0.9990000128746033, "epsilon": 1e-07, "amsgrad": false}}}}2
-µroot.layer_with_weights-0"_tf_keras_layer*þ{"name": "attention", "trainable": true, "expects_training_arg": true, "dtype": "float32", "batch_input_shape": null, "stateful": false, "must_restore_from_config": false, "class_name": "Attention", "config": {"name": "attention", "trainable": true, "dtype": "float32", "units": 16}, "shared_object_id": 1, "build_input_shape": {"class_name": "TensorShape", "items": [null, 10, 7]}}2
-Âroot.layer_with_weights-1"_tf_keras_layer*‹{"name": "dense", "trainable": true, "expects_training_arg": false, "dtype": "float32", "batch_input_shape": null, "stateful": false, "must_restore_from_config": false, "class_name": "Dense", "config": {"name": "dense", "trainable": true, "dtype": "float32", "units": 4, "activation": "linear", "use_bias": true, "kernel_initializer": {"class_name": "GlorotUniform", "config": {"seed": null}, "shared_object_id": 2}, "bias_initializer": {"class_name": "Zeros", "config": {}, "shared_object_id": 3}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null}, "shared_object_id": 4, "input_spec": {"class_name": "InputSpec", "config": {"dtype": null, "shape": null, "ndim": null, "max_ndim": null, "min_ndim": 2, "axes": {"-1": 16}}, "shared_object_id": 11}, "build_input_shape": {"class_name": "TensorShape", "items": [null, 16]}}2
+ÿroot"_tf_keras_sequential*Ú{"name": "sequential", "trainable": true, "expects_training_arg": true, "dtype": "float32", "batch_input_shape": null, "must_restore_from_config": false, "class_name": "Sequential", "config": {"name": "sequential", "layers": [{"class_name": "InputLayer", "config": {"batch_input_shape": {"class_name": "__tuple__", "items": [null, 10, 7]}, "dtype": "float32", "sparse": false, "ragged": false, "name": "input_1"}}, {"class_name": "CustomAttention", "config": {"name": "custom_attention", "trainable": true, "dtype": "float32", "units": 32}}, {"class_name": "Dense", "config": {"name": "dense", "trainable": true, "dtype": "float32", "units": 4, "activation": "linear", "use_bias": true, "kernel_initializer": {"class_name": "GlorotUniform", "config": {"seed": null}}, "bias_initializer": {"class_name": "Zeros", "config": {}}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null}}]}, "shared_object_id": 5, "input_spec": [{"class_name": "InputSpec", "config": {"dtype": null, "shape": {"class_name": "__tuple__", "items": [null, 10, 7]}, "ndim": 3, "max_ndim": null, "min_ndim": null, "axes": {}}}], "build_input_shape": {"class_name": "TensorShape", "items": [null, 10, 7]}, "is_graph_network": true, "full_save_spec": {"class_name": "__tuple__", "items": [[{"class_name": "TypeSpec", "type_spec": "tf.TensorSpec", "serialized": [{"class_name": "TensorShape", "items": [null, 10, 7]}, "float32", "input_1"]}], {}]}, "save_spec": {"class_name": "TypeSpec", "type_spec": "tf.TensorSpec", "serialized": [{"class_name": "TensorShape", "items": [null, 10, 7]}, "float32", "input_1"]}, "keras_version": "2.8.0", "backend": "tensorflow", "model_config": {"class_name": "Sequential", "config": {"name": "sequential", "layers": [{"class_name": "InputLayer", "config": {"batch_input_shape": {"class_name": "__tuple__", "items": [null, 10, 7]}, "dtype": "float32", "sparse": false, "ragged": false, "name": "input_1"}, "shared_object_id": 0}, {"class_name": "CustomAttention", "config": {"name": "custom_attention", "trainable": true, "dtype": "float32", "units": 32}, "shared_object_id": 1}, {"class_name": "Dense", "config": {"name": "dense", "trainable": true, "dtype": "float32", "units": 4, "activation": "linear", "use_bias": true, "kernel_initializer": {"class_name": "GlorotUniform", "config": {"seed": null}, "shared_object_id": 2}, "bias_initializer": {"class_name": "Zeros", "config": {}, "shared_object_id": 3}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null}, "shared_object_id": 4}]}}, "training_config": {"loss": {"class_name": "CategoricalCrossentropy", "config": {"reduction": "auto", "name": "categorical_crossentropy", "from_logits": true, "label_smoothing": 0.0, "axis": -1}, "shared_object_id": 7}, "metrics": [[{"class_name": "CategoricalCrossentropy", "config": {"name": "categorical_crossentropy", "dtype": "float32", "from_logits": true, "label_smoothing": 0}, "shared_object_id": 8}, {"class_name": "CategoricalAccuracy", "config": {"name": "categorical_accuracy", "dtype": "float32"}, "shared_object_id": 9}, {"class_name": "CategoricalHinge", "config": {"name": "categorical_hinge", "dtype": "float32"}, "shared_object_id": 10}]], "weighted_metrics": null, "loss_weights": null, "optimizer_config": {"class_name": "Adam", "config": {"name": "Adam", "learning_rate": 0.001, "decay": 0.0, "beta_1": 0.9, "beta_2": 0.999, "epsilon": 1e-07, "amsgrad": false}}}}2
+Éroot.layer_with_weights-0"_tf_keras_layer*’{"name": "custom_attention", "trainable": true, "expects_training_arg": true, "dtype": "float32", "batch_input_shape": null, "stateful": false, "must_restore_from_config": false, "class_name": "CustomAttention", "config": {"name": "custom_attention", "trainable": true, "dtype": "float32", "units": 32}, "shared_object_id": 1, "build_input_shape": {"class_name": "TensorShape", "items": [null, 10, 7]}}2
+Âroot.layer_with_weights-1"_tf_keras_layer*‹{"name": "dense", "trainable": true, "expects_training_arg": false, "dtype": "float32", "batch_input_shape": null, "stateful": false, "must_restore_from_config": false, "class_name": "Dense", "config": {"name": "dense", "trainable": true, "dtype": "float32", "units": 4, "activation": "linear", "use_bias": true, "kernel_initializer": {"class_name": "GlorotUniform", "config": {"seed": null}, "shared_object_id": 2}, "bias_initializer": {"class_name": "Zeros", "config": {}, "shared_object_id": 3}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null}, "shared_object_id": 4, "input_spec": {"class_name": "InputSpec", "config": {"dtype": null, "shape": null, "ndim": null, "max_ndim": null, "min_ndim": 2, "axes": {"-1": 32}}, "shared_object_id": 11}, "build_input_shape": {"class_name": "TensorShape", "items": [null, 32]}}2
 ø-root.layer_with_weights-0.attention_score_vec"_tf_keras_layer*­{"name": "attention_score_vec", "trainable": true, "expects_training_arg": false, "dtype": "float32", "batch_input_shape": null, "stateful": false, "must_restore_from_config": false, "class_name": "Dense", "config": {"name": "attention_score_vec", "trainable": true, "dtype": "float32", "units": 7, "activation": "linear", "use_bias": false, "kernel_initializer": {"class_name": "GlorotUniform", "config": {"seed": null}, "shared_object_id": 12}, "bias_initializer": {"class_name": "Zeros", "config": {}, "shared_object_id": 13}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null}, "shared_object_id": 14, "input_spec": {"class_name": "InputSpec", "config": {"dtype": null, "shape": null, "ndim": null, "max_ndim": null, "min_ndim": 2, "axes": {"-1": 7}}, "shared_object_id": 15}, "build_input_shape": {"class_name": "TensorShape", "items": [null, 10, 7]}}2
-·
root.layer_with_weights-0.h_t"_tf_keras_layer*ü{"name": "last_hidden_state", "trainable": true, "expects_training_arg": true, "dtype": "float32", "batch_input_shape": null, "stateful": false, "must_restore_from_config": false, "class_name": "Lambda", "config": {"name": "last_hidden_state", "trainable": true, "dtype": "float32", "function": {"class_name": "__tuple__", "items": ["4wEAAAAAAAAAAAAAAAEAAAAFAAAAUwAAAHMWAAAAfABkAGQAhQJkAWQAZACFAmYDGQBTACkCTun/\n////qQApAdoBeHICAAAAcgIAAAD6MS9ob21lL250b3AvUHljaGFybVByb2plY3RzL2ZpbmFsX2xh\nYi9hdHRlbnRpb24ucHnaCDxsYW1iZGE+GwAAAHMCAAAAFgA=\n", null, null]}, "function_type": "lambda", "module": "attention", "output_shape": {"class_name": "__tuple__", "items": [7]}, "output_shape_type": "raw", "output_shape_module": null, "arguments": {}}, "shared_object_id": 16}2
+Ý
root.layer_with_weights-0.h_t"_tf_keras_layer*¢{"name": "last_hidden_state", "trainable": true, "expects_training_arg": true, "dtype": "float32", "batch_input_shape": null, "stateful": false, "must_restore_from_config": false, "class_name": "Lambda", "config": {"name": "last_hidden_state", "trainable": true, "dtype": "float32", "function": {"class_name": "__tuple__", "items": ["4wEAAAAAAAAAAAAAAAEAAAAFAAAAUwAAAHMWAAAAfABkAGQAhQJkAWQAZACFAmYDGQBTACkCTun/\n////qQApAdoBeHICAAAAcgIAAAD6TS9Vc2Vycy9ub3dhZG1pbi9Eb2N1bWVudHMvU2Nob29sIEZv\nbGRlci9DUyA0MzcvTGFiL0ZpbmFsIFByb2plY3QvYXR0ZW50aW9uLnB52gg8bGFtYmRhPhoAAABz\nAgAAABYA\n", null, null]}, "function_type": "lambda", "module": "attention", "output_shape": {"class_name": "__tuple__", "items": [7]}, "output_shape_type": "raw", "output_shape_module": null, "arguments": {}}, "shared_object_id": 16}2
 ™)root.layer_with_weights-0.attention_score"_tf_keras_layer*Ò{"name": "attention_score", "trainable": true, "expects_training_arg": false, "dtype": "float32", "batch_input_shape": null, "stateful": false, "must_restore_from_config": false, "class_name": "Dot", "config": {"name": "attention_score", "trainable": true, "dtype": "float32", "axes": [1, 2], "normalize": false}, "shared_object_id": 17, "build_input_shape": [{"class_name": "TensorShape", "items": [null, 7]}, {"class_name": "TensorShape", "items": [null, 10, 7]}]}2
 —*root.layer_with_weights-0.attention_weight"_tf_keras_layer*Ï{"name": "attention_weight", "trainable": true, "expects_training_arg": false, "dtype": "float32", "batch_input_shape": null, "stateful": false, "must_restore_from_config": false, "class_name": "Activation", "config": {"name": "attention_weight", "trainable": true, "dtype": "float32", "activation": "softmax"}, "shared_object_id": 18}2
 —(root.layer_with_weights-0.context_vector"_tf_keras_layer*Ñ{"name": "context_vector", "trainable": true, "expects_training_arg": false, "dtype": "float32", "batch_input_shape": null, "stateful": false, "must_restore_from_config": false, "class_name": "Dot", "config": {"name": "context_vector", "trainable": true, "dtype": "float32", "axes": [1, 1], "normalize": false}, "shared_object_id": 19, "build_input_shape": [{"class_name": "TensorShape", "items": [null, 10, 7]}, {"class_name": "TensorShape", "items": [null, 10]}]}2
 ˆ*root.layer_with_weights-0.attention_output"_tf_keras_layer*À{"name": "attention_output", "trainable": true, "expects_training_arg": false, "dtype": "float32", "batch_input_shape": null, "stateful": false, "must_restore_from_config": false, "class_name": "Concatenate", "config": {"name": "attention_output", "trainable": true, "dtype": "float32", "axis": -1}, "shared_object_id": 20, "build_input_shape": [{"class_name": "TensorShape", "items": [null, 7]}, {"class_name": "TensorShape", "items": [null, 7]}]}2
-ì*root.layer_with_weights-0.attention_vector"_tf_keras_layer*¤{"name": "attention_vector", "trainable": true, "expects_training_arg": false, "dtype": "float32", "batch_input_shape": null, "stateful": false, "must_restore_from_config": false, "class_name": "Dense", "config": {"name": "attention_vector", "trainable": true, "dtype": "float32", "units": 16, "activation": "tanh", "use_bias": false, "kernel_initializer": {"class_name": "GlorotUniform", "config": {"seed": null}, "shared_object_id": 21}, "bias_initializer": {"class_name": "Zeros", "config": {}, "shared_object_id": 22}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null}, "shared_object_id": 23, "input_spec": {"class_name": "InputSpec", "config": {"dtype": null, "shape": null, "ndim": null, "max_ndim": null, "min_ndim": 2, "axes": {"-1": 14}}, "shared_object_id": 24}, "build_input_shape": {"class_name": "TensorShape", "items": [null, 14]}}2
-¹droot.keras_api.metrics.0"_tf_keras_metric*‚{"class_name": "Mean", "name": "loss", "dtype": "float32", "config": {"name": "loss", "dtype": "float32"}, "shared_object_id": 25}2
-žeroot.keras_api.metrics.1"_tf_keras_metric*ç{"class_name": "CategoricalCrossentropy", "name": "categorical_crossentropy", "dtype": "float32", "config": {"name": "categorical_crossentropy", "dtype": "float32", "from_logits": true, "label_smoothing": 0}, "shared_object_id": 8}2
-çfroot.keras_api.metrics.2"_tf_keras_metric*°{"class_name": "CategoricalAccuracy", "name": "categorical_accuracy", "dtype": "float32", "config": {"name": "categorical_accuracy", "dtype": "float32"}, "shared_object_id": 9}2
-ßgroot.keras_api.metrics.3"_tf_keras_metric*¨{"class_name": "CategoricalHinge", "name": "categorical_hinge", "dtype": "float32", "config": {"name": "categorical_hinge", "dtype": "float32"}, "shared_object_id": 10}2
\ No newline at end of file
+ì*root.layer_with_weights-0.attention_vector"_tf_keras_layer*¤{"name": "attention_vector", "trainable": true, "expects_training_arg": false, "dtype": "float32", "batch_input_shape": null, "stateful": false, "must_restore_from_config": false, "class_name": "Dense", "config": {"name": "attention_vector", "trainable": true, "dtype": "float32", "units": 32, "activation": "tanh", "use_bias": false, "kernel_initializer": {"class_name": "GlorotUniform", "config": {"seed": null}, "shared_object_id": 21}, "bias_initializer": {"class_name": "Zeros", "config": {}, "shared_object_id": 22}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null}, "shared_object_id": 23, "input_spec": {"class_name": "InputSpec", "config": {"dtype": null, "shape": null, "ndim": null, "max_ndim": null, "min_ndim": 2, "axes": {"-1": 14}}, "shared_object_id": 24}, "build_input_shape": {"class_name": "TensorShape", "items": [null, 14]}}2
+¹_root.keras_api.metrics.0"_tf_keras_metric*‚{"class_name": "Mean", "name": "loss", "dtype": "float32", "config": {"name": "loss", "dtype": "float32"}, "shared_object_id": 25}2
+ž`root.keras_api.metrics.1"_tf_keras_metric*ç{"class_name": "CategoricalCrossentropy", "name": "categorical_crossentropy", "dtype": "float32", "config": {"name": "categorical_crossentropy", "dtype": "float32", "from_logits": true, "label_smoothing": 0}, "shared_object_id": 8}2
+çaroot.keras_api.metrics.2"_tf_keras_metric*°{"class_name": "CategoricalAccuracy", "name": "categorical_accuracy", "dtype": "float32", "config": {"name": "categorical_accuracy", "dtype": "float32"}, "shared_object_id": 9}2
+ßbroot.keras_api.metrics.3"_tf_keras_metric*¨{"class_name": "CategoricalHinge", "name": "categorical_hinge", "dtype": "float32", "config": {"name": "categorical_hinge", "dtype": "float32"}, "shared_object_id": 10}2
\ No newline at end of file
diff --git a/.model/attention/saved_model.pb b/.model/attention/saved_model.pb
old mode 100755
new mode 100644
index 573c7f905e81021bac35246e9f179dff9cdde29c..f6723fe642fc128973775f2a31a00316c259dabe
GIT binary patch
literal 126157
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
QprY+h9gpN)#dNIxKd0*QXaE2J

literal 139289
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
SMp{MFjtX@|NTG_TOZ|T#fTwBz

diff --git a/.model/attention/variables/variables.data-00000-of-00001 b/.model/attention/variables/variables.data-00000-of-00001
old mode 100755
new mode 100644
index 1a5c7b2d5f137e1a1170e292ea9a9f2f47e7e253..34dad5eb6ebaa13a8fbc124005614d9298a1ccf3
GIT binary patch
literal 9432
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

literal 12644
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

diff --git a/.model/attention/variables/variables.index b/.model/attention/variables/variables.index
index a31867933f61483597b04caaeebd956bbc4d30f3..656368049b507b76cdb628c7e9ca686b324b69f9 100755
GIT binary patch
delta 270
zcmdnbvyN?oF4q@fjVGq23om8wooH^uc|%x(#dO7wOHLCXXmDNuakj5wVV}5Gi}L}9
zBfU|7ElB1Lh-1*35;R$mQH%2hk`(U~5a+M4$zLHQKI4fS)i^&O$#T8{aT?YMT%UZC
z(UF5iL%?*ylfS1Y&t=l)RS;qV3N)~oa_`xbIXRZajBf&q#t}x-YkgjNTr%Q@lRvO1
zx$prMDJWcF)o9=|EfFqqW&i?45YhDbVJe(+;M2kl42;a>3^!QeVtuzJCER7@c*V*;
YS&>a_vH=@A5VLZG|8D43DRsXM0Lpz+IsgCw

literal 1599
zcmZQzVB=tvV&Y(Akl~Ma_HcFf4)FK%3vqPvagFzP@^W<!iFXfj4DjG!7h+J@qM)(C
z$uxHHq0I~?eA%f*iN*1W1)2J}sU=03$;J8x`pNmFc_sRKjv*mIo=%}5uEF|YjzOMa
z!@?YWLR~o+fu?-m(qJ(?9R2u-hyq_peo0~uAq{Up8s`7pw?jyY&yYAfet@)02%Vfo
ztQ}uK8s>eU?g_NRh&VeMxJk6*56BL+TPa6@b{G?9M+d2Pw1702oSPfNU?P;0SeaTB
zU!GZ#5nrB~nVwNntZS&Bl$ltJKfqapm^fGz8kjT$Of6(Houy5M`~yNfeLbUGgW`jI
z{6qBf3raF`GpkaI^mB<ZsfQP6l6HcDpoxr788I3jhyyi5*WRcTRTKfHvb<CRDTD*)
zU;&V$H5!;qyB2S3l{FP7*U50R6neNp#{GX^a^6fvoPfI#x*mvv9U)R|%An1M2&kmg
zlEipJ{GMk}n85^$yuYuH-{+SBCPD()Xbwp6?zg{gaw+hoq$Vd;64I~$q+waLpcR)q
zUuFp~_V8H13CyPxm^3&{3s#%yacS`7q$U>SW#*;F7bTXY;?oGq;7dRjWu6W-Vo(z=
zODxJvOv*_Gl@569V-x}fAv*{wtYFeO!f498Ti^{ZW$_3xZVoTVxGr)1%W6c$BShB+
zageT1ll42fWW)(X9LVW>KrEo}hFPP5-L&6D@IHl3hZy&O4`f`0S9>jSPKW5)A_>y<
zuB4@x0SKa)85o#AjNO|Oet~F45OLts!VL_J%;gL(x#40P&L}p&<L3Cy%?}d755j*p
KbgPuQ-v$6Jd!vv5

diff --git a/TEST.data-00000-of-00001 b/TEST.data-00000-of-00001
new file mode 100644
index 0000000000000000000000000000000000000000..aaa509c52a2a2a98952fade82f8df46c9b069474
GIT binary patch
literal 10248
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

literal 0
HcmV?d00001

diff --git a/TEST.index b/TEST.index
new file mode 100644
index 0000000000000000000000000000000000000000..ee1b5b2072bd9e89bd13d78225591e292bc6673f
GIT binary patch
literal 1220
zcmZQzVB=tvV&Y(Akl~Ma_HcFf4)FK%3vqPvagFzP@^W<!iFXfj4DjG!7h+JDVy*E-
z#5C`JUIc@ecurzvYEgW7W=TeTd1_{QMoF=*fqr61Norn6W`16LadLi9YJ6F0vVL}I
zQC@0}zMf-9NRX#fXozdDewbsBC)kQGN1sqv4n`pkAts;=K&-HWMdJvg>9syDJwsD*
z|9}urU(YDlp!i@P{}BEBf|AVK%&OEP{aj*=`y&oAu1$A=jhBpg8L_%9XoGZ3lw3PS
zUPBz{hm!mvqP@Wf^oD}M8&-`5KGPE6B4<6yya6%pfF#Jcw>cs<?nHS5qHBsSNY|Zj
zt<QuNg$(tRG82pOhX4!E?JNonEE)o)8=m|<Eo~}9ZVW(7dLs@rY2P;v4igz60)Y?F
za6lWV;gdkqQc*<_V$+QR$k7@NET-Ih_GHRZ7TRF56y6AfjN56NvC537(1z$bpbpY?
zN0xs+gEk)`sV1eCB*q)!4|fKI87vwsrhi`_zt1njXGBQx9FXGOZ-3on&_c2(B{ey*
zl91K~Ag#-)1+BQ``7%p@ISEg;<OF8<2`m~MrWa$rX>n=r<)kJS<z?oj#}_4*q~g=a
z2-LU)WKrhnP$LE)*vHJkzyxB<U6ZB)q8UNNflmuJFfcL~Fudb{iz)T|U+|fOqk)qj
QB!nM?|8D43DRsXM021gxumAu6

literal 0
HcmV?d00001

diff --git a/attention.py b/attention.py
index 69a94dc..6fa0682 100644
--- a/attention.py
+++ b/attention.py
@@ -6,17 +6,16 @@ from tensorflow.keras import backend as K
 from tensorflow.keras.layers import Dense, Lambda, Dot, Activation, Concatenate, Layer
 
 # KERAS_ATTENTION_DEBUG: If set to 1. Will switch to debug mode.
-# In debug mode, the class Attention is no longer a Keras layer.
+# In debug mode, the class CustomAttention is no longer a Keras layer.
 # What it means in practice is that we can have access to the internal values
 # of each tensor. If we don't use debug, Keras treats the object
 # as a layer and we can only get the final output.
 debug_flag = int(os.environ.get('KERAS_ATTENTION_DEBUG', 0))
 
-
-class Attention(object if debug_flag else Layer):
+class CustomAttention(object if debug_flag else Layer):
 
     def __init__(self, units=128, **kwargs):
-        super(Attention, self).__init__(**kwargs)
+        super(CustomAttention, self).__init__(**kwargs)
         self.units = units
 
     # noinspection PyAttributeOutsideInit
@@ -32,7 +31,7 @@ class Attention(object if debug_flag else Layer):
             self.attention_vector = Dense(self.units, use_bias=False, activation='tanh', name='attention_vector')
         if not debug_flag:
             # debug: the call to build() is done in call().
-            super(Attention, self).build(input_shape)
+            super(CustomAttention, self).build(input_shape)
 
     def compute_output_shape(self, input_shape):
         return input_shape[0], self.units
@@ -41,7 +40,7 @@ class Attention(object if debug_flag else Layer):
         if debug_flag:
             return self.call(inputs, training, **kwargs)
         else:
-            return super(Attention, self).__call__(inputs, training, **kwargs)
+            return super(CustomAttention, self).__call__(inputs, training, **kwargs)
 
     # noinspection PyUnusedLocal
     def call(self, inputs, training=None, **kwargs):
@@ -75,6 +74,6 @@ class Attention(object if debug_flag else Layer):
         Returns the config of a the layer. This is used for saving and loading from a model
         :return: python dictionary with specs to rebuild layer
         """
-        config = super(Attention, self).get_config()
+        config = super(CustomAttention, self).get_config()
         config.update({'units': self.units})
         return config
\ No newline at end of file
diff --git a/checkpoint b/checkpoint
new file mode 100644
index 0000000..0b57810
--- /dev/null
+++ b/checkpoint
@@ -0,0 +1,2 @@
+model_checkpoint_path: "TEST"
+all_model_checkpoint_paths: "TEST"
diff --git a/tf_model.ipynb b/tf_model.ipynb
index 1256f64..dbce03e 100644
--- a/tf_model.ipynb
+++ b/tf_model.ipynb
@@ -25,7 +25,7 @@
     "from tensorflow import keras\n",
     "from tensorflow.keras import layers\n",
     "import pandas as pd\n",
-    "from attention import Attention\n",
+    "from attention import CustomAttention\n",
     "import json"
    ]
   },
@@ -48,14 +48,15 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 3,
+   "execution_count": 13,
    "metadata": {},
    "outputs": [],
    "source": [
     "# CONSTANTS\n",
     "RAW_SLEEP_DATA_PATH = \".data/raw_bed_sleep-state.csv\"\n",
     "CLEANED_SLEEP_DATA_PATH = \".data/clean_bed_sleep-state.csv\"\n",
-    "SLEEP_DATA_PATH = \".data/sleep_data_simple.csv\""
+    "SLEEP_DATA_PATH = \".data/sleep_data_simple.csv\"\n",
+    "UPDATED_SLEEP_DATA_PATH = \".data/updated_sleep_data.csv\""
    ]
   },
   {
@@ -243,7 +244,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 5,
+   "execution_count": 79,
    "metadata": {},
    "outputs": [],
    "source": [
@@ -253,7 +254,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 6,
+   "execution_count": 80,
    "metadata": {},
    "outputs": [],
    "source": [
@@ -268,7 +269,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 7,
+   "execution_count": 81,
    "metadata": {},
    "outputs": [],
    "source": [
@@ -281,7 +282,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 8,
+   "execution_count": 82,
    "metadata": {},
    "outputs": [],
    "source": [
@@ -291,7 +292,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 9,
+   "execution_count": 83,
    "metadata": {},
    "outputs": [
     {
@@ -327,7 +328,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 10,
+   "execution_count": 84,
    "metadata": {},
    "outputs": [
     {
@@ -604,7 +605,7 @@
        "[551042 rows x 13 columns]"
       ]
      },
-     "execution_count": 10,
+     "execution_count": 84,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -694,31 +695,61 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 15,
+   "execution_count": 5,
    "metadata": {},
    "outputs": [],
    "source": [
-    "TEST_SIZE = 365*3//5\n",
-    "VALIDATION_SIZE = 365*4//5\n",
+    "TEST_SIZE = 365//2\n",
+    "VALIDATION_SIZE = 365\n",
     "\n",
     "BATCH_SIZE = 64\n",
-    "INPUT_TIME_STEP = 10 # in minutes\n",
+    "INPUT_TIME_STEP = 5 # in minutes\n",
     "INPUT_FEATURES_SIZE = 7\n",
     "MAX_EPOCHS = 20"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 16,
+   "execution_count": 6,
    "metadata": {},
    "outputs": [],
    "source": [
-    "sleep_data = pd.read_csv(SLEEP_DATA_PATH)"
+    "SAMPLE_COUNT = 1000\n",
+    "#   A R L D\n",
+    "# A\n",
+    "# R\n",
+    "# L\n",
+    "# D\n",
+    "CONFUSION_MATRIX = np.array(\n",
+    "    [\n",
+    "        [66.2, 5.0, 22.5, 6.2],\n",
+    "        [1.6, 60.7, 33.0, 4.7],\n",
+    "        [3.8, 22.3, 55.4, 18.5],\n",
+    "        [0.0, 1.3, 26.7, 72.0],\n",
+    "    ]\n",
+    ")/100"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Import Data"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 17,
+   "execution_count": 14,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# sleep_data = pd.read_csv(SLEEP_DATA_PATH)\n",
+    "sleep_data = pd.read_csv(UPDATED_SLEEP_DATA_PATH)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 15,
    "metadata": {},
    "outputs": [
     {
@@ -746,19 +777,27 @@
        "      <th>minutes_since_begin</th>\n",
        "      <th>stage_start_hour</th>\n",
        "      <th>stage_start_minute</th>\n",
-       "      <th>awake_probability</th>\n",
-       "      <th>rem_probability</th>\n",
-       "      <th>light_probability</th>\n",
-       "      <th>deep_probability</th>\n",
+       "      <th>awake_probability_noisy</th>\n",
+       "      <th>rem_probability_noisy</th>\n",
+       "      <th>light_probability_noisy</th>\n",
+       "      <th>deep_probability_noisy</th>\n",
+       "      <th>awake_probability_original</th>\n",
+       "      <th>rem_probability_original</th>\n",
+       "      <th>light_probability_original</th>\n",
+       "      <th>deep_probability_original</th>\n",
        "    </tr>\n",
        "  </thead>\n",
        "  <tbody>\n",
        "    <tr>\n",
        "      <th>0</th>\n",
-       "      <td>0</td>\n",
-       "      <td>0</td>\n",
-       "      <td>8</td>\n",
-       "      <td>18</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>8.0</td>\n",
+       "      <td>18.0</td>\n",
+       "      <td>0.680</td>\n",
+       "      <td>0.057</td>\n",
+       "      <td>0.200</td>\n",
+       "      <td>0.063</td>\n",
        "      <td>1.0</td>\n",
        "      <td>0.0</td>\n",
        "      <td>0.0</td>\n",
@@ -766,10 +805,14 @@
        "    </tr>\n",
        "    <tr>\n",
        "      <th>1</th>\n",
-       "      <td>0</td>\n",
-       "      <td>1</td>\n",
-       "      <td>8</td>\n",
-       "      <td>19</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>1.0</td>\n",
+       "      <td>8.0</td>\n",
+       "      <td>19.0</td>\n",
+       "      <td>0.652</td>\n",
+       "      <td>0.060</td>\n",
+       "      <td>0.224</td>\n",
+       "      <td>0.064</td>\n",
        "      <td>1.0</td>\n",
        "      <td>0.0</td>\n",
        "      <td>0.0</td>\n",
@@ -777,10 +820,14 @@
        "    </tr>\n",
        "    <tr>\n",
        "      <th>2</th>\n",
-       "      <td>0</td>\n",
-       "      <td>2</td>\n",
-       "      <td>8</td>\n",
-       "      <td>20</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>2.0</td>\n",
+       "      <td>8.0</td>\n",
+       "      <td>20.0</td>\n",
+       "      <td>0.672</td>\n",
+       "      <td>0.059</td>\n",
+       "      <td>0.209</td>\n",
+       "      <td>0.060</td>\n",
        "      <td>1.0</td>\n",
        "      <td>0.0</td>\n",
        "      <td>0.0</td>\n",
@@ -788,10 +835,14 @@
        "    </tr>\n",
        "    <tr>\n",
        "      <th>3</th>\n",
-       "      <td>0</td>\n",
-       "      <td>3</td>\n",
-       "      <td>8</td>\n",
-       "      <td>21</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>3.0</td>\n",
+       "      <td>8.0</td>\n",
+       "      <td>21.0</td>\n",
+       "      <td>0.645</td>\n",
+       "      <td>0.056</td>\n",
+       "      <td>0.235</td>\n",
+       "      <td>0.064</td>\n",
        "      <td>1.0</td>\n",
        "      <td>0.0</td>\n",
        "      <td>0.0</td>\n",
@@ -799,10 +850,14 @@
        "    </tr>\n",
        "    <tr>\n",
        "      <th>4</th>\n",
-       "      <td>0</td>\n",
-       "      <td>4</td>\n",
-       "      <td>8</td>\n",
-       "      <td>22</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>4.0</td>\n",
+       "      <td>8.0</td>\n",
+       "      <td>22.0</td>\n",
+       "      <td>0.644</td>\n",
+       "      <td>0.054</td>\n",
+       "      <td>0.244</td>\n",
+       "      <td>0.058</td>\n",
        "      <td>1.0</td>\n",
        "      <td>0.0</td>\n",
        "      <td>0.0</td>\n",
@@ -818,13 +873,21 @@
        "      <td>...</td>\n",
        "      <td>...</td>\n",
        "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "      <th>551037</th>\n",
-       "      <td>1132</td>\n",
-       "      <td>426</td>\n",
-       "      <td>13</td>\n",
-       "      <td>17</td>\n",
+       "      <td>1132.0</td>\n",
+       "      <td>426.0</td>\n",
+       "      <td>13.0</td>\n",
+       "      <td>17.0</td>\n",
+       "      <td>0.041</td>\n",
+       "      <td>0.193</td>\n",
+       "      <td>0.576</td>\n",
+       "      <td>0.190</td>\n",
        "      <td>0.0</td>\n",
        "      <td>0.0</td>\n",
        "      <td>1.0</td>\n",
@@ -832,10 +895,14 @@
        "    </tr>\n",
        "    <tr>\n",
        "      <th>551038</th>\n",
-       "      <td>1132</td>\n",
-       "      <td>427</td>\n",
-       "      <td>13</td>\n",
-       "      <td>18</td>\n",
+       "      <td>1132.0</td>\n",
+       "      <td>427.0</td>\n",
+       "      <td>13.0</td>\n",
+       "      <td>18.0</td>\n",
+       "      <td>0.027</td>\n",
+       "      <td>0.209</td>\n",
+       "      <td>0.563</td>\n",
+       "      <td>0.201</td>\n",
        "      <td>0.0</td>\n",
        "      <td>0.0</td>\n",
        "      <td>1.0</td>\n",
@@ -843,10 +910,14 @@
        "    </tr>\n",
        "    <tr>\n",
        "      <th>551039</th>\n",
-       "      <td>1132</td>\n",
-       "      <td>428</td>\n",
-       "      <td>13</td>\n",
-       "      <td>19</td>\n",
+       "      <td>1132.0</td>\n",
+       "      <td>428.0</td>\n",
+       "      <td>13.0</td>\n",
+       "      <td>19.0</td>\n",
+       "      <td>0.032</td>\n",
+       "      <td>0.220</td>\n",
+       "      <td>0.574</td>\n",
+       "      <td>0.174</td>\n",
        "      <td>0.0</td>\n",
        "      <td>0.0</td>\n",
        "      <td>1.0</td>\n",
@@ -854,10 +925,14 @@
        "    </tr>\n",
        "    <tr>\n",
        "      <th>551040</th>\n",
-       "      <td>1132</td>\n",
-       "      <td>429</td>\n",
-       "      <td>13</td>\n",
-       "      <td>20</td>\n",
+       "      <td>1132.0</td>\n",
+       "      <td>429.0</td>\n",
+       "      <td>13.0</td>\n",
+       "      <td>20.0</td>\n",
+       "      <td>0.036</td>\n",
+       "      <td>0.256</td>\n",
+       "      <td>0.530</td>\n",
+       "      <td>0.178</td>\n",
        "      <td>0.0</td>\n",
        "      <td>0.0</td>\n",
        "      <td>1.0</td>\n",
@@ -865,10 +940,14 @@
        "    </tr>\n",
        "    <tr>\n",
        "      <th>551041</th>\n",
-       "      <td>1132</td>\n",
-       "      <td>430</td>\n",
-       "      <td>13</td>\n",
-       "      <td>21</td>\n",
+       "      <td>1132.0</td>\n",
+       "      <td>430.0</td>\n",
+       "      <td>13.0</td>\n",
+       "      <td>21.0</td>\n",
+       "      <td>0.033</td>\n",
+       "      <td>0.205</td>\n",
+       "      <td>0.571</td>\n",
+       "      <td>0.191</td>\n",
        "      <td>0.0</td>\n",
        "      <td>0.0</td>\n",
        "      <td>1.0</td>\n",
@@ -876,53 +955,79 @@
        "    </tr>\n",
        "  </tbody>\n",
        "</table>\n",
-       "<p>551042 rows × 8 columns</p>\n",
+       "<p>551042 rows × 12 columns</p>\n",
        "</div>"
       ],
       "text/plain": [
        "        sleep_id  minutes_since_begin  stage_start_hour  stage_start_minute  \\\n",
-       "0              0                    0                 8                  18   \n",
-       "1              0                    1                 8                  19   \n",
-       "2              0                    2                 8                  20   \n",
-       "3              0                    3                 8                  21   \n",
-       "4              0                    4                 8                  22   \n",
+       "0            0.0                  0.0               8.0                18.0   \n",
+       "1            0.0                  1.0               8.0                19.0   \n",
+       "2            0.0                  2.0               8.0                20.0   \n",
+       "3            0.0                  3.0               8.0                21.0   \n",
+       "4            0.0                  4.0               8.0                22.0   \n",
        "...          ...                  ...               ...                 ...   \n",
-       "551037      1132                  426                13                  17   \n",
-       "551038      1132                  427                13                  18   \n",
-       "551039      1132                  428                13                  19   \n",
-       "551040      1132                  429                13                  20   \n",
-       "551041      1132                  430                13                  21   \n",
+       "551037    1132.0                426.0              13.0                17.0   \n",
+       "551038    1132.0                427.0              13.0                18.0   \n",
+       "551039    1132.0                428.0              13.0                19.0   \n",
+       "551040    1132.0                429.0              13.0                20.0   \n",
+       "551041    1132.0                430.0              13.0                21.0   \n",
+       "\n",
+       "        awake_probability_noisy  rem_probability_noisy  \\\n",
+       "0                         0.680                  0.057   \n",
+       "1                         0.652                  0.060   \n",
+       "2                         0.672                  0.059   \n",
+       "3                         0.645                  0.056   \n",
+       "4                         0.644                  0.054   \n",
+       "...                         ...                    ...   \n",
+       "551037                    0.041                  0.193   \n",
+       "551038                    0.027                  0.209   \n",
+       "551039                    0.032                  0.220   \n",
+       "551040                    0.036                  0.256   \n",
+       "551041                    0.033                  0.205   \n",
+       "\n",
+       "        light_probability_noisy  deep_probability_noisy  \\\n",
+       "0                         0.200                   0.063   \n",
+       "1                         0.224                   0.064   \n",
+       "2                         0.209                   0.060   \n",
+       "3                         0.235                   0.064   \n",
+       "4                         0.244                   0.058   \n",
+       "...                         ...                     ...   \n",
+       "551037                    0.576                   0.190   \n",
+       "551038                    0.563                   0.201   \n",
+       "551039                    0.574                   0.174   \n",
+       "551040                    0.530                   0.178   \n",
+       "551041                    0.571                   0.191   \n",
        "\n",
-       "        awake_probability  rem_probability  light_probability  \\\n",
-       "0                     1.0              0.0                0.0   \n",
-       "1                     1.0              0.0                0.0   \n",
-       "2                     1.0              0.0                0.0   \n",
-       "3                     1.0              0.0                0.0   \n",
-       "4                     1.0              0.0                0.0   \n",
-       "...                   ...              ...                ...   \n",
-       "551037                0.0              0.0                1.0   \n",
-       "551038                0.0              0.0                1.0   \n",
-       "551039                0.0              0.0                1.0   \n",
-       "551040                0.0              0.0                1.0   \n",
-       "551041                0.0              0.0                1.0   \n",
+       "        awake_probability_original  rem_probability_original  \\\n",
+       "0                              1.0                       0.0   \n",
+       "1                              1.0                       0.0   \n",
+       "2                              1.0                       0.0   \n",
+       "3                              1.0                       0.0   \n",
+       "4                              1.0                       0.0   \n",
+       "...                            ...                       ...   \n",
+       "551037                         0.0                       0.0   \n",
+       "551038                         0.0                       0.0   \n",
+       "551039                         0.0                       0.0   \n",
+       "551040                         0.0                       0.0   \n",
+       "551041                         0.0                       0.0   \n",
        "\n",
-       "        deep_probability  \n",
-       "0                    0.0  \n",
-       "1                    0.0  \n",
-       "2                    0.0  \n",
-       "3                    0.0  \n",
-       "4                    0.0  \n",
-       "...                  ...  \n",
-       "551037               0.0  \n",
-       "551038               0.0  \n",
-       "551039               0.0  \n",
-       "551040               0.0  \n",
-       "551041               0.0  \n",
+       "        light_probability_original  deep_probability_original  \n",
+       "0                              0.0                        0.0  \n",
+       "1                              0.0                        0.0  \n",
+       "2                              0.0                        0.0  \n",
+       "3                              0.0                        0.0  \n",
+       "4                              0.0                        0.0  \n",
+       "...                            ...                        ...  \n",
+       "551037                         1.0                        0.0  \n",
+       "551038                         1.0                        0.0  \n",
+       "551039                         1.0                        0.0  \n",
+       "551040                         1.0                        0.0  \n",
+       "551041                         1.0                        0.0  \n",
        "\n",
-       "[551042 rows x 8 columns]"
+       "[551042 rows x 12 columns]"
       ]
      },
-     "execution_count": 17,
+     "execution_count": 15,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -931,6 +1036,67 @@
     "sleep_data"
    ]
   },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Create Randmonizations"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 54,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "def softmax(arr):\n",
+    "    val = np.exp(arr)\n",
+    "    return val / sum(val)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 133,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "def noisy_randomizer(confusion_matrix_index: int, sample_count: int = SAMPLE_COUNT, confusion_matrix = CONFUSION_MATRIX):\n",
+    "    return np.random.multinomial(sample_count, confusion_matrix[confusion_matrix_index], size=1)[0]/sample_count"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 173,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "def create_updated(dataframe):\n",
+    "    dataframe_array = dataframe.to_numpy()\n",
+    "    updated_probs = np.array(list(map(noisy_randomizer, np.argmax(dataframe_array[:, -4:], axis=1))))\n",
+    "    columns_tmp = dataframe.columns.to_list() \n",
+    "    noisy_column = list(map(lambda name: f\"{name}_noisy\", columns_tmp[-4:]))\n",
+    "    og_column = list(map(lambda name: f\"{name}_original\", columns_tmp[-4:]))\n",
+    "    return pd.DataFrame(np.concatenate([dataframe_array[:, :-4], updated_probs, dataframe_array[:, -4:]], axis=1), columns = columns_tmp[:-4]+noisy_column+og_column)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 174,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "sleep_data_updated = create_updated(sleep_data)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 176,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "sleep_data_updated.to_csv(UPDATED_SLEEP_DATA_PATH, index=False, index_label=False)"
+   ]
+  },
   {
    "cell_type": "markdown",
    "metadata": {},
@@ -940,7 +1106,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 8,
+   "execution_count": 16,
    "metadata": {},
    "outputs": [],
    "source": [
@@ -951,13 +1117,13 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 9,
+   "execution_count": 17,
    "metadata": {},
    "outputs": [],
    "source": [
     "# Adapted from https://www.tensorflow.org/tutorials/structured_data/time_series\n",
     "class WindowGenerator():\n",
-    "    def __init__(self, data, index: str = \"sleep_id\", input_width: int = INPUT_TIME_STEP, validation_size: int = VALIDATION_SIZE, test_size: int = TEST_SIZE, input_feature_slice: slice = slice(1,100), label_feature_slice: slice = slice(-4,100), generate_data_now: bool = True):\n",
+    "    def __init__(self, data, index: str = \"sleep_id\", input_width: int = INPUT_TIME_STEP, validation_size: int = VALIDATION_SIZE, test_size: int = TEST_SIZE, input_feature_slice: slice = slice(1,-4), label_feature_slice: slice = slice(-4,100), generate_data_now: bool = True):\n",
     "        # Partition data\n",
     "        self.training, self.testing = training_test_split_by_unique_index(data, index, test_size)\n",
     "        self.training, self.validation = training_test_split_by_unique_index(self.training, index, validation_size)\n",
@@ -996,8 +1162,9 @@
     "\n",
     "    def split_window(self, features):\n",
     "        inputs = features[:, self.input_slice, self.input_feature_slice]\n",
-    "        labels = tf.squeeze(features[:, self.labels_slice, self.label_feature_slice])\n",
     "        inputs.set_shape([None, self.input_width, None])\n",
+    "        \n",
+    "        labels = tf.squeeze(features[:, self.labels_slice, self.label_feature_slice])\n",
     "        # labels.set_shape([None, self.label_width, None])\n",
     "        return inputs, labels\n",
     "\n",
@@ -1027,12 +1194,12 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 10,
+   "execution_count": 18,
    "metadata": {},
    "outputs": [],
    "source": [
     "# Adapted from https://www.tensorflow.org/tutorials/structured_data/time_series#linear_model\n",
-    "def compile_and_fit(model, window: WindowGenerator, loss = tf.losses.CategoricalCrossentropy(from_logits=True), optimizer = tf.optimizers.Adam(), metrics = None, early_stop: bool = True, patience:int = 5, baseline = None, epochs: int = MAX_EPOCHS):\n",
+    "def compile_and_fit(model, window: WindowGenerator, loss = tf.losses.CategoricalCrossentropy(from_logits=True), optimizer = tf.optimizers.Adam(), metrics = None, early_stop: bool = True, patience:int = 2, baseline = None, epochs: int = MAX_EPOCHS):\n",
     "    if metrics is None:\n",
     "        metrics = [tf.keras.metrics.CategoricalCrossentropy(from_logits=True), tf.keras.metrics.CategoricalAccuracy(), tf.keras.metrics.CategoricalHinge()]\n",
     "\n",
@@ -1064,21 +1231,118 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 23,
+   "execution_count": 19,
    "metadata": {},
    "outputs": [],
    "source": [
     "# USE SUBSET OF DATA FOR EXPERIMENTING\n",
-    "sleep_data_sub = sleep_data[sleep_data.sleep_id < 2000]"
+    "sleep_data_sub = sleep_data[sleep_data.sleep_id < 3]"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 24,
+   "execution_count": 20,
    "metadata": {},
    "outputs": [],
    "source": [
-    "wg_sub = WindowGenerator(sleep_data_sub,validation_size=365, test_size=182)"
+    "wg_sub = WindowGenerator(sleep_data_sub,validation_size=1, test_size=1)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 24,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "ele[0][0] = array([[ 0.,  7., 40.,  1.,  0.,  0.,  0.],\n",
+      "       [ 1.,  7., 41.,  1.,  0.,  0.,  0.],\n",
+      "       [ 2.,  7., 42.,  1.,  0.,  0.,  0.],\n",
+      "       [ 3.,  7., 43.,  1.,  0.,  0.,  0.],\n",
+      "       [ 4.,  7., 44.,  1.,  0.,  0.,  0.],\n",
+      "       [ 5.,  7., 45.,  1.,  0.,  0.,  0.],\n",
+      "       [ 6.,  7., 46.,  1.,  0.,  0.,  0.],\n",
+      "       [ 7.,  7., 47.,  1.,  0.,  0.,  0.],\n",
+      "       [ 8.,  7., 48.,  1.,  0.,  0.,  0.],\n",
+      "       [ 9.,  7., 49.,  1.,  0.,  0.,  0.]], dtype=float32)\n",
+      "ele[0][0] = array([[64.,  8., 44.,  0.,  0.,  1.,  0.],\n",
+      "       [65.,  8., 45.,  0.,  0.,  1.,  0.],\n",
+      "       [66.,  8., 46.,  0.,  0.,  1.,  0.],\n",
+      "       [67.,  8., 47.,  0.,  0.,  1.,  0.],\n",
+      "       [68.,  8., 48.,  0.,  0.,  1.,  0.],\n",
+      "       [69.,  8., 49.,  0.,  0.,  1.,  0.],\n",
+      "       [70.,  8., 50.,  0.,  0.,  1.,  0.],\n",
+      "       [71.,  8., 51.,  0.,  0.,  1.,  0.],\n",
+      "       [72.,  8., 52.,  0.,  0.,  1.,  0.],\n",
+      "       [73.,  8., 53.,  0.,  0.,  1.,  0.]], dtype=float32)\n",
+      "ele[0][0] = array([[128.,   9.,  48.,   0.,   0.,   1.,   0.],\n",
+      "       [129.,   9.,  49.,   0.,   0.,   1.,   0.],\n",
+      "       [130.,   9.,  50.,   0.,   0.,   1.,   0.],\n",
+      "       [131.,   9.,  51.,   0.,   0.,   1.,   0.],\n",
+      "       [132.,   9.,  52.,   0.,   0.,   0.,   1.],\n",
+      "       [133.,   9.,  53.,   0.,   0.,   0.,   1.],\n",
+      "       [134.,   9.,  54.,   0.,   0.,   0.,   1.],\n",
+      "       [135.,   9.,  55.,   0.,   0.,   0.,   1.],\n",
+      "       [136.,   9.,  56.,   0.,   0.,   0.,   1.],\n",
+      "       [137.,   9.,  57.,   0.,   0.,   0.,   1.]], dtype=float32)\n",
+      "ele[0][0] = array([[192.,  10.,  52.,   0.,   1.,   0.,   0.],\n",
+      "       [193.,  10.,  53.,   0.,   1.,   0.,   0.],\n",
+      "       [194.,  10.,  54.,   0.,   1.,   0.,   0.],\n",
+      "       [195.,  10.,  55.,   0.,   1.,   0.,   0.],\n",
+      "       [196.,  10.,  56.,   0.,   1.,   0.,   0.],\n",
+      "       [197.,  10.,  57.,   0.,   1.,   0.,   0.],\n",
+      "       [198.,  10.,  58.,   0.,   1.,   0.,   0.],\n",
+      "       [199.,  10.,  59.,   0.,   1.,   0.,   0.],\n",
+      "       [200.,  11.,   0.,   0.,   1.,   0.,   0.],\n",
+      "       [201.,  11.,   1.,   0.,   1.,   0.,   0.]], dtype=float32)\n",
+      "ele[0][0] = array([[256.,  11.,  56.,   0.,   0.,   1.,   0.],\n",
+      "       [257.,  11.,  57.,   0.,   0.,   1.,   0.],\n",
+      "       [258.,  11.,  58.,   0.,   0.,   1.,   0.],\n",
+      "       [259.,  11.,  59.,   0.,   0.,   1.,   0.],\n",
+      "       [260.,  12.,   0.,   0.,   0.,   1.,   0.],\n",
+      "       [261.,  12.,   1.,   0.,   0.,   1.,   0.],\n",
+      "       [262.,  12.,   2.,   0.,   0.,   1.,   0.],\n",
+      "       [263.,  12.,   3.,   0.,   0.,   1.,   0.],\n",
+      "       [264.,  12.,   4.,   0.,   0.,   1.,   0.],\n",
+      "       [265.,  12.,   5.,   0.,   0.,   1.,   0.]], dtype=float32)\n",
+      "ele[0][0] = array([[320.,  13.,   0.,   0.,   1.,   0.,   0.],\n",
+      "       [321.,  13.,   1.,   0.,   1.,   0.,   0.],\n",
+      "       [322.,  13.,   2.,   0.,   1.,   0.,   0.],\n",
+      "       [323.,  13.,   3.,   0.,   1.,   0.,   0.],\n",
+      "       [324.,  13.,   4.,   0.,   1.,   0.,   0.],\n",
+      "       [325.,  13.,   5.,   0.,   1.,   0.,   0.],\n",
+      "       [326.,  13.,   6.,   0.,   1.,   0.,   0.],\n",
+      "       [327.,  13.,   7.,   0.,   1.,   0.,   0.],\n",
+      "       [328.,  13.,   8.,   0.,   1.,   0.,   0.],\n",
+      "       [329.,  13.,   9.,   0.,   1.,   0.,   0.]], dtype=float32)\n",
+      "ele[0][0] = array([[384.,  14.,   4.,   0.,   0.,   0.,   1.],\n",
+      "       [385.,  14.,   5.,   0.,   0.,   0.,   1.],\n",
+      "       [386.,  14.,   6.,   0.,   0.,   0.,   1.],\n",
+      "       [387.,  14.,   7.,   0.,   0.,   0.,   1.],\n",
+      "       [388.,  14.,   8.,   0.,   0.,   0.,   1.],\n",
+      "       [389.,  14.,   9.,   0.,   0.,   0.,   1.],\n",
+      "       [390.,  14.,  10.,   0.,   0.,   0.,   1.],\n",
+      "       [391.,  14.,  11.,   0.,   0.,   0.,   1.],\n",
+      "       [392.,  14.,  12.,   0.,   0.,   0.,   1.],\n",
+      "       [393.,  14.,  13.,   0.,   0.,   0.,   1.]], dtype=float32)\n",
+      "ele[0][0] = array([[448.,  15.,   8.,   0.,   1.,   0.,   0.],\n",
+      "       [449.,  15.,   9.,   0.,   1.,   0.,   0.],\n",
+      "       [450.,  15.,  10.,   0.,   1.,   0.,   0.],\n",
+      "       [451.,  15.,  11.,   0.,   1.,   0.,   0.],\n",
+      "       [452.,  15.,  12.,   0.,   1.,   0.,   0.],\n",
+      "       [453.,  15.,  13.,   0.,   1.,   0.,   0.],\n",
+      "       [454.,  15.,  14.,   0.,   1.,   0.,   0.],\n",
+      "       [455.,  15.,  15.,   0.,   1.,   0.,   0.],\n",
+      "       [456.,  15.,  16.,   0.,   1.,   0.,   0.],\n",
+      "       [457.,  15.,  17.,   0.,   1.,   0.,   0.]], dtype=float32)\n"
+     ]
+    }
+   ],
+   "source": [
+    "for ele in wg_sub.training_ds.as_numpy_iterator():\n",
+    "    print(f\"{ele[0][0] = }\")"
    ]
   },
   {
@@ -1255,19 +1519,27 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 34,
+   "execution_count": 19,
    "metadata": {},
    "outputs": [
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "2022-05-12 14:18:02.248350: I tensorflow/core/platform/cpu_feature_guard.cc:151] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations:  AVX2 FMA\n",
+      "To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.\n"
+     ]
+    },
     {
      "data": {
       "text/plain": [
        "WindowGenerator:\n",
-       "\tTotal window size: 11\n",
-       "\tInput indices: [0 1 2 3 4 5 6 7 8 9]\n",
-       "\tLabel indices: [10]"
+       "\tTotal window size: 6\n",
+       "\tInput indices: [0 1 2 3 4]\n",
+       "\tLabel indices: [5]"
       ]
      },
-     "execution_count": 34,
+     "execution_count": 19,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -1279,16 +1551,16 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 35,
+   "execution_count": 20,
    "metadata": {},
    "outputs": [
     {
      "data": {
       "text/plain": [
-       "9647"
+       "4682"
       ]
      },
-     "execution_count": 35,
+     "execution_count": 20,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -1297,6 +1569,31 @@
     "len(wg.training_ds)"
    ]
   },
+  {
+   "cell_type": "code",
+   "execution_count": 27,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "ele[0].numpy()[0] = array([[ 0.   ,  8.   , 18.   ,  0.68 ,  0.057,  0.2  ,  0.063],\n",
+      "       [ 1.   ,  8.   , 19.   ,  0.652,  0.06 ,  0.224,  0.064],\n",
+      "       [ 2.   ,  8.   , 20.   ,  0.672,  0.059,  0.209,  0.06 ],\n",
+      "       [ 3.   ,  8.   , 21.   ,  0.645,  0.056,  0.235,  0.064],\n",
+      "       [ 4.   ,  8.   , 22.   ,  0.644,  0.054,  0.244,  0.058]],\n",
+      "      dtype=float32)\n",
+      "ele[1].numpy()[0] = array([1., 0., 0., 0.], dtype=float32)\n"
+     ]
+    }
+   ],
+   "source": [
+    "for ele in wg.sample_ds.take(1):\n",
+    "    print(f\"{ele[0].numpy()[0] = }\")\n",
+    "    print(f\"{ele[1].numpy()[0] = }\")"
+   ]
+  },
   {
    "cell_type": "markdown",
    "metadata": {},
@@ -1306,7 +1603,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 36,
+   "execution_count": 34,
    "metadata": {},
    "outputs": [],
    "source": [
@@ -1317,9 +1614,30 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 37,
+   "execution_count": 35,
    "metadata": {},
-   "outputs": [],
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Model: \"sequential_2\"\n",
+      "_________________________________________________________________\n",
+      " Layer (type)                Output Shape              Param #   \n",
+      "=================================================================\n",
+      " lstm (LSTM)                 (None, 8)                 512       \n",
+      "                                                                 \n",
+      " dense_2 (Dense)             (None, 4)                 36        \n",
+      "                                                                 \n",
+      "=================================================================\n",
+      "Total params: 548\n",
+      "Trainable params: 548\n",
+      "Non-trainable params: 0\n",
+      "_________________________________________________________________\n",
+      "None\n"
+     ]
+    }
+   ],
    "source": [
     "# Model Definition\n",
     "lstm_model = keras.Sequential()\n",
@@ -1370,7 +1688,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 40,
+   "execution_count": 32,
    "metadata": {},
    "outputs": [],
    "source": [
@@ -1380,20 +1698,20 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 45,
+   "execution_count": 33,
    "metadata": {},
    "outputs": [
     {
      "name": "stdout",
      "output_type": "stream",
      "text": [
-      "Model: \"sequential_8\"\n",
+      "Model: \"sequential_1\"\n",
       "_________________________________________________________________\n",
       " Layer (type)                Output Shape              Param #   \n",
       "=================================================================\n",
-      " gru_7 (GRU)                 (None, 16)                1200      \n",
+      " gru (GRU)                   (None, 16)                1200      \n",
       "                                                                 \n",
-      " dense_14 (Dense)            (None, 4)                 68        \n",
+      " dense_1 (Dense)             (None, 4)                 68        \n",
       "                                                                 \n",
       "=================================================================\n",
       "Total params: 1,268\n",
@@ -1439,33 +1757,34 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 47,
+   "execution_count": 13,
    "metadata": {},
    "outputs": [],
    "source": [
-    "ATTENTION_UNITS = 16"
+    "ATTENTION_UNITS = 32"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 49,
+   "execution_count": 14,
    "metadata": {},
    "outputs": [
     {
      "name": "stdout",
      "output_type": "stream",
      "text": [
-      "Model: \"sequential_10\"\n",
+      "Model: \"sequential\"\n",
       "_________________________________________________________________\n",
       " Layer (type)                Output Shape              Param #   \n",
       "=================================================================\n",
-      " attention_1 (Attention)     (None, 16)                273       \n",
+      " custom_attention (CustomAtt  (None, 32)               497       \n",
+      " ention)                                                         \n",
       "                                                                 \n",
-      " dense_16 (Dense)            (None, 4)                 68        \n",
+      " dense (Dense)               (None, 4)                 132       \n",
       "                                                                 \n",
       "=================================================================\n",
-      "Total params: 341\n",
-      "Trainable params: 341\n",
+      "Total params: 629\n",
+      "Trainable params: 629\n",
       "Non-trainable params: 0\n",
       "_________________________________________________________________\n",
       "None\n"
@@ -1475,7 +1794,7 @@
    "source": [
     "am_model = keras.Sequential()\n",
     "am_model.add(layers.Input(shape=(INPUT_TIME_STEP, INPUT_FEATURES_SIZE)))\n",
-    "am_model.add(Attention(ATTENTION_UNITS))\n",
+    "am_model.add(CustomAttention(ATTENTION_UNITS))\n",
     "am_model.add(layers.Dense(SLEEP_STAGES))\n",
     "am_model.build()\n",
     "print(am_model.summary())"
@@ -1483,19 +1802,217 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 50,
+   "execution_count": 15,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "<tensorflow.python.training.tracking.util.CheckpointLoadStatus at 0x12aaebe50>"
+      ]
+     },
+     "execution_count": 15,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "am_model.load_weights(\"TEST\")"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 17,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "am_history = compile_and_fit(model=am_model, window=wg, epochs=0)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 18,
    "metadata": {},
    "outputs": [
     {
      "name": "stdout",
      "output_type": "stream",
      "text": [
-      "9647/9647 [==============================] - 52s 5ms/step - loss: 0.6620 - categorical_crossentropy: 0.6619 - categorical_accuracy: 0.7268 - categorical_hinge: 0.7192 - val_loss: 0.2141 - val_categorical_crossentropy: 0.2140 - val_categorical_accuracy: 0.9589 - val_categorical_hinge: 0.1990\n"
+      "1442/1442 [==============================] - 14s 4ms/step - loss: 0.1957 - categorical_crossentropy: 0.1957 - categorical_accuracy: 0.9598 - categorical_hinge: 0.1911\n"
      ]
+    },
+    {
+     "data": {
+      "text/plain": [
+       "[0.19572481513023376,\n",
+       " 0.19574123620986938,\n",
+       " 0.9597873687744141,\n",
+       " 0.1910863220691681]"
+      ]
+     },
+     "execution_count": 18,
+     "metadata": {},
+     "output_type": "execute_result"
     }
    ],
    "source": [
-    "am_history = compile_and_fit(model=am_model, window=wg, epochs=1)"
+    "am_model.evaluate(wg.testing_ds)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 47,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "array([[ 0.59796184, -0.20803624, -0.2916372 , -0.7170148 ]],\n",
+       "      dtype=float32)"
+      ]
+     },
+     "execution_count": 47,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "answer = am_model.predict(np.array(\n",
+    "    [[\n",
+    "        [ 150.,  10., 20.,  0.5,  0.1,  0.,  0.4],\n",
+    "        [ 151.,  10., 21.,  0.5,  0.2,  0.,  0.3],\n",
+    "        [ 152.,  10., 22.,  0.5,  0.3,  0.,  0.2],\n",
+    "        [ 153.,  10., 23.,  0.5,  0.4,  0.,  0.1],\n",
+    "        [ 154.,  10., 24.,  0.2,  0.1,  0.,  0.],\n",
+    "        [ 155.,  10., 25.,  0.2,  0.2,  0.,  0.],\n",
+    "        [ 156.,  10., 26.,  0.2,  0.2,  0.1,  0.],\n",
+    "        [ 157.,  10., 27.,  0.2,  0.25,  0.15,  0.],\n",
+    "        [ 158.,  10., 28.,  0.2,  0.3,  0.2,  0.],\n",
+    "        [ 159.,  10., 29.,  0.2,  0.3,  0.3,  0.]\n",
+    "    ]]\n",
+    "))\n",
+    "norm = np.linalg.norm(answer)\n",
+    "normalized_answer = answer/norm\n",
+    "normalized_answer"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 43,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "pd.DataFrame.from_dict(am_history.history).to_csv(f\"{HISTORY_DIR}/am_220512.csv\", index=False)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 46,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Help on method save_weights in module keras.engine.training:\n",
+      "\n",
+      "save_weights(filepath, overwrite=True, save_format=None, options=None) method of keras.engine.sequential.Sequential instance\n",
+      "    Saves all layer weights.\n",
+      "    \n",
+      "    Either saves in HDF5 or in TensorFlow format based on the `save_format`\n",
+      "    argument.\n",
+      "    \n",
+      "    When saving in HDF5 format, the weight file has:\n",
+      "      - `layer_names` (attribute), a list of strings\n",
+      "          (ordered names of model layers).\n",
+      "      - For every layer, a `group` named `layer.name`\n",
+      "          - For every such layer group, a group attribute `weight_names`,\n",
+      "              a list of strings\n",
+      "              (ordered names of weights tensor of the layer).\n",
+      "          - For every weight in the layer, a dataset\n",
+      "              storing the weight value, named after the weight tensor.\n",
+      "    \n",
+      "    When saving in TensorFlow format, all objects referenced by the network are\n",
+      "    saved in the same format as `tf.train.Checkpoint`, including any `Layer`\n",
+      "    instances or `Optimizer` instances assigned to object attributes. For\n",
+      "    networks constructed from inputs and outputs using `tf.keras.Model(inputs,\n",
+      "    outputs)`, `Layer` instances used by the network are tracked/saved\n",
+      "    automatically. For user-defined classes which inherit from `tf.keras.Model`,\n",
+      "    `Layer` instances must be assigned to object attributes, typically in the\n",
+      "    constructor. See the documentation of `tf.train.Checkpoint` and\n",
+      "    `tf.keras.Model` for details.\n",
+      "    \n",
+      "    While the formats are the same, do not mix `save_weights` and\n",
+      "    `tf.train.Checkpoint`. Checkpoints saved by `Model.save_weights` should be\n",
+      "    loaded using `Model.load_weights`. Checkpoints saved using\n",
+      "    `tf.train.Checkpoint.save` should be restored using the corresponding\n",
+      "    `tf.train.Checkpoint.restore`. Prefer `tf.train.Checkpoint` over\n",
+      "    `save_weights` for training checkpoints.\n",
+      "    \n",
+      "    The TensorFlow format matches objects and variables by starting at a root\n",
+      "    object, `self` for `save_weights`, and greedily matching attribute\n",
+      "    names. For `Model.save` this is the `Model`, and for `Checkpoint.save` this\n",
+      "    is the `Checkpoint` even if the `Checkpoint` has a model attached. This\n",
+      "    means saving a `tf.keras.Model` using `save_weights` and loading into a\n",
+      "    `tf.train.Checkpoint` with a `Model` attached (or vice versa) will not match\n",
+      "    the `Model`'s variables. See the\n",
+      "    [guide to training checkpoints](https://www.tensorflow.org/guide/checkpoint)\n",
+      "    for details on the TensorFlow format.\n",
+      "    \n",
+      "    Args:\n",
+      "        filepath: String or PathLike, path to the file to save the weights to.\n",
+      "            When saving in TensorFlow format, this is the prefix used for\n",
+      "            checkpoint files (multiple files are generated). Note that the '.h5'\n",
+      "            suffix causes weights to be saved in HDF5 format.\n",
+      "        overwrite: Whether to silently overwrite any existing file at the\n",
+      "            target location, or provide the user with a manual prompt.\n",
+      "        save_format: Either 'tf' or 'h5'. A `filepath` ending in '.h5' or\n",
+      "            '.keras' will default to HDF5 if `save_format` is `None`. Otherwise\n",
+      "            `None` defaults to 'tf'.\n",
+      "        options: Optional `tf.train.CheckpointOptions` object that specifies\n",
+      "            options for saving weights.\n",
+      "    \n",
+      "    Raises:\n",
+      "        ImportError: If `h5py` is not available when attempting to save in HDF5\n",
+      "            format.\n",
+      "\n"
+     ]
+    }
+   ],
+   "source": [
+    "help(am_model.save_weights)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 35,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "2022-05-12 12:12:02.267722: W tensorflow/python/util/util.cc:368] Sets are not currently considered sequences, but this may change in the future, so consider avoiding using them.\n",
+      "WARNING:absl:Found untraced functions such as attention_score_vec_layer_call_fn, attention_score_vec_layer_call_and_return_conditional_losses, last_hidden_state_layer_call_fn, last_hidden_state_layer_call_and_return_conditional_losses, attention_score_layer_call_fn while saving (showing 5 of 14). These functions will not be directly callable after loading.\n"
+     ]
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "INFO:tensorflow:Assets written to: .model/attention/assets\n"
+     ]
+    },
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "INFO:tensorflow:Assets written to: .model/attention/assets\n"
+     ]
+    }
+   ],
+   "source": [
+    "am_model.save(f\"{MODEL_DIR}/attention\")"
    ]
   },
   {
@@ -1505,12 +2022,143 @@
     "### Model Head-to-Head testing"
    ]
   },
+  {
+   "cell_type": "code",
+   "execution_count": 34,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "HISTORY_DIR = \".history\"\n",
+    "MODEL_DIR = \".model\""
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 25,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "base_history = pd.read_csv(f\"{HISTORY_DIR}/baseline.csv\")\n",
+    "lstm_history = pd.read_csv(f\"{HISTORY_DIR}/lstm.csv\")\n",
+    "gru_history = pd.read_csv(f\"{HISTORY_DIR}/gru.csv\")\n",
+    "attn_history = pd.read_csv(f\"{HISTORY_DIR}/attention.csv\")\n",
+    "history_columns = [\"categorical_crossentropy\", \"val_categorical_crossentropy\"] # \"categorical_accuracy\""
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 26,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "<AxesSubplot:>"
+      ]
+     },
+     "execution_count": 26,
+     "metadata": {},
+     "output_type": "execute_result"
+    },
+    {
+     "data": {
+      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXkAAAD4CAYAAAAJmJb0AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAAsTAAALEwEAmpwYAAAwOklEQVR4nO3deXxU5fX48c+ZyUbYQyJrAqIUZQ2yCcoiVnGh4MLiCgiUUnHv9+vyxYW29tW6FK3LD0RZRFERENQWW7VCkSpoQHYQAQHZQ1jDlmXO7487iUOYkEkyyWRmzvv1GnKXZ+49ubmcufPMM+eKqmKMMSYyuUIdgDHGmIpjSd4YYyKYJXljjIlgluSNMSaCWZI3xpgIFhOqHScnJ2uzZs1CtXtjjAlLy5cvP6CqKYG2D1mSb9asGRkZGaHavTHGhCUR2V6a9tZdY4wxEcySvDHGRDBL8sYYE8FC1idvTLDl5uayc+dOTp06FepQjCm3hIQEmjRpQmxsbLm2Y0neRIydO3dSs2ZNmjVrhoiEOhxjykxVycrKYufOnZx//vnl2pZ115iIcerUKerVq2cJ3oQ9EaFevXpBeVdqSd5EFEvwJlIE61wOuyS/ce9RnvnnRo6czA11KMYYU+WFXZLfkXWCiYu2sO3A8VCHYowxVV7YJfm0eokA7Dh4IsSRGFM+ixYt4quvvqqUfV133XUcPny41M+bPn0699xzT/ADqmDbtm3jnXfeCXUYVULASV5E3CLynYj83c+6eBGZJSKbRWSZiDQLapQ+0pIsyZvIUBlJXlXxeDwsWLCAOnXqVOi+zrX/ynauJJ+Xl1fJ0YRWaYZQ3g9sAGr5WTcSOKSqF4rILcAzwJAgxHeWxLgYkmvEsyPLkrwp3u8/Xsf63UeDus1WjWrx1K9al9huxowZPP/884gI7dq1Y/DgwTz99NPk5ORQr149Zs6cycmTJ5k0aRJut5u3336bl19+mYsuuogxY8awY8cOAF588UUuu+wyMjMzue2229i9ezfdunXjs88+Y/ny5SQnJzNhwgSmTp0KwKhRo3jggQfYtm0bffv2pWvXrixfvpwFCxbQq1cvMjIySE5OPiu+t956i48//visGOvXr1/i77pv3z7GjBnD1q1bAZg4cSKNGjU6a/+vvPIKn3zyCSLC448/zpAhQ9izZw9Dhgzh6NGj5OXlMXHiRLp3787IkSPJyMhARBgxYgQPPvggW7ZsYezYsWRmZpKYmMjrr7/ORRddxPDhw6lVqxYZGRns3buXZ599loEDB/Loo4+yYcMG0tPTGTZsGHXr1uWDDz4gOzub/Px85s2bx4gRI9i6dSuJiYlMnjyZdu3aMX78eLZs2cLmzZs5cOAADz/8ML/+9a8ZOnQoN910EzfccAMAt99+O4MHD2bAgAFlPJsqT0BJXkSaANcDfwIe8tNkADDeOz0HeEVERCvoBrJpSdXsSt5USevWrePpp5/mq6++Ijk5mYMHDyIiLF26FBHhjTfe4Nlnn+Wvf/0rY8aMoUaNGvzP//wPALfddhsPPvggl19+OTt27KBv375s2LCB3//+9/Tp04fHHnuMf/7zn0yZMgWA5cuXM23aNJYtW4aq0rVrV3r16kXdunX54YcfePPNN7n00ktLjA/g8ssv9xtjSe677z569erFvHnzyM/PJzs7m0OHDp2x/7lz57Jy5UpWrVrFgQMH6Ny5Mz179uSdd96hb9++jBs3jvz8fE6cOMHKlSvZtWsXa9euBSjsYho9ejSTJk2iRYsWLFu2jLvvvpsvvvgCgD179rBkyRI2btxI//79GThwIH/5y194/vnn+fvfnY6H6dOns2LFClavXk1SUhL33nsvHTp0YP78+XzxxRcMHTqUlStXArB69WqWLl3K8ePH6dChA9dffz0jR47khRde4IYbbuDIkSN89dVXvPnmm+U7WSpJoFfyLwIPAzWLWd8Y+AlAVfNE5AhQDzjg20hERgOjAdLS0soQriMtKZFvtx0q8/NN5AvkirsifPHFFwwaNIjk5GQAkpKSWLNmTeGVa05OTrFfbvn8889Zv3594fzRo0fJzs5myZIlzJs3D4BrrrmGunXrArBkyRJuvPFGqlevDsBNN93El19+Sf/+/WnatOlZCb64+MD5IlkgMfrb3owZMwBwu93Url2bQ4cOnbH/JUuWcOutt+J2u6lfvz69evXi22+/pXPnzowYMYLc3FxuuOEG0tPTad68OVu3buXee+/l+uuv5+qrryY7O5uvvvqKQYMGFe739OnThdM33HADLpeLVq1asW/fvmJjveqqqwp/3yVLljB37lwA+vTpQ1ZWFkePOu/8BgwYQLVq1ahWrRpXXHEF33zzDTfccAN33303mZmZzJ07l5tvvpmYmPD4LmmJffIi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715NTU3V3bt368KFCzUxMVG3bt1auO2C55Q2xnOVDVBV7dKli37wwQeqqnry5Ek9fvz4Wft//vnn9a677lJV1Q0bNmhqaqqePHlS77nnHn377bdVVfX06dN64sQJnTNnjo4aNapw+4cPH9acnBzt1q2b7t+/X1VV33vvvcLt9erVSx966CFVVf3HP/6hV155paqqTps2TceOHVu4naeeekovueQSPXHihKqq9uvXT6dPn66qqlOmTNEBAwYU/k369u2r+fn5umnTJm3cuLGePHlSp0+frvfff7+qqn7//fdaXD6s9LIGVU1qUiLzV+4iJ89DXEzY9jyZilDCFXdF6dChA/v372f37t1kZmZSt25dGjRowIMPPsjixYtxuVzs2rWLffv20aBBg3Nu6/PPP+euu+4qvAIuqIW+du1aHn/8cQ4fPkx2djZ9+/Y967nnqsH+9ddfM3/+fMC5UUnBTUuKq/teq1YtunTp4rfGfHliLOrYsWPs2rWLG2+8EYCEhITCdb77X7JkCffeey8AF110EU2bNmXTpk1069aNP/3pT+zcuZObbrqJFi1a0LZtW373u9/xyCOP0K9fP3r06MHatWtZu3YtV111FeBUz2zYsGHhvm666SYAOnbsyLZt24qNt3///lSrVq3wmH7wwQcA3HnnnTz88MOF7QYPHozL5aJFixY0b96cjRs3MmjQIP74xz/y3HPPMXXqVIYPH17i8SmrsE7yaUmJqMKuwyc5P7l09bONqSiDBg1izpw57N27lyFDhjBz5kwyMzNZvnw5sbGxNGvWrFz12ocPH878+fNp374906dPZ9GiRWe18a3BHgylrU8fSIzB3v9tt91G165d+cc//sF1113Ha6+9Rp8+fVixYgULFizg8ccf58orr+TGG2+kdevWfP311363U1Cf3u12n7O/vTz16RMTE7nqqqv48MMPef/991m+vNy36yhWWF/+2jBKUxUNGTKE9957jzlz5jBo0CCOHDnCeeedR2xsLAsXLgy4BspVV13FtGnTOHHCOb8Lar8fO3aMhg0bkpubW1gTHc6soX6uGuwFt+QDeO+99wqfX1zd92DGeC41a9akSZMmhe8yTp8+XbhdX7614Ddt2sSOHTto2bIlW7dupXnz5tx3330MGDCA1atXs3v3bhITE7njjjv43//9X1asWEHLli3JzMwsTPK5ubmsW7euxNjOVZ++e/fuhcdy5syZZ9T1nz17Nh6Pp7APv2XLloBzT9777ruPzp07F97tqyJYkjcmyFq3bs2xY8do3LgxDRs25PbbbycjI4O2bdsyY8YMLrroooC2c80119C/f386depEenp64dDDP/7xj3Tt2pXLLrvsjG3dcsstPPfcc3To0IEtW7YUW4P9xRdfZMKECbRr147NmzcXVlUsru57MGMsyVtvvcVLL71Eu3bt6N69O3v37j2rzd13343H46Ft27YMGTKE6dOnEx8fz/vvv0+bNm1IT09n7dq1DB06lDVr1tClSxfS09P5/e9/z+OPP05cXBxz5szhkUceoX379qSnp5c4WuiKK65g/fr1pKenM2vWrLPWv/zyy0ybNq3wxuh/+9vfCtelpaXRpUsXrr32WiZNmlTYDdWxY0dq1apV4fXpRUNU+6VTp06akZFRrm14PMrFT/6TYd2b8X/XXRykyEy42rBhAxdfbOdBSU6cOEG1atUQEd577z3efffdEm/CYcpm+PDh9OvXj4EDB561bvfu3fTu3ZuNGzficvm/3vZ3TovIclXtFGgMYd0n73IJqUmJbM86HupQjAkby5cv55577kFVqVOnDlOnTg11SFFnxowZjBs3jgkTJhSb4IOlxCQvIgnAYiDe236Oqj5VpM1w4Dmce70CvKKqbwQ3VP+cksN2r1cTvtasWcOdd955xrL4+HiWLVtWIfvr0aNHifdIrWhjx47lv//97xnL7r///vC7tV4Jpk+f7nf50KFDGTp0aKXEEMiV/Gmgj6pmi0gssEREPlHVpUXazVLVe4If4rmlJSXyzY8HUdWzPsU20Sccz4O2bdsGbRRMuHj11VdDHUKVF6yu9EBu5K2qmu2djfU+qkwR99SkRLJP53HISg5HvYSEBLKysuweAybsqSpZWVlnfFegrALqkxcRN7AcuBB4VVX9vY+8WUR6ApuAB1X1Jz/bGQ2MBucT52DwHWGTVD0uKNs04alJkybs3LmTzMzMUIdiTLklJCTQpEmTcm8noCSvqvlAuojUAeaJSBtVXevT5GPgXVU9LSK/Ad4E+vjZzmRgMjija8obPDj1a8BJ8umpdYKxSROmYmNj/X4r05hoVqqPdVX1MLAQuKbI8ixVPe2dfQPoGJToApBa15vkbYSNMcacpcQkLyIp3it4RKQacBWwsUib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",
+      "text/plain": [
+       "<Figure size 432x288 with 1 Axes>"
+      ]
+     },
+     "metadata": {
+      "needs_background": "light"
+     },
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "image/png": "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",
+      "text/plain": [
+       "<Figure size 432x288 with 1 Axes>"
+      ]
+     },
+     "metadata": {
+      "needs_background": "light"
+     },
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAD4CAYAAAD8Zh1EAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAAsTAAALEwEAmpwYAAAwXElEQVR4nO3deXiU9b3//+dnZpLJNiGBJOyIWg6IAkEQ3BDBDZcCLoArIqJfF9TqOUfxhwtt7VWrHqpYv1KtgigWBQRppXWFYyliDTSyi8AXIWxZgOzbzLx/f9yTYRKyDGS/5/24rrnm3uaed26G13zm3j5GRFBKKdX+OVq7AKWUUk1DA10ppWxCA10ppWxCA10ppWxCA10ppWzC1VpvnJKSIr17926tt1dKqXZp/fr1uSKSWtu8Vgv03r17k5GR0Vpvr5RS7ZIx5qe65ukuF6WUsgkNdKWUsgkNdKWUsolW24euVFOrrKwkKyuLsrKy1i5FqUaLiYmhR48eREVFhf0aDXRlG1lZWXg8Hnr37o0xprXLUeqUiQh5eXlkZWVx+umnh/063eWibKOsrIxOnTppmKt2zxhDp06dTvrXpga6shUNc2UXp/JZbneB/t2eI/zu79vR2/4qpVR17S7QN2bl8/rqXeSXVrZ2KUop1aa0u0BP9bgByCksb+VKlGqc1atXs3bt2hZ5r2uuuYZjx46d9Ovmz5/P9OnTm76gZrZnzx7ef//91i6jxbW7QE8LBHq2Brpq51oi0EUEv9/PypUrSUpKatb3qu/9W1p9ge71elu4mpbT7k5b1Ba6Cscv/7KFrQcKmnSd/bsl8uzPz25wuQULFvDSSy9hjGHgwIFMnDiR5557joqKCjp16sTChQspLS1l7ty5OJ1O3nvvPV599VX69evHfffdx969ewF4+eWXueiii8jJyeHWW2/lwIEDXHDBBXz++eesX7+elJQUZs+ezdtvvw3AtGnT+MUvfsGePXu46qqrGD58OOvXr2flypWMHDmSjIwMUlJSTqjv3Xff5S9/+csJNXbu3LnBv/Xw4cPcd9997N69G4DXX3+dbt26nfD+f/jDH/jb3/6GMYannnqKSZMmcfDgQSZNmkRBQQFer5fXX3+dCy+8kLvvvpuMjAyMMUydOpVHH32UXbt28eCDD5KTk0NcXBxvvvkm/fr1Y8qUKSQmJpKRkcGhQ4d44YUXuOmmm5gxYwbbtm0jPT2dO++8k+TkZD766COKiorw+XwsW7aMqVOnsnv3buLi4njjjTcYOHAgs2bNYteuXezcuZPc3Fwef/xx7rnnHiZPnswNN9zA+PHjAbjtttuYOHEi48aNO8VPU/Nod4F+vIWuF4+otmfLli0899xzrF27lpSUFI4cOYIxhnXr1mGM4U9/+hMvvPAC//M//8N9991HQkIC//Vf/wXArbfeyqOPPsrFF1/M3r17ueqqq9i2bRu//OUvGT16NE8++SR///vfeeuttwBYv3498+bN49tvv0VEGD58OCNHjiQ5OZkff/yRd955h/PPP7/B+gAuvvjiWmtsyMMPP8zIkSNZtmwZPp+PoqIijh49Wu39ly5dSmZmJt9//z25ubmcd955XHLJJbz//vtcddVVzJw5E5/PR0lJCZmZmezfv5/NmzcDBHcT3XvvvcydO5c+ffrw7bff8sADD/DVV18BcPDgQdasWcP27dsZO3YsN910E88//zwvvfQSf/3rXwFr19GGDRvYuHEjHTt25KGHHmLw4MEsX76cr776ismTJ5OZmQnAxo0bWbduHcXFxQwePJhrr72Wu+++m9///veMHz+e/Px81q5dyzvvvNO4D0szCCvQjTFjgFcAJ/AnEXm+xvzfA6MCo3FAmogkNWGdQQluFzFRDm2hq3qF05JuDl999RUTJkwgJSUFgI4dO7Jp06Zgi7SioqLOC0W++OILtm7dGhwvKCigqKiINWvWsGzZMgDGjBlDcnIyAGvWrOH6668nPj4egBtuuIF//OMfjB07ltNOO+2EMK+rPrAuygqnxtrWt2DBAgCcTicdOnTg6NGj1d5/zZo13HLLLTidTjp37szIkSP57rvvOO+885g6dSqVlZWMHz+e9PR0zjjjDHbv3s1DDz3Etddey5VXXklRURFr165lwoQJwfctLz/+/3/8+PE4HA769+/P4cOH66z1iiuuCP69a9asYenSpQCMHj2avLw8CgqsX3Tjxo0jNjaW2NhYRo0axb/+9S/Gjx/PAw88QE5ODkuXLuXGG2/E5Wp77eEG96EbY5zAa8DVQH/gFmNM/9BlRORREUkXkXTgVeCjZqi1qh7SPDEa6KrdeOihh5g+fTqbNm3ij3/8Y50Xi/j9ftatW0dmZmawpZqQkHBK71kV8k1dY1O+/yWXXMLXX39N9+7dmTJlCgsWLCA5OZnvv/+eSy+9lLlz5zJt2jT8fj9JSUnB7ZKZmcm2bduC63G73cHh+k5nDneb1Dz/u2p88uTJvPfee8ybN4+pU6eGta6WFs5B0WHAThHZLSIVwCKgvh1HtwB/bori6pLqcetBUdUmjR49msWLF5OXlwfAkSNHyM/Pp3v37gDVfqZ7PB4KCwuD41deeSWvvvpqcLxqF8BFF13Ehx9+CMBnn33G0aNHARgxYgTLly+npKSE4uJili1bxogRI066PqDOGhty2WWX8frrrwPg8/nIz88/YZkRI0bwwQcf4PP5yMnJ4euvv2bYsGH89NNPdO7cmXvuuYdp06axYcMGcnNz8fv93HjjjTz33HNs2LCBxMRETj/9dBYvXgxYof3999/XW1fNbVtbTQsXLgSsg9MpKSkkJiYC8PHHH1NWVkZeXh6rV6/mvPPOA2DKlCm8/PLLAPTv37/W9ba2cAK9O7AvZDwrMO0ExpjTgNOBrxpfWt1SE9zaQldt0tlnn83MmTMZOXIkgwYN4rHHHmPWrFlMmDCBIUOGBHd1APz85z9n2bJlpKen849//IM5c+aQkZHBwIED6d+/P3PnzgXg2Wef5bPPPuOcc85h8eLFdOnSBY/Hw7nnnsuUKVMYNmwYw4cPZ9q0aQwePPik6wPqrLEhr7zyCqtWrWLAgAEMGTKk2i6jKtdffz0DBw5k0KBBjB49mhdeeIEuXbqwevVqBg0axODBg/nggw945JFH2L9/P5deeinp6encfvvt/Pa3vwVg4cKFvPXWWwwaNIizzz6bjz/+uN66Bg4ciNPpZNCgQfz+978/Yf6sWbNYv349AwcOZMaMGdW+xAYOHMioUaM4//zzefrpp+nWrRsAnTt35qyzzuKuu+4Ke/u0NNPQFZfGmJuAMSIyLTB+BzBcRE44OdUY8wTQQ0QeqmNd9wL3AvTq1WvITz/V2fFGvZ75eDMfZx7g+2evPKXXK3vatm0bZ511VmuX0eTKy8txOp24XC6++eYb7r///mDrXTWtWbNmVTtQHaqkpIQBAwawYcMGOnTo0CL11PaZNsasF5GhtS0fzl79/UDPkPEegWm1uRl4sK4VicgbwBsAQ4cOPeVr91MT3OSXVlLu9eF2OU91NUq1C3v37mXixIn4/X6io6N58803W7ukiPPFF19w99138+ijj7ZYmJ+KcAL9O6CPMeZ0rCC/Gbi15kLGmH5AMvBNk1ZYi7RE6yBIblEF3ZNim/vtlGpVffr04d///ner1vCb3/wmuA+7yoQJE5g5c2YrVdQ8Zs2aVev0yy+/nFPdo9CSGgx0EfEaY6YDn2Kdtvi2iGwxxvwKyBCRFYFFbwYWSQvcNavq4qLsgjINdKVawMyZM20X3nYU1omUIrISWFlj2jM1xmc1XVn1S02IAfRqUaWUCtXu7uUCx3e56KmLSil1XLsM9E7x0RijLXSllArVLgPd5XTQKT6anCINdKWUqtIuAx0gJcFNdoEGumrfTvXS/tosX7681gt7msOFF154Sq+bNWsWL730UhNX0/wyMzNZuXJlwwu2snYb6Kket7bQlQrREoFedS/xluqYo673b2n1BXpbur9627tdWJjSPDHsys5t7TJUW/W3GXBoU9Ous8sAuPr5eheZMWMGPXv25MEHrevrZs2ahcvlYtWqVRw9epTKykqee+65sO+j/bvf/Y733nsPh8PB1VdfzfPPP8+bb77JG2+8QUVFBT/72c949913yczMZMWKFfzv//4vzz33XPBOgrXdQ3zXrl3cdtttFBcXM27cOF5++WWKiooQER5//PET7lu+evVqnn76aZKTk9m+fTs7duwgISGBoqKik6oxLi6uwb93586d3HfffeTk5OB0Olm8eDH79u2r9v4bN27k/vvvJyMjA5fLxezZsxk1ahRbtmzhrrvuoqKiAr/fz9KlS+nWrRsTJ04kKysLn8/H008/zaRJk1i/fj2PPfYYRUVFpKSkMH/+fLp27cqll17K8OHDWbVqFceOHeOtt95i+PDhPPPMM5SWlrJmzRqefPJJtm3bxq5du9i9eze9evXit7/9LVOnTiU3N5fU1FTmzZtHr169mDJlCjExMWRkZFBQUMDs2bO57rrruOSSS5gzZw7p6emAdfvi1157jUGDBoX1uaiTiLTKY8iQIdIYv125TX72/30ifr+/UetR9rF169bjIyufEHn7mqZ9rHyiwRo2bNggl1xySXD8rLPOkr1790p+fr6IiOTk5MiZZ54Z/NzGx8fXua6VK1fKBRdcIMXFxSIikpeXJyIiubm5wWVmzpwpc+bMERGRO++8UxYvXhycN3r0aNmxY4eIiKxbt05GjRolIiLXXnutvP/++yIi8vrrrwdrWLJkiVx++eXi9Xrl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",
+      "text/plain": [
+       "<Figure size 432x288 with 1 Axes>"
+      ]
+     },
+     "metadata": {
+      "needs_background": "light"
+     },
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAD4CAYAAAD8Zh1EAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAAsTAAALEwEAmpwYAAA0h0lEQVR4nO3dd3hUZd7/8fc9M0kmIYVAIAkJVREECaELSFdBZQELYEVE1h8q1t21PFiw7LOuuqx1wQaI4oMCgujGLqioIElEWiCESEkgFdL7zP37YyZDCGkkmUwy831d11xz5szJub85OfnMmfs0pbVGCCFE22dwdQFCCCGahwS6EEK4CQl0IYRwExLoQgjhJiTQhRDCTZhc1XBISIju0aOHq5oXQog2KS4uLktr3amm91wW6D169CA2NtZVzQshRJuklDpS23vS5SKEEG5CAl0IIdyEBLoQQrgJl/WhC9HcysvLSUlJoaSkxNWlCNFkZrOZyMhIvLy8GvwzEujCbaSkpBAQEECPHj1QSrm6HCEaTWtNdnY2KSkp9OzZs8E/J10uwm2UlJTQsWNHCXPR5iml6Nix4zl/25RAF25Fwly4i8asy20u0HccPsk/v9iPXPZXCCHO1OYCfVdKLku3HCKnqNzVpQghRKvS5gI9PMgMQFqeHMkg2rYtW7bw888/t0hbV155JTk5Oef8cytXrmThwoXNX5CTHT58mA8++MDVZbS4NhfoYZWBniuBLtq2lgh0rTVWq5WYmBjat2/v1Lbqar+l1RXoFRUVLVxNy2lzhy2GBdoC/YQEuqjDU5/uZd/xvGadZ78ugTz5p/71Trdq1SpefPFFlFJERUUxa9Ysnn32WcrKyujYsSOrV6+muLiYZcuWYTQaef/993n11Vfp27cvCxYs4OjRowC89NJLjB49mszMTG688UaOHz/OyJEj+frrr4mLiyMkJIQlS5awfPlyAObPn8/999/P4cOHmTx5MiNGjCAuLo6YmBjGjRtHbGwsISEhZ9X33nvv8emnn55VY2hoaL2/a3p6OgsWLCA5ORmApUuX0qVLl7Paf+211/j8889RSvHYY48xe/ZsTpw4wezZs8nLy6OiooKlS5cyatQobr/9dmJjY1FKMW/ePB544AEOHTrE3XffTWZmJn5+frz11lv07duXuXPnEhgYSGxsLGlpaTz//PNcd911PPLIIyQkJBAdHc2tt95KcHAwH3/8MQUFBVgsFjZs2MC8efNITk7Gz8+PN998k6ioKBYvXsyhQ4dISkoiKyuLhx56iD//+c/MmTOHa665hhkzZgBw0003MWvWLKZPn97Itck52lygdwrwwaAgLbfY1aUIcZa9e/fy7LPP8vPPPxMSEsLJkydRSrFt2zaUUrz99ts8//zz/Otf/2LBggX4+/vz17/+FYAbb7yRBx54gEsuuYSjR48yefJkEhISeOqpp5g4cSKPPvooX3zxBe+88w4AcXFxrFixgu3bt6O1ZsSIEYwbN47g4GAOHjzIu+++y8UXX1xvfQCXXHJJjTXW595772XcuHFs2LABi8VCQUEBp06dOqP99evXs3PnTn7//XeysrIYNmwYY8eO5YMPPmDy5MksWrQIi8VCUVERO3fuJDU1lT179gA4uonuuOMOli1bRu/evdm+fTt33XUX3333HQAnTpxg69at7N+/n2nTpnHdddfx3HPP8eKLL/LZZ58Btq6j+Ph4du3aRYcOHbjnnnsYNGgQGzdu5LvvvmPOnDns3LkTgF27drFt2zYKCwsZNGgQV111Fbfffjv//ve/mTFjBrm5ufz888+8++67TVtZnKDNBbqX0UCnAB/ZQhd1asiWtDN89913zJw5k5CQEAA6dOjA7t27HVukZWVltZ4o8s0337Bv3z7H67y8PAoKCti6dSsbNmwAYMqUKQQHBwOwdetWrr76atq1awfANddcw48//si0adPo3r37WWFeW31gOymrITXWNL9Vq1YBYDQaCQoK4tSpU2e0v3XrVm644QaMRiOhoaGMGzeOHTt2MGzYMObNm0d5eTkzZswgOjqaXr16kZyczD333MNVV13F5ZdfTkFBAT///DMzZ850tFtaWuoYnjFjBgaDgX79+pGenl5rrZdddpnj9926dSvr168HYOLEiWRnZ5OXZ/tGN336dHx9ffH19WXChAn8+uuvzJgxg7vuuovMzEzWr1/Ptddei8nU+uKzzfWhA4QF+cpOUdFm3HPPPSxcuJDdu3fzxhtv1HqyiNVqZdu2bezcudOxperv79+oNitDvrlrbM72x44dyw8//EBERARz585l1apVBAcH8/vvvzN+/HiWLVvG/PnzsVqttG/f3rFcdu7cSUJCgmM+Pj4+juG6Dmdu6DKpfvx35es5c+bw/vvvs2LF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",
+      "text/plain": [
+       "<Figure size 432x288 with 1 Axes>"
+      ]
+     },
+     "metadata": {
+      "needs_background": "light"
+     },
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "base_history[history_columns].plot()\n",
+    "lstm_history[history_columns].plot()\n",
+    "gru_history[history_columns].plot()\n",
+    "attn_history[history_columns].plot()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 28,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "base_model = tf.keras.models.load_model(f\"{MODEL_DIR}/baseline\")\n",
+    "lstm_model = tf.keras.models.load_model(f\"{MODEL_DIR}/lstm\")\n",
+    "gru_model = tf.keras.models.load_model(f\"{MODEL_DIR}/gru\")"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 29,
+   "metadata": {},
+   "outputs": [
+    {
+     "ename": "RuntimeError",
+     "evalue": "Unable to restore object of class 'Attention' likely due to name conflict with built-in Keras class '<class 'keras.layers.dense_attention.Attention'>'. To override the built-in Keras definition of the object, decorate your class with `@keras.utils.register_keras_serializable` and include that file in your program, or pass your class in a `keras.utils.CustomObjectScope` that wraps this load call.",
+     "output_type": "error",
+     "traceback": [
+      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
+      "\u001b[0;31mRuntimeError\u001b[0m                              Traceback (most recent call last)",
+      "\u001b[1;32m/Users/nowadmin/Documents/School Folder/CS 437/Lab/Final Project/tf_model.ipynb Cell 65'\u001b[0m in \u001b[0;36m<cell line: 1>\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> <a href='vscode-notebook-cell:/Users/nowadmin/Documents/School%20Folder/CS%20437/Lab/Final%20Project/tf_model.ipynb#ch0000068?line=0'>1</a>\u001b[0m attn_model \u001b[39m=\u001b[39m tf\u001b[39m.\u001b[39;49mkeras\u001b[39m.\u001b[39;49mmodels\u001b[39m.\u001b[39;49mload_model(\u001b[39mf\u001b[39;49m\u001b[39m\"\u001b[39;49m\u001b[39m{\u001b[39;49;00mMODEL_DIR\u001b[39m}\u001b[39;49;00m\u001b[39m/attention\u001b[39;49m\u001b[39m\"\u001b[39;49m)\n",
+      "File \u001b[0;32m~/Documents/School Folder/CS 437/Lab/Final Project/venv/lib/python3.10/site-packages/keras/utils/traceback_utils.py:67\u001b[0m, in \u001b[0;36mfilter_traceback.<locals>.error_handler\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m     <a href='file:///Users/nowadmin/Documents/School%20Folder/CS%20437/Lab/Final%20Project/venv/lib/python3.10/site-packages/keras/utils/traceback_utils.py?line=64'>65</a>\u001b[0m \u001b[39mexcept\u001b[39;00m \u001b[39mException\u001b[39;00m \u001b[39mas\u001b[39;00m e:  \u001b[39m# pylint: disable=broad-except\u001b[39;00m\n\u001b[1;32m     <a href='file:///Users/nowadmin/Documents/School%20Folder/CS%20437/Lab/Final%20Project/venv/lib/python3.10/site-packages/keras/utils/traceback_utils.py?line=65'>66</a>\u001b[0m   filtered_tb \u001b[39m=\u001b[39m _process_traceback_frames(e\u001b[39m.\u001b[39m__traceback__)\n\u001b[0;32m---> <a href='file:///Users/nowadmin/Documents/School%20Folder/CS%20437/Lab/Final%20Project/venv/lib/python3.10/site-packages/keras/utils/traceback_utils.py?line=66'>67</a>\u001b[0m   \u001b[39mraise\u001b[39;00m e\u001b[39m.\u001b[39mwith_traceback(filtered_tb) \u001b[39mfrom\u001b[39;00m \u001b[39mNone\u001b[39m\n\u001b[1;32m     <a href='file:///Users/nowadmin/Documents/School%20Folder/CS%20437/Lab/Final%20Project/venv/lib/python3.10/site-packages/keras/utils/traceback_utils.py?line=67'>68</a>\u001b[0m \u001b[39mfinally\u001b[39;00m:\n\u001b[1;32m     <a href='file:///Users/nowadmin/Documents/School%20Folder/CS%20437/Lab/Final%20Project/venv/lib/python3.10/site-packages/keras/utils/traceback_utils.py?line=68'>69</a>\u001b[0m   \u001b[39mdel\u001b[39;00m filtered_tb\n",
+      "File \u001b[0;32m~/Documents/School Folder/CS 437/Lab/Final Project/venv/lib/python3.10/site-packages/keras/saving/saved_model/load.py:532\u001b[0m, in \u001b[0;36mKerasObjectLoader._revive_layer_or_model_from_config\u001b[0;34m(self, metadata, node_id)\u001b[0m\n\u001b[1;32m    <a href='file:///Users/nowadmin/Documents/School%20Folder/CS%20437/Lab/Final%20Project/venv/lib/python3.10/site-packages/keras/saving/saved_model/load.py?line=529'>530</a>\u001b[0m builtin_layer \u001b[39m=\u001b[39m layers_module\u001b[39m.\u001b[39mget_builtin_layer(class_name)\n\u001b[1;32m    <a href='file:///Users/nowadmin/Documents/School%20Folder/CS%20437/Lab/Final%20Project/venv/lib/python3.10/site-packages/keras/saving/saved_model/load.py?line=530'>531</a>\u001b[0m \u001b[39mif\u001b[39;00m builtin_layer:\n\u001b[0;32m--> <a href='file:///Users/nowadmin/Documents/School%20Folder/CS%20437/Lab/Final%20Project/venv/lib/python3.10/site-packages/keras/saving/saved_model/load.py?line=531'>532</a>\u001b[0m   \u001b[39mraise\u001b[39;00m \u001b[39mRuntimeError\u001b[39;00m(\n\u001b[1;32m    <a href='file:///Users/nowadmin/Documents/School%20Folder/CS%20437/Lab/Final%20Project/venv/lib/python3.10/site-packages/keras/saving/saved_model/load.py?line=532'>533</a>\u001b[0m       \u001b[39mf\u001b[39m\u001b[39m'\u001b[39m\u001b[39mUnable to restore object of class \u001b[39m\u001b[39m\\'\u001b[39;00m\u001b[39m{\u001b[39;00mclass_name\u001b[39m}\u001b[39;00m\u001b[39m\\'\u001b[39;00m\u001b[39m likely due to \u001b[39m\u001b[39m'\u001b[39m\n\u001b[1;32m    <a href='file:///Users/nowadmin/Documents/School%20Folder/CS%20437/Lab/Final%20Project/venv/lib/python3.10/site-packages/keras/saving/saved_model/load.py?line=533'>534</a>\u001b[0m       \u001b[39mf\u001b[39m\u001b[39m'\u001b[39m\u001b[39mname conflict with built-in Keras class \u001b[39m\u001b[39m\\'\u001b[39;00m\u001b[39m{\u001b[39;00mbuiltin_layer\u001b[39m}\u001b[39;00m\u001b[39m\\'\u001b[39;00m\u001b[39m. To \u001b[39m\u001b[39m'\u001b[39m\n\u001b[1;32m    <a href='file:///Users/nowadmin/Documents/School%20Folder/CS%20437/Lab/Final%20Project/venv/lib/python3.10/site-packages/keras/saving/saved_model/load.py?line=534'>535</a>\u001b[0m       \u001b[39m'\u001b[39m\u001b[39moverride the built-in Keras definition of the object, decorate \u001b[39m\u001b[39m'\u001b[39m\n\u001b[1;32m    <a href='file:///Users/nowadmin/Documents/School%20Folder/CS%20437/Lab/Final%20Project/venv/lib/python3.10/site-packages/keras/saving/saved_model/load.py?line=535'>536</a>\u001b[0m       \u001b[39m'\u001b[39m\u001b[39myour class with `@keras.utils.register_keras_serializable` and \u001b[39m\u001b[39m'\u001b[39m\n\u001b[1;32m    <a href='file:///Users/nowadmin/Documents/School%20Folder/CS%20437/Lab/Final%20Project/venv/lib/python3.10/site-packages/keras/saving/saved_model/load.py?line=536'>537</a>\u001b[0m       \u001b[39m'\u001b[39m\u001b[39minclude that file in your program, or pass your class in a \u001b[39m\u001b[39m'\u001b[39m\n\u001b[1;32m    <a href='file:///Users/nowadmin/Documents/School%20Folder/CS%20437/Lab/Final%20Project/venv/lib/python3.10/site-packages/keras/saving/saved_model/load.py?line=537'>538</a>\u001b[0m       \u001b[39m'\u001b[39m\u001b[39m`keras.utils.CustomObjectScope` that wraps this load call.\u001b[39m\u001b[39m'\u001b[39m) \u001b[39mfrom\u001b[39;00m \u001b[39me\u001b[39;00m\n\u001b[1;32m    <a href='file:///Users/nowadmin/Documents/School%20Folder/CS%20437/Lab/Final%20Project/venv/lib/python3.10/site-packages/keras/saving/saved_model/load.py?line=538'>539</a>\u001b[0m \u001b[39melse\u001b[39;00m:\n\u001b[1;32m    <a href='file:///Users/nowadmin/Documents/School%20Folder/CS%20437/Lab/Final%20Project/venv/lib/python3.10/site-packages/keras/saving/saved_model/load.py?line=539'>540</a>\u001b[0m   \u001b[39mraise\u001b[39;00m\n",
+      "\u001b[0;31mRuntimeError\u001b[0m: Unable to restore object of class 'Attention' likely due to name conflict with built-in Keras class '<class 'keras.layers.dense_attention.Attention'>'. To override the built-in Keras definition of the object, decorate your class with `@keras.utils.register_keras_serializable` and include that file in your program, or pass your class in a `keras.utils.CustomObjectScope` that wraps this load call."
+     ]
+    }
+   ],
+   "source": [
+    "attn_model = tf.keras.models.load_model(f\"{MODEL_DIR}/attention\")"
+   ]
+  },
   {
    "cell_type": "code",
    "execution_count": null,
    "metadata": {},
    "outputs": [],
-   "source": []
+   "source": [
+    "def model_time():\n",
+    "    pass"
+   ]
   },
   {
    "cell_type": "markdown",
-- 
GitLab