├── Qhack project.pdf ├── Data ├── .gitattributes └── README.md ├── README.md └── CNN_Model_Training_Testing.ipynb /Qhack project.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Next-di-mension/qhack_challange/HEAD/Qhack project.pdf -------------------------------------------------------------------------------- /Data/.gitattributes: -------------------------------------------------------------------------------- 1 | /home/iisers/Desktop/glioma_final.npy filter=lfs diff=lfs merge=lfs -text 2 | /home/iisers/Desktop/meningioma_final.npy filter=lfs diff=lfs merge=lfs -text 3 | /home/iisers/Desktop/no_tumor_final.npy filter=lfs diff=lfs merge=lfs -text 4 | home/iisers/Desktop/pituitary_final.npy filter=lfs diff=lfs merge=lfs -text 5 | .npy filter=lfs diff=lfs merge=lfs -text 6 | -------------------------------------------------------------------------------- /Data/README.md: -------------------------------------------------------------------------------- 1 | This file contains the data used to train and test the model. 2 | 3 | The _final.npy files are dataset that have already gone through the Classical Preprossing and Quantum Feature Maps and have been combined as used in our implementation. They are in the form of 4D Numpy arrays. 4 | 5 | We have also provided the images used before Classical Preprocessing and the batch files used before Quantum Feature Map Extraction 6 | 7 | 8 | Google Drive Link for Dataset: https://drive.google.com/drive/folders/1N8M8_nb9pz1dnS7cLG0acfet0BRjyveH?usp=sharing 9 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Implementation of classical-quantum CNN on MRI brain scans. 2 | Classification of MRI brain scan using a hybrid quantum-classical Convolutional Neural Network (CNN). This work presents a method described in the following reference which improves the performance of classical CNN by adding a quantum convolutional layer to extract the features. The accuracy achieved by the model is upto 96.94% with the average loss of 0.0357. 3 | 4 | Reference: https://aip.scitation.org/doi/pdf/10.1063/5.0138021 5 | 6 | Data: https://www.kaggle.com/datasets/sartajbhuvaji/brain-tumor-classification-mr 7 | 8 | # Team name: 9 | Schrodingers Kittens 10 | 11 | # Team members: 12 | Lakshika Rathi 13 | 14 | Matthew Kendall 15 | 16 | Zain Mughal 17 | 18 | Srushti Patil 19 | -------------------------------------------------------------------------------- /CNN_Model_Training_Testing.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "nbformat": 4, 3 | "nbformat_minor": 0, 4 | "metadata": { 5 | "colab": { 6 | "provenance": [] 7 | }, 8 | "kernelspec": { 9 | "name": "python3", 10 | "display_name": "Python 3" 11 | }, 12 | "language_info": { 13 | "name": "python" 14 | } 15 | }, 16 | "cells": [ 17 | { 18 | "cell_type": "code", 19 | "execution_count": 1, 20 | "metadata": { 21 | "colab": { 22 | "base_uri": "https://localhost:8080/" 23 | }, 24 | "id": "ylUrPMmCGeo9", 25 | "outputId": "42683a22-1814-4c2e-da5f-3a22caeb4c38" 26 | }, 27 | "outputs": [ 28 | { 29 | "output_type": "stream", 30 | "name": "stdout", 31 | "text": [ 32 | "Epoch 1/20\n", 33 | "92/92 [==============================] - 7s 67ms/step - loss: 2.2879 - accuracy: 0.3327\n", 34 | "Epoch 2/20\n", 35 | "92/92 [==============================] - 7s 81ms/step - loss: 1.1172 - accuracy: 0.5305\n", 36 | "Epoch 3/20\n", 37 | "92/92 [==============================] - 6s 69ms/step - loss: 0.9912 - accuracy: 0.6078\n", 38 | "Epoch 4/20\n", 39 | "92/92 [==============================] - 8s 82ms/step - loss: 0.8673 - accuracy: 0.6534\n", 40 | "Epoch 5/20\n", 41 | "92/92 [==============================] - 6s 69ms/step - loss: 0.7906 - accuracy: 0.6953\n", 42 | "Epoch 6/20\n", 43 | "92/92 [==============================] - 8s 85ms/step - loss: 0.7481 - accuracy: 0.7177\n", 44 | "Epoch 7/20\n", 45 | "92/92 [==============================] - 7s 71ms/step - loss: 0.7025 - accuracy: 0.7286\n", 46 | "Epoch 8/20\n", 47 | "92/92 [==============================] - 8s 82ms/step - loss: 0.6411 - accuracy: 0.7647\n", 48 | "Epoch 9/20\n", 49 | "92/92 [==============================] - 6s 69ms/step - loss: 0.5803 - accuracy: 0.7947\n", 50 | "Epoch 10/20\n", 51 | "92/92 [==============================] - 7s 76ms/step - loss: 0.5439 - accuracy: 0.8086\n", 52 | "Epoch 11/20\n", 53 | "92/92 [==============================] - 6s 70ms/step - loss: 0.5123 - accuracy: 0.8236\n", 54 | "Epoch 12/20\n", 55 | "92/92 [==============================] - 7s 73ms/step - loss: 0.4749 - accuracy: 0.8437\n", 56 | "Epoch 13/20\n", 57 | "92/92 [==============================] - 7s 74ms/step - loss: 0.4233 - accuracy: 0.8648\n", 58 | "Epoch 14/20\n", 59 | "92/92 [==============================] - 7s 71ms/step - loss: 0.4013 - accuracy: 0.8733\n", 60 | "Epoch 15/20\n", 61 | "92/92 [==============================] - 6s 68ms/step - loss: 0.3789 - accuracy: 0.8805\n", 62 | "Epoch 16/20\n", 63 | "92/92 [==============================] - 7s 72ms/step - loss: 0.3399 - accuracy: 0.8985\n", 64 | "Epoch 17/20\n", 65 | "92/92 [==============================] - 7s 72ms/step - loss: 0.3170 - accuracy: 0.8992\n", 66 | "Epoch 18/20\n", 67 | "92/92 [==============================] - 7s 71ms/step - loss: 0.2849 - accuracy: 0.9149\n", 68 | "Epoch 19/20\n", 69 | "92/92 [==============================] - 6s 68ms/step - loss: 0.2589 - accuracy: 0.9220\n", 70 | "Epoch 20/20\n", 71 | "92/92 [==============================] - 7s 73ms/step - loss: 0.2398 - accuracy: 0.9322\n", 72 | "11/11 [==============================] - 0s 22ms/step - loss: 0.4670 - accuracy: 0.8165\n", 73 | "Test accuracy: 0.8165137767791748\n", 74 | "11/11 [==============================] - 0s 20ms/step\n", 75 | "Epoch 1/20\n", 76 | "92/92 [==============================] - 8s 80ms/step - loss: 0.2666 - accuracy: 0.9173\n", 77 | "Epoch 2/20\n", 78 | "92/92 [==============================] - 6s 66ms/step - loss: 0.2274 - accuracy: 0.9322\n", 79 | "Epoch 3/20\n", 80 | "92/92 [==============================] - 7s 80ms/step - loss: 0.1901 - accuracy: 0.9448\n", 81 | "Epoch 4/20\n", 82 | "92/92 [==============================] - 6s 66ms/step - loss: 0.1701 - accuracy: 0.9547\n", 83 | "Epoch 5/20\n", 84 | "92/92 [==============================] - 7s 81ms/step - loss: 0.1543 - accuracy: 0.9578\n", 85 | "Epoch 6/20\n", 86 | "92/92 [==============================] - 6s 65ms/step - loss: 0.1338 - accuracy: 0.9642\n", 87 | "Epoch 7/20\n", 88 | "92/92 [==============================] - 7s 81ms/step - loss: 0.1327 - accuracy: 0.9656\n", 89 | "Epoch 8/20\n", 90 | "92/92 [==============================] - 6s 67ms/step - loss: 0.1058 - accuracy: 0.9779\n", 91 | "Epoch 9/20\n", 92 | "92/92 [==============================] - 7s 80ms/step - loss: 0.0936 - accuracy: 0.9813\n", 93 | "Epoch 10/20\n", 94 | "92/92 [==============================] - 6s 66ms/step - loss: 0.0876 - accuracy: 0.9813\n", 95 | "Epoch 11/20\n", 96 | "92/92 [==============================] - 7s 80ms/step - loss: 0.0799 - accuracy: 0.9837\n", 97 | "Epoch 12/20\n", 98 | "92/92 [==============================] - 6s 65ms/step - loss: 0.0711 - accuracy: 0.9850\n", 99 | "Epoch 13/20\n", 100 | "92/92 [==============================] - 7s 79ms/step - loss: 0.0599 - accuracy: 0.9884\n", 101 | "Epoch 14/20\n", 102 | "92/92 [==============================] - 6s 64ms/step - loss: 0.0513 - accuracy: 0.9918\n", 103 | "Epoch 15/20\n", 104 | "92/92 [==============================] - 9s 94ms/step - loss: 0.0495 - accuracy: 0.9894\n", 105 | "Epoch 16/20\n", 106 | "92/92 [==============================] - 6s 63ms/step - loss: 0.0437 - accuracy: 0.9932\n", 107 | "Epoch 17/20\n", 108 | "92/92 [==============================] - 7s 78ms/step - loss: 0.0411 - accuracy: 0.9935\n", 109 | "Epoch 18/20\n", 110 | "92/92 [==============================] - 6s 64ms/step - loss: 0.0379 - accuracy: 0.9946\n", 111 | "Epoch 19/20\n", 112 | "92/92 [==============================] - 7s 78ms/step - loss: 0.0315 - accuracy: 0.9952\n", 113 | "Epoch 20/20\n", 114 | "92/92 [==============================] - 6s 64ms/step - loss: 0.0288 - accuracy: 0.9973\n", 115 | "11/11 [==============================] - 0s 21ms/step - loss: 0.2302 - accuracy: 0.9083\n", 116 | "Test accuracy: 0.9082568883895874\n", 117 | "11/11 [==============================] - 0s 19ms/step\n", 118 | "Epoch 1/20\n", 119 | "92/92 [==============================] - 7s 71ms/step - loss: 0.0557 - accuracy: 0.9871\n", 120 | "Epoch 2/20\n", 121 | "92/92 [==============================] - 7s 71ms/step - loss: 0.0382 - accuracy: 0.9935\n", 122 | "Epoch 3/20\n", 123 | "92/92 [==============================] - 7s 72ms/step - loss: 0.0296 - accuracy: 0.9946\n", 124 | "Epoch 4/20\n", 125 | "92/92 [==============================] - 7s 72ms/step - loss: 0.0263 - accuracy: 0.9973\n", 126 | "Epoch 5/20\n", 127 | "92/92 [==============================] - 7s 71ms/step - loss: 0.0267 - accuracy: 0.9966\n", 128 | "Epoch 6/20\n", 129 | "92/92 [==============================] - 7s 72ms/step - loss: 0.0259 - accuracy: 0.9973\n", 130 | "Epoch 7/20\n", 131 | "92/92 [==============================] - 7s 73ms/step - loss: 0.0182 - accuracy: 0.9980\n", 132 | "Epoch 8/20\n", 133 | "92/92 [==============================] - 8s 82ms/step - loss: 0.0136 - accuracy: 0.9990\n", 134 | "Epoch 9/20\n", 135 | "92/92 [==============================] - 8s 89ms/step - loss: 0.0227 - accuracy: 0.9966\n", 136 | "Epoch 10/20\n", 137 | "92/92 [==============================] - 6s 65ms/step - loss: 0.0175 - accuracy: 0.9986\n", 138 | "Epoch 11/20\n", 139 | "92/92 [==============================] - 7s 78ms/step - loss: 0.0098 - accuracy: 0.9997\n", 140 | "Epoch 12/20\n", 141 | "92/92 [==============================] - 6s 63ms/step - loss: 0.0107 - accuracy: 0.9997\n", 142 | "Epoch 13/20\n", 143 | "92/92 [==============================] - 7s 79ms/step - loss: 0.0087 - accuracy: 0.9997\n", 144 | "Epoch 14/20\n", 145 | "92/92 [==============================] - 6s 63ms/step - loss: 0.0099 - accuracy: 0.9997\n", 146 | "Epoch 15/20\n", 147 | "92/92 [==============================] - 7s 79ms/step - loss: 0.0078 - accuracy: 0.9997\n", 148 | "Epoch 16/20\n", 149 | "92/92 [==============================] - 6s 62ms/step - loss: 0.1103 - accuracy: 0.9646\n", 150 | "Epoch 17/20\n", 151 | "92/92 [==============================] - 7s 76ms/step - loss: 0.0355 - accuracy: 0.9918\n", 152 | "Epoch 18/20\n", 153 | "92/92 [==============================] - 6s 62ms/step - loss: 0.0164 - accuracy: 0.9963\n", 154 | "Epoch 19/20\n", 155 | "92/92 [==============================] - 7s 74ms/step - loss: 0.0107 - accuracy: 0.9990\n", 156 | "Epoch 20/20\n", 157 | "92/92 [==============================] - 6s 65ms/step - loss: 0.0090 - accuracy: 0.9993\n", 158 | "11/11 [==============================] - 0s 21ms/step - loss: 0.0519 - accuracy: 0.9847\n", 159 | "Test accuracy: 0.9847095012664795\n", 160 | "11/11 [==============================] - 0s 20ms/step\n", 161 | "Epoch 1/20\n", 162 | "92/92 [==============================] - 8s 75ms/step - loss: 0.0243 - accuracy: 0.9956\n", 163 | "Epoch 2/20\n", 164 | "92/92 [==============================] - 6s 64ms/step - loss: 0.0133 - accuracy: 0.9986\n", 165 | "Epoch 3/20\n", 166 | "92/92 [==============================] - 7s 72ms/step - loss: 0.0122 - accuracy: 0.9983\n", 167 | "Epoch 4/20\n", 168 | "92/92 [==============================] - 6s 66ms/step - loss: 0.0079 - accuracy: 0.9990\n", 169 | "Epoch 5/20\n", 170 | "92/92 [==============================] - 6s 69ms/step - loss: 0.0097 - accuracy: 0.9993\n", 171 | "Epoch 6/20\n", 172 | "92/92 [==============================] - 7s 70ms/step - loss: 0.0140 - accuracy: 0.9986\n", 173 | "Epoch 7/20\n", 174 | "92/92 [==============================] - 6s 65ms/step - loss: 0.0197 - accuracy: 0.9963\n", 175 | "Epoch 8/20\n", 176 | "92/92 [==============================] - 7s 73ms/step - loss: 0.0450 - accuracy: 0.9871\n", 177 | "Epoch 9/20\n", 178 | "92/92 [==============================] - 6s 62ms/step - loss: 0.0089 - accuracy: 0.9986\n", 179 | "Epoch 10/20\n", 180 | "92/92 [==============================] - 7s 76ms/step - loss: 0.0095 - accuracy: 0.9990\n", 181 | "Epoch 11/20\n", 182 | "92/92 [==============================] - 6s 62ms/step - loss: 0.0093 - accuracy: 0.9990\n", 183 | "Epoch 12/20\n", 184 | "92/92 [==============================] - 7s 76ms/step - loss: 0.0071 - accuracy: 0.9993\n", 185 | "Epoch 13/20\n", 186 | "92/92 [==============================] - 6s 62ms/step - loss: 0.0118 - accuracy: 0.9983\n", 187 | "Epoch 14/20\n", 188 | "92/92 [==============================] - 7s 76ms/step - loss: 0.0069 - accuracy: 0.9990\n", 189 | "Epoch 15/20\n", 190 | "92/92 [==============================] - 6s 62ms/step - loss: 0.0250 - accuracy: 0.9959\n", 191 | "Epoch 16/20\n", 192 | "92/92 [==============================] - 8s 84ms/step - loss: 0.0178 - accuracy: 0.9969\n", 193 | "Epoch 17/20\n", 194 | "92/92 [==============================] - 6s 62ms/step - loss: 0.0122 - accuracy: 0.9966\n", 195 | "Epoch 18/20\n", 196 | "92/92 [==============================] - 7s 76ms/step - loss: 0.0082 - accuracy: 0.9983\n", 197 | "Epoch 19/20\n", 198 | "92/92 [==============================] - 6s 63ms/step - loss: 0.0106 - accuracy: 0.9990\n", 199 | "Epoch 20/20\n", 200 | "92/92 [==============================] - 7s 76ms/step - loss: 0.0114 - accuracy: 0.9976\n", 201 | "11/11 [==============================] - 0s 19ms/step - loss: 0.0104 - accuracy: 1.0000\n", 202 | "Test accuracy: 1.0\n", 203 | "11/11 [==============================] - 0s 20ms/step\n", 204 | "Epoch 1/20\n", 205 | "92/92 [==============================] - 8s 77ms/step - loss: 0.0142 - accuracy: 0.9973\n", 206 | "Epoch 2/20\n", 207 | "92/92 [==============================] - 6s 62ms/step - loss: 0.0102 - accuracy: 0.9976\n", 208 | "Epoch 3/20\n", 209 | "92/92 [==============================] - 7s 75ms/step - loss: 0.0085 - accuracy: 0.9986\n", 210 | "Epoch 4/20\n", 211 | "92/92 [==============================] - 6s 64ms/step - loss: 0.0135 - accuracy: 0.9969\n", 212 | "Epoch 5/20\n", 213 | "92/92 [==============================] - 7s 74ms/step - loss: 0.0116 - accuracy: 0.9980\n", 214 | "Epoch 6/20\n", 215 | "92/92 [==============================] - 6s 67ms/step - loss: 0.0076 - accuracy: 0.9993\n", 216 | "Epoch 7/20\n", 217 | "92/92 [==============================] - 7s 72ms/step - loss: 0.0091 - accuracy: 0.9983\n", 218 | "Epoch 8/20\n", 219 | "92/92 [==============================] - 6s 69ms/step - loss: 0.0098 - accuracy: 0.9983\n", 220 | "Epoch 9/20\n", 221 | "92/92 [==============================] - 7s 71ms/step - loss: 0.0089 - accuracy: 0.9986\n", 222 | "Epoch 10/20\n", 223 | "92/92 [==============================] - 8s 85ms/step - loss: 0.0134 - accuracy: 0.9980\n", 224 | "Epoch 11/20\n", 225 | "92/92 [==============================] - 7s 74ms/step - loss: 0.0107 - accuracy: 0.9986\n", 226 | "Epoch 12/20\n", 227 | "92/92 [==============================] - 6s 66ms/step - loss: 0.0085 - accuracy: 0.9986\n", 228 | "Epoch 13/20\n", 229 | "92/92 [==============================] - 6s 70ms/step - loss: 0.0084 - accuracy: 0.9983\n", 230 | "Epoch 14/20\n", 231 | "92/92 [==============================] - 6s 69ms/step - loss: 0.0092 - accuracy: 0.9990\n", 232 | "Epoch 15/20\n", 233 | "92/92 [==============================] - 6s 68ms/step - loss: 0.0112 - accuracy: 0.9980\n", 234 | "Epoch 16/20\n", 235 | "92/92 [==============================] - 7s 71ms/step - loss: 0.0278 - accuracy: 0.9915\n", 236 | "Epoch 17/20\n", 237 | "92/92 [==============================] - 6s 64ms/step - loss: 0.0198 - accuracy: 0.9942\n", 238 | "Epoch 18/20\n", 239 | "92/92 [==============================] - 7s 75ms/step - loss: 0.0045 - accuracy: 0.9993\n", 240 | "Epoch 19/20\n", 241 | "92/92 [==============================] - 6s 64ms/step - loss: 0.0068 - accuracy: 0.9980\n", 242 | "Epoch 20/20\n", 243 | "92/92 [==============================] - 7s 75ms/step - loss: 0.0097 - accuracy: 0.9993\n", 244 | "11/11 [==============================] - 0s 23ms/step - loss: 0.0028 - accuracy: 1.0000\n", 245 | "Test accuracy: 1.0\n", 246 | "11/11 [==============================] - 0s 19ms/step\n", 247 | "Epoch 1/20\n", 248 | "92/92 [==============================] - 8s 78ms/step - loss: 0.0116 - accuracy: 0.9966\n", 249 | "Epoch 2/20\n", 250 | "92/92 [==============================] - 6s 63ms/step - loss: 0.0083 - accuracy: 0.9969\n", 251 | "Epoch 3/20\n", 252 | "92/92 [==============================] - 7s 79ms/step - loss: 0.0100 - accuracy: 0.9983\n", 253 | "Epoch 4/20\n", 254 | "92/92 [==============================] - 6s 63ms/step - loss: 0.0068 - accuracy: 0.9986\n", 255 | "Epoch 5/20\n", 256 | "92/92 [==============================] - 7s 74ms/step - loss: 0.0100 - accuracy: 0.9986\n", 257 | "Epoch 6/20\n", 258 | "92/92 [==============================] - 6s 65ms/step - loss: 0.0223 - accuracy: 0.9939\n", 259 | "Epoch 7/20\n", 260 | "92/92 [==============================] - 7s 72ms/step - loss: 0.0082 - accuracy: 0.9986\n", 261 | "Epoch 8/20\n", 262 | "92/92 [==============================] - 6s 68ms/step - loss: 0.0076 - accuracy: 0.9986\n", 263 | "Epoch 9/20\n", 264 | "92/92 [==============================] - 6s 70ms/step - loss: 0.0042 - accuracy: 0.9993\n", 265 | "Epoch 10/20\n", 266 | "92/92 [==============================] - 6s 70ms/step - loss: 0.0066 - accuracy: 0.9983\n", 267 | "Epoch 11/20\n", 268 | "92/92 [==============================] - 6s 68ms/step - loss: 0.0066 - accuracy: 0.9990\n", 269 | "Epoch 12/20\n", 270 | "92/92 [==============================] - 7s 72ms/step - loss: 0.0123 - accuracy: 0.9980\n", 271 | "Epoch 13/20\n", 272 | "92/92 [==============================] - 6s 65ms/step - loss: 0.0085 - accuracy: 0.9990\n", 273 | "Epoch 14/20\n", 274 | "92/92 [==============================] - 7s 74ms/step - loss: 0.0076 - accuracy: 0.9990\n", 275 | "Epoch 15/20\n", 276 | "92/92 [==============================] - 6s 63ms/step - loss: 0.0036 - accuracy: 0.9990\n", 277 | "Epoch 16/20\n", 278 | "92/92 [==============================] - 7s 78ms/step - loss: 0.0095 - accuracy: 0.9983\n", 279 | "Epoch 17/20\n", 280 | "92/92 [==============================] - 6s 62ms/step - loss: 0.0095 - accuracy: 0.9973\n", 281 | "Epoch 18/20\n", 282 | "92/92 [==============================] - 7s 77ms/step - loss: 0.0164 - accuracy: 0.9966\n", 283 | "Epoch 19/20\n", 284 | "92/92 [==============================] - 6s 63ms/step - loss: 0.0136 - accuracy: 0.9969\n", 285 | "Epoch 20/20\n", 286 | "92/92 [==============================] - 7s 77ms/step - loss: 0.0065 - accuracy: 0.9983\n", 287 | "11/11 [==============================] - 0s 19ms/step - loss: 0.0244 - accuracy: 0.9969\n", 288 | "Test accuracy: 0.9969325065612793\n", 289 | "11/11 [==============================] - 0s 23ms/step\n", 290 | "Epoch 1/20\n", 291 | "92/92 [==============================] - 8s 77ms/step - loss: 0.0092 - accuracy: 0.9980\n", 292 | "Epoch 2/20\n", 293 | "92/92 [==============================] - 6s 63ms/step - loss: 0.0078 - accuracy: 0.9983\n", 294 | "Epoch 3/20\n", 295 | "92/92 [==============================] - 7s 78ms/step - loss: 0.0028 - accuracy: 0.9993\n", 296 | "Epoch 4/20\n", 297 | "92/92 [==============================] - 6s 63ms/step - loss: 0.0033 - accuracy: 0.9993\n", 298 | "Epoch 5/20\n", 299 | "92/92 [==============================] - 7s 78ms/step - loss: 0.0041 - accuracy: 0.9990\n", 300 | "Epoch 6/20\n", 301 | "92/92 [==============================] - 6s 63ms/step - loss: 0.0033 - accuracy: 0.9993\n", 302 | "Epoch 7/20\n", 303 | "92/92 [==============================] - 7s 77ms/step - loss: 0.0192 - accuracy: 0.9942\n", 304 | "Epoch 8/20\n", 305 | "92/92 [==============================] - 6s 63ms/step - loss: 0.0176 - accuracy: 0.9959\n", 306 | "Epoch 9/20\n", 307 | "92/92 [==============================] - 7s 73ms/step - loss: 0.0035 - accuracy: 0.9997\n", 308 | "Epoch 10/20\n", 309 | "92/92 [==============================] - 6s 67ms/step - loss: 0.0077 - accuracy: 0.9990\n", 310 | "Epoch 11/20\n", 311 | "92/92 [==============================] - 6s 70ms/step - loss: 0.0040 - accuracy: 0.9993\n", 312 | "Epoch 12/20\n", 313 | "92/92 [==============================] - 6s 70ms/step - loss: 0.0082 - accuracy: 0.9983\n", 314 | "Epoch 13/20\n", 315 | "92/92 [==============================] - 6s 67ms/step - loss: 0.0061 - accuracy: 0.9993\n", 316 | "Epoch 14/20\n", 317 | "92/92 [==============================] - 7s 73ms/step - loss: 0.0037 - accuracy: 0.9983\n", 318 | "Epoch 15/20\n", 319 | "92/92 [==============================] - 7s 74ms/step - loss: 0.0062 - accuracy: 0.9993\n", 320 | "Epoch 16/20\n", 321 | "92/92 [==============================] - 8s 83ms/step - loss: 0.0028 - accuracy: 0.9997\n", 322 | "Epoch 17/20\n", 323 | "92/92 [==============================] - 6s 63ms/step - loss: 0.0070 - accuracy: 0.9993\n", 324 | "Epoch 18/20\n", 325 | "92/92 [==============================] - 7s 79ms/step - loss: 0.0072 - accuracy: 0.9990\n", 326 | "Epoch 19/20\n", 327 | "92/92 [==============================] - 6s 63ms/step - loss: 0.0078 - accuracy: 0.9993\n", 328 | "Epoch 20/20\n", 329 | "92/92 [==============================] - 7s 76ms/step - loss: 0.0120 - accuracy: 0.9976\n", 330 | "11/11 [==============================] - 0s 20ms/step - loss: 0.0032 - accuracy: 1.0000\n", 331 | "Test accuracy: 1.0\n", 332 | "11/11 [==============================] - 0s 19ms/step\n", 333 | "Epoch 1/20\n", 334 | "92/92 [==============================] - 8s 72ms/step - loss: 0.0073 - accuracy: 0.9990\n", 335 | "Epoch 2/20\n", 336 | "92/92 [==============================] - 7s 71ms/step - loss: 0.0100 - accuracy: 0.9990\n", 337 | "Epoch 3/20\n", 338 | "92/92 [==============================] - 7s 73ms/step - loss: 0.0022 - accuracy: 0.9997\n", 339 | "Epoch 4/20\n", 340 | "92/92 [==============================] - 7s 71ms/step - loss: 0.0014 - accuracy: 0.9997\n", 341 | "Epoch 5/20\n", 342 | "92/92 [==============================] - 7s 71ms/step - loss: 0.0060 - accuracy: 0.9980\n", 343 | "Epoch 6/20\n", 344 | "92/92 [==============================] - 8s 85ms/step - loss: 0.0238 - accuracy: 0.9942\n", 345 | "Epoch 7/20\n", 346 | "92/92 [==============================] - 7s 78ms/step - loss: 0.0111 - accuracy: 0.9966\n", 347 | "Epoch 8/20\n", 348 | "92/92 [==============================] - 6s 63ms/step - loss: 0.0128 - accuracy: 0.9963\n", 349 | "Epoch 9/20\n", 350 | "92/92 [==============================] - 7s 75ms/step - loss: 0.0072 - accuracy: 0.9983\n", 351 | "Epoch 10/20\n", 352 | "92/92 [==============================] - 6s 65ms/step - loss: 0.0019 - accuracy: 0.9993\n", 353 | "Epoch 11/20\n", 354 | "92/92 [==============================] - 7s 74ms/step - loss: 0.0096 - accuracy: 0.9969\n", 355 | "Epoch 12/20\n", 356 | "92/92 [==============================] - 6s 68ms/step - loss: 0.0109 - accuracy: 0.9976\n", 357 | "Epoch 13/20\n", 358 | "92/92 [==============================] - 7s 73ms/step - loss: 0.0032 - accuracy: 0.9997\n", 359 | "Epoch 14/20\n", 360 | "92/92 [==============================] - 6s 70ms/step - loss: 0.0056 - accuracy: 0.9990\n", 361 | "Epoch 15/20\n", 362 | "92/92 [==============================] - 6s 71ms/step - loss: 0.0038 - accuracy: 0.9993\n", 363 | "Epoch 16/20\n", 364 | "92/92 [==============================] - 7s 71ms/step - loss: 9.5385e-04 - accuracy: 0.9997\n", 365 | "Epoch 17/20\n", 366 | "92/92 [==============================] - 7s 72ms/step - loss: 8.2746e-04 - accuracy: 0.9997\n", 367 | "Epoch 18/20\n", 368 | "92/92 [==============================] - 7s 71ms/step - loss: 0.0090 - accuracy: 0.9980\n", 369 | "Epoch 19/20\n", 370 | "92/92 [==============================] - 7s 71ms/step - loss: 0.0027 - accuracy: 0.9993\n", 371 | "Epoch 20/20\n", 372 | "92/92 [==============================] - 7s 73ms/step - loss: 0.0049 - accuracy: 0.9980\n", 373 | "11/11 [==============================] - 0s 21ms/step - loss: 0.0073 - accuracy: 0.9969\n", 374 | "Test accuracy: 0.9969325065612793\n", 375 | "11/11 [==============================] - 0s 20ms/step\n", 376 | "Epoch 1/20\n", 377 | "92/92 [==============================] - 8s 72ms/step - loss: 0.0040 - accuracy: 0.9993\n", 378 | "Epoch 2/20\n", 379 | "92/92 [==============================] - 7s 72ms/step - loss: 0.0013 - accuracy: 0.9997\n", 380 | "Epoch 3/20\n", 381 | "92/92 [==============================] - 7s 71ms/step - loss: 0.0031 - accuracy: 0.9993\n", 382 | "Epoch 4/20\n", 383 | "92/92 [==============================] - 7s 72ms/step - loss: 0.0138 - accuracy: 0.9966\n", 384 | "Epoch 5/20\n", 385 | "92/92 [==============================] - 6s 70ms/step - loss: 0.0066 - accuracy: 0.9990\n", 386 | "Epoch 6/20\n", 387 | "92/92 [==============================] - 7s 74ms/step - loss: 0.0017 - accuracy: 0.9993\n", 388 | "Epoch 7/20\n", 389 | "92/92 [==============================] - 6s 69ms/step - loss: 0.0019 - accuracy: 0.9993\n", 390 | "Epoch 8/20\n", 391 | "92/92 [==============================] - 7s 74ms/step - loss: 0.0010 - accuracy: 0.9997\n", 392 | "Epoch 9/20\n", 393 | "92/92 [==============================] - 6s 66ms/step - loss: 0.0021 - accuracy: 0.9993\n", 394 | "Epoch 10/20\n", 395 | "92/92 [==============================] - 7s 77ms/step - loss: 0.0024 - accuracy: 0.9993\n", 396 | "Epoch 11/20\n", 397 | "92/92 [==============================] - 6s 69ms/step - loss: 5.0418e-04 - accuracy: 1.0000\n", 398 | "Epoch 12/20\n", 399 | "92/92 [==============================] - 7s 74ms/step - loss: 7.3132e-04 - accuracy: 0.9997\n", 400 | "Epoch 13/20\n", 401 | "92/92 [==============================] - 6s 65ms/step - loss: 4.8889e-04 - accuracy: 1.0000\n", 402 | "Epoch 14/20\n", 403 | "92/92 [==============================] - 7s 77ms/step - loss: 0.0015 - accuracy: 0.9993\n", 404 | "Epoch 15/20\n", 405 | "92/92 [==============================] - 6s 65ms/step - loss: 8.8092e-04 - accuracy: 0.9993\n", 406 | "Epoch 16/20\n", 407 | "92/92 [==============================] - 7s 78ms/step - loss: 0.0016 - accuracy: 0.9990\n", 408 | "Epoch 17/20\n", 409 | "92/92 [==============================] - 6s 64ms/step - loss: 0.0053 - accuracy: 0.9997\n", 410 | "Epoch 18/20\n", 411 | "92/92 [==============================] - 7s 79ms/step - loss: 0.0010 - accuracy: 0.9997\n", 412 | "Epoch 19/20\n", 413 | "92/92 [==============================] - 6s 64ms/step - loss: 0.0460 - accuracy: 0.9884\n", 414 | "Epoch 20/20\n", 415 | "92/92 [==============================] - 7s 79ms/step - loss: 0.0351 - accuracy: 0.9894\n", 416 | "11/11 [==============================] - 0s 21ms/step - loss: 0.0294 - accuracy: 0.9908\n", 417 | "Test accuracy: 0.9907975196838379\n", 418 | "11/11 [==============================] - 0s 22ms/step\n", 419 | "Epoch 1/20\n", 420 | "92/92 [==============================] - 8s 77ms/step - loss: 0.0058 - accuracy: 0.9983\n", 421 | "Epoch 2/20\n", 422 | "92/92 [==============================] - 6s 66ms/step - loss: 0.0032 - accuracy: 0.9997\n", 423 | "Epoch 3/20\n", 424 | "92/92 [==============================] - 7s 77ms/step - loss: 0.0057 - accuracy: 0.9983\n", 425 | "Epoch 4/20\n", 426 | "92/92 [==============================] - 6s 67ms/step - loss: 0.0020 - accuracy: 0.9993\n", 427 | "Epoch 5/20\n", 428 | "92/92 [==============================] - 7s 77ms/step - loss: 0.0116 - accuracy: 0.9980\n", 429 | "Epoch 6/20\n", 430 | "92/92 [==============================] - 6s 66ms/step - loss: 0.0097 - accuracy: 0.9983\n", 431 | "Epoch 7/20\n", 432 | "92/92 [==============================] - 7s 77ms/step - loss: 0.0103 - accuracy: 0.9980\n", 433 | "Epoch 8/20\n", 434 | "92/92 [==============================] - 6s 67ms/step - loss: 0.0067 - accuracy: 0.9986\n", 435 | "Epoch 9/20\n", 436 | "92/92 [==============================] - 7s 75ms/step - loss: 0.0121 - accuracy: 0.9983\n", 437 | "Epoch 10/20\n", 438 | "92/92 [==============================] - 6s 68ms/step - loss: 0.0014 - accuracy: 1.0000\n", 439 | "Epoch 11/20\n", 440 | "92/92 [==============================] - 7s 76ms/step - loss: 7.7667e-04 - accuracy: 0.9997\n", 441 | "Epoch 12/20\n", 442 | "92/92 [==============================] - 6s 69ms/step - loss: 0.0046 - accuracy: 0.9986\n", 443 | "Epoch 13/20\n", 444 | "92/92 [==============================] - 7s 78ms/step - loss: 0.0022 - accuracy: 0.9990\n", 445 | "Epoch 14/20\n", 446 | "92/92 [==============================] - 6s 66ms/step - loss: 0.0020 - accuracy: 0.9993\n", 447 | "Epoch 15/20\n", 448 | "92/92 [==============================] - 7s 77ms/step - loss: 6.8017e-04 - accuracy: 0.9997\n", 449 | "Epoch 16/20\n", 450 | "92/92 [==============================] - 6s 66ms/step - loss: 0.0047 - accuracy: 0.9986\n", 451 | "Epoch 17/20\n", 452 | "92/92 [==============================] - 7s 75ms/step - loss: 2.7599e-04 - accuracy: 1.0000\n", 453 | "Epoch 18/20\n", 454 | "92/92 [==============================] - 7s 70ms/step - loss: 2.2865e-04 - accuracy: 1.0000\n", 455 | "Epoch 19/20\n", 456 | "92/92 [==============================] - 7s 79ms/step - loss: 2.1964e-04 - accuracy: 1.0000\n", 457 | "Epoch 20/20\n", 458 | "92/92 [==============================] - 6s 67ms/step - loss: 1.5326e-04 - accuracy: 1.0000\n", 459 | "11/11 [==============================] - 0s 20ms/step - loss: 1.2742e-04 - accuracy: 1.0000\n", 460 | "Test accuracy: 1.0\n", 461 | "11/11 [==============================] - 0s 20ms/step\n" 462 | ] 463 | } 464 | ], 465 | "source": [ 466 | "import tensorflow as tf\n", 467 | "import numpy as np\n", 468 | "from sklearn.preprocessing import LabelEncoder\n", 469 | "from tensorflow.keras import layers\n", 470 | "from sklearn.model_selection import StratifiedKFold\n", 471 | "from keras.utils import to_categorical\n", 472 | "from tensorflow.keras.initializers import GlorotUniform\n", 473 | "\n", 474 | "\n", 475 | "# Load data\n", 476 | "p_data = np.load(\"pituitary_final.npy\")\n", 477 | "n_data = np.load(\"no_tumor_final.npy\")\n", 478 | "g_data = np.load(\"glioma_final.npy\")\n", 479 | "m_data = np.load(\"meningioma_final.npy\")\n", 480 | "\n", 481 | "# Set labels\n", 482 | "p_labels = np.ones(p_data.shape[0], dtype=np.int32)*0\n", 483 | "n_labels = np.ones(n_data.shape[0], dtype=np.int32)*1\n", 484 | "g_labels = np.ones(g_data.shape[0], dtype=np.int32)*2\n", 485 | "m_labels = np.ones(m_data.shape[0], dtype=np.int32)*3\n", 486 | "\n", 487 | "all_data = np.concatenate([p_data, n_data, g_data, m_data], axis=0)\n", 488 | "all_labels = np.concatenate([p_labels, n_labels, g_labels, m_labels])\n", 489 | "\n", 490 | "# One-hot encode labels\n", 491 | "one_hot_label = to_categorical(all_labels)\n", 492 | "\n", 493 | "# Initialize k-fold cross-validation\n", 494 | "skf = StratifiedKFold(n_splits=10, shuffle=True, random_state=42)\n", 495 | "\n", 496 | "# Initialize list to store Test Accuracies\n", 497 | "test_accs = []\n", 498 | "\n", 499 | "# Initialize list to store Test Losses\n", 500 | "test_losses = []\n", 501 | "\n", 502 | "\n", 503 | "# # Build the model\n", 504 | "model = tf.keras.models.Sequential([\n", 505 | " tf.keras.layers.Conv2D(4, (2, 2), activation='relu', kernel_initializer=GlorotUniform(),\n", 506 | " input_shape=(64, 64, 4)),\n", 507 | " tf.keras.layers.MaxPooling2D((2, 2), strides=1),\n", 508 | " tf.keras.layers.Flatten(),\n", 509 | " tf.keras.layers.Dense(128, activation='relu', kernel_initializer=GlorotUniform()),\n", 510 | " tf.keras.layers.Dense(4, activation='softmax', kernel_initializer=GlorotUniform())\n", 511 | "])\n", 512 | "\n", 513 | "# Train and evaluate model using Stratified K Fold cross-validation\n", 514 | "\n", 515 | "y_true_all = []\n", 516 | "y_pred_all = []\n", 517 | "for train_index, test_index in skf.split(all_data, all_labels):\n", 518 | " train_data, test_data = all_data[train_index], all_data[test_index]\n", 519 | " train_labels, test_labels = one_hot_label[train_index], one_hot_label[test_index]\n", 520 | " \n", 521 | " # Compile the model\n", 522 | " opt = tf.keras.optimizers.Adam(learning_rate=0.001)\n", 523 | " model.compile(optimizer=opt, loss='categorical_crossentropy', metrics=['accuracy'])\n", 524 | "\n", 525 | " # Train the model\n", 526 | " history = model.fit(train_data, train_labels, batch_size=32, epochs=20)\n", 527 | "\n", 528 | " # Evaluate the model\n", 529 | " test_loss, test_acc = model.evaluate(test_data,test_labels, verbose=1)\n", 530 | " print('Test accuracy:', test_acc)\n", 531 | "\n", 532 | " # Append test accuracy to list\n", 533 | " test_accs.append(test_acc)\n", 534 | " \n", 535 | " # Predict the test labels\n", 536 | " y_pred = np.argmax(model.predict(test_data), axis=-1)\n", 537 | " y_true = test_labels\n", 538 | " \n", 539 | " # Append true and predicted labels to lists\n", 540 | " y_true_all.extend(y_true)\n", 541 | " y_pred_all.extend(y_pred)\n", 542 | "\n", 543 | " test_losses.append(history.history['loss'][-1]) # append the final loss value of the last epoch to the list\n", 544 | " \n", 545 | " \n", 546 | "\n", 547 | "\n", 548 | "\n", 549 | "\n" 550 | ] 551 | }, 552 | { 553 | "cell_type": "code", 554 | "source": [ 555 | "# Average Test Accuracy\n", 556 | "avg_acc = np.mean(test_accs)\n", 557 | "print(\"Average test accuracy: {:.2f}%\".format(avg_acc * 100))\n", 558 | "\n", 559 | "#Average Loss\n", 560 | "avg_loss = np.mean(test_losses)\n", 561 | "print('Average loss:', avg_loss)\n", 562 | "\n" 563 | ], 564 | "metadata": { 565 | "id": "XvXVJ0WCMNtR", 566 | "colab": { 567 | "base_uri": "https://localhost:8080/" 568 | }, 569 | "outputId": "b33506be-9b81-4dfb-b197-9197a96277db" 570 | }, 571 | "execution_count": 30, 572 | "outputs": [ 573 | { 574 | "output_type": "stream", 575 | "name": "stdout", 576 | "text": [ 577 | "Average test accuracy: 96.94%\n", 578 | "Average loss: 0.03573091863509035\n" 579 | ] 580 | } 581 | ] 582 | }, 583 | { 584 | "cell_type": "code", 585 | "source": [ 586 | "\n", 587 | "# Plot test accuracies\n", 588 | "plt.plot(test_accs)\n", 589 | "plt.title('Test Accuracies')\n", 590 | "plt.xlabel('Fold')\n", 591 | "plt.ylabel('Accuracy')\n", 592 | "plt.show()" 593 | ], 594 | "metadata": { 595 | "id": "YJkV43eUMaUy", 596 | "colab": { 597 | "base_uri": "https://localhost:8080/", 598 | "height": 295 599 | }, 600 | "outputId": "168cfac5-b2d8-4e57-f355-828ee5bb78e2" 601 | }, 602 | "execution_count": 4, 603 | "outputs": [ 604 | { 605 | "output_type": "display_data", 606 | "data": { 607 | "text/plain": [ 608 | "
" 609 | ], 610 | "image/png": "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\n" 611 | }, 612 | "metadata": { 613 | "needs_background": "light" 614 | } 615 | } 616 | ] 617 | }, 618 | { 619 | "cell_type": "code", 620 | "source": [ 621 | "# Plot Loss accuracies\n", 622 | "plt.plot(test_losses)\n", 623 | "plt.title('Loss vs Fold')\n", 624 | "plt.xlabel('Fold')\n", 625 | "plt.ylabel('Final Loss')\n", 626 | "plt.show()" 627 | ], 628 | "metadata": { 629 | "id": "-ocyGyGUNIyP", 630 | "colab": { 631 | "base_uri": "https://localhost:8080/", 632 | "height": 295 633 | }, 634 | "outputId": "68d71851-7321-45b5-f395-98653cc6f2e4" 635 | }, 636 | "execution_count": 5, 637 | "outputs": [ 638 | { 639 | "output_type": "display_data", 640 | "data": { 641 | "text/plain": [ 642 | "
" 643 | ], 644 | "image/png": "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\n" 645 | }, 646 | "metadata": { 647 | "needs_background": "light" 648 | } 649 | } 650 | ] 651 | }, 652 | { 653 | "cell_type": "code", 654 | "source": [ 655 | "# Plot loss and accuracy\n", 656 | "fig, ax = plt.subplots(1, 2, figsize=(10, 5))\n", 657 | "ax[0].plot(history.history['loss'])\n", 658 | "ax[0].set_xlabel('Epochs')\n", 659 | "ax[0].set_ylabel('Loss')\n", 660 | "ax[0].set_title('Training Loss')\n", 661 | "\n", 662 | "ax[1].plot(history.history['accuracy'])\n", 663 | "ax[1].set_xlabel('Epochs')\n", 664 | "ax[1].set_ylabel('Accuracy')\n", 665 | "ax[1].set_title('Training Accuracy')" 666 | ], 667 | "metadata": { 668 | "id": "nDHH-mDoQX4p", 669 | "colab": { 670 | "base_uri": "https://localhost:8080/", 671 | "height": 368 672 | }, 673 | "outputId": "38cb961d-bae2-4825-a370-721e6883ef3d" 674 | }, 675 | "execution_count": 16, 676 | "outputs": [ 677 | { 678 | "output_type": "execute_result", 679 | "data": { 680 | "text/plain": [ 681 | "Text(0.5, 1.0, 'Training Accuracy')" 682 | ] 683 | }, 684 | "metadata": {}, 685 | "execution_count": 16 686 | }, 687 | { 688 | "output_type": "display_data", 689 | "data": { 690 | "text/plain": [ 691 | "
" 692 | ], 693 | "image/png": "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\n" 694 | }, 695 | "metadata": { 696 | "needs_background": "light" 697 | } 698 | } 699 | ] 700 | }, 701 | { 702 | "cell_type": "code", 703 | "source": [ 704 | "#Confusion Matrix\n", 705 | "\n", 706 | "from sklearn.metrics import confusion_matrix\n", 707 | "import seaborn as sns\n", 708 | "\n", 709 | "# Get the predicted labels for the test data\n", 710 | "y_pred = np.argmax(model.predict(test_data), axis=1)\n", 711 | "\n", 712 | "# Get the true labels for the test data\n", 713 | "y_true = np.argmax(test_labels, axis=1)\n", 714 | "\n", 715 | "# Compute the confusion matrix\n", 716 | "cm = confusion_matrix(y_true, y_pred)\n", 717 | "\n", 718 | "# Plot the confusion matrix as a heatmap\n", 719 | "sns.heatmap(cm, annot=True, cmap='Blues', fmt='g')\n", 720 | "plt.xlabel('Predicted labels')\n", 721 | "plt.ylabel('True labels')\n", 722 | "plt.show()" 723 | ], 724 | "metadata": { 725 | "id": "EaRvcNbEIu8l", 726 | "colab": { 727 | "base_uri": "https://localhost:8080/", 728 | "height": 297 729 | }, 730 | "outputId": "57f6f82d-d3b3-4ad7-e344-2d84df5cc0f9" 731 | }, 732 | "execution_count": 29, 733 | "outputs": [ 734 | { 735 | "output_type": "stream", 736 | "name": "stdout", 737 | "text": [ 738 | "11/11 [==============================] - 0s 35ms/step\n" 739 | ] 740 | }, 741 | { 742 | "output_type": "display_data", 743 | "data": { 744 | "text/plain": [ 745 | "
" 746 | ], 747 | "image/png": "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\n" 748 | }, 749 | "metadata": { 750 | "needs_background": "light" 751 | } 752 | } 753 | ] 754 | }, 755 | { 756 | "cell_type": "code", 757 | "source": [ 758 | "#Classification Report - Calculates the Macro precision, Macro recall, Macro F1 Score, and Support\n", 759 | "#of each class to facilitate observation, where support refers to the number of original real data belonging to this class\n", 760 | "\n", 761 | "from sklearn.metrics import classification_report\n", 762 | "\n", 763 | "report = classification_report(y_true, y_pred, target_names=class_names)\n", 764 | "print(report)\n", 765 | "\n", 766 | "fig, ax = plt.subplots(figsize=(8, 5))\n", 767 | "ax.axis('off')\n", 768 | "ax.axis('tight')\n", 769 | "ax.table(cellText=[report.split()[-4:], report.split()[-8:-4], report.split()[-12:-8], report.split()[-16:-12]],\n", 770 | "colLabels=['Precision', 'Recall', 'F1 Score', 'Support'], loc='center')\n", 771 | "plt.show()" 772 | ], 773 | "metadata": { 774 | "id": "_fDW5u5hIv3O", 775 | "colab": { 776 | "base_uri": "https://localhost:8080/", 777 | "height": 504 778 | }, 779 | "outputId": "966bfcb2-51ed-4d67-b66a-a71348512e6c" 780 | }, 781 | "execution_count": 31, 782 | "outputs": [ 783 | { 784 | "output_type": "stream", 785 | "name": "stdout", 786 | "text": [ 787 | " precision recall f1-score support\n", 788 | "\n", 789 | " Pituitary Tumor 1.00 1.00 1.00 90\n", 790 | " No Tumor 1.00 1.00 1.00 50\n", 791 | " Glioma Tumor 1.00 1.00 1.00 92\n", 792 | "Meningioma Tumor 1.00 1.00 1.00 94\n", 793 | "\n", 794 | " accuracy 1.00 326\n", 795 | " macro avg 1.00 1.00 1.00 326\n", 796 | " weighted avg 1.00 1.00 1.00 326\n", 797 | "\n" 798 | ] 799 | }, 800 | { 801 | "output_type": "display_data", 802 | "data": { 803 | "text/plain": [ 804 | "
" 805 | ], 806 | "image/png": "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x8/H19dX3t7ev3f4tc4jf4Z5Pn379tWsWbNUVlYmSdq7d69OnDih3r17a/78+SopKZEkHT9+/IztiouLVVhYqH79+mnGjBnasWPHGeubNGmigIAA988n33rrLfdsE9XHz89PM2fO1D/+8Q/5+fkpKChIixcvllT5Anm6Lr169dKsWbMkVX6AoLCwUIWFhQoICJCfn5/27NmjLVu21Np54H+Ki4uVnp7u/jorK0tt2rSRdO46xsXFafny5SopKdGJEye0bNkyxcXFnbXfvn37at68ee4PIh06dEhHjx6t+RPyYN98842ys7PdX5+uRdu2bZWZmSlJWrp06RnbvP/++yotLdWxY8eUnp6url27SpK2bt2q/fv3y+VyadGiRbr++usVExOj9evXKy8vTxUVFUpNTT3v6+Rll12moqKiGjrTmuMxM0wbd911l3JychQVFSVjjAIDA7V8+XIlJSUpKytLXbp00f/93/+pX79+evbZZ93bFRUVadCgQSotLZUxRs8///xZ+37zzTc1ZswYlZSUqF27dpo/f/6lPLU/jM6dO8vpdCo1NVXvvPOO7rvvPk2ZMkVlZWUaNmyYIiMj9eKLL+qee+7RG2+8IW9vb82aNUtJSUmaPXu2QkJC1KFDB/etO9Sstm3b6qefftKpU6e0fPlyrVq1SqGhoe71xhg999xzuvfee9WoUSP5+/u7Z5fnqmNsbKxGjhypmJgYSZXXdOfOnc/6UUefPn309ddfKzY2VlLl7ca3335bLVq0uCTn7YmKi4v1wAMPqKCgQD4+Pmrfvr3mzJmjr7/+WqNHj9bEiRPdH/g5zel0KjExUXl5eZo4caJatmypvXv3qmvXrho3bpz27dunxMREJScny8vLS1OnTlViYqKMMerfv78GDRp0zrHcc889SkpKUsuWLbVu3bpLcPbVw2N+rQQXri5+tB12qJ1nqw/1e+qpp9S4cWP3bw2clp6erunTp+ujjz6qpZHVvHr1ayUAAFxqzDDrsfrwLvePitp5Nurn2c43w6zyZ5i+vr4uh8PBLNRD+fr6/uan11A3UTvPRv08m6+vr+tcj/9WL9k62Q/RU5ZRo0YpMDBQYWFh51zvcrn0wAMP6JprrlFERIQyMzPd6xYsWKD27durffv2WrBgwUUd//SHmFio3R9toX71Yzl58qS7m1NoaKgmTZokY4xuu+02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wAQAwAKBCQCABQITAAALBCYAABYITAAALBCYAABYIDABALBAYAIAYIHABADAAoEJAIAFAhMAAAsEJgAAFghMAAAsEJgAAFggMAEAsEBgAgBggcAEAMACgQkAgAUCEwAACwQmAAAWCEwAACwQmAAAWCAwAQCwQGACAGCBwAQAwAKBCQCABQITAAALBCYAABYITAAALBCYAABYIDABALBAYAIAYIHABADAAoEJAIAFAhMAAAsEJgAAFghMAAAsEJgAAFggMAEAsEBgAgBggcAEAMACgQkAgAUCEwAACwQmAAAWCEwAACwQmAAAWCAwAQCwQGACAGCBwAQAwAKBCQCABQITAAALBCYAABYITAAALBCYAABYIDABALBAYAIAYIHABADAAoEJAIAFAhMAAAsEJgAAFghMAAAsEJgAAFggMAEAsEBgAgBggcAEAMACgQkAgAUCEwAACwQmAAAWCEwAACwQmAAAWCAwAQCwQGACAGCBwAQAwAKBCQCABQITAAALBCYAABYITAAALBCYAABYIDABALBAYAIAYIHABADAAoEJAIAFAhMAAAsEJgAAFghMAAAsEJgAAFggMAEAsEBgAgBggcAEAMACgQkAgAUCEwAACwQmAAAWCEwAACwQmAAAWCAwAQCwQGACAGCBwAQAwAKBCQCABQITAAALBCYAABYITAAALPw/9O3K6B6gS2MAAAAASUVORK5CYII=\n" 807 | }, 808 | "metadata": { 809 | "needs_background": "light" 810 | } 811 | } 812 | ] 813 | } 814 | ] 815 | } --------------------------------------------------------------------------------