├── LICENSE ├── README.md └── With_GoogleNet.ipynb /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 KobeWang-supreme 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Music-genre-classification-with-different-CNNs 2 | Using different CNN models to train on GTZAN Dataset 3 | You can download the whole dataset from: https://www.kaggle.com/datasets/andradaolteanu/gtzan-dataset-music-genre-classification 4 | 5 | Results up to now: 6 | 1. GoogleNet : Test Accuracy: Around 55% - 60% 7 | 8 | 3. Newly Designed CNN: 9 | 10 | With only Mel n_feature = 128: Test Accuracy(10 genres): Around 70% - 80% (baseline: 10%) Test Accuracy(5 genres): Around 85% (baseline: 20%) 11 | 12 | 13 | With Mfcc n_feature = 128: Test Accuracy(10 genres): Around 82%, which is almostly equal to the accuracy with both Mel and Mfcc 14 | 15 | 16 | With Mel and Mfcc(added together) n_feature = 128: Test Accuracy(10 genres): Around 83% (baseline: 10%) Test Accuracy(5 genres): Around 91% (baseline: 20%) 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | Confusion Matrics: 26 | 27 | 28 | 1 29 | 30 | 31 | 32 | 33 | 34 | 35 | Let's test on a Reggae Song: 36 | 37 | 96_degrees 38 | 39 | Result: 40 | 41 | ![result](https://github.com/KobeWang-supreme/Music-genre-classification-with-different-CNNswith-different-CNN/assets/78716482/124f157c-52c1-4a21-98d3-9604116a8389) 42 | 43 | 44 | 45 | 46 | Findings: 47 | 1. Actually, some musics belongs to not only one genre. Such as songs from Norah Jones, many songs of her belongs to both jazz and blues. Our model can only return one genre(with highest score). However, it is also clear that by visualizing scores for every genre, we can see jazz and blues have much higher scores than other genres. 48 | 49 | 3 50 | 51 | 52 | Let's take "Don't know why" as an example: 53 | 54 | 55 | 2 56 | 57 | 58 | 59 | 60 | 61 | 62 | -------------------------------------------------------------------------------- /With_GoogleNet.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "We are using the dataset called \"GTZAN\", which is widely used in Music Genre Classification.\n", 8 | "Our goal is to use audios' mfccs to make the classification. This data_deal.ipynb will show how mfccs are generated." 9 | ] 10 | }, 11 | { 12 | "cell_type": "code", 13 | "execution_count": 159, 14 | "metadata": {}, 15 | "outputs": [], 16 | "source": [ 17 | "import numpy as np \n", 18 | "import pandas as pd \n", 19 | "import librosa\n", 20 | "import os\n", 21 | "import tqdm\n", 22 | "import matplotlib.pyplot as plt\n", 23 | "import random\n", 24 | "import librosa.display\n", 25 | "from mpl_toolkits.axes_grid1 import make_axes_locatable\n", 26 | "import torch\n", 27 | "import torchvision\n", 28 | "from torchvision import transforms\n", 29 | "from torchvision.datasets import ImageFolder\n", 30 | "from torch.utils.data.dataloader import DataLoader\n", 31 | "from torch.utils.data import random_split\n", 32 | "from torchvision.utils import make_grid\n", 33 | "import torch.nn as nn\n", 34 | "import torch.nn.functional as F\n", 35 | "from sklearn.model_selection import train_test_split\n", 36 | "from torch.utils.data import Dataset, TensorDataset\n", 37 | "from sklearn.metrics import classification_report\n", 38 | "from sklearn import metrics" 39 | ] 40 | }, 41 | { 42 | "cell_type": "code", 43 | "execution_count": 160, 44 | "metadata": {}, 45 | "outputs": [], 46 | "source": [ 47 | "def seed_torch(seed):\n", 48 | " random.seed(seed) # python seed\n", 49 | " os.environ['PYTHONHASHSEED'] = str(seed) # 设置python哈希种子,for certain hash-based operations (e.g., the item order in a set or a dict)。seed为0的时候表示不用这个feature,也可以设置为整数。 有时候需要在终端执行,到脚本实行可能就迟了。\n", 50 | " np.random.seed(seed) # If you or any of the libraries you are using rely on NumPy, 比如Sampling,或者一些augmentation。 哪些是例外可以看https://pytorch.org/docs/stable/notes/randomness.html\n", 51 | " torch.manual_seed(seed) # 为当前CPU设置随机种子。 pytorch官网倒是说(both CPU and CUDA)\n", 52 | " torch.cuda.manual_seed(seed) # 为当前GPU设置随机种子\n", 53 | " # torch.cuda.manual_seed_all(seed) # 使用多块GPU时,均设置随机种子\n", 54 | " torch.backends.cudnn.deterministic = True\n", 55 | " # torch.backends.cudnn.benchmark = True # 设置为True时,cuDNN使用非确定性算法寻找最高效算法\n", 56 | " # torch.backends.cudnn.enabled = True # pytorch使用CUDANN加速,即使用GPU加速\n", 57 | " \n", 58 | "seed_torch(seed=32)" 59 | ] 60 | }, 61 | { 62 | "cell_type": "markdown", 63 | "metadata": {}, 64 | "source": [ 65 | "First we should read the data." 66 | ] 67 | }, 68 | { 69 | "cell_type": "code", 70 | "execution_count": 161, 71 | "metadata": {}, 72 | "outputs": [], 73 | "source": [ 74 | "def data_read(directory=r\"F:\\music\\archive\\Data\\genres_original\"): # change the directory if you like \n", 75 | " data = [] # Store all data (read from music)\n", 76 | " labels = [] # Store corresponding labels\n", 77 | " srs = []\n", 78 | "\n", 79 | " x = 0\n", 80 | "\n", 81 | " for dirname, _, filenames in os.walk(r\"F:\\music\\archive\\Data\\genres_original\"):\n", 82 | " for filename in filenames:\n", 83 | " # Get name and skip the broken\n", 84 | " if x == 554: # skip the broken one \n", 85 | " x += 1\n", 86 | " continue\n", 87 | " filename = os.path.join(dirname, filename)\n", 88 | " \n", 89 | " y, sr = librosa.load(filename)\n", 90 | " # print(filename)\n", 91 | " label = filename.split('\\\\')[5]\n", 92 | "\n", 93 | " # Append them to the final data\n", 94 | " data.append(y)\n", 95 | " labels.append(label)\n", 96 | " srs.append(sr)\n", 97 | " x += 1\n", 98 | " #print(x) # counting\n", 99 | " #print(len(data))\n", 100 | " \n", 101 | " return data, labels, srs" 102 | ] 103 | }, 104 | { 105 | "cell_type": "code", 106 | "execution_count": 162, 107 | "metadata": {}, 108 | "outputs": [], 109 | "source": [ 110 | "data, labels, srs = data_read() " 111 | ] 112 | }, 113 | { 114 | "cell_type": "markdown", 115 | "metadata": {}, 116 | "source": [ 117 | "Get one random sample to show whether we read the data successfully." 118 | ] 119 | }, 120 | { 121 | "cell_type": "code", 122 | "execution_count": 163, 123 | "metadata": {}, 124 | "outputs": [ 125 | { 126 | "data": { 127 | "image/png": "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PHjwANOnT0d8fDxq1aqFLVu2oFy5cgCA+Ph4rZpLP/30E9LT0/H+++/j/fff12wfNGgQwsLCAACPHz/GiBEjkJCQALVaDX9/f+zfvx+NGjWy6HsjIiIiZVIJhqpM5uDv7y9qEDUAnDhxosBBWZvk5GSo1WokJSVJOvi9/GebJTsWERGRtbvxTd7DaUwh9vdbVMtSt27dpIqLiIiIyKqISpamTJli7jiIiIiIFCnfY5aioqJw4cIFqFQqVK9eHQEBAVLGRURERKQIJidLt27dQp8+fXDo0CG4uroCyBokHRQUhDVr1sDX11fqGImIiIhkY3IF76FDhyItLQ0XLlzAw4cP8fDhQ1y4cAGCIGDYsGHmiJGIiIhINia3LB04cACHDx9G1apVNduqVq2KBQsWoGnTppIGR0RERCQ3k1uWypYti7S0NJ3t6enpKF26tCRBERERESmFycnSzJkz8cEHHyAqKgrZJZqioqLw4YcfYtasWZIHSERERCQnUUUpcypRogSeP3+O9PR0FCmS1YuX/W8XFxetfR8+fChdpArGopRERETmp+iilDnNnTu3IHERERERWRWTk6VBgwaZIw4iIiIiRcp3UcrExEQkJiYiMzNTa3udOnUKHBQRERGRUpicLEVHR2PQoEGa2ko5qVQqZGRkSBYcERERkdxMTpaGDBmCKlWqYMmSJfD09IRKpTJHXERERESKYHKydP36daxfvx6VKlUyRzxEREREimJynaU2bdrg1KlT5oiFiIiISHFMbllavHgxBg0ahLNnz6JWrVqws7PTerxLly6SBUdEREQkN5OTpcOHD+PgwYPYunWrzmMc4E1ERESFjcndcGPGjMGAAQMQHx+PzMxMrRsTJSIiIipsTE6WHjx4gI8++gienp7miIeIiIhIUUxOlnr06IE9e/aYIxYiIiIixTF5zFKVKlUQEhKCgwcPonbt2joDvMeMGSNZcERERERyUwm5y3Dnwc/Pz/DBVCpcu3atwEFZG7GrFpuq/GebJTsWERGRtbvxzRuSHk/s73e+ilISERERvSpMHrNkyJkzZzB27FipDkdERESkCAVKlpKTk/HTTz+hUaNGqFu3Lvbu3StRWERERETKkK9kad++fRg4cCC8vb0xatQotG7dGpcvX0ZMTIzE4RERERHJS3SyFB8fjxkzZqBSpUro3bs33N3dsW/fPtjY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lmZ0sLqDgwMcHBzyPBYRERFZP5OTpVWrVmH9+vXo2LGjOeLRq3r16mjfvj2GDx+umdY/YsQIdOrUSWsmXLVq1RAaGoru3bsjPT0db731Fk6cOIG///4bGRkZmvFNbm5usLe3xz///IPVq1ejY8eOcHd3x/nz5zF+/Hj4+/ujadOmFnt/REREpFwmz4ZTq9WoUKGCOWIxavXq1ahduzaCg4MRHByMOnXqYOXKlVr7XLp0CUlJSQCAW7duYdOmTbh16xbq1asHb29vzS17Bp29vT127dqFdu3aoWrVqhgzZgyCg4Oxc+dO2NraWvw9EhERkfKoBEEQTHnC8uXLsW3bNixduhROTk7misuqJCcnQ61WIykpKc8xUaYo/9lmyY5FRERk7W5884akxxP7+21yN9zbb7+NNWvWwMPDA+XLl4ednZ3W4+as4k1ERERkaSYnS4MHD0Z0dDT69+9f4AHeREREREpncrK0efNmbN++Ha+99po54iEiIiJSFJMHePv6+ko6LoeIiIhIyUxOlr777jt88sknuHHjhhnCISIiIlIWk7vh+vfvj+fPn6NixYpwdnbWGeD98OFDyYIjIiIikpvJydLcuXPNEAYRERGRMpmULKWlpWHv3r2YNGmSLIUpiYiIiCzNpDFLdnZ22LBhg7liISIiIlIckwd4d+/eHX/++acZQiEiIiJSHpPHLFWqVAlffvklDh8+jICAALi4uGg9PmbMGMmCIyIiIpKbycnS4sWL4erqiujoaERHR2s9plKpmCwRERFRoWJysnT9+nVzxEFERESkSCaPWcpJEAQIgiBVLERERESKk69kacWKFahduzacnJzg5OSEOnXqYOXKlVLHRkRERCQ7k7vhZs+ejUmTJmH06NFo2rQpBEHAoUOHMHLkSNy/fx8fffSROeIkIiIikoXJydKCBQvw448/YuDAgZptXbt2Rc2aNTF16lQmS0RERFSomNwNFx8fj6CgIJ3tQUFBiI+PlyQoIiIiIqUwOVmqVKkSfvvtN53t4eHhqFy5siRBERERESmFyd1w06ZNQ69evbB//340bdoUKpUKBw8exK5du/QmUURERETWzOSWpTfffBNHjx6Fu7s7/vzzT6xfvx7u7u44duwYunfvbo4YiYiIiGRjcssSAAQEBGDVqlVSx0JERESk12uV3GV77QIVpSQiIiKyBEc7+VIW0S1LNjY2UKlURvdRqVRIT08vcFBERERESiE6WdqwYYPBxw4fPowFCxZw6RMiIiIqdEQnS127dtXZdvHiRYSEhOCvv/5Cv3798OWXX0oaHBEREZHc8tUBeOfOHQwfPhx16tRBeno6YmJisHz5cpQtW1bq+IiIiIhkZVKylJSUhE8//RSVKlXCuXPnsGvXLvz111+oVauWueIjIiIikpXobriZM2fi22+/hZeXF9asWaO3W46IiIiosBGdLH322WdwcnJCpUqVsHz5cixfvlzvfuvXr5csOCIiIqIsxmfkm5PoZGngwIF5lg4gIiIiMgc5UxDRyVJYWJgZwyAiIiJSJqup4P3o0SMMGDAAarUaarUaAwYMwOPHj40+Z/DgwVCpVFq3Jk2aaO2TkpKCDz74AO7u7nBxcUGXLl1w69YtM74TIiIisiZWkyz17dsXMTEx2LZtG7Zt24aYmBgMGDAgz+e1b98e8fHxmtuWLVu0Hh87diw2bNiAtWvX4uDBg3j69Ck6deqEjIwMc70VIiIisiL5WkjX0i5cuIBt27bhyJEjaNy4MQDgl19+QWBgIC5duoSqVasafK6DgwO8vLz0PpaUlIQlS5Zg5cqVeP311wEAq1atgq+vL3bu3Il27dpJ/2aIiIjIqlhFy1JkZCTUarUmUQKAJk2aQK1W4/Dhw0afu3fvXnh4eKBKlSoYPnw4EhMTNY9FR0cjLS0NwcHBmm0+Pj6oVauW0eOmpKQgOTlZ60ZERESFk1UkSwkJCfDw8NDZ7uHhgYSEBIPP69ChA1avXo3du3fju+++w/Hjx9G6dWukpKRojmtvb48SJUpoPc/T09PocUNDQzVjp9RqNXx9ffP5zogoWyWPonKHQESkl6zJ0tSpU3UGYOe+RUVFAYDesgWCIBgtZ9CrVy+88cYbqFWrFjp37oytW7fi8uXL2Lx5s9G48jpuSEgIkpKSNLe4uDiR75iIzKmqZzG5QyCiQkjWMUujR49G7969je5Tvnx5nD59Gnfv3tV57N69e/D09BT9et7e3ihXrhyuXLkCAPDy8kJqaioePXqk1bqUmJiIoKAgg8dxcHCAg4OD6NclorxJUUKlWWV3XLr7RIIjERH9R9Zkyd3dHe7u7nnuFxgYiKSkJBw7dgyNGjUCABw9ehRJSUlGk5rcHjx4gLi4OHh7ewMAAgICYGdnh4iICPTs2RMAEB8fj7Nnz2LmzJn5eEdEJCdB7gCIqFCyijFL1atXR/v27TF8+HAcOXIER44cwfDhw9GpUyetmXDVqlXDhg0bAABPnz7FhAkTEBkZiRs3bmDv3r3o3Lkz3N3d0b17dwCAWq3GsGHDMH78eOzatQsnT55E//79Ubt2bc3sOCIiInq1WUWyBACrV69G7dq1ERwcjODgYNSpUwcrV67U2ufSpUtISkoCANja2uLMmTPo2rUrqlSpgkGDBqFKlSqIjIxEsWL/jWuYM2cOunXrhp49e6Jp06ZwdnbGX3/9BVtbW4u+PyJr1qdRWblDAAAIJjYtrRneJO+diOiVZxV1lgDAzc0Nq1atMrqPkOOb0snJCdu3b8/zuI6OjliwYAEWLFhQ4BiJKP/kWPfJzpbrXRJJqXU1D+y+mJj3jlbGalqWiIiISNna1hA/6cpUcl7aMFkiokJDzlXJici85Pz7ZrJERBLgPDSSjos9x4ySsjBZIipkHIrwz5qISEr8ViUiIiJJvFYp79qJ1ojJElEhY85+/cAKJQ29qvle1ASGSgf0acT1G60JO3Wtl6+bs9whmAWTJSLS0bex/rpJ5kzEVBIkXIKBn9mKpbhIrxSqePJzpFcTkyUi0tFMhqZ0Q4mOFDrX9THbsV8lDkU48JpeTUyWCqmu9fjj8KqSpoXGxNdURi+cQUVsFB4gaXFzsZc7BCItTJYKKd8ShbPfmIgKP49iDnKHQKSFyRJRIaP0Vh4iImvDZKmQMmfJeVI2W3Y56VA72ckdAhFZMSZLhVTt0mq5QyCZNCzvVuBjGJqCr3SGarwUseVXnRTMOQifSMn4DVJIsSvm1TXr7bpyhyCbyh7F5A6BJMCUjJSGyRJRIcOZRGTtrLVlk8xLipm++cVkqZBS6WlaqufriqCKhiowExEZN7pVJblDoFeYnD0mTJZeIa2reaBMCSe5wyAyG46pMa9SxRzlDoFIFkyWiEiHoaRDju6R3g25rturhikvKQ2TJbJqbap5yB0CmdmkTjXkDoE0mMZQ/vRvon+9SWvBZImsWkUPLuxZWEiyTAt/y4kU6atuteUOoUCYLL1i5JxNQEREZI2YLCkYF/8kolcSmwhJYZgsKZiLQxG5Q1A8gV+qZvF6ddOWy+F/AxEVZkyWXjGcWk1iONrZ6t1u6vnz6zuNRe/Lc1Mefu4ucodAJtowKkjuEF45TJZeMfpaAHzd9NdemtixupmjKTh9xTdJOYIMrNVGymHKwsvO9mztVgL/siXMclwmzoYxWVKwiqUKduKa2pWS2/DmFQr0fFKOUsUczHp8Dq97NVT3Lm6R1+lar7RFXoe07ZnQUu4QFIvJkoIt6Fu/QM9fPKiBRJFIb1TLinKH8EqZ3bMuxr5e2WzH19fAV6u0ZX5Yc1I72elsq+lj+TisiRLz3EFB5eUOgUgLkyUFK+0q7dIkShqEy8VeLauWj1ruECyihJ7zqqybswyRUEGY0jVIZAlMll4hHEBLRLnxW4GsRXDNgg0tKQgmS4XQm/XLyB2C5P7+4DW5Q1CcN+p4yx2CVeAcAKLCobu/fL9tTJYKIUt0OzjZ2WJ2z7pmf51s5h6gbI061VZ2sqSkbl8iooJgslQIGbqSFvvjVb+sK7590/g6Pu7F7NG4QkkTI/tPPV/XfD+XsiilxeS7t82XNJcrWfDEn0v8SIPTyqXxQetKcodA+WA1ydKjR48wYMAAqNVqqNVqDBgwAI8fPzb6HJVKpff2v//9T7NPy5YtdR7v3bu3md+Nsq0f1RS9Gkq3QrS+EgYB5fTXCXEyUAyRlKFZ5VI62xqWd5Pk2K7OuoOzbZWSERKKObLGkhR4oajNztY6/satJlnq27cvYmJisG3bNmzbtg0xMTEYMGCA0efEx8dr3ZYuXQqVSoU333xTa7/hw4dr7ffTTz+Z860UGmKXGnF11p3ObUhkSOv8hkMW8JqeIpNS5TOVPYrqbrSO71EivcKGNJQ7BMVrrucCTIms4lLhwoUL2LZtG44cOYLGjbOWT/jll18QGBiIS5cuoWrVqnqf5+XlpXV/48aNaNWqFSpU0C626OzsrLPvqySwQknEPbwldxgA9LcuFEZFHYrgaUq63GFYRK8GvgiPipM7DCKLq/mKlOx4FVhFy1JkZCTUarUmUQKAJk2aQK1W4/Dhw6KOcffuXWzevBnDhg3TeWz16tVwd3dHzZo1MWHCBDx58sTosVJSUpCcnKx1UxJDC/AK0N/KM7lzTUlet50J0zqlGvxrrQvpTutS8M/c1Lcu10f1QRtljtHQV8CSiEgfq0iWEhIS4OHhobPdw8MDCQkJoo6xfPlyFCtWDD169NDa3q9fP6xZswZ79+7FpEmTsG7dOp19cgsNDdWMnVKr1fD19RX/ZizAWB+wZ3FHnW1FDSRXphrdynwVoqVQw0JLNVAWpeex1jJWgojkJ2uyNHXqVIODsLNvUVFRAPQvmCoIguiFVJcuXYp+/frB0VE7WRg+fDhef/111KpVC71798Yff/yBnTt34sSJEwaPFRISgqSkJM0tLk6+LoZ5vevJ9tpiKeVHc+27TeQOQUOOj0TpY6Ub+UkzUJzInAxNTqHCTdYxS6NHj85z5ln58uVx+vRp3L17V+exe/fuwdMz766fAwcO4NKlSwgPD89z3/r168POzg5XrlxB/fr612ZzcHCAg4My6v50rVcaH66Nsfjr2tuKz7PF1n2qpG+Ar4SKO7LbRcm61PWR5Vx+1Sk8h1acMiWcEH3zkdxhkIXJmiy5u7vD3V13dk1ugYGBSEpKwrFjx9CoUSMAwNGjR5GUlISgoKA8n79kyRIEBASgbt2868GcO3cOaWlp8PZWdsG/fJGoice9qD3m9/EXvX+ZEuLWuONyUIWT2NZfsfsRyamEBSehrH6nMfotPmqx15ODtfzZW8WYperVq6N9+/YYPnw4jhw5giNHjmD48OHo1KmT1ky4atWqYcOGDVrPTU5Oxu+//4533nlH57j//PMPpk+fjqioKNy4cQNbtmzB22+/DX9/fzRt2tTs78vSejeSpnbSgU9aW3yWh7O9/vpL+ur+EFDcSmviNK/C/08yrKaPMscdft6xWoGPoW9xcUeF1J3jZAgrSZaArBlrtWvXRnBwMIKDg1GnTh2sXLlSa59Lly4hKSlJa9vatWshCAL69Omjc0x7e3vs2rUL7dq1Q9WqVTFmzBgEBwdj586dsLVVxkkqpWKORVBdgkHOjnYFP21sTGxGKqanC23rh83grdYdsF7YGGqZM3ZFtvfjVlhgQuufUoQNbogNo/JuLTaJlVy5Ut5sFNoM0a6m+NIzht7CdxZcPspUtmz2t446SwDg5uaGVatWGd1H3zTyESNGYMSIEXr39/X1xb59+ySJz1o01VNUEADa1/TCtnPiZhZmd5cUtFfP180JcQ9f5Ou5eya0hJ+7C67cNV7moTDIz++Dm4s9GpthwLQpP1Yda2f9gJgSvo2NSm9ibB78ASAicaymZYkKLju30TfeyKO4/APWP20vvinb2DpVLBFgPqZ0g7zboqIZI8lSzLGI6DFxVDBvB8i34rs1KMyLffOygsmSVSlhwrIhxnSp64NOdbQHsBf0j6G8kQVPxTRAnZoSjDb/riH3WYeC9f+Pfd3y9Z5M7Zq01lZtU7pP7UyYMSkHhYcnuYqlCrYQrpTrReaXQnvhABTudQwL8VsT7RX7urBu07rWkjsEgz5qW6VAz885gHBki4o4OamtqOcppISTyTNkTFlMs1H5kqL3laIyeF70DfZUWeG1p32RV+vrr1MdnwI9X+znNSiwXIFexxjrO8sKB3N2jSulDl9eXq1vCyvUsHxWAbSu9XxgJ2FzhKHZZXnxsdCA6hJ6ZoaYwlMB3YrGVCglvqbUlC41RO+bs6aVm4s9nO1t4WJvi+ISzmbZ+mEzfPFGdc19ua868/v6nQuYPFgbS/0/KfmiztKKO1nNsGCjutQ1/LfiX9Y138ct7Wo9XehMlhRu8cCGmN2zLmZ0r13gY+XM4OuXzV8V2lql9ZcMMGeNHGPjZAy9am8LdxmY83fIlGKaOafeF7G1wcnJbXFicltJZ7P4uDpJVoYi24Tg/LdM5vfKNKhi3jXeXkWmFJy1OLkzcxM5FLGeWdV/f/AaAP0JjLGlgSrmuPDLq6u3aSXtVvK5VrACRbbCkfYWYmpnO/SoL/3ASqm/c1pUKYXYB8+lPWgBWHqq6w/96qP7QnGLOptT7vdtDV/Wxya2gUex/LVYWksTvhIYWk6mWK6aXM2rlMLOC7orJiiBlK3rUrLGbmgA2D2+BXxcnWCjUuW7WzrnO89rnOKqYY2R/CIddafvAAB4FHOwmvxXwZcQZEkFbRmy5NVoy6rGCxf6ujlb/KvLP58tda+CvE6tvBIlY4X5fhnYID8hvZKCKrpj9TuNcfiz1lrbZ71t3vo+i/oHFPgYH71eBWPaVC5w93xBFbYZbxVKFYWjna3Fxu+pVCo42ltn2mGdUVOBWfOPe87ETF/DghSFN8k4fTXNzKGxn5vRVkIuvmuappXc4ZOrm8WU8XP50b6W+IKNhnz4emWMK+AkEim0MnKhVtbIjGBrx6WImCy9WnL8vlXxLIZNo5viSEgbSQ6tUgHuxfRf9Vnqh7V5lVKaq1hTK4TnpU01D0mPl9uE4Cro2cBwd6v+Kz/zfoGJXeJA3xepe1FxV+AeeVypd6ilf43G3g19MbyZn6juVn7Nm8aSv4t1y1h22SRzmturntwhyOJV6QlnsmRFWlXzQDkTr16KORgellanjCu8JJzd5q3WHRhYx4JfhpM7VddcxXoVF/++xAwuDqwofvo+ACwf2sik/Ue3rgxne2UNIQx/twle/7f2lakcRDbr5zUr09AP9zdv1sHEN8TPEiTx9H3kM9+sI/nr/Pl+U6wZ0UTy48old4tdcA3xfzt9G+ufMOFe1B5fdauF6t7F4V7UtC7IvC52uISJaZgsWRFHO1vsGd/SpOe4usi3AOKCPv5YYWLSIBVTro7b5DMhMKaFAheENVQrxdBsw2pexbF4kHnHBL3X0vxVvg1hz4J4PRv6Sn7Mer6uirtAkJLYiTmnpgTrzHb+uF1VzHq7LsqVdEH/JuWw9cNmJk+CUMr5XdWzGFYNayx3GAXGZMnKiOle8nVTRt9557o+cDWxWKM+RYwMHvfM8QWS+8rO2hT0y+2bHsbLS/QzcPVqakFNKYT2qI09E1oqoio0Sa+wLnCd14gCU5ZsyqavBej9VpXwlonLy1Qs5aJVZy2/9F08FWSdye0fNcdrlfNXpiN3qQE5MVkqZCZ3qoGWBlo1BCvrXZ75Zh2UdnXC/94y3AWgdrbD8qGNsGpYY7Nfpc7ppdxVwQHkWfvI0KwyS1+BTupUAz0b+Bpd388SVMjqii5s8jNjq7XEY/JyL9ht6vABQ8Seqq9X98Clr9pL8pqmENNSWru0q1lee9f4llqJV37/rPUNzQgoJ92EoJyLcdsXsTFabqCMqzIu/AEmS4XO0Nf8tAbcFrT+h1OuH9h2NQs+s0Wsng19ceiz1qjiWQwA8Nq/X8ADA8tr7deiSql8X7mYoru/5RcSDaxg/iuriiJnQwWZOG4rW+6xEcNeEzcwGwDqmrAsTLYxbfSvDbh2RBN09y+tta2wLXliX8QGHxp4/8b8NKDg0/uN2T62OSI+am624wdWKInV72h39ZhaY8zckzhGt6qEIyFtFF9+QN9fpkqlwvnp7fJ8rmeusaL6Zg/a2dpgfNsqGNmiIrzVTgYLHStN4e0wJkk0q+yOHef/K1AnZfP65E41MXxFFEaKXJ1++dBGuPckRdJB6WKZspabVK6Hdvwv8TVTo+CZqcFYuPcfUftW88pfSYb8FpwEAGcjNZYM+ej1yujV0BdNv9mttb1JhZJoUqEkNpy8ne94CitDV/fBNTzRsmrBkwhHO1uUKWHeVoLcrVmmKmKkSrUh7kXt8SI1A96ueZ/jRR2LyPLdJRVDLffO9rZYOawRwg7dwFfdtZe6MVRy4IMcCb2xlm1DM6zlULguq0iHj4g/YmNynsgdanmhST5aOgz9zret4YkzU4PxWQdx/fy2NiqLf9lU8yqGFUMboUF5w3322a0VHWsXrNWtaz3tVg9Tapt0NrJ2kzHmXCAzp/y0EOWXSqWyqjWnlKZGjjErn3esbnCmFgGRIW1wYnLbPCtXAwUvYaGUAdu52dqo0KxyKSwZ3FDvjOi8vPnvQHh9LXvvtaxU4PikwmTJion5gZyaYxV6Y4MTDf0hZr9GWTdn/Ng/QGuAuVuOarpFRHarDA4qj59zNPlb6sc6v8q6OWutt5bbm/XLYM6/9VXy24KSvRBlPV9XDG/mZ8IzBWwe8xqGNvXD9Bz/z8a826JCnvsYSjSqev3XXZdz/JObDAPEzcHY+levggOftMK69wJFd8vqo/RuzW1jm2FKZ+lKTtjZ2hjs7nOTodp4ztax/CQueWlXU/qZw57FHXHxy/Y6M2+/7+uPokZK31iaciIhk70mYqZASZeC9Y+/UdsbpUc5oZKH7heoi0MR7BrfAkVsVJoZa6WKOeDekxSDNT6mivxRt6TsMVH5kTPJFHPl90HrSqifa7BkzqeJ6aroVs8Hp28noWVVDzja2aKmj/g+/8/aV8NP+64ZPXbuMT+bRjfF0WsP8VbAf9PH7WxtsP/jVsgQBDjlUSvJVMVzrFUmReXgCiIHki/o4481x+LwXsuK6P3zkQK/rpK9Xt0TOy/cRdsctYB83Zzh6+aMO4/vmOU1c45T+/P9pvk6RkFPh2pexVG+pAum/XVe5zF7kWOc8rownNe7Hv659wwNy+f6O7dALp5z8LSjnfHEtUwJ05Op0B51UMTmLDafiTf5ucbknnzSqY43OtXJX2u5uTBZIqNUKpXRpVFyX4WuGd4Yc3ZeydcgU3N5rZI76v/bepPb6FaVLFacTaUCxgdXLfBx5vb2hyAI+UokVCoVvIo7IiH5pcFj51anjKveWWPmWt7Bo7gjZr5ZB472tgX6v/l9ZCC2n00Q3ZRf1s3F5GKiSlTdO+/kf27vethzMRGtCjio+dy0dqg5Zbuofe2L2GBOr7pITc80OgZQyuWKhr3mhyUHr4va10VE0m9ro8LIlhWx4/xdg1P7c3enK83G95tiwe4rCOlYXe/jxr5X3Fzs8XX3WpInS7m1NaGgp6Uou82UrE4lj2L4oW/9ArXWSG3VO40xzkCSYupvsTnWIqvsYfpnVZAWl8FNywP4b0HiIUHlUdShCPo3Md/YFH8Txyz1bOiLLiLHYU3ulNWtkruLsWF5N3zRqYbkLV9KF1Au73O0qEMRdK7ro7ebI2d3pFseVaNdDHSTGEqGuvuXMVpba8XQRgh/t+BVvbPXu+tmQuKiUgEheYyf/KhtFbgXdcD+T1oZnHWpdHV9XbF4UMMCdbeaS/iIJvi4XVV0VlirEsCWpUIv56KztkbGZLSt7ollh26gmCNPCWPWDG+CJy/TUG96BICsAeBitc41q2jT6KbYcPI2xr7+33Irhrovq3oVw5nbSZK0go1oVgFNKpTUtEB4FHfEqSnBBTp213o+WHnkpuZ+7nozH7erilLFHMwy5iG4phfOTA02efybUoq3Kk3OrpziRj5TfWN/spOvPo3KQqUCGhmZGJGbSgWj4wMB3anpua17LwhbzsTnu2V7RPMKCN16Ue9jEztWz/P1lapPI1/sOHcXsy20fp17UQfcf5pi0pIvANC4Qkk0tkC5lPzgL2Mhp3a2w8ftslpVjH3xBVVyx6bRTSWpAFuY5B5Eb2ujgquzPf4a/Rr2X7mHQUHlRR3nizeq4+0A7SUj9HVvdarjjb2XEnVm3/3Yvz7m7ryCYa+ZMgBcPxsblc6Vf0GTsAbl3fDtm7XhUdwRviWcUbGU9jghF4cieL9V/me2jGlTGfN3XTH4uCmJ0t8fvIZHz1OZLBWQvvUSw4Y0BJB1PvVrXE7y18z5/dSkghuOXHsIABjyb2tpQLkSBSqgqFKpUL6kM248eP7v/f8mxvRqJP2SL1Kr7FEU0TcfAdBufW5dzRMzuteWZAygGNvHNsOZ20loXll5yz7lF5OlQsTQ4rFif6TMVs3YigqHj329MiLO38WI5hVQ1s3ZYHdC7TJq1M5jkeDGfm44ev0hAsqVwDvN8p6FBmQt7aJv3FCZEs6Y9bayK4ibc+mScW2roEkFN/T95WiBj2XuIngVS7ngn3vPzPoacprRvTYSkl9q6m598UZ1fLX5An7sV1/S75CG5Uvg+I1HBh9fPrQRVkbehJO9LYIlLJYbMa4FKk/cCiBrOaXs8X35qfmVl/YmxP1lt1rosfCw0YW/QzpWx9rjcXofs1SiBAAlizpIUp9LSZgsFSJcRPo/JYuKmwX4lk5rj1qrW6wg1gxvggsJyaiqoPFb1iyoojtmvV1X78xMJSlqxnIYg4PKI+zwDbMdX4zcdZfeaVYB/RqXk3xsWGlXJxyH4WTJoYit6IsQU4ipmSSH+mVL4MrXHYzGZ6gbvyBmvqm93FTucW5ixxZaOyZLhcDsnnUxY8sF/NCvvtyhKEbzyu54t0UF1DAys+b89HZmXU/OxkZl0rR+ypupi4vKQcysqvya2qWmqGSpX+OyWH001mxx5GapQfQFWSqkWD5q9qid7AzOHJWDKYlc7qWq8sOruKPO31wRWxucm9YOqemZeJaabvbK7EqhzBSaRPH6t+hYj/plcHzi60an+L9qVCoVQjpUNzqNV1+ipHYqHAUWST4T2lXVGbMFZNXYMrfsbp2CLEtUXuYFjrP5ueu2IHaq44MhTctjYT4uDE0pmLmgjz8ali+BeX3qabbZmKEbK+eKBFJXne9Ux7vAxzj4aSutQsTZXByKoISL/SuTKAFsWbJKy4Y0xIX4ZDTPsXisJfujC6NZb9fFjfvPDNZjosJPqgVOSxV1wK7xLVH+s81a2809VXtG99roUi+rS+SdZhUQ+/A5Lt19ilNxj006ThXPYvh5QIDs65i926ICnqWma9XcsbVRYUpn8YVtfd3+S0A6GFmOyEYFvNv8vxmcnev6aCZ3/Dq8MRyK2OpNGvJr2ZCG+PPkbXzU9r8u/yqexTCvd70Cz7gLG9IQkf88wFsBZfDZ+jMFOlYRBXRJ9m7oi7XH42Tv7mOyZIVaVfVAq0I2eE5u1tC9Q+axYVQQnqdmKGI1+CFNy2PZoRtG97G1USEjU8DPAwKgdrJDr5+PwM3FXmsskaOdLWa+VRcLdl0xOVkCIOmA6fxytLPF5wYKJ4rl6myP30cG4tj1h0Znkl76yvBYoKCKBVugVx9D3+GmFLRc1D8AX/59Hrcfv9Caot+yqodmcHWvBr44czsJLfIoyZCT0q67p3WtiTfqeKOhCWUozIHJEr2SzDEY/vXsWlUKWs+I8iam+zrnFPKcPu9YDTO2aNfl0dcik71YaF6mdK6plSy5F7XH/aepWvscCWmDf+49RWM/N6hUKhwJaWNwYG9eRSVfBQ3Lu+X5Q6vUQd3GtK/lhfa1vCAYWfTz27fqGHzMWjgUsUUzBZQgsL4zhKxOg/LKG0vVprr0xRGb/lur6sCnrSQ/NilPn0a+GNJUu7Xi0lft9f7wdqrrLbqWVXZl6M51ffDn+011Zp+VKuaAJhVKarrevdSOBgdYvx3gizfrl8G83vVEvbYcsscSFdZZowMDy8FH7Wi20hoqlYrDMCyAl8BkdhVKFcXOcc3hVsBFfa2B2WpVkUX5ubvg+v3/aiWp8F+5sE/aV0XdMq4IqpiVsLSoUgr7Lt8DAIMr0Leq6oG/TolboHZc2yr4oHUlTdJVp7Qav+bzfdgXscF3PZVdn2vT6Kb4ef81fCRRyQ6lmd61FqZ1qcmExsoxWSKLqJSP9c+IlKKaV3Gcj08GAIzKtTDvjB618fHvp3TGxHSs7YUtZxKweGADAMZnYzWp4IYeObrqcrZOvd3AFynpmbKP2TCXal7FMbtnPYu9nhw5CxMl62c13XBff/01goKC4OzsDFdXV1HPEQQBU6dOhY+PD5ycnNCyZUucO3dOa5+UlBR88MEHcHd3h4uLC7p06YJbt26Z4R0QkTW6NqMjFvarjzbVPPDHyECdx0u7OuHX4U10unYX9gvAtRkd8fq/g2/bVPNAs8ruGN2qEhrkWpJj7YhA9GygfzkNWxsVBgWVRw0fwzXDSDyHIrbo08h81eapcLKalqXU1FS8/fbbCAwMxJIlS0Q9Z+bMmZg9ezbCwsJQpUoVfPXVV2jbti0uXbqEYsWyWjrGjh2Lv/76C2vXrkXJkiUxfvx4dOrUCdHR0bC1fbVWKyeiLDkXlLaxUaG8uwuWDG5o8nFyTjcvYmuDlcMaA8i6kBME4JcD19h1K4PQHrWx5pjlinZakzp5LOP0qrKaZGnatGkAgLCwMFH7C4KAuXPnYuLEiejRowcAYPny5fD09MSvv/6Kd999F0lJSViyZAlWrlyJ119/HQCwatUq+Pr6YufOnWjXrp1Z3gsRKdvsnvUwZs1JsxWSzBqUC7zbomLeO5NZSVHpujDpWrc0UtMzUc9XeRNz5GQ13XCmun79OhISEhAcHKzZ5uDggBYtWuDw4cMAgOjoaKSlpWnt4+Pjg1q1amn20SclJQXJyclaN7Iu9lY4VZgsp5JHUWz5sBk61C54FWRSpvARTVCnjBprRjSROxRFsbFRoVfDsqjqxXGmORXaX4yEhAQAgKen9jgCT09PzWMJCQmwt7dHiRIlDO6jT2hoKNRqtebm66t/rAEpz5dda6KCuwtCOlaTOxQiklHjCiWxafRrqOfrKncoZAVkTZamTp2qqRFh6BYVFVWg18g9C0EQhDxnJuS1T0hICJKSkjS3uLi4AsVIljMgsDx2T2j5Sq1pREREBSPrmKXRo0ejd+/eRvcpX758vo7t5ZVVrj8hIQHe3v81pScmJmpam7y8vJCamopHjx5ptS4lJiYiKCjI4LEdHBzg4FD4awYRERGRzMmSu7s73N2lX3cHAPz8/ODl5YWIiAj4+/sDyJpRt2/fPnz77bcAgICAANjZ2SEiIgI9e/YEAMTHx+Ps2bOYOXOmWeIiIiIi62I1s+FiY2Px8OFDxMbGIiMjAzExMQCASpUqoWjRrNW8q1WrhtDQUHTv3h0qlQpjx47FjBkzULlyZVSuXBkzZsyAs7Mz+vbtCwBQq9UYNmwYxo8fj5IlS8LNzQ0TJkxA7dq1NbPjiIiI6NVmNcnS5MmTsXz5cs397NaiPXv2oGXLlgCAS5cuISkpSbPPJ598ghcvXmDUqFF49OgRGjdujB07dmhqLAHAnDlzUKRIEfTs2RMvXrxAmzZtEBYWxhpLREREBABQCcaWLCZRkpOToVarkZSUhOLFWWWXiIjIGoj9/S60pQOIiIiIpMBkiYiIiMgIJktERERERjBZIiIiIjKCyRIRERGREUyWiIiIiIxgskRERERkBJMlIiIiIiOYLBEREREZYTXLnShZdhH05ORkmSMhIiIisbJ/t/NazITJkgSePHkCAPD19ZU5EiIiIjLVkydPoFarDT7OteEkkJmZiTt37qBYsWJQqVSSHTc5ORm+vr6Ii4vjmnMi8PMSj5+VePysxONnJR4/K/HM+VkJgoAnT57Ax8cHNjaGRyaxZUkCNjY2KFOmjNmOX7x4cf4xmYCfl3j8rMTjZyUePyvx+FmJZ67PyliLUjYO8CYiIiIygskSERERkRFMlhTMwcEBU6ZMgYODg9yhWAV+XuLxsxKPn5V4/KzE42clnhI+Kw7wJiIiIjKCLUtERERERjBZIiIiIjKCyRIRERGREUyWiIiIiIxgsqRgCxcuhJ+fHxwdHREQEIADBw7IHZLiTJ06FSqVSuvm5eUld1iKsH//fnTu3Bk+Pj5QqVT4888/tR4XBAFTp06Fj48PnJyc0LJlS5w7d06eYGWW12c1ePBgnfOsSZMm8gQrs9DQUDRs2BDFihWDh4cHunXrhkuXLmntw3Mri5jPiudWlh9//BF16tTRFJ4MDAzE1q1bNY/LfU4xWVKo8PBwjB07FhMnTsTJkyfRrFkzdOjQAbGxsXKHpjg1a9ZEfHy85nbmzBm5Q1KEZ8+eoW7duvj+++/1Pj5z5kzMnj0b33//PY4fPw4vLy+0bdtWs9bhqySvzwoA2rdvr3WebdmyxYIRKse+ffvw/vvv48iRI4iIiEB6ejqCg4Px7NkzzT48t7KI+awAnlsAUKZMGXzzzTeIiopCVFQUWrduja5du2oSItnPKYEUqVGjRsLIkSO1tlWrVk347LPPZIpImaZMmSLUrVtX7jAUD4CwYcMGzf3MzEzBy8tL+OabbzTbXr58KajVamHRokUyRKgcuT8rQRCEQYMGCV27dpUlHqVLTEwUAAj79u0TBIHnljG5PytB4LllTIkSJYTFixcr4pxiy5ICpaamIjo6GsHBwVrbg4ODcfjwYZmiUq4rV67Ax8cHfn5+6N27N65duyZ3SIp3/fp1JCQkaJ1jDg4OaNGiBc8xA/bu3QsPDw9UqVIFw4cPR2JiotwhKUJSUhIAwM3NDQDPLWNyf1bZeG5py8jIwNq1a/Hs2TMEBgYq4pxisqRA9+/fR0ZGBjw9PbW2e3p6IiEhQaaolKlx48ZYsWIFtm/fjl9++QUJCQkICgrCgwcP5A5N0bLPI55j4nTo0AGrV6/G7t278d133+H48eNo3bo1UlJS5A5NVoIgYNy4cXjttddQq1YtADy3DNH3WQE8t3I6c+YMihYtCgcHB4wcORIbNmxAjRo1FHFOFbHIq1C+qFQqrfuCIOhse9V16NBB8+/atWsjMDAQFStWxPLlyzFu3DgZI7MOPMfE6dWrl+bftWrVQoMGDVCuXDls3rwZPXr0kDEyeY0ePRqnT5/GwYMHdR7juaXN0GfFc+s/VatWRUxMDB4/fox169Zh0KBB2Ldvn+ZxOc8ptiwpkLu7O2xtbXUy5sTERJ3MmrS5uLigdu3auHLlityhKFr2jEGeY/nj7e2NcuXKvdLn2QcffIBNmzZhz549KFOmjGY7zy1dhj4rfV7lc8ve3h6VKlVCgwYNEBoairp162LevHmKOKeYLCmQvb09AgICEBERobU9IiICQUFBMkVlHVJSUnDhwgV4e3vLHYqi+fn5wcvLS+scS01Nxb59+3iOifDgwQPExcW9kueZIAgYPXo01q9fj927d8PPz0/rcZ5b/8nrs9LnVT63chMEASkpKco4pywyjJxMtnbtWsHOzk5YsmSJcP78eWHs2LGCi4uLcOPGDblDU5Tx48cLe/fuFa5duyYcOXJE6NSpk1CsWDF+ToIgPHnyRDh58qRw8uRJAYAwe/Zs4eTJk8LNmzcFQRCEb775RlCr1cL69euFM2fOCH369BG8vb2F5ORkmSO3PGOf1ZMnT4Tx48cLhw8fFq5fvy7s2bNHCAwMFEqXLv1KflbvvfeeoFarhb179wrx8fGa2/PnzzX78NzKktdnxXPrPyEhIcL+/fuF69evC6dPnxY+//xzwcbGRtixY4cgCPKfU0yWFOyHH34QypUrJ9jb2wv169fXmm5KWXr16iV4e3sLdnZ2go+Pj9CjRw/h3LlzcoelCHv27BEA6NwGDRokCELWFO8pU6YIXl5egoODg9C8eXPhzJkz8gYtE2Of1fPnz4Xg4GChVKlSgp2dnVC2bFlh0KBBQmxsrNxhy0Lf5wRAWLZsmWYfnltZ8vqseG79Z+jQoZrfu1KlSglt2rTRJEqCIP85pRIEQbBMGxYRERGR9eGYJSIiIiIjmCwRERERGcFkiYiIiMgIJktERERERjBZIiIiIjKCyRIRERGREUyWiIiIiIxgskRERERkBJMlIir0pk6dinr16skdBhFZKVbwJiKrplKpjD4+aNAgfP/990hJSUHJkiUtFJW2mzdvokqVKrh37x6KFy8uSwxElH9F5A6AiKgg4uPjNf8ODw/H5MmTcenSJc02JycnFC1aFEWLFpUjPADAxo0b0bJlSyZKRFaK3XBEZNW8vLw0N7VaDZVKpbMtdzfc4MGD0a1bN8yYMQOenp5wdXXFtGnTkJ6ejo8//hhubm4oU6YMli5dqvVat2/fRq9evVCiRAmULFkSXbt2xY0bN/KMcePGjejSpQsAYO/evWjUqBFcXFzg6uqKpk2b4ubNm1J+JEQkMSZLRPRK2r17N+7cuYP9+/dj9uzZmDp1Kjp16oQSJUrg6NGjGDlyJEaOHIm4uDgAwPPnz9GqVSsULVoU+/fvx8GDB1G0aFG0b98eqampBl/n8ePHOHDgALp06YL09HR069YNLVq0wOnTpxEZGYkRI0bk2ZVIRPJiNxwRvZLc3Nwwf/582NjYoGrVqpg5cyaeP3+Ozz//HAAQEhKCb775BocOHULv3r2xdu1a2NjYYPHixZrkZtmyZXB1dcXevXsRHBys93W2bNmC2rVrw9fXFw8fPkRSUhI6deqEihUrAgCqV69umTdMRPnGZImIXkk1a9aEjc1/jeuenp6oVauW5r6trS1KliyJxMREAEB0dDSuXr2KYsWKaR3n5cuX+Oeffwy+Ts4uODc3NwwePBjt2rVD27Zt8frrr6Nnz57w9vaW8q0RkcTYDUdEryQ7Ozut+yqVSu+2zMxMAEBmZiYCAgIQExOjdbt8+TL69u2r9zXS0tKwbds2dO3aVbNt2bJliIyMRFBQEMLDw1GlShUcOXJE4ndHRFJiyxIRkQj169dHeHg4PDw8RM9q27NnD1xdXXVqPPn7+8Pf3x8hISEIDAzEr7/+iiZNmpghaiKSAluWiIhE6NevH9zd3dG1a1ccOHAA169fx759+/Dhhx/i1q1bep+zadMmTRccAFy/fh0hISGIjIzEzZs3sWPHDly+fJnjlogUji1LREQiODs7Y//+/fj000/Ro0cPPHnyBKVLl0abNm0MtjRt2rRJq/yAs7MzLl68iOXLl+PBgwfw9vbG6NGj8e6771rqbRBRPrCCNxGRGZw4cQKtW7fGvXv3dMZCEZF1YTccEZEZpKenY8GCBUyUiAoBtiwRERERGcGWJSIiIiIjmCwRERERGcFkiYiIiMgIJktERERERjBZIiIiIjKCyRIRERGREUyWiIiIiIxgskRERERkBJMlIiIiIiP+DzaYmG9vZ+kBAAAAAElFTkSuQmCC", 128 | "text/plain": [ 129 | "
" 130 | ] 131 | }, 132 | "metadata": {}, 133 | "output_type": "display_data" 134 | } 135 | ], 136 | "source": [ 137 | "def check(): \n", 138 | " fig, axi = plt.subplots(1,1) # initialize\n", 139 | " ind = random.randint(0, len(labels)-1) # randomly choose one index\n", 140 | " times = [sample/srs[ind] for sample in range(len(data[ind]))] # get time axis \n", 141 | " axi.plot(times, data[ind])\n", 142 | " axi.set_ylabel('Normalized Amplitude')\n", 143 | " axi.set_xlabel('Time /s')\n", 144 | " axi.set(title = \"one example from \" + labels[ind].capitalize())\n", 145 | "\n", 146 | " plt.show()\n", 147 | "\n", 148 | "check()" 149 | ] 150 | }, 151 | { 152 | "cell_type": "markdown", 153 | "metadata": {}, 154 | "source": [ 155 | "Then we need to extract mfccs features from \"data\"" 156 | ] 157 | }, 158 | { 159 | "cell_type": "code", 160 | "execution_count": 164, 161 | "metadata": {}, 162 | "outputs": [], 163 | "source": [ 164 | "def get_mfcc(data, srs, num_mfcc):\n", 165 | " '''\n", 166 | " input: data : array like data structure\n", 167 | " src : sampling rates\n", 168 | " num_mfcc: how many mfcc features you want\n", 169 | "\n", 170 | " return: mfccs\n", 171 | " '''\n", 172 | " mfccs = []\n", 173 | " for i in range(len(data)):\n", 174 | " mfcc = librosa.feature.mfcc(y=data[i], sr=srs[i], n_mfcc=num_mfcc).T\n", 175 | " mfccs.append(mfcc) # every sample we get one array of mfccs and append it.\n", 176 | " \n", 177 | " return mfccs # contains every music's mfcc" 178 | ] 179 | }, 180 | { 181 | "cell_type": "code", 182 | "execution_count": 165, 183 | "metadata": {}, 184 | "outputs": [], 185 | "source": [ 186 | "mfccs = get_mfcc(data, srs, num_mfcc=40)" 187 | ] 188 | }, 189 | { 190 | "cell_type": "markdown", 191 | "metadata": {}, 192 | "source": [ 193 | "Then we need to pad mfccs to make them have the same length" 194 | ] 195 | }, 196 | { 197 | "cell_type": "code", 198 | "execution_count": 166, 199 | "metadata": {}, 200 | "outputs": [], 201 | "source": [ 202 | "max_length = len(max(mfccs, key=len)) # get the max length\n", 203 | "def pad_mfcc(mfccs, max_length):\n", 204 | " 'pads'\n", 205 | " mfccs_padded = []\n", 206 | " for mfcc in mfccs:\n", 207 | " mfcc_padded = np.pad(mfcc, pad_width=[(0,max_length-mfcc[:,0].shape[0]),(0,0)])\n", 208 | " mfccs_padded.append(mfcc_padded)\n", 209 | " return mfccs_padded" 210 | ] 211 | }, 212 | { 213 | "cell_type": "code", 214 | "execution_count": 167, 215 | "metadata": {}, 216 | "outputs": [], 217 | "source": [ 218 | "mfccs_padded = pad_mfcc(mfccs, max_length)" 219 | ] 220 | }, 221 | { 222 | "cell_type": "markdown", 223 | "metadata": {}, 224 | "source": [ 225 | "Next, we put the mfccs_padded into dataloader" 226 | ] 227 | }, 228 | { 229 | "cell_type": "code", 230 | "execution_count": 168, 231 | "metadata": {}, 232 | "outputs": [ 233 | { 234 | "name": "stdout", 235 | "output_type": "stream", 236 | "text": [ 237 | " labels\n", 238 | "0 blues\n", 239 | "1 blues\n", 240 | "2 blues\n", 241 | "3 blues\n", 242 | "4 blues\n", 243 | ".. ...\n", 244 | "994 rock\n", 245 | "995 rock\n", 246 | "996 rock\n", 247 | "997 rock\n", 248 | "998 rock\n", 249 | "\n", 250 | "[999 rows x 1 columns]\n", 251 | " labels\n", 252 | "0 0\n", 253 | "1 0\n", 254 | "2 0\n", 255 | "3 0\n", 256 | "4 0\n", 257 | ".. ...\n", 258 | "994 9\n", 259 | "995 9\n", 260 | "996 9\n", 261 | "997 9\n", 262 | "998 9\n", 263 | "\n", 264 | "[999 rows x 1 columns]\n", 265 | "[0 0 0 0 0 0 0 0 0 0 0 0 0 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", 266 | " 0 0 0 0 0 0 0 0 0 0 0 0 0 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", 267 | " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1\n", 268 | " 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1\n", 269 | " 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1\n", 270 | " 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\n", 271 | " 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\n", 272 | " 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\n", 273 | " 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3\n", 274 | " 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3\n", 275 | " 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4\n", 276 | " 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4\n", 277 | " 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4\n", 278 | " 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5\n", 279 | " 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5\n", 280 | " 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5\n", 281 | " 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6\n", 282 | " 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6\n", 283 | " 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 7 7\n", 284 | " 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7\n", 285 | " 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7\n", 286 | " 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8\n", 287 | " 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8\n", 288 | " 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8\n", 289 | " 8 8 8 8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9\n", 290 | " 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9\n", 291 | " 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9]\n" 292 | ] 293 | } 294 | ], 295 | "source": [ 296 | "# convert data to numpy array\n", 297 | "X = np.asarray(mfccs_padded) \n", 298 | "# Mapping labels \n", 299 | "codes = {\n", 300 | " 'blues':0,\n", 301 | " 'classical':1,\n", 302 | " 'country':2,\n", 303 | " 'disco':3,\n", 304 | " 'hiphop':4,\n", 305 | " 'jazz':5,\n", 306 | " 'metal':6,\n", 307 | " 'pop':7,\n", 308 | " 'reggae':8,\n", 309 | " 'rock':9\n", 310 | "}\n", 311 | "\n", 312 | "df_map = pd.DataFrame (labels, columns = ['labels'])\n", 313 | "print(df_map)\n", 314 | "df_map['labels'] = df_map['labels'].map(codes)\n", 315 | "print(df_map)\n", 316 | "y = df_map['labels'].to_numpy()\n", 317 | "print(y)" 318 | ] 319 | }, 320 | { 321 | "cell_type": "code", 322 | "execution_count": 169, 323 | "metadata": {}, 324 | "outputs": [], 325 | "source": [ 326 | "# To split train_data, valid_data and test_data\n", 327 | "def train_val_test_split(x, y, test_size, val_size, random_state=None, stratify=None):\n", 328 | " x_t, x_test, y_t, y_test = train_test_split(x, y, test_size=test_size, random_state=random_state, stratify=stratify)\n", 329 | " if stratify is not None:\n", 330 | " stratify = y_t\n", 331 | " x_train, x_val, y_train, y_val = train_test_split(x_t, y_t, test_size=val_size, random_state=random_state, stratify=stratify)\n", 332 | " \n", 333 | " return x_train, y_train, x_val, y_val, x_test, y_test\n", 334 | "\n", 335 | "def to_Dataloader(x_train, y_train, x_val, y_val, x_test, y_test, batch_size, test_batch=1,shuffle=True):\n", 336 | " \n", 337 | " train_dataset = TensorDataset(torch.Tensor(x_train),torch.Tensor(y_train).type(torch.LongTensor)) # create train_dataset\n", 338 | " val_dataset = TensorDataset(torch.Tensor(x_val),torch.Tensor(y_val).type(torch.LongTensor)) # create val_dataset\n", 339 | " test_dataset = TensorDataset(torch.Tensor(x_test),torch.Tensor(y_test).type(torch.LongTensor)) # create test_dataset\n", 340 | "\n", 341 | " train_dataloader = DataLoader(train_dataset, batch_size=batch_size, shuffle=shuffle) # create your train_dataloader\n", 342 | " val_dataloader = DataLoader(val_dataset, batch_size=batch_size, shuffle=shuffle) # create your val_dataloader\n", 343 | " test_dataloader = DataLoader(test_dataset, batch_size=test_batch, shuffle=shuffle) # create your test_dataloader\n", 344 | " \n", 345 | " return train_dataloader, val_dataloader, test_dataloader" 346 | ] 347 | }, 348 | { 349 | "cell_type": "code", 350 | "execution_count": 170, 351 | "metadata": {}, 352 | "outputs": [ 353 | { 354 | "name": "stdout", 355 | "output_type": "stream", 356 | "text": [ 357 | "finished\n" 358 | ] 359 | } 360 | ], 361 | "source": [ 362 | "x_train, y_train, x_val, y_val, x_test, y_test = train_val_test_split(X, y, test_size=0.15, val_size=0.15, random_state=42, stratify=y)\n", 363 | "\n", 364 | "train_dataloader, val_dataloader, test_dataloader = to_Dataloader(x_train, y_train, x_val, y_val, x_test, y_test, batch_size=64, test_batch=1,shuffle=True)\n", 365 | "\n", 366 | "print('finished')" 367 | ] 368 | }, 369 | { 370 | "cell_type": "markdown", 371 | "metadata": {}, 372 | "source": [ 373 | "We then define a class called \"early stop \"\n", 374 | "It is from : \"https://github.com/Bjarten/early-stopping-pytorch/blob/master/pytorchtools.py\"" 375 | ] 376 | }, 377 | { 378 | "cell_type": "code", 379 | "execution_count": 171, 380 | "metadata": {}, 381 | "outputs": [], 382 | "source": [ 383 | "class EarlyStopping:\n", 384 | " \"\"\"Early stops the training if validation loss doesn't improve after a given patience.\"\"\"\n", 385 | " def __init__(self, patience=7, verbose=False, delta=0, path='checkpoint.pt', trace_func=print):\n", 386 | " \"\"\"\n", 387 | " Args:\n", 388 | " patience (int): How long to wait after last time validation loss improved.\n", 389 | " Default: 7\n", 390 | " verbose (bool): If True, prints a message for each validation loss improvement. \n", 391 | " Default: False\n", 392 | " delta (float): Minimum change in the monitored quantity to qualify as an improvement.\n", 393 | " Default: 0\n", 394 | " path (str): Path for the checkpoint to be saved to.\n", 395 | " Default: 'checkpoint.pt'\n", 396 | " trace_func (function): trace print function.\n", 397 | " Default: print \n", 398 | " \"\"\"\n", 399 | " self.patience = patience\n", 400 | " self.verbose = verbose\n", 401 | " self.counter = 0\n", 402 | " self.best_score = None\n", 403 | " self.early_stop = False\n", 404 | " self.val_loss_min = np.Inf\n", 405 | " self.delta = delta\n", 406 | " self.path = path\n", 407 | " self.trace_func = trace_func\n", 408 | " def __call__(self, val_loss, model):\n", 409 | "\n", 410 | " score = -val_loss\n", 411 | "\n", 412 | " if self.best_score is None:\n", 413 | " self.best_score = score\n", 414 | " self.save_checkpoint(val_loss, model)\n", 415 | " elif score < self.best_score + self.delta:\n", 416 | " self.counter += 1\n", 417 | " self.trace_func(f'EarlyStopping counter: {self.counter} out of {self.patience}')\n", 418 | " if self.counter >= self.patience:\n", 419 | " self.early_stop = True\n", 420 | " else:\n", 421 | " self.best_score = score\n", 422 | " self.save_checkpoint(val_loss, model)\n", 423 | " self.counter = 0\n", 424 | "\n", 425 | " def save_checkpoint(self, val_loss, model):\n", 426 | " '''Saves model when validation loss decrease.'''\n", 427 | " if self.verbose:\n", 428 | " self.trace_func(f'Validation loss decreased ({self.val_loss_min:.6f} --> {val_loss:.6f}). Saving model ...')\n", 429 | " torch.save(model.state_dict(), self.path)\n", 430 | " self.val_loss_min = val_loss" 431 | ] 432 | }, 433 | { 434 | "cell_type": "markdown", 435 | "metadata": {}, 436 | "source": [ 437 | "After doing all things above, it is time to build our model to train this dataset!" 438 | ] 439 | }, 440 | { 441 | "cell_type": "markdown", 442 | "metadata": {}, 443 | "source": [ 444 | "For the first model, we try to Reproducing GoogleNet:" 445 | ] 446 | }, 447 | { 448 | "cell_type": "code", 449 | "execution_count": 172, 450 | "metadata": {}, 451 | "outputs": [], 452 | "source": [ 453 | "# A class to define the Inception\n", 454 | "class Inception(nn.Module):\n", 455 | " def __init__(self, in_channels, c1, c2, c3, c4, **kwargs):\n", 456 | " super(Inception, self).__init__(**kwargs)\n", 457 | " self.p1_1 = nn.Conv2d(in_channels, c1, kernel_size=1)\n", 458 | " #1X1 kernel\n", 459 | " self.p2_1 = nn.Conv2d(in_channels, c2[0], kernel_size=1)\n", 460 | " self.p2_2 = nn.Conv2d(c2[0], c2[1], kernel_size=3, padding=1)\n", 461 | " #1X1,3X3 kernel\n", 462 | " self.p3_1 = nn.Conv2d(in_channels, c3[0], kernel_size=1)\n", 463 | " self.p3_2 = nn.Conv2d(c3[0], c3[1], kernel_size=5, padding=2)\n", 464 | " #1X1,5X5 kernel\n", 465 | " self.p4_1 = nn.MaxPool2d(kernel_size=3, stride=1, padding=1)\n", 466 | " self.p4_2 = nn.Conv2d(in_channels, c4, kernel_size=1)\n", 467 | " #maxpool, 1x1 kernel\n", 468 | " def forward(self, x):\n", 469 | " p1 = F.relu(self.p1_1(x))\n", 470 | " p2 = F.relu(self.p2_2(F.relu(self.p2_1(x))))\n", 471 | " p3 = F.relu(self.p3_2(F.relu(self.p3_1(x))))\n", 472 | " p4 = F.relu(self.p4_2(self.p4_1(x)))\n", 473 | " # Sequentialize\n", 474 | " return torch.cat((p1, p2, p3, p4), dim=1)\n", 475 | " \n", 476 | "\n", 477 | "class GoogleNet(nn.Module):\n", 478 | " def __init__(self):\n", 479 | " super(GoogleNet, self).__init__()\n", 480 | " self.num_conv_layers = 5\n", 481 | " b1 = nn.Sequential(nn.Conv2d(1, 64, kernel_size=7, stride=2, padding=3),\n", 482 | " nn.ReLU(),\n", 483 | " nn.MaxPool2d(kernel_size=3, stride=2, padding=1))\n", 484 | "\n", 485 | " b2 = nn.Sequential(nn.Conv2d(64, 64, kernel_size=1),\n", 486 | " nn.ReLU(),\n", 487 | " nn.Conv2d(64, 192, kernel_size=3, padding=1),\n", 488 | " nn.ReLU(),\n", 489 | " nn.MaxPool2d(kernel_size=3, stride=2, padding=1))\n", 490 | "\n", 491 | " b3 = nn.Sequential(Inception(192, 64, (96, 128), (16, 32), 32),\n", 492 | " Inception(256, 128, (128, 192), (32, 96), 64),\n", 493 | " nn.MaxPool2d(kernel_size=3, stride=2, padding=1))\n", 494 | "\n", 495 | " b4 = nn.Sequential(Inception(480, 192, (96, 208), (16, 48), 64),\n", 496 | " Inception(512, 160, (112, 224), (24, 64), 64),\n", 497 | " Inception(512, 128, (128, 256), (24, 64), 64),\n", 498 | " Inception(512, 112, (144, 288), (32, 64), 64),\n", 499 | " Inception(528, 256, (160, 320), (32, 128), 128),\n", 500 | " nn.MaxPool2d(kernel_size=3, stride=2, padding=1))\n", 501 | "\n", 502 | " b5 = nn.Sequential(Inception(832, 256, (160, 320), (32, 128), 128),\n", 503 | " Inception(832, 384, (192, 384), (48, 128), 128),\n", 504 | " nn.AdaptiveAvgPool2d((1,1)),\n", 505 | " nn.Flatten())\n", 506 | " #seq = [b1, b2, b3, b4, b5]\n", 507 | " self.fitter = nn.Sequential(b1, b2, b3, b4, b5, nn.Linear(1024, 10))\n", 508 | "\n", 509 | " def forward(self, x):\n", 510 | "\n", 511 | " x = x.transpose(1,2)\n", 512 | " x.unsqueeze_(1)\n", 513 | " out = self.fitter(x)\n", 514 | " return out" 515 | ] 516 | }, 517 | { 518 | "cell_type": "code", 519 | "execution_count": 173, 520 | "metadata": {}, 521 | "outputs": [], 522 | "source": [ 523 | "# Then we wanna define a resnet\n", 524 | "class MusicGenreModel(nn.Module):\n", 525 | " def __init__(self, classes=10):\n", 526 | " super().__init__()\n", 527 | "\n", 528 | " self.classes = classes\n", 529 | " self.linear1 = nn.Linear(20, 200)\n", 530 | " self.linear2 = nn.Linear(200, 100)\n", 531 | " self.output = nn.Linear(100, self.classes)\n", 532 | "\n", 533 | " def forward(self, x):\n", 534 | " x = x.view(x.size(0), -1)\n", 535 | " x = self.linear1(x)\n", 536 | " x = torch.relu_(x)\n", 537 | " x = self.linear2(x)\n", 538 | " x = torch.relu_(x)\n", 539 | " \n", 540 | " return F.softmax(self.output(x), dim=1)\n" 541 | ] 542 | }, 543 | { 544 | "cell_type": "code", 545 | "execution_count": 174, 546 | "metadata": {}, 547 | "outputs": [ 548 | { 549 | "name": "stdout", 550 | "output_type": "stream", 551 | "text": [ 552 | "cuda\n" 553 | ] 554 | } 555 | ], 556 | "source": [ 557 | "# check the device\n", 558 | "device = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")\n", 559 | "print(device)" 560 | ] 561 | }, 562 | { 563 | "cell_type": "markdown", 564 | "metadata": {}, 565 | "source": [ 566 | "Build functions which used for training and predicting" 567 | ] 568 | }, 569 | { 570 | "cell_type": "code", 571 | "execution_count": 175, 572 | "metadata": {}, 573 | "outputs": [], 574 | "source": [ 575 | "def training_loop(model, train_dataloader, optimizer, device=device):\n", 576 | "\n", 577 | " model.train() # Sets model to train mode\n", 578 | " batch_losses = []\n", 579 | "\n", 580 | " for x_batch, y_batch in train_dataloader:\n", 581 | " # Move batches to device\n", 582 | " x_batch, y_batch = x_batch.to(device), y_batch.to(device)\n", 583 | " \n", 584 | " # Clear gradients\n", 585 | " optimizer.zero_grad()\n", 586 | "\n", 587 | " yhat = model(x_batch) #predictions on x\n", 588 | " \n", 589 | " # Forward pass\n", 590 | " loss = loss_function(yhat, y_batch)\n", 591 | " \n", 592 | " # Backward and optimize\n", 593 | " loss.backward()\n", 594 | "\n", 595 | " # Update parameters\n", 596 | " optimizer.step()\n", 597 | "\n", 598 | " batch_losses.append(loss.data.item())\n", 599 | "\n", 600 | " train_loss = np.mean(batch_losses)\n", 601 | "\n", 602 | " return train_loss # Return train_loss and anything else you need\n", 603 | "\n", 604 | "def validation_loop(model, val_dataloader, device=device):\n", 605 | "\n", 606 | " model.eval() # Sets model to val mode\n", 607 | "\n", 608 | " batch_losses = []\n", 609 | "\n", 610 | " for x_batch, y_batch in val_dataloader:\n", 611 | "\n", 612 | " x_batch, y_batch = x_batch.to(device), y_batch.to(device)\n", 613 | " \n", 614 | " yhat = model(x_batch) #predictions on x\n", 615 | " \n", 616 | " loss = loss_function(yhat, y_batch)\n", 617 | "\n", 618 | " batch_losses.append(loss.data.item())\n", 619 | "\n", 620 | " val_loss = np.mean(batch_losses)\n", 621 | "\n", 622 | " return val_loss\n", 623 | "\n", 624 | "def train(model, train_dataloader, val_dataloader, optimizer, epochs, device=\"cuda\", patience = None, temp=100):\n", 625 | "\n", 626 | " train_losses = []\n", 627 | " val_losses = []\n", 628 | "\n", 629 | " print(f\"Initiating training.\")\n", 630 | " \n", 631 | " # Check if early stop is enabled:\n", 632 | " if patience is not None:\n", 633 | " # Initialize EarlyStopping\n", 634 | " early_stopping = EarlyStopping(patience=patience, verbose=False, path='checkpoint.pt')\n", 635 | "\n", 636 | " for epoch in range(epochs):\n", 637 | " # Training loop\n", 638 | "\n", 639 | " train_loss = training_loop(model, train_dataloader, optimizer, device)\n", 640 | " train_losses.append(train_loss)\n", 641 | "\n", 642 | " # Validation loop\n", 643 | " with torch.no_grad():\n", 644 | "\n", 645 | " val_loss = validation_loop(model, val_dataloader, device)\n", 646 | " val_losses.append(val_loss)\n", 647 | "\n", 648 | " if patience != -1:\n", 649 | " early_stopping(val_loss, model)\n", 650 | "\n", 651 | " if early_stopping.early_stop:\n", 652 | " print(\"Early stop. Going back to the last checkpoint.\")\n", 653 | " break\n", 654 | "\n", 655 | " if epoch % temp == 0:\n", 656 | " print(f\"[{epoch}/{epochs}] Training loss: {train_loss:.4f}\\t Validation loss: {val_loss:.4f}.\")\n", 657 | "\n", 658 | " if patience != None and early_stopping.early_stop == True:\n", 659 | " print('Loading model from checkpoint...')\n", 660 | " model.load_state_dict(torch.load('checkpoint.pt'))\n", 661 | " print('Checkpoint loaded.')\n", 662 | "\n", 663 | " print(\"training finished.\")\n", 664 | " \n", 665 | " # visualize the loss as the network trained\n", 666 | " fig = plt.figure(figsize=(10, 8))\n", 667 | " plt.plot(range(1, len(train_losses) + 1), train_losses, label='Training Loss')\n", 668 | " plt.plot(range(1, len(val_losses) + 1), val_losses, label='Validation Loss')\n", 669 | "\n", 670 | " # find position of lowest validation loss\n", 671 | " minposs = val_losses.index(min(val_losses)) + 1\n", 672 | " plt.axvline(minposs, linestyle='--', color='r', label='Early Stopping Checkpoint')\n", 673 | "\n", 674 | " plt.xlabel('epochs')\n", 675 | " plt.ylabel('loss')\n", 676 | " plt.ylim(0, max(val_losses + train_losses)) # consistent scale\n", 677 | " plt.xlim(0, len(train_losses) + 1) # consistent scale\n", 678 | " plt.grid(True)\n", 679 | " plt.legend()\n", 680 | " plt.tight_layout()\n", 681 | " plt.title('Validation and Training Loss of CNN')\n", 682 | " plt.show()\n", 683 | "\n", 684 | " return model\n", 685 | "\n", 686 | "\n", 687 | "def predict(model, test_loader, n_features, loss_function, device=device):\n", 688 | " # Make predictions using model\n", 689 | " preds = []\n", 690 | " true_values = []\n", 691 | " loss = 0\n", 692 | " model.eval() # prep model for evaluation\n", 693 | " \n", 694 | " with torch.no_grad():\n", 695 | " for x_batch, y_batch in test_loader:\n", 696 | " # move to device\n", 697 | " x_batch, y_batch = x_batch.to(device), y_batch.to(device)\n", 698 | "\n", 699 | " # Make predictions\n", 700 | " pred = model(x_batch)\n", 701 | " \n", 702 | " preds.append(np.argmax(pred.cpu().numpy(), axis=1)[0])\n", 703 | " true_values.append(y_batch.cpu().numpy()[0])\n", 704 | " loss += loss_function(pred, y_batch)\n", 705 | "\n", 706 | " #Calculate Accuracy\n", 707 | " accuracy = sum(np.array(preds) == np.array(true_values))/len(true_values)\n", 708 | " \n", 709 | " return preds, true_values, accuracy" 710 | ] 711 | }, 712 | { 713 | "cell_type": "markdown", 714 | "metadata": {}, 715 | "source": [ 716 | "Initialize the model" 717 | ] 718 | }, 719 | { 720 | "cell_type": "code", 721 | "execution_count": 176, 722 | "metadata": {}, 723 | "outputs": [ 724 | { 725 | "data": { 726 | "text/plain": [ 727 | "GoogleNet(\n", 728 | " (fitter): Sequential(\n", 729 | " (0): Sequential(\n", 730 | " (0): Conv2d(1, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3))\n", 731 | " (1): ReLU()\n", 732 | " (2): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)\n", 733 | " )\n", 734 | " (1): Sequential(\n", 735 | " (0): Conv2d(64, 64, kernel_size=(1, 1), stride=(1, 1))\n", 736 | " (1): ReLU()\n", 737 | " (2): Conv2d(64, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n", 738 | " (3): ReLU()\n", 739 | " (4): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)\n", 740 | " )\n", 741 | " (2): Sequential(\n", 742 | " (0): Inception(\n", 743 | " (p1_1): Conv2d(192, 64, kernel_size=(1, 1), stride=(1, 1))\n", 744 | " (p2_1): Conv2d(192, 96, kernel_size=(1, 1), stride=(1, 1))\n", 745 | " (p2_2): Conv2d(96, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n", 746 | " (p3_1): Conv2d(192, 16, kernel_size=(1, 1), stride=(1, 1))\n", 747 | " (p3_2): Conv2d(16, 32, kernel_size=(5, 5), stride=(1, 1), padding=(2, 2))\n", 748 | " (p4_1): MaxPool2d(kernel_size=3, stride=1, padding=1, dilation=1, ceil_mode=False)\n", 749 | " (p4_2): Conv2d(192, 32, kernel_size=(1, 1), stride=(1, 1))\n", 750 | " )\n", 751 | " (1): Inception(\n", 752 | " (p1_1): Conv2d(256, 128, kernel_size=(1, 1), stride=(1, 1))\n", 753 | " (p2_1): Conv2d(256, 128, kernel_size=(1, 1), stride=(1, 1))\n", 754 | " (p2_2): Conv2d(128, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n", 755 | " (p3_1): Conv2d(256, 32, kernel_size=(1, 1), stride=(1, 1))\n", 756 | " (p3_2): Conv2d(32, 96, kernel_size=(5, 5), stride=(1, 1), padding=(2, 2))\n", 757 | " (p4_1): MaxPool2d(kernel_size=3, stride=1, padding=1, dilation=1, ceil_mode=False)\n", 758 | " (p4_2): Conv2d(256, 64, kernel_size=(1, 1), stride=(1, 1))\n", 759 | " )\n", 760 | " (2): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)\n", 761 | " )\n", 762 | " (3): Sequential(\n", 763 | " (0): Inception(\n", 764 | " (p1_1): Conv2d(480, 192, kernel_size=(1, 1), stride=(1, 1))\n", 765 | " (p2_1): Conv2d(480, 96, kernel_size=(1, 1), stride=(1, 1))\n", 766 | " (p2_2): Conv2d(96, 208, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n", 767 | " (p3_1): Conv2d(480, 16, kernel_size=(1, 1), stride=(1, 1))\n", 768 | " (p3_2): Conv2d(16, 48, kernel_size=(5, 5), stride=(1, 1), padding=(2, 2))\n", 769 | " (p4_1): MaxPool2d(kernel_size=3, stride=1, padding=1, dilation=1, ceil_mode=False)\n", 770 | " (p4_2): Conv2d(480, 64, kernel_size=(1, 1), stride=(1, 1))\n", 771 | " )\n", 772 | " (1): Inception(\n", 773 | " (p1_1): Conv2d(512, 160, kernel_size=(1, 1), stride=(1, 1))\n", 774 | " (p2_1): Conv2d(512, 112, kernel_size=(1, 1), stride=(1, 1))\n", 775 | " (p2_2): Conv2d(112, 224, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n", 776 | " (p3_1): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))\n", 777 | " (p3_2): Conv2d(24, 64, kernel_size=(5, 5), stride=(1, 1), padding=(2, 2))\n", 778 | " (p4_1): MaxPool2d(kernel_size=3, stride=1, padding=1, dilation=1, ceil_mode=False)\n", 779 | " (p4_2): Conv2d(512, 64, kernel_size=(1, 1), stride=(1, 1))\n", 780 | " )\n", 781 | " (2): Inception(\n", 782 | " (p1_1): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1))\n", 783 | " (p2_1): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1))\n", 784 | " (p2_2): Conv2d(128, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n", 785 | " (p3_1): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))\n", 786 | " (p3_2): Conv2d(24, 64, kernel_size=(5, 5), stride=(1, 1), padding=(2, 2))\n", 787 | " (p4_1): MaxPool2d(kernel_size=3, stride=1, padding=1, dilation=1, ceil_mode=False)\n", 788 | " (p4_2): Conv2d(512, 64, kernel_size=(1, 1), stride=(1, 1))\n", 789 | " )\n", 790 | " (3): Inception(\n", 791 | " (p1_1): Conv2d(512, 112, kernel_size=(1, 1), stride=(1, 1))\n", 792 | " (p2_1): Conv2d(512, 144, kernel_size=(1, 1), stride=(1, 1))\n", 793 | " (p2_2): Conv2d(144, 288, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n", 794 | " (p3_1): Conv2d(512, 32, kernel_size=(1, 1), stride=(1, 1))\n", 795 | " (p3_2): Conv2d(32, 64, kernel_size=(5, 5), stride=(1, 1), padding=(2, 2))\n", 796 | " (p4_1): MaxPool2d(kernel_size=3, stride=1, padding=1, dilation=1, ceil_mode=False)\n", 797 | " (p4_2): Conv2d(512, 64, kernel_size=(1, 1), stride=(1, 1))\n", 798 | " )\n", 799 | " (4): Inception(\n", 800 | " (p1_1): Conv2d(528, 256, kernel_size=(1, 1), stride=(1, 1))\n", 801 | " (p2_1): Conv2d(528, 160, kernel_size=(1, 1), stride=(1, 1))\n", 802 | " (p2_2): Conv2d(160, 320, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n", 803 | " (p3_1): Conv2d(528, 32, kernel_size=(1, 1), stride=(1, 1))\n", 804 | " (p3_2): Conv2d(32, 128, kernel_size=(5, 5), stride=(1, 1), padding=(2, 2))\n", 805 | " (p4_1): MaxPool2d(kernel_size=3, stride=1, padding=1, dilation=1, ceil_mode=False)\n", 806 | " (p4_2): Conv2d(528, 128, kernel_size=(1, 1), stride=(1, 1))\n", 807 | " )\n", 808 | " (5): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)\n", 809 | " )\n", 810 | " (4): Sequential(\n", 811 | " (0): Inception(\n", 812 | " (p1_1): Conv2d(832, 256, kernel_size=(1, 1), stride=(1, 1))\n", 813 | " (p2_1): Conv2d(832, 160, kernel_size=(1, 1), stride=(1, 1))\n", 814 | " (p2_2): Conv2d(160, 320, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n", 815 | " (p3_1): Conv2d(832, 32, kernel_size=(1, 1), stride=(1, 1))\n", 816 | " (p3_2): Conv2d(32, 128, kernel_size=(5, 5), stride=(1, 1), padding=(2, 2))\n", 817 | " (p4_1): MaxPool2d(kernel_size=3, stride=1, padding=1, dilation=1, ceil_mode=False)\n", 818 | " (p4_2): Conv2d(832, 128, kernel_size=(1, 1), stride=(1, 1))\n", 819 | " )\n", 820 | " (1): Inception(\n", 821 | " (p1_1): Conv2d(832, 384, kernel_size=(1, 1), stride=(1, 1))\n", 822 | " (p2_1): Conv2d(832, 192, kernel_size=(1, 1), stride=(1, 1))\n", 823 | " (p2_2): Conv2d(192, 384, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n", 824 | " (p3_1): Conv2d(832, 48, kernel_size=(1, 1), stride=(1, 1))\n", 825 | " (p3_2): Conv2d(48, 128, kernel_size=(5, 5), stride=(1, 1), padding=(2, 2))\n", 826 | " (p4_1): MaxPool2d(kernel_size=3, stride=1, padding=1, dilation=1, ceil_mode=False)\n", 827 | " (p4_2): Conv2d(832, 128, kernel_size=(1, 1), stride=(1, 1))\n", 828 | " )\n", 829 | " (2): AdaptiveAvgPool2d(output_size=(1, 1))\n", 830 | " (3): Flatten(start_dim=1, end_dim=-1)\n", 831 | " )\n", 832 | " (5): Linear(in_features=1024, out_features=10, bias=True)\n", 833 | " )\n", 834 | ")" 835 | ] 836 | }, 837 | "execution_count": 176, 838 | "metadata": {}, 839 | "output_type": "execute_result" 840 | } 841 | ], 842 | "source": [ 843 | "model = GoogleNet()\n", 844 | "model.to(device)" 845 | ] 846 | }, 847 | { 848 | "cell_type": "code", 849 | "execution_count": 177, 850 | "metadata": {}, 851 | "outputs": [], 852 | "source": [ 853 | "learning_rate = 0.0001\n", 854 | "weight_decay = 1e-4\n", 855 | "\n", 856 | "\n", 857 | "loss_function = nn.CrossEntropyLoss()\n", 858 | "optimizer = torch.optim.Adam(model.parameters(), lr = learning_rate, weight_decay = weight_decay)" 859 | ] 860 | }, 861 | { 862 | "cell_type": "code", 863 | "execution_count": 178, 864 | "metadata": {}, 865 | "outputs": [ 866 | { 867 | "name": "stdout", 868 | "output_type": "stream", 869 | "text": [ 870 | "Initiating training.\n", 871 | "[0/1000] Training loss: 2.3035\t Validation loss: 2.3023.\n", 872 | "[5/1000] Training loss: 2.1136\t Validation loss: 2.0317.\n", 873 | "EarlyStopping counter: 1 out of 15\n", 874 | "EarlyStopping counter: 2 out of 15\n", 875 | "[10/1000] Training loss: 1.8832\t Validation loss: 1.9136.\n", 876 | "EarlyStopping counter: 1 out of 15\n", 877 | "EarlyStopping counter: 1 out of 15\n", 878 | "[15/1000] Training loss: 1.7949\t Validation loss: 1.9552.\n", 879 | "EarlyStopping counter: 2 out of 15\n", 880 | "EarlyStopping counter: 3 out of 15\n", 881 | "EarlyStopping counter: 1 out of 15\n", 882 | "[20/1000] Training loss: 1.6279\t Validation loss: 1.8498.\n", 883 | "EarlyStopping counter: 2 out of 15\n", 884 | "EarlyStopping counter: 3 out of 15\n", 885 | "EarlyStopping counter: 4 out of 15\n", 886 | "EarlyStopping counter: 1 out of 15\n", 887 | "[25/1000] Training loss: 1.5665\t Validation loss: 1.7585.\n", 888 | "EarlyStopping counter: 2 out of 15\n", 889 | "EarlyStopping counter: 1 out of 15\n", 890 | "[30/1000] Training loss: 1.5914\t Validation loss: 1.6470.\n", 891 | "EarlyStopping counter: 1 out of 15\n", 892 | "EarlyStopping counter: 2 out of 15\n", 893 | "EarlyStopping counter: 3 out of 15\n", 894 | "[35/1000] Training loss: 1.4190\t Validation loss: 1.6658.\n", 895 | "EarlyStopping counter: 4 out of 15\n", 896 | "EarlyStopping counter: 5 out of 15\n", 897 | "EarlyStopping counter: 1 out of 15\n", 898 | "[40/1000] Training loss: 1.4399\t Validation loss: 1.6641.\n", 899 | "EarlyStopping counter: 1 out of 15\n", 900 | "EarlyStopping counter: 2 out of 15\n", 901 | "EarlyStopping counter: 3 out of 15\n", 902 | "[45/1000] Training loss: 1.3014\t Validation loss: 1.6467.\n", 903 | "EarlyStopping counter: 4 out of 15\n", 904 | "EarlyStopping counter: 5 out of 15\n", 905 | "EarlyStopping counter: 6 out of 15\n", 906 | "EarlyStopping counter: 7 out of 15\n", 907 | "EarlyStopping counter: 8 out of 15\n", 908 | "[50/1000] Training loss: 1.2805\t Validation loss: 1.5588.\n", 909 | "EarlyStopping counter: 9 out of 15\n", 910 | "EarlyStopping counter: 1 out of 15\n", 911 | "[55/1000] Training loss: 1.2732\t Validation loss: 1.6181.\n", 912 | "EarlyStopping counter: 2 out of 15\n", 913 | "EarlyStopping counter: 3 out of 15\n", 914 | "EarlyStopping counter: 4 out of 15\n", 915 | "[60/1000] Training loss: 1.1238\t Validation loss: 1.3764.\n", 916 | "EarlyStopping counter: 1 out of 15\n", 917 | "EarlyStopping counter: 2 out of 15\n", 918 | "EarlyStopping counter: 3 out of 15\n", 919 | "EarlyStopping counter: 1 out of 15\n", 920 | "[65/1000] Training loss: 1.0934\t Validation loss: 1.4616.\n", 921 | "EarlyStopping counter: 2 out of 15\n", 922 | "EarlyStopping counter: 3 out of 15\n", 923 | "EarlyStopping counter: 4 out of 15\n", 924 | "EarlyStopping counter: 5 out of 15\n", 925 | "EarlyStopping counter: 6 out of 15\n", 926 | "[70/1000] Training loss: 1.2725\t Validation loss: 1.3733.\n", 927 | "EarlyStopping counter: 1 out of 15\n", 928 | "EarlyStopping counter: 2 out of 15\n", 929 | "EarlyStopping counter: 1 out of 15\n", 930 | "[75/1000] Training loss: 1.0698\t Validation loss: 1.2997.\n", 931 | "EarlyStopping counter: 2 out of 15\n", 932 | "EarlyStopping counter: 3 out of 15\n", 933 | "EarlyStopping counter: 4 out of 15\n", 934 | "EarlyStopping counter: 5 out of 15\n", 935 | "EarlyStopping counter: 6 out of 15\n", 936 | "[80/1000] Training loss: 0.9480\t Validation loss: 1.4509.\n", 937 | "EarlyStopping counter: 1 out of 15\n", 938 | "EarlyStopping counter: 1 out of 15\n", 939 | "EarlyStopping counter: 2 out of 15\n", 940 | "[85/1000] Training loss: 0.9552\t Validation loss: 1.8327.\n", 941 | "EarlyStopping counter: 3 out of 15\n", 942 | "EarlyStopping counter: 4 out of 15\n", 943 | "EarlyStopping counter: 5 out of 15\n", 944 | "EarlyStopping counter: 6 out of 15\n", 945 | "EarlyStopping counter: 7 out of 15\n", 946 | "[90/1000] Training loss: 0.8089\t Validation loss: 1.3086.\n", 947 | "EarlyStopping counter: 8 out of 15\n", 948 | "EarlyStopping counter: 9 out of 15\n", 949 | "EarlyStopping counter: 10 out of 15\n", 950 | "EarlyStopping counter: 1 out of 15\n", 951 | "[95/1000] Training loss: 0.9292\t Validation loss: 1.2831.\n", 952 | "EarlyStopping counter: 2 out of 15\n", 953 | "EarlyStopping counter: 3 out of 15\n", 954 | "EarlyStopping counter: 4 out of 15\n", 955 | "EarlyStopping counter: 5 out of 15\n", 956 | "[100/1000] Training loss: 0.7520\t Validation loss: 1.1526.\n", 957 | "EarlyStopping counter: 1 out of 15\n", 958 | "EarlyStopping counter: 2 out of 15\n", 959 | "EarlyStopping counter: 3 out of 15\n", 960 | "EarlyStopping counter: 1 out of 15\n", 961 | "[105/1000] Training loss: 0.6597\t Validation loss: 1.3155.\n", 962 | "EarlyStopping counter: 1 out of 15\n", 963 | "EarlyStopping counter: 2 out of 15\n", 964 | "EarlyStopping counter: 1 out of 15\n", 965 | "[110/1000] Training loss: 0.6098\t Validation loss: 1.2427.\n", 966 | "EarlyStopping counter: 2 out of 15\n", 967 | "EarlyStopping counter: 1 out of 15\n", 968 | "EarlyStopping counter: 2 out of 15\n", 969 | "EarlyStopping counter: 3 out of 15\n", 970 | "[115/1000] Training loss: 0.8273\t Validation loss: 1.1345.\n", 971 | "EarlyStopping counter: 4 out of 15\n", 972 | "EarlyStopping counter: 5 out of 15\n", 973 | "EarlyStopping counter: 6 out of 15\n", 974 | "EarlyStopping counter: 1 out of 15\n", 975 | "[120/1000] Training loss: 0.6367\t Validation loss: 1.3711.\n", 976 | "EarlyStopping counter: 2 out of 15\n", 977 | "EarlyStopping counter: 3 out of 15\n", 978 | "EarlyStopping counter: 4 out of 15\n", 979 | "EarlyStopping counter: 5 out of 15\n", 980 | "EarlyStopping counter: 6 out of 15\n", 981 | "[125/1000] Training loss: 0.4742\t Validation loss: 1.1495.\n", 982 | "EarlyStopping counter: 7 out of 15\n", 983 | "EarlyStopping counter: 8 out of 15\n", 984 | "EarlyStopping counter: 9 out of 15\n", 985 | "EarlyStopping counter: 10 out of 15\n", 986 | "EarlyStopping counter: 11 out of 15\n", 987 | "[130/1000] Training loss: 0.7824\t Validation loss: 1.1804.\n", 988 | "EarlyStopping counter: 12 out of 15\n", 989 | "EarlyStopping counter: 13 out of 15\n", 990 | "EarlyStopping counter: 14 out of 15\n", 991 | "EarlyStopping counter: 15 out of 15\n", 992 | "Early stop. Going back to the last checkpoint.\n", 993 | "Loading model from checkpoint...\n", 994 | "Checkpoint loaded.\n", 995 | "training finished.\n" 996 | ] 997 | }, 998 | { 999 | "data": { 1000 | "image/png": "iVBORw0KGgoAAAANSUhEUgAAA90AAAMqCAYAAACfWSInAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdd3ib5dXH8a+WZ2wnsWNn770nYSchYUPL3rPQlgJdtNBSoEChUEb7AoVCW/beq+xABishJCSB7L3jxBmOty1Zev+49UhesmVbsiTn97muXHqsecdRbJ3nnPscm8/n8yEiIiIiIiIiEWeP9QJERERERERE2isF3SIiIiIiIiJRoqBbREREREREJEoUdIuIiIiIiIhEiYJuERERERERkShR0C0iIiIiIiISJQq6RURERERERKJEQbeIiIiIiIhIlCjoFhEREREREYkSBd0iIu3I6aefTmpqKoWFhSHvc+GFF+Jyudi1a1fYz2uz2bjtttsCX8+ZMwebzcacOXOafOxll11G3759w36tmv71r3/x9NNP17t+06ZN2Gy2Bm9rT/r27ctll10W8vbLLrsMm83W5J/GniMcrf1+N/X3iKa+fftyyimnxOS1o2Hfvn2cd9555ObmYrPZOO200xq9v9fr5bnnnmPGjBnk5OTgcrnIzc3llFNO4X//+x9erxcI/hvbbDZefvnles9z2223YbPZ2LNnT+A66/03YsQIqqur6z3GZrNx7bXXtu4vLCLSDjhjvQAREYmcK664grfffpsXX3yRq6++ut7tBw4c4K233uKUU04hLy+vxa8zfvx45s2bx/Dhw1uz3Cb961//Iicnp17A1q1bN+bNm8eAAQOi+vrx7pZbbuGqq64KfP3dd99xzTXXcNdddzFt2rTA9V26dGnV67T2+/3WW2+RmZnZqjWIcccdd/DWW2/x5JNPMmDAADp37hzyvhUVFZx22ml88sknnHfeeTz66KN07dqVgoICPvroI84++2xeeeUVfvzjH9d63E033cSZZ56Jy+UKa00rVqzg6aef5oorrmjV301EpL1S0C0i0o6ceOKJdO/enSeffLLBoPull16ivLy81R+OMzMzOfTQQ1v1HK2RnJwc09ePFwMGDKgVCFdUVAAwaNCgRr8/5eXlpKSkYLPZwnqd1n6/x40b1+LHSm3Lli1jwIABXHjhhU3e97rrruPjjz/mmWee4ZJLLql12xlnnMH1119PeXl5retPPPFEPvzwQx577DF++ctfNvka6enpjB8/nltvvZULLriA1NTU5v2FREQOAiovFxFpRxwOB5deeimLFi3ihx9+qHf7U089Rbdu3TjxxBMpKCjg6quvZvjw4XTo0IHc3FyOOeYYvvjiiyZfJ1R5+dNPP82QIUNITk5m2LBhPPvssw0+/vbbb2fy5Ml07tyZzMxMxo8fzxNPPIHP5wvcp2/fvixfvpy5c+cGyl6tMvVQ5c5ffvkl06dPJyMjg7S0NA4//HDef//9emu02WzMnj2bX/ziF+Tk5JCdnc0ZZ5zBjh07mvy7L1y4kPPOO4++ffuSmppK3759Of/889m8eXOLX8ftdnPDDTfQtWtX0tLSOPLII1mwYEGTawmHtY5PPvmEn/zkJ3Tp0oW0tDQqKytZt24dl19+OYMGDSItLY0ePXpw6qmn1nvvNPT9tsqNly9fzvnnn09WVhZ5eXn85Cc/4cCBA7UeX7e83Hr/vPTSS9x00010796dzMxMZsyYwerVq2s91ufzcdddd9GnTx9SUlKYOHEiM2fOZOrUqUydOjUi36OKigpuvPFG+vXrR1JSEj169OCaa66pt01j1qxZTJ06lezsbFJTU+nduzdnnnkmZWVlgfs8+uijjBkzhg4dOpCRkcHQoUP505/+1OQa9u3bx9VXX02PHj1ISkqif//+3HTTTVRWVgLBf4NPP/2UlStXBv5PhNrikZ+fz+OPP87xxx9fL+C2DBo0iNGjR9e67phjjuH444/njjvuoLi4uMl1A9xzzz1s376dBx98MKz7i4gcbBR0i4i0Mz/5yU+w2Ww8+eSTta5fsWIFCxYs4NJLL8XhcLBv3z4Abr31Vt5//32eeuop+vfvz9SpU8Paq13X008/zeWXX86wYcN44403uPnmm7njjjuYNWtWvftu2rSJn//857z66qu8+eabnHHGGfzyl7/kjjvuCNznrbfeon///owbN4558+Yxb9483nrrrZCvP3fuXI455hgOHDjAE088wUsvvURGRgannnoqr7zySr37X3nllbhcLl588UXuvfde5syZw0UXXdTk33PTpk0MGTKEBx54gI8//ph77rmHnTt3MmnSpFr7XZvzOj/96U+5//77ueSSS3jnnXc488wzOeOMM9i/f3+T6wnXT37yE1wuF8899xyvv/46LpeLHTt2kJ2dzd/+9jc++ugjHnnkEZxOJ5MnT64X/IZy5plnMnjwYN544w3++Mc/8uKLL/Lb3/42rMf+6U9/YvPmzTz++OP85z//Ye3atZx66qm19gffdNNN3HTTTZxwwgm88847XHXVVVx55ZWsWbOmRd+Hunw+H6eddhr3338/F198Me+//z7XXXcdzzzzDMccc0ytoPfkk08mKSmJJ598ko8++oi//e1vpKenU1VVBcDLL7/M1VdfzZQpU3jrrbd4++23+e1vf0tpaWmja6ioqGDatGk8++yzXHfddbz//vtcdNFF3HvvvZxxxhlAsMR/3Lhx9O/fP/B/Yvz48Q0+5+zZs3G73U3u+W7IPffcw549e7jvvvvCuv9hhx3G6aefzj333BP4uSIiIjX4RESk3ZkyZYovJyfHV1VVFbjud7/7nQ/wrVmzpsHHeDwen9vt9k2fPt13+umn17oN8N16662Br2fPnu0DfLNnz/b5fD5fdXW1r3v37r7x48f7vF5v4H6bNm3yuVwuX58+fUKutbq62ud2u31/+ctffNnZ2bUeP2LECN+UKVPqPWbjxo0+wPfUU08Frjv00EN9ubm5vuLi4lp/p5EjR/p69uwZeN6nnnrKB/iuvvrqWs957733+gDfzp07Q661IR6Px1dSUuJLT0/3Pfjgg4Hrw32dlStX+gDfb3/721r3e+GFF3yA79JLLw17Lda/y2uvvVZvHZdccklYf5eqqirfoEGDaq2noe/3rbfe6gN89957b63nuPrqq30pKSm1/h379OlT6+9hrfOkk06q9dhXX33VB/jmzZvn8/l8vn379vmSk5N95557bq37zZs3zwc0+N6oq0+fPr6TTz455O0fffRRg3+PV155xQf4/vOf//h8Pp/v9ddf9wG+JUuWhHyua6+91texY8cm11TXY4895gN8r776aq3r77nnHh/g++STTwLXTZkyxTdixIgmn/Nvf/ubD/B99NFHYa3B+je+7777fD6fz3fhhRf60tPTA+9T69+7oKAg8JhLL73Ul56e7vP5fL5Vq1b5HA6H73e/+13gdsB3zTXXhPX6IiLtmTLdIiLt0BVXXMGePXt49913AfB4PDz//PMcddRRDBo0KHC/xx57jPHjx5OSkoLT6cTlcvHZZ5+xcuXKZr3e6tWr2bFjBxdccEGtfcJ9+vTh8MMPr3f/WbNmMWPGDLKysnA4HLhcLv785z+zd+9edu/e3ey/b2lpKd988w1nnXUWHTp0CFzvcDi4+OKL2bZtW73M7Y9+9KNaX1tltnXLxOsqKSnhD3/4AwMHDsTpdOJ0OunQoQOlpaUNft+aep3Zs2cD1Nuje8455+B0Rq71yplnnlnvOo/Hw1133cXw4cNJSkrC6XSSlJTE2rVrw34PNPT3q6ioCOvfsanvzfz586msrOScc86pdb9DDz20xR3x67IqMeo26zv77LNJT0/ns88+A2Ds2LEkJSXxs5/9jGeeeYYNGzbUe65DDjmEwsJCzj//fN55550GKx9CrSE9PZ2zzjqr1vXWmqw1tKU777wTt9vN7bffHtb9hwwZwhVXXMHDDz/Mli1borw6EZHEoqBbRKQdOuuss8jKyuKpp54C4IMPPmDXrl21Gqj94x//4Be/+AWTJ0/mjTfeYP78+Xz77beccMIJ9ZorNWXv3r0AdO3atd5tda9bsGABxx13HAD//e9/+eqrr/j222+56aabAJr92gD79+/H5/PRrVu3erd179691hot2dnZtb5OTk4O6/UvuOACHn74Ya688ko+/vhjFixYwLfffkuXLl0afGxTrxPqe+d0Ous9tjUa+t5cd9113HLLLZx22mn873//45tvvuHbb79lzJgxYf87tPT7GM5jre9NQ532W9N9v6a9e/fidDrrdXi32Wx07do1sIYBAwbw6aefkpubyzXXXBNoYldzH/PFF1/Mk08+yebNmznzzDPJzc1l8uTJzJw5s8k1dO3atV5ju9zcXJxOZ733bjh69+4NwMaNG5v9WDD78K+++moef/xx1q5dG9ZjbrvtNhwOB7fcckuLXlNEpL1S0C0i0g6lpqZy/vnn89FHH7Fz506efPJJMjIyOPvsswP3ef7555k6dSqPPvooJ598MpMnT2bixIlhN0+qyQqe8vPz691W97qXX34Zl8vFe++9xznnnMPhhx/OxIkTm/2aNXXq1Am73c7OnTvr3WY1LcvJyWnVa4AZufbee+9xww038Mc//pHp06czadIkRo0a1eK9rKG+dx6Pp0XBVigNdSp//vnnueSSS7jrrrs4/vjjOeSQQ5g4cWLYGdpos743Dc2Ub+i91tLX8Hg8FBQU1Lre5/ORn59f631z1FFH8b///Y8DBw4wf/58DjvsMH7zm9/Ummt9+eWX8/XXX3PgwAHef/99fD4fp5xySqMVFNnZ2ezatatWI0GA3bt34/F4WvTenTZtGi6Xi7fffrvZj7XcfPPNpKWlhdUIDsyJnd/85jc8//zzfP/99y1+XRGR9kZBt4hIO3XFFVdQXV3NfffdxwcffMB5551HWlpa4HabzRbILFq+//575s2b1+zXGjJkCN26deOll16qFThs3ryZr7/+utZ9bTYbTqcTh8MRuK68vJznnnuu3vMmJyeHlTFNT09n8uTJvPnmm7Xu7/V6ef755+nZsyeDBw9u9t+rLpvNhs/nq/d9e/zxx2s1/2oOqwP3Cy+8UOv6V199FY/H06LnDFdD74H333+f7du3R/V1wzV58mSSk5PrNcKbP39+k9sAwjV9+nTAnICo6Y033qC0tDRwe00Oh4PJkyfzyCOPAGY+el3p6emceOKJ3HTTTVRVVbF8+fJG11BSUlIvQLa6/ze0hqZ07do1UI0RaorA+vXrGw2Os7Oz+cMf/sDrr78edjf9P/zhD3Tu3Jk//vGPzV6ziEh7pTndIiLt1MSJExk9ejQPPPAAPp+v3mzuU045hTvuuINbb72VKVOmsHr1av7yl7/Qr1+/Zgd7drudO+64gyuvvJLTTz+dn/70pxQWFnLbbbfVK5s++eST+cc//sEFF1zAz372M/bu3cv9999fL/gDGDVqFC+//DKvvPIK/fv3JyUlhVGjRjW4hrvvvptjjz2WadOm8fvf/56kpCT+9a9/sWzZMl566aWwZ1I3JjMzk6OPPpr77ruPnJwc+vbty9y5c3niiSfo2LFji55z2LBhXHTRRTzwwAO4XC5mzJjBsmXLuP/++8nMzGz1mhtzyimn8PTTTzN06FBGjx7NokWLuO++++jZs2dUXzdcnTt35rrrruPuu++mU6dOnH766Wzbto3bb7+dbt26YbeHlzvIz8/n9ddfr3d93759OfbYYzn++OP5wx/+QFFREUcccQTff/89t956K+PGjePiiy8GTP+DWbNmcfLJJ9O7d28qKioCEwJmzJgBmC70qampHHHEEXTr1o38/HzuvvtusrKymDRpUsj1XXLJJTzyyCNceumlbNq0iVGjRvHll19y1113cdJJJwWev7n+8Y9/sGHDBi677DI+/vhjTj/9dPLy8tizZw8zZ87kqaee4uWXX643Nqym3/zmNzzyyCN8+OGHYb1mZmYmN910U9gd7EVEDgYKukVE2rErrriCX//61wwfPpzJkyfXuu2mm26irKyMJ554gnvvvZfhw4fz2GOP8dZbb7VoZJgV1N9zzz2cccYZ9O3blz/96U/MnTu31vMdc8wxPPnkk9xzzz2ceuqp9OjRg5/+9Kfk5ubWOzFw++23s3PnTn76059SXFxMnz592LRpU4OvP2XKFGbNmsWtt97KZZddhtfrZcyYMbz77ruccsopzf77hPLiiy/y61//mhtuuAGPx8MRRxzBzJkzOfnkk1v8nE888QR5eXk8/fTTPPTQQ4wdO5Y33niD8847L2LrbsiDDz6Iy+Xi7rvvpqSkhPHjx/Pmm29y8803R/V1m+Ovf/0r6enpPPbYYzz11FMMHTqURx99lJtuuinsEx2LFi2qtbXCcumll/L000/z9ttvc9ttt/HUU0/x17/+lZycHC6++GLuuuuuwMmgsWPH8sknn3DrrbeSn59Phw4dGDlyJO+++26gR8FRRx3F008/zauvvsr+/fvJycnhyCOP5Nlnn623Z7ymlJQUZs+ezU033cR9991HQUEBPXr04Pe//z233npr879pNZ73/fff54UXXuCZZ57h5z//OUVFRXTq1ImJEyfy5JNPcuqppzb6HGlpadx222387Gc/C/t1r776ah566KEW7ycXEWlvbL66G4hERERE4tjGjRsZOnQot956a9j7jUVERGJFQbeIiIjEraVLl/LSSy9x+OGHk5mZyerVq7n33nspKipi2bJlEetiLiIiEi0qLxcREZG4lZ6ezsKFC3niiScoLCwkKyuLqVOn8te//lUBt4iIJARlukVERERERESiRCPDRERERERERKJEQbeIiIiIiIhIlCjoFhEREREREYmSg66RmtfrZceOHWRkZGCz2WK9HBEREREREUlAPp+P4uJiunfvjt0eOp990AXdO3bsoFevXrFehoiIiIiIiLQDW7dupWfPniFvP+iC7oyMDAA2btxI586da93m/f41Kov24C7bT3VpIb6KQig/AJUHSCnbRVpVAV5sPOY9g0erTsBXozr/+BF5/P2csW34N5FIc7vdfPLJJxx33HG4XK5YL0fijN4fEoreGxKK3hsSit4b0iC3m+onnmDlypUMuftuXGlpsV6RNKGoqIhevXoFYsxQDrqg2yopz8jI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0Q2H8vDw0JYtWxwdBgAAAADYBeMWAAAAAACwE650AwAAAICjpafLOThYXdLTpbg4ycfH0RGhhFB0AwAAAICjGYZM58/LU1J22XrAVKnH8HIAAAAAAOyEohsAAAAAADuh6AYAAAAAwE4oumHVsWNHjR071vq+du3aWrhwYZH7mEwmbdiw4Tcfu6T6AQAAAID7CUV3KdC7d2+FhYUVuG3fvn0ymUw6cuTIHfd78OBBvfjii781PBvTp09X8+bN862/ePGievToUaLHutXKlSvl6+tr12MAAAAAwK9RdJcCQ4cO1bZt23T+/Pl82z744AM1b95cLVu2vON+K1euLE9Pz5II8bb8/f3l5uZ2T44FAAAA3HdMJhkNGyqlRg3JZHJ0NChBFN23YxhSVppjlmI+KqBXr16qUqWKVq5cabM+PT1dq1ev1tChQ3X58mU988wzql69ujw9PdWkSRP985//LLLfW4eXx8XF6bHHHpO7u7uCg4MVHR2db5/JkyerXr168vT0VGBgoKZNm6bs7GxJN680z5gxQ0ePHpXJZJLJZLLGfOvw8mPHjun3v/+9PDw85OfnpxdffFGpqanW7YMHD1afPn305z//WQEBAfLz89PIkSOtx7obCQkJevbZZ+Xt7S1vb29FRETol19+sW4/evSoOnXqpPLly8vb21shISE6dOiQJOn8+fPq3bu3KlSoIC8vLzVq1EhRUVF3HQsAAADKGE9P5Rw9qu2LF0v36MIX7g2e03072enS7GqOOfaUnyVXr9s2c3Z2VmRkpFauXKnXX39dpv99M7ZmzRplZWVpwIABSk9PV0hIiCZPnixvb29t3LhRAwcOVGBgoB555JHbHsNisahv376qVKmS9u/fr5SUFJv7v/OUL19eK1euVLVq1XTs2DG98MILKl++vCZNmqT+/fvrhx9+0KZNm7RlyxZJko+PT74+0tPT1b17d/3ud7/TwYMHlZiYqGHDhmnUqFE2Xyxs375dAQEB2r59u06fPq3+/furefPmeuGFF257PrcyDEN9+/aVm5ubtm/fLovFopdeekn9+/fXjh07JEkDBgxQixYttGzZMpnNZsXExMjFxUWSNHLkSGVlZWnnzp3y8vLSiRMnVK5cuTuOAwAAAEDpQtFdSgwZMkR/+tOftGPHDnXq1EnSzaHlffv2VYUKFVShQgVNmDDB2n706NHatGmT1qxZU6yie8uWLYqNjdW5c+dUvXp1SdLs2bPz3Yf92muvWV/Xrl1br7zyilavXq1JkybJw8ND5cqVk7Ozs/z9/Qs91ieffKIbN27oo48+kpfXzS8dlixZot69e2vevHmqWrWqJKlChQpasmSJzGazGjRooJ49e2rr1q13VXRv2bJF33//vWJiYhQcHCwnJyd9/PHHatSokQ4ePKhWrVopISFBEydOVIMGDSRJQUFB1v0TEhLUr18/NWnSRJIUGBh4xzEAAAAAKH0oum/HxfPmFWdHHbuYGjRooLZt2+qDDz5Qp06ddObMGe3atUubN2+WJOXm5mru3LlavXq1fvrpJ2VmZiozM9Na1N5ObGysatasaS24JalNmzb52n3++edauHChTp8+rdTUVOXk5Mjb27vY55F3rGbNmtnE1q5dO1ksFp08edJadDdq1Ehms9naJiAgQMeOHbujY/36mDVq1LA5v+DgYPn6+io2NlatWrXS+PHjNWzYMH388ccKCwvTU089pYcffliSNGbMGI0YMUKbN29WWFiY+vXrp6ZNm95VLAAAACiD0tPlHBqqTqmpUseOUgEjQvFg4p7u2zGZbg7xdsRyhxMoDB06VGvXrlVKSopWrFihWrVqqXPnzpKkBQsW6C9/+YsmTZqkbdu2KSYmRt26dVNWVlax+jYKuL/cdEt8+/fv19NPP60ePXroyy+/1HfffaepU6cW+xi/PtatfRd0zLyh3b/eZrFY7uhYtzvmr9dPnz5dx48fV8+ePbVt2zYFBwdr/fr1kqRhw4bp7NmzGjhwoI4dO6bQ0FAtXrz4rmIBAABAGWQYMsXGyvvChWLP7YQHA0V3KRIRESGz2axPP/1UH374oZ5//nlrwbhr1y498cQTeu6559SsWTMFBgYqLi6u2H0HBwcrISFBP//8/6/679u3z6bNnj17VKtWLU2dOlWhoaEKCgrKN6O6q6urcnNzb3usmJgYpaWl2fTt5OSkevXqFTvmO5F3fj/++KN13YkTJ5ScnKyGDRta19WrV0/jxo3T5s2b1bdvX61YscK6rUaNGho+fLjWrVunV155Re+9955dYgUAAADw4KDoLkXKlSun/v37a8qUKfr55581ePBg67a6desqOjpae/fuVWxsrP7v//5Ply5dKnbfYWFhql+/viIjI3X06FHt2rVLU6dOtWlTt25dJSQkaNWqVTpz5owWLVpkvRKcp3bt2oqPj1dMTIySkpKUmZmZ71gDBgyQu7u7Bg0apB9++EHbt2/X6NGjNXDgQOvQ8ruVm5urmJgYm+XEiRMKCwtT06ZN9eKLL+rIkSM6cOCAIiMj1aFDB4WGhurGjRsaNWqUduzYofPnz2vPnj06ePCgtSAfO3asvv76a8XHx+vIkSPatm2bTbEOAAAAoGyi6C5lhg4dqqtXryosLEw1a9a0rp82bZpatmypbt26qWPHjvL391efPn2K3a+Tk5PWr1+vzMxMtW7dWsOGDdOsWbNs2jzxxBMaN26cRo0apebNm2vv3r2aNm2aTZt+/fqpe/fu6tSpkypXrlzgY8s8PT319ddf68qVK2rVqpWefPJJde7cWUuWLLmzD6MAqampatGihc0SHh4uk8mkdevWydfXVx07dlRYWJgCAwO1evVqSZLZbNbly5cVGRmpevXqKSIiQj169NCMGTMk3SzmR44cqYYNG6p79+6qX7++li5d+pvjBQAAAPBgMxkF3axbiqWkpMjHx0dJSUny8/Oz2ZaRkaH4+HjVqVNH7u7uDooQjmKxWJSSkiJvb285OfF91P3MEb+r2dnZioqKUnh4eL75BFC2kRsoDLmBwpAbKFBamvS/R85mX70qF19fx8aD28qrLZOTk4ucPJrKAgAAAAAAO+GRYQAAAADgaCaTjFq1dCM9XS53+BQj3N+40g0AAAAAjubpqZy4OEW/957k6enoaFCCKLoBAAAAALATim4AAAAAAOyEe7oBAAAAwNFu3JD50Uf1WHKy1KmTxMz2pQZFNwAAAAA4msUip8OHVUFStsXi6GhQghheDgAAAACAnVB0AwAAAABgJxTduK3BgwerT58+jg7DrgYPHqw//OEPjg7DymQyacOGDXbr/9y5czKZTIqJibHbMaSykTsAAABAUSi6S4nBgwfLZDLlW7p37+7o0CRJ27dvV6dOnVSxYkV5enoqKChIgwYNUk5OjiRp5cqV8vX1dVh8f/3rX7VixYp7cqxLly5p9OjRCgwMlJubm2rUqKHevXtr69at9+T499Jf//pXrVy58o72sfcXDgAAAMC9xERqpUj37t3zFY5ubm533V9ubq5MJtNvDUvHjx9Xjx49NGbMGC1evFgeHh6Ki4vT559/Lst9MkmEj4+PLBaLUlJS7Hqcc+fOqV27dvL19dX8+fPVtGlTZWdn6+uvv9bIkSP1n//8x67Hv9d8fHwcHQIAAADgUFzpLq60tMKXjIzit71xo3ht74Kbm5v8/f1tlgoVKli3v/3222rSpIm8vLxUo0YNvfTSS0pNTbVuz7va/OWXXyo4OFhubm46f/68zTE++ugj+fn5KTMz02Z9v379FBkZWWBc0dHRCggI0Pz589W4cWM9/PDD6t69u/7+97/L1dVVO3bs0PPPP6/k5GTrFfrp06dLkq5evarIyEhVqFBBnp6e6tGjh+Li4vLFvGHDBtWrV0/u7u7q0qWLLly4YG0zffp0NW/eXH/7299Uo0YNeXp66qmnntK1a9esbW4dXt6xY0eNGTNGkyZNUsWKFeXv72+NKc9//vMftW/fXu7u7goODtaWLVtue5X2pZdekslk0oEDB/Tkk0+qXr16atSokcaPH6/9+/fbtE1KStIf/vAH68iAL774wmb7iRMnFB4ernLlyqlq1aoaOHCgkpKSrNstFovmzZununXrys3NTTVr1tSsWbMKjMtiseiFF15QvXr1rD9zk8mkZcuWqUePHvLw8FCdOnW0Zs0am/2OHTum3//+9/Lw8JCfn59efPFFm5y6dXj57T7X2rVrS5L+8Ic/yGQyWd8DAACUBUalSsr09nZ0GChhFN3FVa5c4Uu/frZtq1QpvG2PHrZta9cuuJ0dODk5adGiRfrhhx/04Ycfatu2bZo0aZJNm/T0dM2ZM0d///vfdfz4cVWpUsVm+1NPPaXc3FybAjApKUlffvmlnn/++QKP6+/vr4sXL2rnzp0Fbm/btq0WLlwob29vXbx4URcvXtSECRMk3SzaDh06pC+++EL79u2TYRgKDw9Xdna2TcyzZs3Shx9+qD179iglJUVPP/20zTFOnz6tzz77TP/+97+1adMmxcTEaOTIkUV+Xh9++KG8vLz07bffav78+Zo5c6aio6Ml3SxS+/TpI09PT3377bdavny5pk6dWmR/V65c0aZNmzRy5Eh5eXnl237r8PoZM2YoIiJC33//vcLDwzVgwABduXJFknTx4kV16NBBzZs316FDh7Rp0yb98ssvioiIsO7/xz/+UfPmzdO0adN04sQJffrpp6patWq+42ZlZSkiIkKHDh3S7t27VatWLeu2adOmqV+/fjp69Kiee+45PfPMM4qNjZV083Pv3r27KlSooIMHD2rNmjXasmWLRo0addef68GDByVJK1as0MWLF63vAQAASj0vL+X8/LM2ffSRVMD/iniAGWVMcnKyIclISkrKt+3GjRvGiRMnjBs3buTfUSp8CQ+3bevpWXjbDh1s21aqVHC7OzRo0CDDbDYbXl5eNsvMmTML3eezzz4z/Pz8rO9XrFhhSDJiYmLy9f3EE09Y348YMcLo0aOH9f3ChQuNwMBAw2KxFHicnJwcY/DgwYYkw9/f3+jTp4+xePFiIzk52ebYPj4+NvudOnXKkGTs2bPHui4pKcnw8PAwPvvsM5uY9+/fb20TGxtrSDK+/fZbwzAM44033jDMZrNx4cIFa5uvvvrKcHJyMi5evGg9x8cff9y4evWqkZuba3To0MFo3769TTytWrUyJk+ebN3f2dnZur9hGEZ0dLQhyVi/fn2Bn8O3335rSDLWrVtX4PZfk2S89tpr1vepqamGyWQyvvrqK8MwDGPatGlG165dbfa5cOGCIck4efKkkZKSYri5uRnvvfdegf3Hx8cbkoxdu3YZYWFhRrt27Yxr167li2H48OE26x555BFjxIgRhmEYxvLly40KFSoYqamp1u0bN240nJycjEuXLhmGkT93bve55h23sM8wT5G/q3aSlZVlbNiwwcjKyrpnx8SDgdxAYcgNFIbcQGHIjQdLXm3567qmINzTXVy/GjKbj9ls+z4xsfC2TrcMLjh37q5DulWnTp20bNkym3UVK1a0vt6+fbtmz56tEydOKCUlRTk5OcrIyFBaWpr1yqurq6uaNm1a5HFeeOEFtWrVSj/99JMeeughrVixwjqRW0HMZrNWrFiht956S9u2bdP+/fs1a9YszZs3TwcOHFBAQECB+8XGxsrZ2VmPPPKIdZ2fn5/q169vvdoqSc7OzgoNDbW+b9CggXx9fRUbG6vWrVtLkmrWrKnq1atb27Rp00YWi0UnT56Uv79/gce/9XMICAhQ4v9+tidPnlSNGjVs9s07VmEMw5CkYt8n/+vje3l5qXz58tbjHz58WNu3b1e5AkZFnDlzRteuXVNmZqY6d+5c5DGeeeYZVa9eXVu3bpWnp2e+7W3atMn3Pm/G89jYWDVr1szmqn27du2sn2tBV9VvPS/J9nMFAAAAShuGlxeXl1fhi7t78dt6eBSv7V2F6KW6devaLHlF9/nz5xUeHq7GjRtr7dq1Onz4sN555x1Jshmq7eHhcduisEWLFmrWrJk++ugjHTlyRMeOHdPgwYNvG99DDz2kgQMH6p133tGJEyeUkZGhd999t9D2eUVqQetvjbGgmIs6j7xtRbVxcXHJt0/exG8FxXA7QUFBMplMNl8YFKWo41ssFvXu3VsxMTE2S1xcnB577DF53JpnhQgPD9f333+f737youSdd1Gfwd1+rgAAAGXWjRsyh4Wp3dSp+eeBwgONoruMOHTokHJycrRgwQL97ne/U7169fTzzz/fdX/Dhg3TihUr9MEHHygsLEw1atS4o/0rVKiggIAApf1v0jhXV1fl5ubatAkODlZOTo6+/fZb67rLly/r1KlTatiwoXVdTk6ODh06ZH1/8uRJXbt2TQ0aNLCuS0hIsDnfffv2ycnJSfXq1bujuPM0aNBACQkJ+uWXX6zrbnf/ccWKFdWtWze988471vP+tV9P7HY7LVu21PHjx1W7du18X7R4eXkpKChIHh4et30M2YgRIzR37lw9/vjj+uabb/Jtv7UY379/v/VzDQ4OVkxMjM257Nmz5zd9rtLNovzWXAAAACj1LBY57dypSsePS1yQKFUoukuRzMxMXbp0yWbJm8364YcfVk5OjhYvXqyzZ8/q448/LvIq8+0MGDBAP/30k9577z0NGTKkyLZ/+9vfNGLECG3evFlnzpzR8ePHNXnyZB0/fly9e/eWdHPW6tTUVG3dulVJSUlKT09XUFCQnnjiCb3wwgvavXu3dTKvhx56SE888YS1fxcXF40ePVrffvutjhw5oueff16/+93vbIZ7u7u7a9CgQTp69Kh27dqlMWPGKCIiotCh5bfTpUsXPfzwwxo0aJC+//577dmzxzqRWlFXeZcuXarc3Fy1bt1aa9euVVxcnGJjY7Vo0aJ8Q7mLMnLkSF25ckXPPPOMDhw4oLNnz2rz5s0aMmSIcnNz5e7ursmTJ2vSpEn66KOPdObMGe3fv1/vv/9+vr5Gjx6tt956S7169dLu3btttq1Zs0YffPCBTp06pTfeeEMHDhywTpQ2YMAA6+f6ww8/aPv27Ro9erQGDhxY6NDy4qhdu7a2bt2qS5cu6erVq3fdDwAAAHA/oOguRTZt2qSAgACbpX379pKk5s2b6+2339a8efPUuHFjffLJJ5ozZ85dH8vb21v9+vVTuXLlbB4JVZDWrVsrNTVVw4cPV6NGjdShQwft379fGzZsUIcOHSTdnMF8+PDh6t+/vypXrqz58+dLujmLdUhIiHr16qU2bdrIMAxFRUXZDFH29PTU5MmT9eyzz6pNmzby8PDQqlWrbGKoW7eu+vbtq/DwcHXt2lWNGzfW0qVL7/r8zWazNmzYoNTUVLVq1UrDhg3Ta6+9JulmgV+YOnXq6MiRI+rUqZNeeeUVNW7cWF26dNHWrVvz3Y9flGrVqmnPnj3Kzc1Vt27d1LhxY7388svy8fGR0//mDZg2bZpeeeUVvf7662rYsKH69+9f6L3TY8eO1YwZMxQeHq69e/da18+YMUOrVq1S06ZN9eGHH+qTTz5RcHCwpJuf+9dff60rV66oVatWevLJJ9W5c2ctWbKk2OdRkAULFig6Olo1atRQixYtflNfAAAAgKOZjMJunC2lUlJS5OPjo6SkJPn5+dlsy8jIUHx8vOrUqVNk4YSbunTpooYNG2rRokUOi2HlypUaO3ZskUOzp0+frg0bNlgnACuMxWJRSkqKvL29rYXrndizZ4/at2+v06dP6+GHH77j/e83JpNJ69evv+2XKo7giN/V7OxsRUVFKTw8PN996SjbyA0UhtxAYcgNFCgtzfro4OyrV+Vyy+Nkcf/Jqy2Tk5PlXcTz1Zm9HHfsypUr2rx5s7Zt2/abr2o+yNavX69y5copKChIp0+f1ssvv6x27dqVioIbAAAAQMmg6MYda9mypa5evap58+apfv36jg7HYa5fv65JkybpwoULqlSpksLCwrRgwQJHhwUAAADgPkLRjTt2rgSfLf5bDR48+LaPK5s+fbqmT59e4seOjIxUZGRkifd7vyhjd54AAAA4nOHpyVNcSiEmUgMAAAAAR/PyUs61a9q4erXk5eXoaFCCKLoLwBU+4P7G7ygAAAAeFBTdv5I3e2R6erqDIwFQlLzfUWZ8BQAAwP2Oe7p/xWw2y9fX1/osY09PT5lMJgdHhXvFYrEoKytLGRkZd/XIMNifYRhKT09XYmKifH19ZTabHR0SAABAycjIkLlvXz2SmCj9/vcSFxdKDYruW/j7+0uStfBG2WEYhm7cuCEPDw++bLnP+fr6Wn9XAQAASoXcXDl99ZX8JWUzmVqpQtF9C5PJpICAAFWpUkXZ2dmODgf3UHZ2tnbu3KnHHnuMYcv3MRcXF65wAwAA4IFB0V0Is9nMP/ZljNlsVk5Ojtzd3Sm6AQAAAJQIh9+4unTpUtWpU0fu7u4KCQnRrl27imz/zTffKCQkRO7u7goMDNS77757jyIFAAAAAODOOLToXr16tcaOHaupU6fqu+++06OPPqoePXooISGhwPbx8fEKDw/Xo48+qu+++05TpkzRmDFjtHbt2nscOQAAAAAAt+fQovvtt9/W0KFDNWzYMDVs2FALFy5UjRo1tGzZsgLbv/vuu6pZs6YWLlyohg0batiwYRoyZIj+/Oc/3+PIAQAAAAC4PYfd052VlaXDhw/r1VdftVnftWtX7d27t8B99u3bp65du9qs69atm95//31lZ2cXeB9uZmamMjMzre+Tk5MlSVeuXPmtp4BSJjs7W+np6bp8+TL3dCMf8gOFITdQGHIDhSE3UKC0NOVlQ/qVK3JhBvP73vXr1yXdfApSURxWdCclJSk3N1dVq1a1WV+1alVdunSpwH0uXbpUYPucnBwlJSUpICAg3z5z5szRjBkz8q2vV6/eb4geAAAAAOzk4YcdHQHuwPXr1+Xj41PodofPXn7r85ANwyjyGckFtS9ofZ4//vGPGj9+vPX9tWvXVKtWLSUkJBT5waDsSUlJUY0aNXThwgV5e3s7OhzcZ8gPFIbcQGHIDRSG3EBhyI0Hi2EYun79uqpVq1ZkO4cV3ZUqVZLZbM53VTsxMTHf1ew8/v7+BbZ3dnaWn59fgfu4ubnJzc0t33ofHx8SGQXy9vYmN1Ao8gOFITdQGHIDhSE3UBhy48FRnAu5DptIzdXVVSEhIYqOjrZZHx0drbZt2xa4T5s2bfK137x5s0JDQ7kfBgAAAABw33Ho7OXjx4/X3//+d33wwQeKjY3VuHHjlJCQoOHDh0u6OTQ8MjLS2n748OE6f/68xo8fr9jYWH3wwQd6//33NWHCBEedAgAAAAAAhXLoPd39+/fX5cuXNXPmTF28eFGNGzdWVFSUatWqJUm6ePGizTO769Spo6ioKI0bN07vvPOOqlWrpkWLFqlfv37FPqabm5veeOONAoeco2wjN1AU8gOFITdQGHIDhSE3UBhyo3QyGbeb3xwAAAAAANwVhw4vBwAAAACgNKPoBgAAAADATii6AQAAAACwE4puAAAAAADspMwV3UuXLlWdOnXk7u6ukJAQ7dq1y9Eh4R6bM2eOWrVqpfLly6tKlSrq06ePTp48adPGMAxNnz5d1apVk4eHhzp27Kjjx487KGI4wpw5c2QymTR27FjrOvKibPvpp5/03HPPyc/PT56enmrevLkOHz5s3U5+lE05OTl67bXXVKdOHXl4eCgwMFAzZ86UxWKxtiE3yoadO3eqd+/eqlatmkwmkzZs2GCzvTh5kJmZqdGjR6tSpUry8vLS448/rh9//PEengXsoajcyM7O1uTJk9WkSRN5eXmpWrVqioyM1M8//2zTB7nxYCtTRffq1as1duxYTZ06Vd99950effRR9ejRw+axZCj9vvnmG40cOVL79+9XdHS0cnJy1LVrV6WlpVnbzJ8/X2+//baWLFmigwcPyt/fX126dNH169cdGDnulYMHD2r58uVq2rSpzXryouy6evWq2rVrJxcXF3311Vc6ceKEFixYIF9fX2sb8qNsmjdvnt59910tWbJEsbGxmj9/vv70pz9p8eLF1jbkRtmQlpamZs2aacmSJQVuL04ejB07VuvXr9eqVau0e/dupaamqlevXsrNzb1XpwE7KCo30tPTdeTIEU2bNk1HjhzRunXrdOrUKT3++OM27ciNB5xRhrRu3doYPny4zboGDRoYr776qoMiwv0gMTHRkGR88803hmEYhsViMfz9/Y25c+da22RkZBg+Pj7Gu+++66gwcY9cv37dCAoKMqKjo40OHToYL7/8smEY5EVZN3nyZKN9+/aFbic/yq6ePXsaQ4YMsVnXt29f47nnnjMMg9woqyQZ69evt74vTh5cu3bNcHFxMVatWmVt89NPPxlOTk7Gpk2b7lnssK9bc6MgBw4cMCQZ58+fNwyD3CgNysyV7qysLB0+fFhdu3a1Wd+1a1ft3bvXQVHhfpCcnCxJqlixoiQpPj5ely5dsskVNzc3dejQgVwpA0aOHKmePXsqLCzMZj15UbZ98cUXCg0N1VNPPaUqVaqoRYsWeu+996zbyY+yq3379tq6datOnTolSTp69Kh2796t8PBwSeQGbipOHhw+fFjZ2dk2bapVq6bGjRuTK2VMcnKyTCaTdTQVufHgc3Z0APdKUlKScnNzVbVqVZv1VatW1aVLlxwUFRzNMAyNHz9e7du3V+PGjSXJmg8F5cr58+fveYy4d1atWqUjR47o4MGD+baRF2Xb2bNntWzZMo0fP15TpkzRgQMHNGbMGLm5uSkyMpL8KMMmT56s5ORk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KSEhQXXr1rVZatSoYW23f/9+6+urV6/q1KlTatCggbWP3bt32/S7d+9e1atXT2azWU2aNJHFYtE333zzm2KtV6+exo0bp82bN6tv375asWLFb+oPAIAHBROpAQDwgCpfvrwmTJigcePGyWKxqH379kpJSdHevXtVrlw51apVS5I0c+ZM+fn5qWrVqpo6daoqVaqkPn36SJJeeeUVtWrVSm+++ab69++vffv2acmSJVq6dKkkqXbt2ho0aJCGDBlinUjt/PnzSkxMVERExG1jvHHjhiZOnKgnn3xSderU0Y8//qiDBw+qX79+dvtcAAC4n1B0AwDwAHvzzTdVpUoVzZkzR2fPnpWvr69atmypKVOmWId3z507Vy+//LLi4uLUrFkzffHFF3J1dZUktWzZUp999plef/11vfnmmwoICNDMmTOtM5dL0rJlyzRlyhS99NJLunz5smrWrKkpU6YUKz6z2azLly8rMjJSv/zyiypVqqS+fftqxowZJf5ZAABwP2L2cgAASqm8mcWvXr0qX19fR4cDAECZxD3dAAAAAADYCUU3AAAAAAB2wvByAAAAAADshCvdAAAAAADYCUU3AAAAAAB2QtENAAAAAICdUHQDAAAAAGAnFN0AAAAAANgJRTcAAAAAAHZC0Q0AAAAAgJ1QdAMAAAAAYCcU3QAAAAAA2Mn/AwCBFC2kAWi+AAAAAElFTkSuQmCC", 1001 | "text/plain": [ 1002 | "
" 1003 | ] 1004 | }, 1005 | "metadata": {}, 1006 | "output_type": "display_data" 1007 | } 1008 | ], 1009 | "source": [ 1010 | "model = train(model, train_dataloader, val_dataloader, optimizer, epochs=1000, device=\"cuda\", patience = 15, temp=5)" 1011 | ] 1012 | }, 1013 | { 1014 | "cell_type": "code", 1015 | "execution_count": 179, 1016 | "metadata": {}, 1017 | "outputs": [ 1018 | { 1019 | "name": "stdout", 1020 | "output_type": "stream", 1021 | "text": [ 1022 | " precision recall f1-score support\n", 1023 | "\n", 1024 | " 0 0.65 0.73 0.69 15\n", 1025 | " 1 0.78 0.93 0.85 15\n", 1026 | " 2 0.56 0.60 0.58 15\n", 1027 | " 3 0.17 0.20 0.18 15\n", 1028 | " 4 0.75 0.60 0.67 15\n", 1029 | " 5 0.60 0.80 0.69 15\n", 1030 | " 6 0.86 0.80 0.83 15\n", 1031 | " 7 0.82 0.60 0.69 15\n", 1032 | " 8 0.62 0.53 0.57 15\n", 1033 | " 9 0.27 0.20 0.23 15\n", 1034 | "\n", 1035 | " accuracy 0.60 150\n", 1036 | " macro avg 0.61 0.60 0.60 150\n", 1037 | "weighted avg 0.61 0.60 0.60 150\n", 1038 | "\n" 1039 | ] 1040 | } 1041 | ], 1042 | "source": [ 1043 | "preds, true_values, accuracy = predict(model, test_dataloader, n_features=40, loss_function=loss_function, device=device)\n", 1044 | "print(classification_report(true_values, preds))" 1045 | ] 1046 | } 1047 | ], 1048 | "metadata": { 1049 | "kernelspec": { 1050 | "display_name": "Music", 1051 | "language": "python", 1052 | "name": "python3" 1053 | }, 1054 | "language_info": { 1055 | "codemirror_mode": { 1056 | "name": "ipython", 1057 | "version": 3 1058 | }, 1059 | "file_extension": ".py", 1060 | "mimetype": "text/x-python", 1061 | "name": "python", 1062 | "nbconvert_exporter": "python", 1063 | "pygments_lexer": "ipython3", 1064 | "version": "3.9.17" 1065 | }, 1066 | "orig_nbformat": 4 1067 | }, 1068 | "nbformat": 4, 1069 | "nbformat_minor": 2 1070 | } 1071 | --------------------------------------------------------------------------------