camilin29/github_pull_request_classifier
0
1{2 "cells": [3 {4 "cell_type": "markdown",5 "metadata": {6 "id": "lskWTB7sDICC"7 },8 "source": [9 "# Installs"10 ]11 },12 {13 "cell_type": "code",14 "execution_count": 1,15 "metadata": {16 "colab": {17 "base_uri": "https://localhost:8080/"18 },19 "id": "g8BW8h1hCpPs",20 "outputId": "854874c6-f302-4dc6-adfc-03e988e4d48b"21 },22 "outputs": [],23 "source": [24 "#!pip install transformers"25 ]26 },27 {28 "cell_type": "markdown",29 "metadata": {30 "id": "0FO5e5PBDM-2"31 },32 "source": [33 "# Imports"34 ]35 },36 {37 "cell_type": "code",38 "execution_count": 2,39 "metadata": {40 "id": "Ti3CASUVDSI2"41 },42 "outputs": [43 {44 "name": "stderr",45 "output_type": "stream",46 "text": [47 "/tmp/ipykernel_3072/494893947.py:3: DeprecationWarning: \n",48 "Pyarrow will become a required dependency of pandas in the next major release of pandas (pandas 3.0),\n",49 "(to allow more performant data types, such as the Arrow string type, and better interoperability with other libraries)\n",50 "but was not found to be installed on your system.\n",51 "If this would cause problems for you,\n",52 "please provide us feedback at https://github.com/pandas-dev/pandas/issues/54466\n",53 " \n",54 " import pandas as pd\n"55 ]56 }57 ],58 "source": [59 "import torch\n",60 "import torch.nn as nn\n",61 "import pandas as pd\n",62 "import seaborn as sns\n",63 "import numpy as np\n",64 "from sklearn import metrics\n",65 "import shutil\n",66 "import sys\n",67 "\n",68 "\n",69 "\n",70 "import matplotlib.pyplot as plt\n"71 ]72 },73 {74 "cell_type": "markdown",75 "metadata": {76 "id": "gDLXrE6aDZef"77 },78 "source": [79 "# Create Dataframe"80 ]81 },82 {83 "cell_type": "code",84 "execution_count": 3,85 "metadata": {86 "id": "UOBvE7AuDgU1"87 },88 "outputs": [],89 "source": [90 "train_path = \"./../train_data_total.csv\"\n",91 "#test_path = \"/content/drive/MyDrive/datasets/multi-label/test.csv\"\n"92 ]93 },94 {95 "cell_type": "code",96 "execution_count": 4,97 "metadata": {98 "id": "v3eJD70UEAMd"99 },100 "outputs": [],101 "source": [102 "train_df = pd.read_csv(train_path)\n",103 "#test_df = pd.read_csv(test_path)"104 ]105 },106 {107 "cell_type": "code",108 "execution_count": null,109 "metadata": {},110 "outputs": [],111 "source": []112 },113 {114 "cell_type": "code",115 "execution_count": 5,116 "metadata": {117 "colab": {118 "base_uri": "https://localhost:8080/",119 "height": 206120 },121 "id": "VHAOeTZzEIM5",122 "outputId": "0e4a9c11-2e99-4fbe-f3cd-e69bb3739e00"123 },124 "outputs": [],125 "source": [126 "# train_df.head()coder = OneHotEncoder()\n",127 "# transformed = coder.fit_transform(train_df[['label']])\n",128 "train_df = train_df.sample(int(len(train_df)/2))\n",129 "train_df[\"label_2\"] = train_df['label']"130 ]131 },132 {133 "cell_type": "code",134 "execution_count": 6,135 "metadata": {136 "colab": {137 "base_uri": "https://localhost:8080/"138 },139 "id": "ANiD1MG9EPZY",140 "outputId": "a52cf8f1-f62a-4e5c-8aa4-071821a950fb"141 },142 "outputs": [143 {144 "name": "stdout",145 "output_type": "stream",146 "text": [147 "<class 'pandas.core.frame.DataFrame'>\n",148 "Index: 12631 entries, 2050 to 5753\n",149 "Data columns (total 4 columns):\n",150 " # Column Non-Null Count Dtype \n",151 "--- ------ -------------- ----- \n",152 " 0 title 12631 non-null object\n",153 " 1 body 12631 non-null object\n",154 " 2 label 12631 non-null int64 \n",155 " 3 label_2 12631 non-null int64 \n",156 "dtypes: int64(2), object(2)\n",157 "memory usage: 493.4+ KB\n"158 ]159 }160 ],161 "source": [162 "train_df.info()"163 ]164 },165 {166 "cell_type": "code",167 "execution_count": 7,168 "metadata": {169 "id": "NGBnMuizEXVq"170 },171 "outputs": [172 {173 "name": "stderr",174 "output_type": "stream",175 "text": [176 "/tmp/ipykernel_3072/1032168048.py:1: FutureWarning: Setting an item of incompatible dtype is deprecated and will raise an error in a future version of pandas. Value 'fix' has dtype incompatible with int64, please explicitly cast to a compatible dtype first.\n",177 " train_df.loc[train_df[\"label\"] == 0, \"label\"] = 'fix'\n"178 ]179 }180 ],181 "source": [182 "train_df.loc[train_df[\"label\"] == 0, \"label\"] = 'fix'\n",183 "train_df.loc[train_df[\"label\"] == 1, \"label\"] = 'features'\n",184 "train_df.loc[train_df[\"label\"] == 2, \"label\"] = 'deprecated'\n",185 "train_df.loc[train_df[\"label\"] == 3, \"label\"] = 'maintenance'"186 ]187 },188 {189 "cell_type": "code",190 "execution_count": 8,191 "metadata": {192 "colab": {193 "base_uri": "https://localhost:8080/",194 "height": 206195 },196 "id": "xILopZe6EkfJ",197 "outputId": "3c16db13-c5c2-476a-e1e4-e4f97efc9921"198 },199 "outputs": [200 {201 "data": {202 "text/html": [203 "<div>\n",204 "<style scoped>\n",205 " .dataframe tbody tr th:only-of-type {\n",206 " vertical-align: middle;\n",207 " }\n",208 "\n",209 " .dataframe tbody tr th {\n",210 " vertical-align: top;\n",211 " }\n",212 "\n",213 " .dataframe thead th {\n",214 " text-align: right;\n",215 " }\n",216 "</style>\n",217 "<table border=\"1\" class=\"dataframe\">\n",218 " <thead>\n",219 " <tr style=\"text-align: right;\">\n",220 " <th></th>\n",221 " <th>title</th>\n",222 " <th>body</th>\n",223 " <th>label</th>\n",224 " <th>label_2</th>\n",225 " </tr>\n",226 " </thead>\n",227 " <tbody>\n",228 " <tr>\n",229 " <th>2050</th>\n",230 " <td>new issue regarding sign in ccdsp from chrome ...</td>\n",231 " <td>please refer to the comments from claudia from...</td>\n",232 " <td>fix</td>\n",233 " <td>0</td>\n",234 " </tr>\n",235 " <tr>\n",236 " <th>17643</th>\n",237 " <td>support for asd-manager removal</td>\n",238 " <td>add the option to remove the asd manager in a ...</td>\n",239 " <td>maintenance</td>\n",240 " <td>3</td>\n",241 " </tr>\n",242 " <tr>\n",243 " <th>20085</th>\n",244 " <td>update wrf/wps namelist files to versions used...</td>\n",245 " <td>update the files to those received by email</td>\n",246 " <td>maintenance</td>\n",247 " <td>3</td>\n",248 " </tr>\n",249 " <tr>\n",250 " <th>17211</th>\n",251 " <td>sending window to monitor causes it to jump ba...</td>\n",252 " <td>i have a 3 monitor setup:\\r \\r <img width=\\ 68...</td>\n",253 " <td>maintenance</td>\n",254 " <td>3</td>\n",255 " </tr>\n",256 " <tr>\n",257 " <th>23863</th>\n",258 " <td>memoizing queries for faster performance</td>\n",259 " <td>cache expensive match queries using memoizati...</td>\n",260 " <td>deprecated</td>\n",261 " <td>2</td>\n",262 " </tr>\n",263 " </tbody>\n",264 "</table>\n",265 "</div>"266 ],267 "text/plain": [268 " title \\\n",269 "2050 new issue regarding sign in ccdsp from chrome ... \n",270 "17643 support for asd-manager removal \n",271 "20085 update wrf/wps namelist files to versions used... \n",272 "17211 sending window to monitor causes it to jump ba... \n",273 "23863 memoizing queries for faster performance \n",274 "\n",275 " body label label_2 \n",276 "2050 please refer to the comments from claudia from... fix 0 \n",277 "17643 add the option to remove the asd manager in a ... maintenance 3 \n",278 "20085 update the files to those received by email maintenance 3 \n",279 "17211 i have a 3 monitor setup:\\r \\r <img width=\\ 68... maintenance 3 \n",280 "23863 cache expensive match queries using memoizati... deprecated 2 "281 ]282 },283 "execution_count": 8,284 "metadata": {},285 "output_type": "execute_result"286 }287 ],288 "source": [289 "train_df.head()"290 ]291 },292 {293 "cell_type": "code",294 "execution_count": 9,295 "metadata": {296 "colab": {297 "base_uri": "https://localhost:8080/",298 "height": 467299 },300 "id": "LGjRy9EcEqBl",301 "outputId": "8c2af4de-6f57-494b-fdf4-1adf88da5821"302 },303 "outputs": [304 {305 "data": {306 "text/plain": [307 "Text(0.5, 0, 'label')"308 ]309 },310 "execution_count": 9,311 "metadata": {},312 "output_type": "execute_result"313 },314 {315 "data": {316 "image/png": "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cDiUlZXl6VIAAEAZUO4Dny0IaQAA4HIh8P2FgoICT5cAAABwScpV4MvNzVXfvn3l7++v8PBwTZkyxW19fn6+Ro4cqbp166patWpq3769UlJSXOuTk5MVHBysBQsWqHHjxqpSpYoSEhL0008/ucaMHTtW1157rd5++21FRkaqSpUqkqSsrCw9/PDDCgkJUWBgoG688UZt3rzZ7fU/+eQTtW3bVlWqVFGtWrV0++23u9a9++67atOmjQICAhQWFqZ7771XmZmZkqR9+/bphhtukCRVr15dDodDiYmJkqSioiIlJSUpMjJSfn5+atGihebNm+f2ukuWLFF0dLT8/Px0ww03aN++feftY35+vrKzs92+AACAvcpV4Bs1apRWrVqlhQsXavny5UpJSdHGjRtd64cMGaK1a9dqzpw52rJli+68805169ZN33//vWtMXl6eXnrpJc2cOVNr1qxRVlaW7r77brfX2bNnjz766CN9/PHHSktLkyTdeeedyszM1NKlS5WamqpWrVqpa9euOnLkiCRp8eLFuv3223XLLbdo06ZNWrFihdq1a+ea8+TJkxo/frw2b96sBQsWaN++fa5QFxERoY8++kiSlJ6ergMHDmjq1KmSpKSkJM2cOVPTpk3T9u3b9fjjj+u+++7TqlWrJEk//fSTevXqpR49eigtLU0PP/ywnn766fP2MSkpSUFBQa6viIiIi/jXAAAA5YXDGGM8XURJ5OTkqGbNmpo1a5buvPNOSdKRI0dUr149DRgwQCNGjFCjRo3kdDpVp04d1/Pi4+PVrl07TZgwQcnJyerXr5++/fZbtW/fXpK0a9cuNWnSROvWrVO7du00duxYTZgwQT///LNCQkIkSatXr9att96qzMxM+fr6uuaOiorSk08+qQEDBqhjx45q1KiRZs2aVaLt2bBhg9q2bavjx4/L399fKSkpuuGGG3T06FEFBwdLOn0krkaNGvriiy8UFxfneu7DDz+svLw8vf/++3rmmWe0cOFCbd++3bX+6aef1qRJk9zm+qP8/Hzl5+e7HmdnZysiIkIthk6Tt69fieoHgNKWOrmvp0sAypXs7GwFBQXp2LFjCgwMPO/YSleopkuWkZGhgoICV1CTpBo1aigmJkaStHXrVhUWFio6Otrtefn5+apZs6brcaVKldS2bVvX46uvvlrBwcHauXOn64hcgwYN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nz5dklSjRg198803JaopLy9PkyZN0ttvv62aNWuqdu3aGjJkiHbs2KE5c+aoTp06mj9/vrp166atW7eqcePGGjx4sAoKCvTVV1+pWrVq2rFjh/z9/c/5Gvn5+crPz3c9zs7OvrRGAgCAMq1CB76goCAFBATI29tbYWFhys/P14QJE/TFF18oLi5OktSoUSOtXr1ab731ljp37qzKlStr3LhxrjkiIyO1du1affjhh+rdu7f8/f3l5+en/Px8hYWFXXBNJ0+e1BtvvKEWLVpIkpxOp6ZPny6n06k6depIkkaOHKlly5Zp+vTpmjBhgpxOp+644w41b97cVfP5JCUluW0DAACwW4UOfH+2Z88e5eXl6aabbnJbXlBQoJYtW7oev/7663rnnXfkdDp14sQJFRQU6Nprry2VGnx8fBQbG+t6vHXrVhUWFio6OtptXH5+vmrWrClJGjZsmB599FEtX75c8fHxuuOOO9zm+LPRo0drxIgRrsfZ2dmKiIgolfoBAEDZQ+D7g5ycHEnS4sWLVbduXbd1vr6+kqQ5c+Zo5MiRmjJliuLi4hQQEKDJkydr3bp15537zIUXxhjXspMnT541zs/PTw6Hw60mb29vpaamytvb223smdO2Dz/8sBISErR48WItX75cSUlJmjJlioYOHVpsLb6+vq7tAQAA9iPw/cEfL5To3LlzsWPWrFmjjh07atCgQa5lGRkZbmN8fHxUWFjotiwkJESSdODAAVWvXl2SSnTPv5YtW6qwsFCZmZnq1KnTOcdFRERo4MCBGjhwoEaPHq1///vf5wx8AACgYiHw/UFAQIBGjhypxx9/XEVFRbruuut07NgxrVmzRoGBgXrggQfUuHFjzZw5U5999pkiIyP17rvvav369YqMjHTN07BhQ3322WdKT09XzZo1FRQUpKioKEVERGjs2LF66aWXtHv3bk2ZMuUva4qOjlafPn3Ut29fTZkyRS1bttShQ4e0YsUKxcbG6tZbb9Xw4cPVvXt3RUdH6+jRo1q5cqWaNGlyOVsFAADKkQp9W5bijB8/Xs8995ySkpLUpEkTdevWTYsXL3YFukceeUS9evXSXXfdpfbt2+vw4cNuR/skqX///oqJiVGbNm0UEhKiNWvWqHLlypo9e7Z27dql2NhYTZo0SS+++GKJapo+fbr69u2rJ554QjExMerZs6fWr1+v+vXrSzp9q5jBgwe76o2OjtYbb7xRuo0BAADllsP88UNlqJCys7MVFBSkFkOnydvXz9PlAABQbqVO7nvFXuvM7+9jx44pMDDwvGM5wgcAAGA5Ah8AAIDlCHwAAACWI/ABAABYjsAHAABgOQIfAACA5Qh8AAAAliPwAQAAWI7ABwAAYDkCHwAAgOUIfAAAAJYj8AEAAFiOwAcAAGA5Ah8AAIDlCHwAAACWI/ABAABYjsAHAABgOQIfAACA5Qh8AAAAliPwAQAAWI7ABwAAYDkCHwAAgOUIfAAAAJYj8AEAAFiOwAcAAGA5Ah8AAIDlCHwAAACWI/ABAABYjsAHAABguUqeLgBlx1cv3qPAwEBPlwEAAEoZR/gAAAAsR+ADAACwHIEPAADAcgQ+AAAAyxH4AAAALEfgAwAAsByBDwAAwHIEPgAAAMtx42XIGCNJys7O9nAlAACgpM783j7ze/x8CHzQ4cOHJUkREREergQAAFyo48ePKygo6LxjCHxQjRo1JElOp/Mvd5iKIDs7WxEREfrpp58q/J+aoxe/oxfu6Mfv6MXv6IW7y90PY4yOHz+uOnXq/OVYAh/k5XX6o5xBQUG8Qf8gMDCQfvx/9OJ39MId/fgdvfgdvXB3OftR0gM1XLQBAABgOQIfAACA5Qh8kK+vr8aMGSNfX19Pl1Im0I/f0Yvf0Qt39ON39OJ39MJdWeqHw5TkWl4AAACUWxzhAwAAsByBDwAAwHIEPgAAAMsR+AAAACxH4INef/11NWzYUFWqVFH79u313XffebqkUjd27Fg5HA63r6uvvtq1/rffftPgwYNVs2ZN+fv764477tCvv/7qNofT6dStt96qqlWrqnbt2ho1apROnTp1pTflgn311Vfq0aOH6tSpI4fDoQULFritN8bo+eefV3h4uPz8/BQfH6/vv//ebcyRI0fUp08fBQYGKjg4WA899JBycnLcxmzZskWdOnVSlSpVFBERoX/+85+Xe9Mu2F/1IjEx8az9pFu3bm5jbOlFUlKS2rZtq4CAANWuXVs9e/ZUenq625jSel+kpKSoVatW8vX1VVRUlJKTky/35l2wkvSjS5cuZ+0fAwcOdBtjQz/efPNNxcbGum4WHBcXp6VLl7rWV6T94q96Ua72CYMKbc6cOcbHx8e88847Zvv27aZ///4mODjY/Prrr54urVSNGTPGNGvWzBw4cMD1dejQIdf6gQMHmoiICLNixQqzYcMG06FDB9OxY0fX+lOnTplrrrnGxMfHm02bNpklS5aYWrVqmdGjR3ticy7IkiVLzD/+8Q/z8ccfG0lm/vz5busnTpxogoKCzIIFC8zmzZvN3//+dxMZGWlOnDjhGtOtWzfTokUL8+2335qvv/7aREVFmXvuuce1/tixYyY0NNT06dPHbNu2zcyePdv4+fmZt95660ptZon8VS8eeOAB061bN7f95MiRI25jbOlFQkKCmT59utm2bZtJS0szt9xyi6lfv77JyclxjSmN98UPP/xgqlatakaMGGF27NhhXnvtNePt7W2WLVt2Rbf3r5SkH507dzb9+/d32z+OHTvmWm9LPxYtWmQWL15sdu/ebdLT080zzzxjKleubLZt22aMqVj7xV/1ojztEwS+Cq5du3Zm8ODBrseFhYWmTp06JikpyYNVlb4xY8aYFi1aFLsuKyvLVK5c2cydO9e1bOfOnUaSWbt2rTHmdFDw8vIyBw8edI158803TWBgoMnPz7+stZemP4ecoqIiExYWZiZPnuxalpWVZXx9fc3s2bONMcbs2LHDSDLr1693jVm6dKlxOBzm559/NsYY88Ybb5jq1au79eKpp54yMTExl3mLLt65At9tt912zufY2gtjjMnMzDSSzKpVq4wxpfe+ePLJJ02zZs3cXuuuu+4yCQkJl3uTLsmf+2HM6V/ujz322DmfY3M/qlevbt5+++0Kv18Y83svjClf+wSndCuwgoICpaamKj4+3rXMy8tL8fHxWrt2rQcruzy+//571alTR40aNVKfPn3kdDolSampqTp58qRbH66++mrVr1/f1Ye1a9eqefPmCg0NdY1JSEhQdna2tm/ffmU3pBTt3btXBw8edNv2oKAgtW/f3m3bg4OD1aZNG9eY+Ph4eXl5ad26da4x119/vXx8fFxjEhISlJ6erqNHj16hrSkdKSkpql27tmJiYvToo4/q8OHDrnU29+LYsWOSpBo1akgqvffF2rVr3eY4M6as/4z5cz/OeO+991SrVi1dc801Gj16tPLy8lzrbOxHYWGh5syZo9zcXMXFxVXo/eLPvTijvOwTlUp1NpQr//nPf1RYWOi2I0pSaGiodu3a5aGqLo/27dsrOTlZMTExOnDggMaNG6dOnTpp27ZtOnjwoHx8fBQcHOz2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",317 "text/plain": [318 "<Figure size 640x480 with 1 Axes>"319 ]320 },321 "metadata": {},322 "output_type": "display_data"323 }324 ],325 "source": [326 "sns.countplot(train_df.label)\n",327 "plt.xlabel('label')"328 ]329 },330 {331 "cell_type": "markdown",332 "metadata": {333 "id": "6XHWhxO7Fdgt"334 },335 "source": [336 "# Pre-processing with one hot encoder"337 ]338 },339 {340 "cell_type": "code",341 "execution_count": 10,342 "metadata": {343 "id": "RQLT5LRgFqzd"344 },345 "outputs": [],346 "source": [347 "from sklearn.preprocessing import OneHotEncoder"348 ]349 },350 {351 "cell_type": "code",352 "execution_count": 11,353 "metadata": {354 "colab": {355 "base_uri": "https://localhost:8080/"356 },357 "id": "mFZuQURmFk72",358 "outputId": "81e995cc-af72-4bd1-c162-5710214caaca"359 },360 "outputs": [361 {362 "data": {363 "text/plain": [364 "array([[0, 0, 1, 0],\n",365 " [0, 0, 0, 1],\n",366 " [0, 0, 0, 1],\n",367 " ...,\n",368 " [0, 1, 0, 0],\n",369 " [0, 1, 0, 0],\n",370 " [0, 0, 1, 0]])"371 ]372 },373 "execution_count": 11,374 "metadata": {},375 "output_type": "execute_result"376 }377 ],378 "source": [379 "coder = OneHotEncoder()\n",380 "transformed = coder.fit_transform(train_df[['label']])\n",381 "transformed.toarray().astype(int)"382 ]383 },384 {385 "cell_type": "code",386 "execution_count": 12,387 "metadata": {388 "colab": {389 "base_uri": "https://localhost:8080/"390 },391 "id": "qodAe57oF1GX",392 "outputId": "2d42714d-24af-4852-81d0-9f45b1854bc5"393 },394 "outputs": [395 {396 "data": {397 "text/plain": [398 "['deprecated', 'features', 'fix', 'maintenance']"399 ]400 },401 "execution_count": 12,402 "metadata": {},403 "output_type": "execute_result"404 }405 ],406 "source": [407 "# list of categories\n",408 "coder.categories_[0].tolist()"409 ]410 },411 {412 "cell_type": "code",413 "execution_count": 13,414 "metadata": {415 "id": "Fb9MdCAhF1zw"416 },417 "outputs": [],418 "source": [419 "train_df[coder.categories_[0].tolist()] = transformed.toarray().astype(int)"420 ]421 },422 {423 "cell_type": "code",424 "execution_count": 14,425 "metadata": {426 "colab": {427 "base_uri": "https://localhost:8080/",428 "height": 293429 },430 "id": "t3DQ8ac9GFC0",431 "outputId": "6910e461-2f91-442f-ec2f-59f8506faf40"432 },433 "outputs": [434 {435 "data": {436 "text/html": [437 "<div>\n",438 "<style scoped>\n",439 " .dataframe tbody tr th:only-of-type {\n",440 " vertical-align: middle;\n",441 " }\n",442 "\n",443 " .dataframe tbody tr th {\n",444 " vertical-align: top;\n",445 " }\n",446 "\n",447 " .dataframe thead th {\n",448 " text-align: right;\n",449 " }\n",450 "</style>\n",451 "<table border=\"1\" class=\"dataframe\">\n",452 " <thead>\n",453 " <tr style=\"text-align: right;\">\n",454 " <th></th>\n",455 " <th>title</th>\n",456 " <th>body</th>\n",457 " <th>label</th>\n",458 " <th>label_2</th>\n",459 " <th>deprecated</th>\n",460 " <th>features</th>\n",461 " <th>fix</th>\n",462 " <th>maintenance</th>\n",463 " </tr>\n",464 " </thead>\n",465 " <tbody>\n",466 " <tr>\n",467 " <th>2050</th>\n",468 " <td>new issue regarding sign in ccdsp from chrome ...</td>\n",469 " <td>please refer to the comments from claudia from...</td>\n",470 " <td>fix</td>\n",471 " <td>0</td>\n",472 " <td>0</td>\n",473 " <td>0</td>\n",474 " <td>1</td>\n",475 " <td>0</td>\n",476 " </tr>\n",477 " <tr>\n",478 " <th>17643</th>\n",479 " <td>support for asd-manager removal</td>\n",480 " <td>add the option to remove the asd manager in a ...</td>\n",481 " <td>maintenance</td>\n",482 " <td>3</td>\n",483 " <td>0</td>\n",484 " <td>0</td>\n",485 " <td>0</td>\n",486 " <td>1</td>\n",487 " </tr>\n",488 " <tr>\n",489 " <th>20085</th>\n",490 " <td>update wrf/wps namelist files to versions used...</td>\n",491 " <td>update the files to those received by email</td>\n",492 " <td>maintenance</td>\n",493 " <td>3</td>\n",494 " <td>0</td>\n",495 " <td>0</td>\n",496 " <td>0</td>\n",497 " <td>1</td>\n",498 " </tr>\n",499 " <tr>\n",500 " <th>17211</th>\n",501 " <td>sending window to monitor causes it to jump ba...</td>\n",502 " <td>i have a 3 monitor setup:\\r \\r <img width=\\ 68...</td>\n",503 " <td>maintenance</td>\n",504 " <td>3</td>\n",505 " <td>0</td>\n",506 " <td>0</td>\n",507 " <td>0</td>\n",508 " <td>1</td>\n",509 " </tr>\n",510 " <tr>\n",511 " <th>23863</th>\n",512 " <td>memoizing queries for faster performance</td>\n",513 " <td>cache expensive match queries using memoizati...</td>\n",514 " <td>deprecated</td>\n",515 " <td>2</td>\n",516 " <td>1</td>\n",517 " <td>0</td>\n",518 " <td>0</td>\n",519 " <td>0</td>\n",520 " </tr>\n",521 " </tbody>\n",522 "</table>\n",523 "</div>"524 ],525 "text/plain": [526 " title \\\n",527 "2050 new issue regarding sign in ccdsp from chrome ... \n",528 "17643 support for asd-manager removal \n",529 "20085 update wrf/wps namelist files to versions used... \n",530 "17211 sending window to monitor causes it to jump ba... \n",531 "23863 memoizing queries for faster performance \n",532 "\n",533 " body label \\\n",534 "2050 please refer to the comments from claudia from... fix \n",535 "17643 add the option to remove the asd manager in a ... maintenance \n",536 "20085 update the files to those received by email maintenance \n",537 "17211 i have a 3 monitor setup:\\r \\r <img width=\\ 68... maintenance \n",538 "23863 cache expensive match queries using memoizati... deprecated \n",539 "\n",540 " label_2 deprecated features fix maintenance \n",541 "2050 0 0 0 1 0 \n",542 "17643 3 0 0 0 1 \n",543 "20085 3 0 0 0 1 \n",544 "17211 3 0 0 0 1 \n",545 "23863 2 1 0 0 0 "546 ]547 },548 "execution_count": 14,549 "metadata": {},550 "output_type": "execute_result"551 }552 ],553 "source": [554 "train_df.head()"555 ]556 },557 {558 "cell_type": "code",559 "execution_count": 15,560 "metadata": {561 "id": "g5_i7Cg4HBWY"562 },563 "outputs": [],564 "source": [565 "# union between title and body\n",566 "train_df[\"Context\"] = train_df[\"title\"] + \" - \" + train_df[\"body\"]"567 ]568 },569 {570 "cell_type": "code",571 "execution_count": 16,572 "metadata": {573 "colab": {574 "base_uri": "https://localhost:8080/"575 },576 "id": "s9qcuVlSHIp5",577 "outputId": "01832ab3-526d-4a47-fc07-979445d09c67"578 },579 "outputs": [580 {581 "data": {582 "text/plain": [583 "Index(['title', 'body', 'label', 'label_2', 'deprecated', 'features', 'fix',\n",584 " 'maintenance', 'Context'],\n",585 " dtype='object')"586 ]587 },588 "execution_count": 16,589 "metadata": {},590 "output_type": "execute_result"591 }592 ],593 "source": [594 "train_df.columns"595 ]596 },597 {598 "cell_type": "code",599 "execution_count": 17,600 "metadata": {601 "id": "x7x66nOAHWUn"602 },603 "outputs": [],604 "source": [605 "# dropping useless features/columns\n",606 "train_df.drop(labels=['title', 'body',], axis=1, inplace=True)"607 ]608 },609 {610 "cell_type": "code",611 "execution_count": 18,612 "metadata": {613 "id": "2Vl8EfuPHjDf"614 },615 "outputs": [],616 "source": [617 "# rearranging columns\n",618 "train_df = train_df[['label_2', 'label','Context', 'deprecated', 'features', 'fix',\n",619 " 'maintenance']]"620 ]621 },622 {623 "cell_type": "code",624 "execution_count": 19,625 "metadata": {626 "colab": {627 "base_uri": "https://localhost:8080/",628 "height": 206629 },630 "id": "FXDes1BBHuqT",631 "outputId": "7f92c2c5-c018-4af2-8a2f-f39e99bcdd3c"632 },633 "outputs": [634 {635 "data": {636 "text/html": [637 "<div>\n",638 "<style scoped>\n",639 " .dataframe tbody tr th:only-of-type {\n",640 " vertical-align: middle;\n",641 " }\n",642 "\n",643 " .dataframe tbody tr th {\n",644 " vertical-align: top;\n",645 " }\n",646 "\n",647 " .dataframe thead th {\n",648 " text-align: right;\n",649 " }\n",650 "</style>\n",651 "<table border=\"1\" class=\"dataframe\">\n",652 " <thead>\n",653 " <tr style=\"text-align: right;\">\n",654 " <th></th>\n",655 " <th>label_2</th>\n",656 " <th>label</th>\n",657 " <th>Context</th>\n",658 " <th>deprecated</th>\n",659 " <th>features</th>\n",660 " <th>fix</th>\n",661 " <th>maintenance</th>\n",662 " </tr>\n",663 " </thead>\n",664 " <tbody>\n",665 " <tr>\n",666 " <th>2050</th>\n",667 " <td>0</td>\n",668 " <td>fix</td>\n",669 " <td>new issue regarding sign in ccdsp from chrome ...</td>\n",670 " <td>0</td>\n",671 " <td>0</td>\n",672 " <td>1</td>\n",673 " <td>0</td>\n",674 " </tr>\n",675 " <tr>\n",676 " <th>17643</th>\n",677 " <td>3</td>\n",678 " <td>maintenance</td>\n",679 " <td>support for asd-manager removal - add the opt...</td>\n",680 " <td>0</td>\n",681 " <td>0</td>\n",682 " <td>0</td>\n",683 " <td>1</td>\n",684 " </tr>\n",685 " <tr>\n",686 " <th>20085</th>\n",687 " <td>3</td>\n",688 " <td>maintenance</td>\n",689 " <td>update wrf/wps namelist files to versions used...</td>\n",690 " <td>0</td>\n",691 " <td>0</td>\n",692 " <td>0</td>\n",693 " <td>1</td>\n",694 " </tr>\n",695 " <tr>\n",696 " <th>17211</th>\n",697 " <td>3</td>\n",698 " <td>maintenance</td>\n",699 " <td>sending window to monitor causes it to jump ba...</td>\n",700 " <td>0</td>\n",701 " <td>0</td>\n",702 " <td>0</td>\n",703 " <td>1</td>\n",704 " </tr>\n",705 " <tr>\n",706 " <th>23863</th>\n",707 " <td>2</td>\n",708 " <td>deprecated</td>\n",709 " <td>memoizing queries for faster performance - cac...</td>\n",710 " <td>1</td>\n",711 " <td>0</td>\n",712 " <td>0</td>\n",713 " <td>0</td>\n",714 " </tr>\n",715 " </tbody>\n",716 "</table>\n",717 "</div>"718 ],719 "text/plain": [720 " label_2 label \\\n",721 "2050 0 fix \n",722 "17643 3 maintenance \n",723 "20085 3 maintenance \n",724 "17211 3 maintenance \n",725 "23863 2 deprecated \n",726 "\n",727 " Context deprecated \\\n",728 "2050 new issue regarding sign in ccdsp from chrome ... 0 \n",729 "17643 support for asd-manager removal - add the opt... 0 \n",730 "20085 update wrf/wps namelist files to versions used... 0 \n",731 "17211 sending window to monitor causes it to jump ba... 0 \n",732 "23863 memoizing queries for faster performance - cac... 1 \n",733 "\n",734 " features fix maintenance \n",735 "2050 0 1 0 \n",736 "17643 0 0 1 \n",737 "20085 0 0 1 \n",738 "17211 0 0 1 \n",739 "23863 0 0 0 "740 ]741 },742 "execution_count": 19,743 "metadata": {},744 "output_type": "execute_result"745 }746 ],747 "source": [748 "train_df.head()"749 ]750 },751 {752 "cell_type": "markdown",753 "metadata": {754 "id": "MHq4XROdIDIz"755 },756 "source": [757 "# Division Data"758 ]759 },760 {761 "cell_type": "markdown",762 "metadata": {},763 "source": [764 "get 15k of df_training \n",765 "get 5k validation\n",766 "get 5k testing\n",767 "\n",768 "suffle"769 ]770 },771 {772 "cell_type": "code",773 "execution_count": 20,774 "metadata": {},775 "outputs": [],776 "source": [777 "\n",778 "from sklearn.model_selection import train_test_split\n",779 "# not need\n",780 "train_size = 0.8\n",781 "df_train, df_val = train_test_split(train_df, train_size=train_size, random_state=200)\n",782 "\n",783 "# Restablecer los índices de los dataframes resultantes\n",784 "df_train.reset_index(drop=True, inplace=True)\n",785 "df_val=df_val.sample(800)\n",786 "df_val.reset_index(drop=True, inplace=True)"787 ]788 },789 {790 "cell_type": "code",791 "execution_count": null,792 "metadata": {},793 "outputs": [],794 "source": []795 },796 {797 "cell_type": "markdown",798 "metadata": {799 "id": "TtI0SUuVLFSm"800 },801 "source": [802 "# Config cuda"803 ]804 },805 {806 "cell_type": "code",807 "execution_count": 21,808 "metadata": {809 "colab": {810 "base_uri": "https://localhost:8080/",811 "height": 35812 },813 "id": "3xXkZXvWLKPh",814 "outputId": "b8920f7e-878b-403e-c601-ed47e0a2c65d"815 },816 "outputs": [817 {818 "data": {819 "text/plain": [820 "'cuda'"821 ]822 },823 "execution_count": 21,824 "metadata": {},825 "output_type": "execute_result"826 }827 ],828 "source": [829 "device = 'cuda' if torch.cuda.is_available() else 'cpu'\n",830 "device"831 ]832 },833 {834 "cell_type": "markdown",835 "metadata": {836 "id": "80RunzCbNrwP"837 },838 "source": [839 "# Hyperparams"840 ]841 },842 {843 "cell_type": "code",844 "execution_count": 22,845 "metadata": {846 "id": "mHi9JpqjO59s"847 },848 "outputs": [849 {850 "name": "stderr",851 "output_type": "stream",852 "text": [853 "/home/camilo/anaconda3/envs/diplom/lib/python3.10/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n",854 " from .autonotebook import tqdm as notebook_tqdm\n"855 ]856 }857 ],858 "source": [859 "import torch\n",860 "from torch.utils.data import Dataset, DataLoader, RandomSampler, SequentialSampler\n",861 "from transformers import BertTokenizer, AutoTokenizer, BertModel, BertConfig, AutoModel, AdamW, AutoConfig\n",862 "import warnings"863 ]864 },865 {866 "cell_type": "code",867 "execution_count": 23,868 "metadata": {869 "colab": {870 "base_uri": "https://localhost:8080/",871 "height": 275,872 "referenced_widgets": [873 "31fd43492b2742b4a5ed66c037a30a36",874 "c2a5b28f8cca4c7095b3144c7cb0ef3a",875 "e46475db72ff4b449dca5988641be72b",876 "f5880873d54344ec84edeb1ddaf4b655",877 "09f484bcedca481696506aa302292017",878 "f836c319bf064054a5427cfbb0bae3ab",879 "1ad8a75785234204a603588fe6fa52eb",880 "beed68c6d9974113b3f897c4f8f97f12",881 "e516cb2f03824cd6a075ba1102cb584c",882 "1306deb9d26542f0a129b86602b20070",883 "c51aa8cb4b3b4281be8fbae971e6cfc0",884 "ccefb3a77bed4934bc8620c9eea96618",885 "ba4118af8bac437398b52f4088618d8a",886 "e611f2c5285e4eb0b3b301ddaca15897",887 "c1358f80acce4a4fb742f3ad88d47c5c",888 "0303994b723742f3ae3e5e4fbf7aac1c",889 "404ce010630b4fd2896e325a6a96da03",890 "6fb27b583b7b4b5a9b45d7380f57e7f3",891 "6d875c5ca1b04a3cbcffe2c85bd4fcc7",892 "f73c874488c84b47bb26f4bf74c19ef5",893 "417ee2ed7d854ba5a07e07308212fc70",894 "d7cb12de535246dfb25bd40a78a100de",895 "8ee059bff2a340fab759b507bce662e6",896 "26dad3c9af5b4a988e2870b33198dd95",897 "45f5eaa8ddcd4a50bc610c50ab8e25d4",898 "8881e621200d4d8daae08b370927b12e",899 "76d7d5e04ce249b9860fac9d7ca69440",900 "e44681b1e0364a4aa6a2ecde80d6f7f1",901 "41fec616acfc4d319f9c0a675538ccdf",902 "3168aa0e3b5f4803a910477920794901",903 "ad1f77ad83a043788ceb4adb171c4281",904 "7865275a314940d29bbd7324c931ccf1",905 "7971284ac34e4d1f939a4005a075f137",906 "dd8a80e85ae24ae9a78b2e12f85d63eb",907 "cad46d5f185a456db3e63f28a619c88c",908 "40296616399d4186b38c63731c808a23",909 "00304309fd3e431e8011c24d5deb3fc2",910 "202d0d9a484241c193367dc5c3bd467b",911 "a0e48c84c5c54a88b0e633a938db3537",912 "bf55bb63fd3f4bf1b4a6e388c201e044",913 "36c3ff80be65462287e1caf920cffbe4",914 "6436348ff9304cb88becfcb7b914f224",915 "7890b9b059ee4b2eab8573bc5c3387c4",916 "d72fd6b031604c968f84df5b47650219"917 ]918 },919 "id": "9oJjAMmfN3g5",920 "outputId": "1d02126b-0852-4910-fb0e-909ba81241ff"921 },922 "outputs": [],923 "source": [924 "MAX_LEN = 128\n",925 "TRAIN_BATCH_SIZE = 40\n",926 "VALID_BATCH_SIZE = 40\n",927 "EPOCHS = 8\n",928 "LEARNING_RATE = 2e-5\n",929 "tokenizer = AutoTokenizer.from_pretrained('roberta-base')"930 ]931 },932 {933 "cell_type": "code",934 "execution_count": 24,935 "metadata": {},936 "outputs": [937 {938 "data": {939 "text/plain": [940 "<bound method PreTrainedTokenizerBase.encode_plus of RobertaTokenizerFast(name_or_path='roberta-base', vocab_size=50265, model_max_length=512, is_fast=True, padding_side='right', truncation_side='right', special_tokens={'bos_token': '<s>', 'eos_token': '</s>', 'unk_token': '<unk>', 'sep_token': '</s>', 'pad_token': '<pad>', 'cls_token': '<s>', 'mask_token': '<mask>'}, clean_up_tokenization_spaces=True), added_tokens_decoder={\n",941 "\t0: AddedToken(\"<s>\", rstrip=False, lstrip=False, single_word=False, normalized=True, special=True),\n",942 "\t1: AddedToken(\"<pad>\", rstrip=False, lstrip=False, single_word=False, normalized=True, special=True),\n",943 "\t2: AddedToken(\"</s>\", rstrip=False, lstrip=False, single_word=False, normalized=True, special=True),\n",944 "\t3: AddedToken(\"<unk>\", rstrip=False, lstrip=False, single_word=False, normalized=True, special=True),\n",945 "\t50264: AddedToken(\"<mask>\", rstrip=False, lstrip=True, single_word=False, normalized=False, special=True),\n",946 "}>"947 ]948 },949 "execution_count": 24,950 "metadata": {},951 "output_type": "execute_result"952 }953 ],954 "source": [955 "tokenizer.encode_plus"956 ]957 },958 {959 "cell_type": "code",960 "execution_count": 25,961 "metadata": {962 "id": "2H0fzTkLPNFG"963 },964 "outputs": [],965 "source": [966 "target_cols = ['deprecated', 'features', 'fix', 'maintenance']"967 ]968 },969 {970 "cell_type": "markdown",971 "metadata": {972 "id": "bJXkqBg9PaKw"973 },974 "source": [975 "# Bert DAtaset\n"976 ]977 },978 {979 "cell_type": "code",980 "execution_count": 26,981 "metadata": {982 "id": "gd5sjbowPZJS"983 },984 "outputs": [],985 "source": [986 "class BERTDataset(Dataset):\n",987 " def __init__(self, df, tokenizer, max_len):\n",988 " self.df = df\n",989 " self.max_len = max_len\n",990 " self.text = df.Context\n",991 " self.tokenizer = tokenizer\n",992 " self.targets = df[target_cols].values\n",993 "\n",994 " def __len__(self):\n",995 " return len(self.df)\n",996 "\n",997 " def __getitem__(self, index):\n",998 " text = self.text[index]\n",999 " inputs = self.tokenizer.encode_plus(\n",1000 " text,\n",1001 " truncation=True,\n",1002 " add_special_tokens=True,\n",1003 " max_length=self.max_len,\n",1004 " padding='max_length',\n",1005 " return_token_type_ids=True\n",1006 " )\n",1007 " ids = inputs['input_ids']\n",1008 " mask = inputs['attention_mask']\n",1009 " token_type_ids = inputs[\"token_type_ids\"]\n",1010 "\n",1011 " return {\n",1012 " 'ids': torch.tensor(ids, dtype=torch.long),\n",1013 " 'mask': torch.tensor(mask, dtype=torch.long),\n",1014 " 'token_type_ids': torch.tensor(token_type_ids, dtype=torch.long),\n",1015 " 'targets': torch.tensor(self.targets[index], dtype=torch.float)\n",1016 " }"1017 ]1018 },1019 {1020 "cell_type": "code",1021 "execution_count": 27,1022 "metadata": {1023 "id": "B9MMxYbtUGNd"1024 },1025 "outputs": [],1026 "source": [1027 "train_dataset = BERTDataset(df_train, tokenizer, MAX_LEN)\n",1028 "valid_dataset = BERTDataset(df_val, tokenizer, MAX_LEN)\n",1029 "# test_dataset = BERTDataset(df_test, tokenizer, MAX_LEN)"1030 ]1031 },1032 {1033 "cell_type": "code",1034 "execution_count": null,1035 "metadata": {},1036 "outputs": [],1037 "source": []1038 },1039 {1040 "cell_type": "markdown",1041 "metadata": {1042 "id": "YbImuJzMU4Lp"1043 },1044 "source": [1045 "# Data Loaders"1046 ]1047 },1048 {1049 "cell_type": "code",1050 "execution_count": 28,1051 "metadata": {1052 "colab": {1053 "base_uri": "https://localhost:8080/"1054 },1055 "id": "BLE4x0qhVEVr",1056 "outputId": "7d4f966d-7032-4f9b-d750-bba4d23212c4"1057 },1058 "outputs": [],1059 "source": [1060 "train_loader = DataLoader(train_dataset, batch_size=TRAIN_BATCH_SIZE,\n",1061 " num_workers=4, shuffle=True, pin_memory=True)\n",1062 "valid_loader = DataLoader(valid_dataset, batch_size=VALID_BATCH_SIZE,\n",1063 " num_workers=4, shuffle=False, pin_memory=True)"1064 ]1065 },1066 {1067 "cell_type": "markdown",1068 "metadata": {1069 "id": "3aj42a9iVY6O"1070 },1071 "source": [1072 "# Bert Class"1073 ]1074 },1075 {1076 "cell_type": "code",1077 "execution_count": 29,1078 "metadata": {1079 "colab": {1080 "base_uri": "https://localhost:8080/",1081 "height": 106,1082 "referenced_widgets": [1083 "fad70f84f9184908ac2fdd4403e0091b",1084 "0b694a608fb84a36a499c80a52d16cba",1085 "941115a15f0b4ef181b48706c85e8af5",1086 "3a22bb661f954aa1a557ccefc5b13d26",1087 "95c71cfb74db4a1bbe738aa6975609b4",1088 "1bff32d418d04ed88c2ff2095ff866e0",1089 "0f23725d8fb5421ea1d6182c7822bd83",1090 "912a87d594de42f5b3556776636491a8",1091 "7954c499831d46c39145fa196e965bd6",1092 "68d1659870834cc19766a5314ac8d2ae",1093 "4f94efc483964e62949a35eb3b5adf99"1094 ]1095 },1096 "id": "GVNUXnj2VR8n",1097 "outputId": "4e50950d-a87b-4f16-81ae-67815c881ed8"1098 },1099 "outputs": [1100 {1101 "name": "stderr",1102 "output_type": "stream",1103 "text": [1104 "Some weights of RobertaModel were not initialized from the model checkpoint at roberta-base and are newly initialized: ['roberta.pooler.dense.bias', 'roberta.pooler.dense.weight']\n",1105 "You should probably TRAIN this model on a down-stream task to be able to use it for predictions and inference.\n"1106 ]1107 },1108 {1109 "data": {1110 "text/plain": [1111 "BERTClass(\n",1112 " (bert_model): RobertaModel(\n",1113 " (embeddings): RobertaEmbeddings(\n",1114 " (word_embeddings): Embedding(50265, 768, padding_idx=1)\n",1115 " (position_embeddings): Embedding(514, 768, padding_idx=1)\n",1116 " (token_type_embeddings): Embedding(1, 768)\n",1117 " (LayerNorm): LayerNorm((768,), eps=1e-05, elementwise_affine=True)\n",1118 " (dropout): Dropout(p=0.1, inplace=False)\n",1119 " )\n",1120 " (encoder): RobertaEncoder(\n",1121 " (layer): ModuleList(\n",1122 " (0-11): 12 x RobertaLayer(\n",1123 " (attention): RobertaAttention(\n",1124 " (self): RobertaSelfAttention(\n",1125 " (query): Linear(in_features=768, out_features=768, bias=True)\n",1126 " (key): Linear(in_features=768, out_features=768, bias=True)\n",1127 " (value): Linear(in_features=768, out_features=768, bias=True)\n",1128 " (dropout): Dropout(p=0.1, inplace=False)\n",1129 " )\n",1130 " (output): RobertaSelfOutput(\n",1131 " (dense): Linear(in_features=768, out_features=768, bias=True)\n",1132 " (LayerNorm): LayerNorm((768,), eps=1e-05, elementwise_affine=True)\n",1133 " (dropout): Dropout(p=0.1, inplace=False)\n",1134 " )\n",1135 " )\n",1136 " (intermediate): RobertaIntermediate(\n",1137 " (dense): Linear(in_features=768, out_features=3072, bias=True)\n",1138 " (intermediate_act_fn): GELUActivation()\n",1139 " )\n",1140 " (output): RobertaOutput(\n",1141 " (dense): Linear(in_features=3072, out_features=768, bias=True)\n",1142 " (LayerNorm): LayerNorm((768,), eps=1e-05, elementwise_affine=True)\n",1143 " (dropout): Dropout(p=0.1, inplace=False)\n",1144 " )\n",1145 " )\n",1146 " )\n",1147 " )\n",1148 " (pooler): RobertaPooler(\n",1149 " (dense): Linear(in_features=768, out_features=768, bias=True)\n",1150 " (activation): Tanh()\n",1151 " )\n",1152 " )\n",1153 " (dropout): Dropout(p=0.3, inplace=False)\n",1154 " (linear): Linear(in_features=768, out_features=4, bias=True)\n",1155 ")"1156 ]1157 },1158 "execution_count": 29,1159 "metadata": {},1160 "output_type": "execute_result"1161 }1162 ],1163 "source": [1164 "# Creating the customized model, by adding a drop out and a dense layer on top of distil bert to get the final output for the model.\n",1165 "\n",1166 "class BERTClass(torch.nn.Module):\n",1167 " def __init__(self):\n",1168 " super(BERTClass, self).__init__()\n",1169 " self.config = AutoConfig.from_pretrained('roberta-base')\n",1170 " self.bert_model = AutoModel.from_pretrained('roberta-base', return_dict=True)\n",1171 " self.dropout = torch.nn.Dropout(0.3)\n",1172 " self.linear = torch.nn.Linear(768,4)\n",1173 " \n",1174 " def forward(self, ids, mask, token_type_ids):\n",1175 " output = self.bert_model(\n",1176 " ids, \n",1177 " attention_mask=mask, \n",1178 " token_type_ids=token_type_ids\n",1179 " )\n",1180 "\n",1181 " output_dropout = self.dropout(output.pooler_output)\n",1182 " output = self.linear(output_dropout)\n",1183 " return output\n",1184 "\n",1185 "model = BERTClass()\n",1186 "model.load_state_dict(torch.load('roberta_model.pth'))\n",1187 "model.to(device)"1188 ]1189 },1190 {1191 "cell_type": "markdown",1192 "metadata": {1193 "id": "SsI_c8YlY0SR"1194 },1195 "source": [1196 "# Validations"1197 ]1198 },1199 {1200 "cell_type": "code",