{ "cells": [ { "cell_type": "raw", "id": "432c961b", "metadata": {}, "source": [ "---\n", "title: 13 Text Classification using Transformer\n", "description: An implementation of Attention Mechanism and Positional Embeddings on a text classification task\n", "---" ] }, { "cell_type": "markdown", "id": "fdfc7c80", "metadata": {}, "source": [ "\"Colab\"" ] }, { "cell_type": "markdown", "id": "7noRR_tsvQj6", "metadata": { "id": "7noRR_tsvQj6" }, "source": [ "\"Kaggle\"" ] }, { "cell_type": "markdown", "id": "cd6727ba", "metadata": { "id": "cd6727ba", "papermill": { "duration": 0.012957, "end_time": "2022-03-31T16:24:21.587262", "exception": false, "start_time": "2022-03-31T16:24:21.574305", "status": "completed" }, "tags": [] }, "source": [ "# Text Classification Using Attention and Positional Embeddings\n", "\n", "Recently most of the natural language processing tasks are being dominated by the `Transformer` architecture. Transformers were introduced in the paper [Attention Is All You Need](https://arxiv.org/abs/1706.03762), which used a simple mechanism called `Neural Attention` as one of its building blocks. As the title suggests this architecture didn't require any recurrent layer." ] }, { "cell_type": "code", "execution_count": null, "id": "a6594f99", "metadata": { "_cell_guid": "b1076dfc-b9ad-4769-8c92-a6c4dae69d19", "_uuid": "8f2839f25d086af736a60e9eeb907d3b93b6e0e5", "execution": { "iopub.execute_input": "2022-03-31T16:24:21.624487Z", "iopub.status.busy": "2022-03-31T16:24:21.623707Z", "iopub.status.idle": "2022-03-31T16:24:27.094642Z", "shell.execute_reply": "2022-03-31T16:24:27.094004Z", "shell.execute_reply.started": "2021-12-19T16:07:29.870867Z" }, "id": "a6594f99", "papermill": { "duration": 5.494136, "end_time": "2022-03-31T16:24:27.094795", "exception": false, "start_time": "2022-03-31T16:24:21.600659", "status": "completed" }, "tags": [] }, "outputs": [], "source": [ "import numpy as np\n", "import pandas as pd\n", "from sklearn.datasets import fetch_20newsgroups\n", "from sklearn.model_selection import train_test_split\n", "\n", "import tensorflow as tf\n", "from tensorflow import keras\n", "from tensorflow.keras import layers as L\n", "from keras.preprocessing import sequence\n", "from keras.preprocessing.text import Tokenizer" ] }, { "cell_type": "markdown", "id": "48a57962", "metadata": { "id": "48a57962", "papermill": { "duration": 0.011937, "end_time": "2022-03-31T16:24:27.118566", "exception": false, "start_time": "2022-03-31T16:24:27.106629", "status": "completed" }, "tags": [] }, "source": [ "We will be using 20 news groups data in our notebooks which comes as a standard dataset in the `scikit-learn` package" ] }, { "cell_type": "code", "execution_count": null, "id": "511c1fd2", "metadata": { "execution": { "iopub.execute_input": "2022-03-31T16:24:27.147111Z", "iopub.status.busy": "2022-03-31T16:24:27.146301Z", "iopub.status.idle": "2022-03-31T16:24:40.349996Z", "shell.execute_reply": "2022-03-31T16:24:40.350508Z", "shell.execute_reply.started": "2021-12-19T16:07:35.49611Z" }, "id": "511c1fd2", "papermill": { "duration": 13.220649, "end_time": "2022-03-31T16:24:40.350682", "exception": false, "start_time": "2022-03-31T16:24:27.130033", "status": "completed" }, "tags": [] }, "outputs": [], "source": [ "dataset = fetch_20newsgroups(subset='all')\n", "\n", "X = pd.Series(dataset['data'])\n", "y = pd.Series(dataset['target'])\n", "X_train, X_valid, y_train, y_valid = train_test_split(X, y, test_size=0.1, stratify=y, random_state=19)\n", "y_train = pd.get_dummies(y_train)\n", "y_valid = pd.get_dummies(y_valid)" ] }, { "cell_type": "markdown", "id": "fb0fa502", "metadata": { "id": "fb0fa502", "papermill": { "duration": 0.011286, "end_time": "2022-03-31T16:24:40.374005", "exception": false, "start_time": "2022-03-31T16:24:40.362719", "status": "completed" }, "tags": [] }, "source": [ "The concept of `Neural Attention` is fairly simple ie not all input information seen by a model is equally important to the task at hand. Although this concept has been utilised at vaious different places as well eg Max Pooling in CNNs, but the kind of attention we are looking for should be `context aware`.\n", "\n", "The attention mechanism allows output to focus attention on input while producing output while the self-attention model allows inputs to interact with each other i.e calculate attention of all other inputs with respect tt one input.\n", "\n", "In the paper, the authors proposed another type of attention mechanism called multi-headed attention which refers to the fact that the outer space of the self attention layer gets factored into a set of independent sub-spaces leanred separately, where each subspace is called a \"head\"\n", "\n", "There is a learnable dense projection present after the multihead attention which enables the layr to actually learn something, as opposed to being a purely stateless transformation.\n", "\n" ] }, { "cell_type": "code", "execution_count": null, "id": "cc578b76", "metadata": { "execution": { "iopub.execute_input": "2022-03-31T16:24:40.405951Z", "iopub.status.busy": "2022-03-31T16:24:40.399870Z", "iopub.status.idle": "2022-03-31T16:24:40.407809Z", "shell.execute_reply": "2022-03-31T16:24:40.408219Z", "shell.execute_reply.started": "2021-12-19T16:07:46.149062Z" }, "id": "cc578b76", "papermill": { "duration": 0.022865, "end_time": "2022-03-31T16:24:40.408467", "exception": false, "start_time": "2022-03-31T16:24:40.385602", "status": "completed" }, "tags": [] }, "outputs": [], "source": [ "class TransformerBlock(L.Layer):\n", " def __init__(self, embed_dim, dense_dim, num_heads, **kwargs):\n", " super().__init__(**kwargs)\n", " self.embed_dim = embed_dim\n", " self.dense_dim = dense_dim\n", " self.num_heads = num_heads\n", " self.attention = L.MultiHeadAttention(num_heads=num_heads, key_dim=embed_dim)\n", " self.dense_proj = keras.Sequential([L.Dense(dense_dim, activation='relu'), L.Dense(embed_dim)])\n", " self.layernorm1 = L.LayerNormalization()\n", " self.layernorm2 = L.LayerNormalization()\n", " \n", " def call(self, inputs, mask=None):\n", " if mask is not None:\n", " mask = mask[: tf.newaxis, :]\n", " attention_output = self.attention(inputs, inputs, attention_mask=mask)\n", " proj_input = self.layernorm1(inputs + attention_output)\n", " proj_output = self.dense_proj(proj_input)\n", " return self.layernorm2(proj_input + proj_output)\n", " \n", " def get_config(self):\n", " config = super().get_confog()\n", " config.update({\n", " \"embed_dim\": self.embed_dim,\n", " \"num_heads\": self.num_heads,\n", " \"dense_dim\": self.dense_dim\n", " })\n", " return config" ] }, { "cell_type": "markdown", "id": "e1cb0ce3", "metadata": { "id": "e1cb0ce3", "papermill": { "duration": 0.011173, "end_time": "2022-03-31T16:24:40.431117", "exception": false, "start_time": "2022-03-31T16:24:40.419944", "status": "completed" }, "tags": [] }, "source": [ "The idea behind Positional Encoding is fairly simple as well, ie to give the model access to token order information, therefore we are going to add the token's position in the sentence to each word embedding\n", "\n", "Thus, one input word embedding will have to components: the usual token vector representing the token independent of any specific context, and a position vector representing the position of the token in the current sequence." ] }, { "cell_type": "code", "execution_count": null, "id": "2db9b3dd", "metadata": { "execution": { "iopub.execute_input": "2022-03-31T16:24:40.461368Z", "iopub.status.busy": "2022-03-31T16:24:40.460599Z", "iopub.status.idle": "2022-03-31T16:24:40.462951Z", "shell.execute_reply": "2022-03-31T16:24:40.462566Z", "shell.execute_reply.started": "2021-12-19T16:07:46.137032Z" }, "id": "2db9b3dd", "papermill": { "duration": 0.020698, "end_time": "2022-03-31T16:24:40.463070", "exception": false, "start_time": "2022-03-31T16:24:40.442372", "status": "completed" }, "tags": [] }, "outputs": [], "source": [ "class PositionalEmbedding(L.Layer):\n", " def __init__(self, sequence_length, input_dim, output_dim, **kwargs):\n", " super().__init__(**kwargs)\n", " self.token_embeddings = L.Embedding(input_dim, output_dim)\n", " self.position_embeddings = L.Embedding(sequence_length, output_dim)\n", " self.sequence_length = sequence_length\n", " self.input_dim = input_dim\n", " self.output_dim = output_dim\n", " \n", " def call(self, inputs):\n", " length = tf.shape(inputs)[-1]\n", " positions = tf.range(start=0, limit=length, delta=1)\n", " embedded_tokens = self.token_embeddings(inputs)\n", " embedded_positions = self.position_embeddings(positions)\n", " return embedded_tokens + embedded_positions\n", " \n", " def get_config(self):\n", " config = super().get_config()\n", " config.update({\n", " \"output_dim\": self.output_dim,\n", " \"sequence_length\": self.sequence_length,\n", " \"input_dim\": self.input_dim,\n", " })\n", " return config" ] }, { "cell_type": "markdown", "id": "afde9c93", "metadata": { "id": "afde9c93", "papermill": { "duration": 0.011052, "end_time": "2022-03-31T16:24:40.485320", "exception": false, "start_time": "2022-03-31T16:24:40.474268", "status": "completed" }, "tags": [] }, "source": [ "Here we define some contants to parameterize the model" ] }, { "cell_type": "code", "execution_count": null, "id": "280fe4c7", "metadata": { "execution": { "iopub.execute_input": "2022-03-31T16:24:40.510644Z", "iopub.status.busy": "2022-03-31T16:24:40.509859Z", "iopub.status.idle": "2022-03-31T16:24:40.513940Z", "shell.execute_reply": "2022-03-31T16:24:40.513540Z", "shell.execute_reply.started": "2021-12-19T16:07:46.179928Z" }, "id": "280fe4c7", "papermill": { "duration": 0.017492, "end_time": "2022-03-31T16:24:40.514057", "exception": false, "start_time": "2022-03-31T16:24:40.496565", "status": "completed" }, "tags": [] }, "outputs": [], "source": [ "vocab_size = 10_000\n", "embed_dim = 256\n", "num_heads = 2\n", "dense_dim = 32\n", "seq_length = 256" ] }, { "cell_type": "markdown", "id": "9ecb3a8d", "metadata": { "id": "9ecb3a8d", "papermill": { "duration": 0.011166, "end_time": "2022-03-31T16:24:40.536738", "exception": false, "start_time": "2022-03-31T16:24:40.525572", "status": "completed" }, "tags": [] }, "source": [ "The input texts are here tokenized and padded to a uniform sequence length" ] }, { "cell_type": "code", "execution_count": null, "id": "17d66cfc", "metadata": { "execution": { "iopub.execute_input": "2022-03-31T16:24:40.571810Z", "iopub.status.busy": "2022-03-31T16:24:40.566381Z", "iopub.status.idle": "2022-03-31T16:24:49.253838Z", "shell.execute_reply": "2022-03-31T16:24:49.254595Z", "shell.execute_reply.started": "2021-12-19T16:07:46.189685Z" }, "id": "17d66cfc", "papermill": { "duration": 8.706763, "end_time": "2022-03-31T16:24:49.254778", "exception": false, "start_time": "2022-03-31T16:24:40.548015", "status": "completed" }, "tags": [] }, "outputs": [], "source": [ "tokenizer = Tokenizer(num_words=vocab_size, oov_token='')\n", "tokenizer.fit_on_texts(X_train)\n", "X_train = tokenizer.texts_to_sequences(X_train)\n", "X_train = sequence.pad_sequences(X_train, maxlen=seq_length)\n", "X_valid = tokenizer.texts_to_sequences(X_valid)\n", "X_valid = sequence.pad_sequences(X_valid, maxlen=seq_length)" ] }, { "cell_type": "markdown", "id": "6f65487a", "metadata": { "id": "6f65487a", "papermill": { "duration": 0.01132, "end_time": "2022-03-31T16:24:49.277897", "exception": false, "start_time": "2022-03-31T16:24:49.266577", "status": "completed" }, "tags": [] }, "source": [ "**Defining the model**\n", "The model architecture is fairly simple ie,:\n", "* Input Layer\n", "* Positional Embeddings\n", "* Transformer Block\n", "* Pooling\n", "* Dropout\n", "* Output Layer" ] }, { "cell_type": "code", "execution_count": null, "id": "141d4968", "metadata": { "execution": { "iopub.execute_input": "2022-03-31T16:24:49.307177Z", "iopub.status.busy": "2022-03-31T16:24:49.306557Z", "iopub.status.idle": "2022-03-31T16:24:52.014778Z", "shell.execute_reply": "2022-03-31T16:24:52.015656Z", "shell.execute_reply.started": "2021-12-19T16:07:54.105332Z" }, "id": "141d4968", "papermill": { "duration": 2.726304, "end_time": "2022-03-31T16:24:52.015828", "exception": false, "start_time": "2022-03-31T16:24:49.289524", "status": "completed" }, "tags": [] }, "outputs": [], "source": [ "inputs = keras.Input(shape=(None, ), dtype=\"int64\")\n", "x = PositionalEmbedding(seq_length, vocab_size, embed_dim)(inputs)\n", "x = TransformerBlock(embed_dim, dense_dim, num_heads)(x)\n", "x = L.GlobalMaxPooling1D()(x)\n", "x = L.Dropout(0.5)(x)\n", "outputs = L.Dense(20, activation='softmax')(x)\n", "\n", "model = keras.Model(inputs, outputs)\n", "model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])" ] }, { "cell_type": "code", "execution_count": null, "id": "d1c00f20", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "execution": { "iopub.execute_input": "2022-03-31T16:24:52.047519Z", "iopub.status.busy": "2022-03-31T16:24:52.046116Z", "iopub.status.idle": "2022-03-31T16:24:52.050660Z", "shell.execute_reply": "2022-03-31T16:24:52.051090Z", "shell.execute_reply.started": "2021-12-19T16:07:57.059649Z" }, "id": "d1c00f20", "outputId": "bd62e4b1-9855-417c-ba4c-3421498659be", "papermill": { "duration": 0.022404, "end_time": "2022-03-31T16:24:52.051216", "exception": false, "start_time": "2022-03-31T16:24:52.028812", "status": "completed" }, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Model: \"model\"\n", "_________________________________________________________________\n", " Layer (type) Output Shape Param # \n", "=================================================================\n", " input_1 (InputLayer) [(None, None)] 0 \n", " \n", " positional_embedding (Posit (None, None, 256) 2625536 \n", " ionalEmbedding) \n", " \n", " transformer_block (Transfor (None, None, 256) 543776 \n", " merBlock) \n", " \n", " global_max_pooling1d (Globa (None, 256) 0 \n", " lMaxPooling1D) \n", " \n", " dropout (Dropout) (None, 256) 0 \n", " \n", " dense_2 (Dense) (None, 20) 5140 \n", " \n", "=================================================================\n", "Total params: 3,174,452\n", "Trainable params: 3,174,452\n", "Non-trainable params: 0\n", "_________________________________________________________________\n" ] } ], "source": [ "model.summary()" ] }, { "cell_type": "code", "execution_count": null, "id": "220efe0c", "metadata": { "execution": { "iopub.execute_input": "2022-03-31T16:24:52.079868Z", "iopub.status.busy": "2022-03-31T16:24:52.079195Z", "iopub.status.idle": "2022-03-31T16:24:52.081785Z", "shell.execute_reply": "2022-03-31T16:24:52.081377Z", "shell.execute_reply.started": "2021-12-19T16:07:57.071427Z" }, "id": "220efe0c", "papermill": { "duration": 0.018413, "end_time": "2022-03-31T16:24:52.081887", "exception": false, "start_time": "2022-03-31T16:24:52.063474", "status": "completed" }, "tags": [] }, "outputs": [], "source": [ "es = keras.callbacks.EarlyStopping(verbose=1, patience=5, restore_best_weights=True)\n", "rlp = keras.callbacks.ReduceLROnPlateau(patience=3, verbose=1)" ] }, { "cell_type": "code", "execution_count": null, "id": "1c8d14d0", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "execution": { "iopub.execute_input": "2022-03-31T16:24:52.108981Z", "iopub.status.busy": "2022-03-31T16:24:52.108220Z", "iopub.status.idle": "2022-03-31T16:26:11.847579Z", "shell.execute_reply": "2022-03-31T16:26:11.846932Z", "shell.execute_reply.started": "2021-12-19T16:07:57.083924Z" }, "id": "1c8d14d0", "outputId": "89557c96-d6e9-46b1-acb3-f62258084fe2", "papermill": { "duration": 79.753721, "end_time": "2022-03-31T16:26:11.847749", "exception": false, "start_time": "2022-03-31T16:24:52.094028", "status": "completed" }, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Epoch 1/100\n", "531/531 [==============================] - 38s 61ms/step - loss: 2.4192 - accuracy: 0.3540 - val_loss: 0.8035 - val_accuracy: 0.7676 - lr: 0.0010\n", "Epoch 2/100\n", "531/531 [==============================] - 31s 59ms/step - loss: 0.6457 - accuracy: 0.8065 - val_loss: 0.4755 - val_accuracy: 0.8653 - lr: 0.0010\n", "Epoch 3/100\n", "531/531 [==============================] - 32s 60ms/step - loss: 0.2459 - accuracy: 0.9263 - val_loss: 0.4804 - val_accuracy: 0.8679 - lr: 0.0010\n", "Epoch 4/100\n", "531/531 [==============================] - 32s 59ms/step - loss: 0.1157 - accuracy: 0.9647 - val_loss: 0.5709 - val_accuracy: 0.8706 - lr: 0.0010\n", "Epoch 5/100\n", "530/531 [============================>.] - ETA: 0s - loss: 0.0670 - accuracy: 0.9793\n", "Epoch 5: ReduceLROnPlateau reducing learning rate to 0.00010000000474974513.\n", "531/531 [==============================] - 31s 59ms/step - loss: 0.0670 - accuracy: 0.9793 - val_loss: 0.6382 - val_accuracy: 0.8573 - lr: 0.0010\n", "Epoch 6/100\n", "531/531 [==============================] - 32s 59ms/step - loss: 0.0261 - accuracy: 0.9927 - val_loss: 0.5705 - val_accuracy: 0.8785 - lr: 1.0000e-04\n", "Epoch 7/100\n", "530/531 [============================>.] - ETA: 0s - loss: 0.0144 - accuracy: 0.9968Restoring model weights from the end of the best epoch: 2.\n", "531/531 [==============================] - 32s 59ms/step - loss: 0.0144 - accuracy: 0.9968 - val_loss: 0.5800 - val_accuracy: 0.8801 - lr: 1.0000e-04\n", "Epoch 7: early stopping\n" ] } ], "source": [ "history = model.fit(X_train, y_train, validation_data=(X_valid, y_valid),\n", " callbacks=[es, rlp], epochs=100\n", ")" ] }, { "cell_type": "code", "execution_count": null, "id": "20fdf465", "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 786 }, "execution": { "iopub.execute_input": "2022-03-31T16:26:12.630165Z", "iopub.status.busy": "2022-03-31T16:26:12.629441Z", "iopub.status.idle": "2022-03-31T16:26:15.973619Z", "shell.execute_reply": "2022-03-31T16:26:15.974083Z", "shell.execute_reply.started": "2021-12-19T16:09:17.294329Z" }, "id": "20fdf465", "outputId": "83f8ec40-9ce5-455e-d0c4-132492c2e930", "papermill": { "duration": 3.759336, "end_time": "2022-03-31T16:26:15.974233", "exception": false, "start_time": "2022-03-31T16:26:12.214897", "status": "completed" }, "tags": [] }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABIEAAAMCCAYAAAD+tdY5AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOzdd3SUddr/8c+dSe8JpEEIkRYgIGVZkAVBQlOkBBUF1rpiWQUeKYoIigqooICCDXt7xP1ZACkqCIiiCAIBJLSAtAAJARIgfTKZ3x9IHrMQAqTck5n365w9ZzNzzz3XnVzHo5/z/V5fw2632wUAAAAAAACn5mZ2AQAAAAAAAKh6hEAAAAAAAAAugBAIAAAAAADABRACAQAAAAAAuABCIAAAAAAAABdACAQAAAAAAOACCIEAAIDpHn/8ccXFxWnOnDlmlwIAAOC03M0uAAAAV/X4449r/vz5at++vT7++GOzy0EFpKen6/PPP9cvv/yigwcPKisrS15eXoqKilKrVq104403qmPHjjIMw+xSAQCACyMEAgAApgsLC9NVV12lkJAQs0u5LHa7XW+88YbefPNNFRQUlLweGBio/Px8paSkKCUlRV988YVatmypV199VZGRkSZWDAAAXBkhEAAAMN2YMWM0ZswYs8u4bBMmTNCXX34pSercubPuuecetWvXTt7e3pKko0ePatWqVXr//ff1+++/68CBA4RAAADANIRAAAAAV+Czzz4rCYBGjBih4cOHn3dNVFSUhg4dqltvvVWzZ8+WmxvjGAEAgHn4NxEAAGqg3bt3a/z48UpISFDLli3Vrl07DR48WPPmzZPVar3gZ/bt26dXX31Vd955Z6nP3XrrrXrvvfeUn59/wc999dVXiouL0x133CFJ+vrrr3X77berQ4cOiouL0/fffy9JSkhIUFxcnNatW6esrCw9//zzSkhIUIsWLXTttddq4sSJOnbs2AW/o6zB0KmpqYqLi1NcXFzJc48aNUqdOnVSy5Ytdf311+u1115TYWFhmb+r/Px8zZkzR71791bLli3VuXNnjRo1Srt37z7v/peqoKBAs2fPliR169btggHQX7m7u2v06NFq165dyWtz5sxRXFycHn/88TI/V9bvZd26dYqLi1NCQoIkafXq1Ro2bJg6duyopk2b6oMPPtDEiRMV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I0aMUE5Ojvx+v84//3zZtp1wTF5e3m6NY8GCBfr1r3+tZcuW6ac//amWLVsm27a1aNGi3TovAAAYegiBAABA2j3++OOybVs33nijioqKErbfcccdeuyxx3Tuuedq7NixWrdunTweT8pKmNLSUpWUlOiTTz7p9bndbrfWrFmT8HiyS9M/9dRTysnJ0cMPPxwT7nz++ee9Pk+0cHXQxx9/rL333rvHfSsqKnTcccfpmWee0eWXX64nnnhCBx54oCZOnLhTzwkAAEBPIAAAkFaBQEBPPPGEJk2apEWLFumEE05I+HPyySdr7dq1Wr16tU455RQ1NTXpd7/7XcK5wpU4pmlq3rx5+uyzz/S3v/0t5X5SMJBpa2uL6ecTCAT04IMPJhxnWZYMw4hpLG3btu66666des0nnHCCnE6nfvvb36q1tbXH8UnSokWL1NTUpOuuu051dXVUAQEAgF1CJRAAAEirN954Q1999VWPV7o6/vjjI0uirrnmGr322mu666679OGHH+rII4+Uy+XSZ599pi+++CIS3vzwhz/U22+/rWuuuUZvvvmmDj74YNm2rY8//lg+n0+33HKLpOAVuB544AFdfPHF+s53viOn06kXX3wx6XKwuXPn6sUXX9Q555yj+fPny+fz6eWXX1ZHR8dOveaqqiotXrxYN9xwg0455RSdeuqpGjlypOrq6vTKK6/opptuiukXdNRRR2nkyJF6+umnlZ+fn3AFMgAAgL4gBAIAAGm1bNkySdKcOXNS7jNp0iSNHTtWzz//vBYvXqz7779f999/v5599lktXbpUOTk5qq6u1mmnnRY5pqSkRH/961/1+9//Xi+99JJefvllFRQUaPz48Tr77LMj+40ePVq//e1vtXTpUt15551yu9069dRTtWDBAp144okx45g3b57a2tr04IMP6he/+IVKSkp03HHH6fLLL9fMmTN36nV/61vf0pgxY3TffffpkUcekcfj0fDhw3XYYYepqqoqZl/TNLVgwQL96le/0oknnqiCgoKdei4AAABJMuxkHQwBAACQUe69917deuutevTRRzV16tR0DwcAAAxChEAAAAAZzufz6YQTTlBeXp6eeeaZdA8HAAAMUiwHAwAAyFCbNm3S+++/r1deeUWbNm3S0qVL0z0kAAAwiBECAQAAZKiVK1fqqquuUmlpqS6++GLNmzcv3UMC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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "import seaborn as sns\n", "sns.set_style('darkgrid')\n", "\n", "history = pd.DataFrame(history.history)\n", "fig, ax = plt.subplots(2, 1, figsize=(20, 12))\n", "fig.suptitle('Learning Curve', fontsize=24)\n", "history[['loss', 'val_loss']].plot(ax=ax[0])\n", "history[['accuracy', 'val_accuracy']].plot(ax=ax[1])\n", "ax[0].set_title('Loss', fontsize=18)\n", "ax[1].set_title('Accuarcy', fontsize=18);" ] }, { "cell_type": "code", "execution_count": null, "id": "0b5ad997", "metadata": { "id": "0b5ad997", "papermill": { "duration": 0.370269, "end_time": "2022-03-31T16:26:16.713170", "exception": false, "start_time": "2022-03-31T16:26:16.342901", "status": "completed" }, "tags": [] }, "outputs": [], "source": [] } ], "metadata": { "accelerator": "GPU", "colab": { "collapsed_sections": [], "name": "Text-Classification-Attention-Positional Embeddings.ipynb", "provenance": [] }, "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.9.7" }, "papermill": { "default_parameters": {}, "duration": 126.733939, "end_time": "2022-03-31T16:26:20.094746", "environment_variables": {}, "exception": null, "input_path": "__notebook__.ipynb", "output_path": "__notebook__.ipynb", "parameters": {}, "start_time": "2022-03-31T16:24:13.360807", "version": "2.3.3" } }, "nbformat": 4, "nbformat_minor": 5 }