556 lines (555 with data), 75.7 kB
{
"cells": [
{
"cell_type": "code",
"execution_count": 2,
"id": "f8302cf8",
"metadata": {},
"outputs": [],
"source": [
"import re\n",
"import os\n",
"import json \n",
"\n",
"import spacy\n",
"from spacy import displacy\n",
"\n",
"import numpy as np\n",
"from tensorflow.keras.preprocessing.sequence import pad_sequences"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "dd80913f",
"metadata": {},
"outputs": [],
"source": [
"import nltk\n",
"nltk.download('punkt')\n",
"nltk.download('stopwords')\n",
"from nltk.corpus import stopwords\n",
"\n",
"STOP_WORDS = stopwords.words('english')"
]
},
{
"cell_type": "code",
"execution_count": 80,
"id": "6851f1a6",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"[nltk_data] Error loading punkt: <urlopen error [SSL:\n",
"[nltk_data] CERTIFICATE_VERIFY_FAILED] certificate verify failed:\n",
"[nltk_data] unable to get local issuer certificate (_ssl.c:1131)>\n",
"[nltk_data] Error loading stopwords: <urlopen error [SSL:\n",
"[nltk_data] CERTIFICATE_VERIFY_FAILED] certificate verify failed:\n",
"[nltk_data] unable to get local issuer certificate (_ssl.c:1131)>\n"
]
}
],
"source": [
"import sys\n",
"sys.path.append('../scripts')\n",
"from utils import predict, predict_multi_line_text, load_data\n",
"\n",
"sys.path.append('../')\n",
"from config import entity_to_acronyms, acronyms_to_entities"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "89395fb0",
"metadata": {},
"outputs": [],
"source": [
"# from importlib import reload\n",
"\n",
"# import utils\n",
"# reload(utils)"
]
},
{
"cell_type": "code",
"execution_count": 29,
"id": "55b67971",
"metadata": {},
"outputs": [],
"source": [
"import tensorflow as tf\n",
"from tensorflow.keras.preprocessing.text import Tokenizer\n",
"from tensorflow.keras.preprocessing.sequence import pad_sequences\n",
"from tensorflow.keras.utils import to_categorical\n",
"from tensorflow.keras.layers import Input, Embedding, Bidirectional, LSTM, Dense"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "fab32dfc",
"metadata": {},
"outputs": [],
"source": [
"from transformers import TFBertModel\n",
"from transformers import BertTokenizer"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "f86da10e",
"metadata": {},
"outputs": [],
"source": [
"data_dir = \"../data/bio_data_files\""
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "51467642",
"metadata": {},
"outputs": [],
"source": [
"bio_files = [os.path.join(data_dir, file) for file in os.listdir(data_dir)]"
]
},
{
"cell_type": "markdown",
"id": "3f666677",
"metadata": {},
"source": [
"## Model parameters"
]
},
{
"cell_type": "code",
"execution_count": 20,
"id": "5c0199db",
"metadata": {},
"outputs": [],
"source": [
"EMBEDDING_DIM = 200\n",
"MAX_LENGTH = 100"
]
},
{
"cell_type": "code",
"execution_count": 21,
"id": "36c1529c",
"metadata": {},
"outputs": [],
"source": [
"# initialize tokenizer\n",
"tokenizer = BertTokenizer.from_pretrained('bert-base-uncased')"
]
},
{
"cell_type": "code",
"execution_count": 39,
"id": "f380a0d9",
"metadata": {},
"outputs": [],
"source": [
"# initialize lists for input sequences and labels\n",
"input_sequences = []\n",
"labels = []\n",
"\n",
"# loop through each file\n",
"for file_path in bio_files:\n",
" with open(file_path, 'r') as f:\n",
" lines = f.readlines()\n",
" # initialize list for current sequence and labels\n",
" sequence = []\n",
" sequence_labels = []\n",
" # loop through each line in the file\n",
" for line in lines:\n",
" line = line.strip()\n",
" if line:\n",
" # tokenize current word\n",
" word = line.split('\\t')[0]\n",
" tokenized_word = tokenizer.tokenize(word)\n",
" if tokenized_word:\n",
" # add tokenized word to current sequence\n",
" sequence.extend(tokenized_word)\n",
" # add label for each subword in tokenized word\n",
" label = line.split('\\t')[1]\n",
" sequence_labels.append(label)\n",
" for i in range(1, len(tokenized_word)):\n",
" if label == 'O':\n",
" sequence_labels.append(label)\n",
" else:\n",
" sequence_labels.append(f\"I-{label[2:]}\")\n",
" else:\n",
" # add current sequence and labels to input sequences and labels\n",
" input_sequences.append(sequence)\n",
" labels.append(sequence_labels)\n",
" # reset sequence and sequence_labels lists\n",
" sequence = []\n",
" sequence_labels = []\n"
]
},
{
"cell_type": "code",
"execution_count": 42,
"id": "18e1b557",
"metadata": {},
"outputs": [],
"source": [
"unique_labels = set(element for sublist in labels for element in sublist)\n",
"\n",
"label_to_index = {label: id+1 for id, label in enumerate(sorted(unique_labels))}\n",
"index_to_label = {id: label for label, id in label_to_index.items()}\n",
"\n",
"# Add the new label and ID to the dictionaries\n",
"label_to_index['<PAD>'] = 0\n",
"index_to_label[0] = '<PAD>'\n"
]
},
{
"cell_type": "code",
"execution_count": 44,
"id": "f39385e9",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"79"
]
},
"execution_count": 44,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"len(unique_labels)"
]
},
{
"cell_type": "code",
"execution_count": 48,
"id": "bef61aea",
"metadata": {},
"outputs": [],
"source": [
"\n",
"# pad input sequences and labels\n",
"padded_sequences = pad_sequences([tokenizer.convert_tokens_to_ids(seq) for seq in input_sequences], maxlen=MAX_LENGTH, padding='post')\n",
"padded_labels = pad_sequences(\n",
" [[label_to_index[label] for label in seq] for seq in labels], \n",
" maxlen=MAX_LENGTH, padding='post')\n",
"padded_labels = to_categorical(padded_labels, num_classes=len(label_to_index))\n",
"\n",
"# train_labels = [[label_to_index[label] for label in all_labels] for all_labels in labels]\n",
"# train_labels = pad_sequences(train_labels, maxlen=MAX_LENGTH, padding='post', value=NUM_CLASSES-1)\n",
"# train_labels = to_categorical(train_labels, num_classes=NUM_CLASSES)\n",
"\n",
"# create attention masks\n",
"attention_masks = np.where(padded_sequences != 0, 1, 0)\n"
]
},
{
"cell_type": "code",
"execution_count": 49,
"id": "de575658",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"((4341, 100), (4341, 100, 80))"
]
},
"execution_count": 49,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"padded_sequences.shape, padded_labels.shape"
]
},
{
"cell_type": "markdown",
"id": "e4a386d2",
"metadata": {},
"source": [
"## FineTuning Bert Model"
]
},
{
"cell_type": "code",
"execution_count": 53,
"id": "a48afd30",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"Some layers from the model checkpoint at bert-base-uncased were not used when initializing TFBertModel: ['nsp___cls', 'mlm___cls']\n",
"- This IS expected if you are initializing TFBertModel from the checkpoint of a model trained on another task or with another architecture (e.g. initializing a BertForSequenceClassification model from a BertForPreTraining model).\n",
"- This IS NOT expected if you are initializing TFBertModel from the checkpoint of a model that you expect to be exactly identical (initializing a BertForSequenceClassification model from a BertForSequenceClassification model).\n",
"All the layers of TFBertModel were initialized from the model checkpoint at bert-base-uncased.\n",
"If your task is similar to the task the model of the checkpoint was trained on, you can already use TFBertModel for predictions without further training.\n"
]
}
],
"source": [
"bert_model = TFBertModel.from_pretrained('bert-base-uncased')"
]
},
{
"cell_type": "code",
"execution_count": 52,
"id": "67045d3b",
"metadata": {},
"outputs": [],
"source": [
"input_ids = tf.keras.Input(shape=(max_len,), dtype='int32')\n",
"attention_masks = tf.keras.Input(shape=(max_len,), dtype='int32')\n",
"bert_output = bert_model(input_ids, attention_mask=attention_masks, return_dict=True)\n",
"embedding = tf.keras.layers.Dropout(0.3)(bert_output[\"last_hidden_state\"])\n",
"output = tf.keras.layers.TimeDistributed(tf.keras.layers.Dense(80, activation='softmax'))(embedding)\n",
"model = tf.keras.models.Model(inputs=[input_ids, attention_masks], outputs=[output])\n",
"model.compile(optimizer=tf.keras.optimizers.Adam(lr=0.00001), loss=\"categorical_crossentropy\", metrics=[\"accuracy\"])"
]
},
{
"cell_type": "code",
"execution_count": 54,
"id": "521364ab",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 1/5\n",
"WARNING:tensorflow:Gradients do not exist for variables ['tf_bert_model_4/bert/pooler/dense/kernel:0', 'tf_bert_model_4/bert/pooler/dense/bias:0'] when minimizing the loss. If you're using `model.compile()`, did you forget to provide a `loss`argument?\n",
"WARNING:tensorflow:Gradients do not exist for variables ['tf_bert_model_4/bert/pooler/dense/kernel:0', 'tf_bert_model_4/bert/pooler/dense/bias:0'] when minimizing the loss. If you're using `model.compile()`, did you forget to provide a `loss`argument?\n",
"123/123 [==============================] - 552s 4s/step - loss: 1.0844 - accuracy: 0.7872 - val_loss: 0.6442 - val_accuracy: 0.8443\n",
"Epoch 2/5\n",
"123/123 [==============================] - 557s 5s/step - loss: 0.5870 - accuracy: 0.8590 - val_loss: 0.4519 - val_accuracy: 0.8811\n",
"Epoch 3/5\n",
"123/123 [==============================] - 562s 5s/step - loss: 0.4413 - accuracy: 0.8855 - val_loss: 0.3637 - val_accuracy: 0.9012\n",
"Epoch 4/5\n",
"123/123 [==============================] - 566s 5s/step - loss: 0.3634 - accuracy: 0.9030 - val_loss: 0.3158 - val_accuracy: 0.9114\n",
"Epoch 5/5\n",
"123/123 [==============================] - 545s 4s/step - loss: 0.3164 - accuracy: 0.9137 - val_loss: 0.2880 - val_accuracy: 0.9189\n"
]
}
],
"source": [
"history = model.fit(\n",
" x=[padded_sequences, attention_masks],\n",
" y=padded_labels,\n",
" epochs=5,\n",
" batch_size=32,\n",
" validation_split=0.1\n",
")"
]
},
{
"cell_type": "code",
"execution_count": 85,
"id": "ec57b16d",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"136/136 [==============================] - 197s 1s/step - loss: 0.2564 - accuracy: 0.9285\n",
"test loss, test acc: [0.25636425614356995, 0.9285141825675964]\n"
]
}
],
"source": [
"test_attention_masks = np.where(padded_sequences != 0, 1, 0)\n",
"results = model.evaluate(\n",
" x=[padded_sequences, attention_masks],\n",
" y=padded_labels,\n",
" batch_size=32\n",
")\n",
"print(\"test loss, test acc:\", results)\n"
]
},
{
"cell_type": "code",
"execution_count": 84,
"id": "770388cb",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(1, 100)\n",
"1/1 [==============================] - 0s 99ms/step\n",
"[[79 10 10 6 45 45 36 75 6 6 45 12 51 51 51 51 51 79 11 33 72 72 72 79\n",
" 6 45 45 45 45 33 52 72 33 72 72 0 0 0 0 0 0 0 0 0 0 0 0 0\n",
" 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n",
" 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n",
" 0 0 0 0]]\n",
"first O\n",
"hospital Date\n",
"day Date\n",
"inter Biological_structure\n",
"##cos Biological_structure\n",
"##tal Biological_structure\n",
"drainage Therapeutic_procedure\n",
"tube Therapeutic_procedure\n",
"inserted Biological_structure\n",
"drainage Biological_structure\n",
"chest Biological_structure\n",
"computed Diagnostic_procedure\n",
"tom Diagnostic_procedure\n",
"##ography Diagnostic_procedure\n",
"ct Diagnostic_procedure\n",
"fig Diagnostic_procedure\n",
"##2 Diagnostic_procedure\n",
"revealed O\n",
"irregular Detailed_description\n",
"pl Sign_symptom\n",
"##eur Sign_symptom\n",
"##al Sign_symptom\n",
"mass Sign_symptom\n",
"invading O\n",
"left Biological_structure\n",
"chest Biological_structure\n",
"wall Biological_structure\n",
"rib Biological_structure\n",
"destruction Biological_structure\n",
"pl Sign_symptom\n",
"##eur Distance\n",
"##al Sign_symptom\n",
"e Sign_symptom\n",
"##ff Sign_symptom\n",
"##usion Sign_symptom\n"
]
}
],
"source": [
"from transformers import BertTokenizer\n",
"import numpy as np\n",
"\n",
"# input sentence\n",
"input_sentence = \"On the first hospital day, an intercostal drainage tube was inserted, and after drainage, chest computed tomography (CT) (Fig.2) revealed an irregular pleural mass invading her left chest wall with rib destruction and pleural effusion.\"\n",
"\n",
"# tokenize input sentence\n",
"tokens = []\n",
"for t in tokenize_text(input_sentence):\n",
" tokenized_word = tokenizer.tokenize(t)\n",
" for token in tokenized_word:\n",
" tokens.append(token)\n",
"padded_sequence = pad_sequences(\n",
" [[tokenizer.convert_tokens_to_ids(seq) for seq in tokens]], \n",
" maxlen=MAX_LENGTH, padding='post')\n",
"# # sequence = tokenizer.texts_to_sequences([' '.join(token for token in tokens)])\n",
"# # padded_sequence = pad_sequences(sequence, maxlen=MAX_LENGTH, padding='post')\n",
"print(padded_sequence.shape)\n",
"\n",
"# sequence = tokenizer.texts_to_sequences([' '.join(token for token in tokens)])\n",
"# padded_sequence = pad_sequences(sequence, maxlen=MAX_LENGTH, padding='post')\n",
"\n",
"# create attention mask\n",
"attention_mask = np.where(padded_sequence != 0, 1, 0)\n",
"\n",
"# get predicted NER tags\n",
"predictions = model.predict([padded_sequence, attention_mask])\n",
"\n",
"# decode predictions\n",
"predicted_labels = np.argmax(predictions, axis=-1)\n",
"print(predicted_labels)\n",
"predicted_labels = [index_to_label[i] for i in predicted_labels[0]]\n",
"# decode predicted tags\n",
"\n",
"for token, label in zip(tokens, predicted_labels):\n",
" if label == 'O':\n",
" print(f\"{token} {label}\")\n",
" else:\n",
" print(f\"{token} {acronyms_to_entities[label[2:]]}\")\n",
" \n"
]
},
{
"cell_type": "code",
"execution_count": 22,
"id": "c744592c",
"metadata": {},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt\n",
"\n",
"def plot_graphs(history):\n",
" fig, axs = plt.subplots(1, 2, figsize=(10, 5))\n",
" \n",
" axs[0].plot(history.history['accuracy'])\n",
" axs[0].plot(history.history['val_accuracy'])\n",
" axs[0].set_title('Model Accuracy')\n",
" axs[0].set_ylabel('Accuracy')\n",
" axs[0].legend(['train', 'val'], loc='best')\n",
" \n",
" axs[1].plot(history.history['loss'])\n",
" axs[1].plot(history.history['val_loss'])\n",
" axs[1].set_title('Model Loss')\n",
" axs[1].set_ylabel('Loss')\n",
" axs[1].legend(['train', 'val'], loc='best')\n",
"\n",
" plt.tight_layout()\n",
" plt.show()\n"
]
},
{
"cell_type": "code",
"execution_count": 23,
"id": "4e14092b",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA90AAAHqCAYAAAAZLi26AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAACpVUlEQVR4nOzdd3hUZfrG8e/MpHcCIaEEQpMmvQQQFRQFC6KCIqgogu4qVtTfiiLYsazIunYFRUVFBduqFFGQGhCkSSeBQBoESO8z5/fHJAOhSSDJmUnuz3WdK8PJmZl7ZlmHZ973eV+LYRgGIiIiIiIiIlLprGYHEBEREREREampVHSLiIiIiIiIVBEV3SIiIiIiIiJVREW3iIiIiIiISBVR0S0iIiIiIiJSRVR0i4iIiIiIiFQRFd0iIiIiIiIiVURFt4iIiIiIiEgVUdEtIiIiIiIiUkVUdIvUQhaLhaeeeqrC99uzZw8Wi4WPPvqo0jOJiIjI2dNnu4j7UtEtYpKPPvoIi8WCxWJh2bJlJ/zeMAyio6OxWCxcffXVJiSsHD/99BMWi4WGDRvicDjMjiMiIlJlavJn++LFi7FYLHz99ddmRxHxOCq6RUzm5+fHZ599dsL5JUuWsH//fnx9fU1IVXlmzZpFTEwMKSkp/Prrr2bHERERqXI1/bNdRCpGRbeIya688kq++uorSkpKyp3/7LPP6NatG1FRUSYlO3e5ubl89913jB8/ni5dujBr1iyzI51Sbm6u2RFERKSGqMmf7SJScSq6RUw2YsQIDh06xMKFC13nioqK+Prrrxk5cuRJ75Obm8vDDz9MdHQ0vr6+tG7dmn//+98YhlHuusLCQh566CEiIiIIDg7mmmuuYf/+/Sd9zKSkJO644w4iIyPx9fWlffv2zJgx45xe2zfffEN+fj433HADN910E3PnzqWgoOCE6woKCnjqqac477zz8PPzo0GDBlx//fXs3r3bdY3D4eA///kPHTp0wM/Pj4iICAYNGsQff/wBnL4n7fg+t6eeegqLxcKWLVsYOXIkderUoW/fvgBs3LiR22+/nebNm+Pn50dUVBR33HEHhw4dOul7NmbMGBo2bIivry/NmjXj7rvvpqioiPj4eCwWC6+99toJ91uxYgUWi4XPP/+8om+piIh4gJr82f534uPjueGGGwgPDycgIIBevXrx448/nnDdf//7X9q3b09AQAB16tShe/fu5WYHZGdn8+CDDxITE4Ovry/169fnsssuY926dVWaX6QqeJkdQKS2i4mJoXfv3nz++edcccUVAPz8889kZmZy00038frrr5e73jAMrrnmGn777TfGjBlD586dmT9/Po8++ihJSUnliryxY8fy6aefMnLkSPr06cOvv/7KVVdddUKGtLQ0evXqhcVi4d577yUiIoKff/6ZMWPGkJWVxYMPPnhWr23WrFn079+fqKgobrrpJh577DF++OEHbrjhBtc1drudq6++mkWLFnHTTTfxwAMPkJ2dzcKFC9m8eTMtWrQAYMyYMXz00UdcccUVjB07lpKSEpYuXcqqVavo3r37WeW74YYbaNWqFS+88ILrHzULFy4kPj6e0aNHExUVxV9//cV7773HX3/9xapVq7BYLAAkJyfTs2dPMjIyuOuuu2jTpg1JSUl8/fXX5OXl0bx5cy644AJmzZrFQw89dML7EhwczJAhQ84qt4iIuLea/Nl+OmlpafTp04e8vDzuv/9+6taty8yZM7nmmmv4+uuvue666wB4//33uf/++xk2bBgPPPAABQUFbNy4kbi4ONeXEv/85z/5+uuvuffee2nXrh2HDh1i2bJlbN26la5du1Z6dpEqZYiIKT788EMDMNasWWO88cYbRnBwsJGXl2cYhmHccMMNRv/+/Q3DMIymTZsaV111let+3377rQEYzz33XLnHGzZsmGGxWIxdu3YZhmEY69evNwDjnnvuKXfdyJEjDcCYPHmy69yYMWOMBg0aGOnp6eWuvemmm4zQ0FBXroSEBAMwPvzww799fWlpaYaXl5fx/vvvu8716dPHGDJkSLnrZsyYYQDG1KlTT3gMh8NhGIZh/PrrrwZg3H///ae85nTZjn+9kydPNgBjxIgRJ1xb9lqP9fnnnxuA8fvvv7vOjRo1yrBarcaaNWtOmendd981AGPr1q2u3xUVFRn16tUzbrvtthPuJyIinq0mf7b/9ttvBmB89dVXp7zmwQcfNABj6dKlrnPZ2dlGs2bNjJiYGMNutxuGYRhDhgwx2rdvf9rnCw0NNcaNG3faa0Q8haaXi7iBG2+8kfz8fP73v/+RnZ3N//73v1NOP/vpp5+w2Wzcf//95c4//PDDGIbBzz//7LoOOOG647/ZNgyDOXPmMHjwYAzDID093XUMHDiQzMzMs5rK9cUXX2C1Whk6dKjr3IgRI/j55585cuSI69ycOXOoV68e99133wmPUTaqPGfOHCwWC5MnTz7lNWfjn//85wnn/P39XbcLCgpIT0+nV69eAK73weFw8O233zJ48OCTjrKXZbrxxhvx8/Mr18s+f/580tPTueWWW846t4iIuL+a+Nn+d3766Sd69uzpatkCCAoK4q677mLPnj1s2bIFgLCwMPbv38+aNWtO+VhhYWHExcWRnJxc6TlFqpuKbhE3EBERwYABA/jss8+YO3cudrudYcOGnfTavXv30rBhQ4KDg8udb9u2rev3ZT+tVqtrenaZ1q1bl/vzwYMHycjI4L333iMiIqLcMXr0aAAOHDhQ4df06aef0rNnTw4dOsSuXbvYtWsXXbp0oaioiK+++sp13e7du2ndujVeXqfudtm9ezcNGzYkPDy8wjlOp1mzZiecO3z4MA888ACRkZH4+/sTERHhui4zMxNwvmdZWVmcf/75p338sLAwBg8eXK5HbdasWTRq1IhLLrmkEl+JiIi4m5r42f539u7de0KWk72Of/3rXwQFBdGzZ09atWrFuHHjWL58ebn7vPzyy2zevJno6Gh69uzJU089RXx8fKVnFqkO6ukWcRMjR47kzjvvJDU1lSuuuIKwsLBqed6yvbNvueUWbrvttpNe07Fjxwo95s6dO13fXrdq1eqE38+aNYu77rqrgklP71Qj3na7/ZT3OXZUu8yNN97IihUrePTRR+ncuTNBQUE4HA4GDRp0VvuMjxo1iq+++ooVK1bQoUMHvv/+e+655x6sVn3nKSJS09Wkz/bK1LZtW7Zv387//vc/5s2bx5w5c3jrrbeYNGkSTz/9NOD8PL7wwgv55ptvWLBgAa+88govvfQSc+fOdfXJi3gKFd0ibuK6667jH//4B6tWrWL27NmnvK5p06b88ssvZGdnl/tGfNu2ba7fl/10OByukeQy27dvL/d4Zauf2u12BgwYUCmvZdasWXh7e/PJJ59gs9nK/W7ZsmW8/vrrJCYm0qRJE1q0aEFcXBzFxcV4e3uf9PFatGjB/PnzOXz48ClHu+vUqQNARkZGufNl36qfiSNHjrBo0SKefvppJk2a5Dq/c+fOctdFREQQEhLC5s2b//YxBw0aREREBLNmzSI2Npa8vDxuvfXWM84kIiKeqyZ9tp+Jpk2bnpAFTnwdAIGBgQwfPpzhw4dTVFTE9ddfz/PPP8+ECRPw8/MDoEGDBtxzzz3cc889HDhwgK5du/L888+r6BaPo6EWETcRFBTE22+/zVNPPcXgwYNPed2VV16J3W7njTfeKHf+tddew2KxuD6Iyn4ev0LqtGnTyv3ZZrMxdOhQ5syZc9Ii8uDBgxV+LbNmzeLCCy9k+PDhDBs2rNzx6KOPAri2yxo6dCjp6eknvB7AtaL40KFDMQzD9e33ya4JCQmhXr16/P777+V+/9Zbb51x7rIvCIzjtmc5/j2zWq1ce+21/PDDD64ty06WCcDLy4sRI0bw5Zdf8tFHH9GhQwdTRxdERKT61KTP9jNx5ZVXsnr1alauXOk6l5uby3vvvUdMTAzt2rUDOGEbTh8fH9q1a4dhGBQXF2O3210tXWXq169Pw4YNKSwsrJLsIlVJI90ibuRUU8CONXjwYPr3788TTzzBnj176NSpEwsWLOC7777jwQcfdPV5de7cmREjRvDWW2+RmZlJnz59WLRoEbt27TrhMV988UV+++03YmNjufPOO2nXrh2HDx9m3bp1/PLLLxw+fPiMX0NcXBy7du3i3nvvPenvGzVqRNeuXZk1axb/+te/GDVqFB9//DHjx49n9erVXHjhheTm5vLLL79wzz33MGTIEPr378+tt97K66+/zs6dO11TvZcuXUr//v1dzzV27FhefPFFxo4dS/fu3fn999/ZsWPHGWcPCQnhoosu4uWXX6a4uJhGjRqxYMECEhISTrj2hRdeYMGCBVx88cXcddddtG3blpSUFL766iuWLVtWbgrhqFGjeP311/ntt9946aWXzjiPiIh4vprw2X6sOXPmuEauj3+djz32mGubtPvvv5/w8HBmzpxJQkICc+bMcbVWXX755URFRXHBBRcQGRnJ1q1beeONN7jqqqsIDg4mIyODxo0bM2zYMDp16kRQUBC//PILa9as4dVXXz2r3CKmMmfRdBE5dluR0zl+WxHDcG6/8dBDDxkNGzY0vL29jVatWhmvvPKKa6uqMvn5+cb9999v1K1b1wgMDDQGDx5s7Nu374RtRQzDucXXuHHjjOjoaMPb29uIiooyLr30UuO9995zXXMm24rcd999BmDs3r37lNc89dRTBmBs2LDBMAznNl1PPPGE0axZM9dzDxs2rNxjlJSUGK+88orRpk0bw8fH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diwWS7lj0KBBFc5eW8Wpn1tEROTM+QbDpZOct5e8AjkHzM1jovrBfgzu1BCA6RrtFpFaosJFd/369dm4ceMJ5zds2EDduhUb+Zw9ezbjx49n8uTJrFu3jk6dOjFw4EAOHDj5h9Fnn33GY489xuTJk9m6dSvTp09n9uzZPP74465rxo4dy8KFC/nkk0/YtGkTl19+OQMGDCApKancYw0aNIiUlBTX8fnnn1coe22VX2Rn4/4MAHpppFtEROTMdBoJDTpDUTb8+pzZaUxVtn3Yz5tT2X8kz+Q0IiJVr8Krl48YMYL777+f4OBgLrroIgCWLFnCAw88wE033VShx5o6dSp33nmnayuRd955hx9//JEZM2bw2GOPnXD9ihUruOCCCxg5ciQAMTExjBgxgri4OMC5X/icOXP47rvvXNmeeuopfvjhB95++22ee+7oh5yvry9RUVEVffm13rrEIxTbDRqE+hEdrn5uERFPdv3115/29xkZGdUTpDawWp1biH04CNZ9DD3GQoMz346tJmnXMIQLWtZl+a5DzFyxhyeuamd2JBGRKlXhke5nn32W2NhYLr30Uvz9/fH39+fyyy/nkksuqVBPd1FREWvXrmXAgAFHw1itDBgwgJUrV570Pn369GHt2rWuKejx8fH89NNPXHnllQCUlJRgt9vx8/Mrdz9/f3+WLVtW7tzixYupX78+rVu35u677+bQoUOnzVtYWEhWVla5ozY62s8dXm7rOBER8TyhoaGnPZo2bcqoUaPMjllzNO0N7a8HDOcWYrV4A5my0e4vVu8jp7DE5DQiIlWrwiPdPj4+zJ49m+eee47169fj7+9Phw4daNq0aYUeJz09Hbvd7tq7s0xkZKRru5LjjRw5kvT0dPr27YthGJSUlPDPf/7TNb08ODiY3r178+yzz9K2bVsiIyP5/PPPWblyJS1btnQ9zqBBg7j++utp1qwZu3fv5vHHH+eKK65g5cqV2Gy2kz73lClTePrppyv0Gmuio/tza2q5iIin+/DDD82OUPtc9gxs/wn2LnPu391uiNmJTNHvvPo0jwgk/mAuX67Zxx19T1wvSESkpqjwSHeZVq1accMNN3D11VdXuOA+W4sXL+aFF17grbfeYt26dcydO5cff/yRZ5991nXNJ598gmEYNGrUCF9fX15//XVGjBiB1Xr0pd50001cc801dOjQ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6X1at27NjBkz+O677/j0009xOBz06dOH/fv3n/J5CgsLycrKKndIFbNY4IrSLcQ2fA5Ja83N48YCfb2YemNnrBb4bn0y329INjuSiLgBFd013Kp45yJq6ucWERF307t3b0aNGkXnzp25+OKLmTt3LhEREbz77runvM+UKVMIDQ11HdHR0dWYuBZr1A06jXDenjdBW4idRremdbj3klYATPxmE8kZWoBOpLZT0V2DORwGa/aUFt3q5xYRkSpUr149bDYbaWlp5c6npaURFRV1Ro/h7e1Nly5d2LVr1ymvmTBhApmZma5j375955RbKuDSyeAdAPviYPMcs9O4tfsuaUmnxqFkFZTwyFcbcDj0JYVIbaaiuwbblppNZn4xgT42zm+ofm4REak6Pj4+dOvWjUWLFrnOORwOFi1aRO/evc/oMex2O5s2baJBgwanvMbX15eQkJByh1STkAbQd7zz9sJJUJRnbh435m2z8trwzvh721ix+xAzlieYHUlETKSiuwYr6+fuFhOOl03/U4uISNUaP34877//PjNnzmTr1q3cfffd5ObmMnr0aABGjRrFhAkTXNc/88wzLFiwgPj4eNatW8ctt9zC3r17GTt2rFkvQf5On3shtAlkJcGK181O49aaRwTxxFVtAXh53na2pWr9AZHaSpVYDRanfm4REalGw4cP59///jeTJk2ic+fOrF+/nnnz5rkWV0tMTCQl5eiWU0eOHOHOO++kbdu2XHnllWRlZbFixQratWtn1kuQv+PtD5eVrmC+bBpknnrRO4GbY5twSZv6FNkdPPjFegpL7GZHEhETmF50v/nmm8TExODn50dsbCyrV68+7fXTpk2jdevW+Pv7Ex0dzUMPPURBQYHr99nZ2Tz44IM0bdoUf39/+vTpw5o1a8o9hmEYTJo0iQYNGuDv78+AAQPYuXNnlbw+sxiGwerSfu5ezVV0i4hI9bj33nvZu3cvhYWFxMXFERsb6/rd4sWL+eijj1x/fu2111zXpqam8uOPP9KlSxcTUkuFtL8OmvSBknz4RVuInY7FYuGloR2pG+jDttRsXl2ww+xIImICU4vu2bNnM378eCZPnsy6devo1KkTAwcO5MCBAye9/rPPPuOxxx5j8uTJbN26lenTpzN79mwef/xx1zVjx45l4cKFfPLJJ2zatInLL7+cAQMGkJSU5Lrm5Zdf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",
"text/plain": [
"<Figure size 1000x500 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Plot the training history\n",
"plot_graphs(history)"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.10"
}
},
"nbformat": 4,
"nbformat_minor": 5
}