{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "from fastai import *\n", "from fastai.vision import *\n", "from fastai.vision.models import efficientnet\n", "from fastai.utils.ipython import *\n", "from fastai.callbacks.tracker import SaveModelCallback\n", "from sklearn.model_selection import StratifiedKFold\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[PosixPath('../../../Dataset/Sipakmed Dataset/wsi_dataset/train'),\n", " PosixPath('../../../Dataset/Sipakmed Dataset/wsi_dataset/test')]" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "path = Path(\".\")\n", "data_path = path / \"..\" / \"..\" / \"..\" / \"Dataset\" / \"Sipakmed Dataset\" / \"wsi_dataset\"\n", "data_path.ls()" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "LabelLists;\n", "\n", "Train: LabelList (966 items)\n", "x: ImageList\n", "Image (3, 1536, 2048),Image (3, 1536, 2048),Image (3, 1536, 2048),Image (3, 1536, 2048),Image (3, 1536, 2048)\n", "y: CategoryList\n", "normal_Superficial-Intermediate,normal_Superficial-Intermediate,normal_Superficial-Intermediate,normal_Superficial-Intermediate,normal_Superficial-Intermediate\n", "Path: ../../../Dataset/Sipakmed Dataset/wsi_dataset/train;\n", "\n", "Valid: LabelList (0 items)\n", "x: ImageList\n", "\n", "y: CategoryList\n", "\n", "Path: ../../../Dataset/Sipakmed Dataset/wsi_dataset/train;\n", "\n", "Test: None" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data_init = (ImageList.from_folder(data_path / \"train\")\n", " .split_none()\n", " .label_from_folder())\n", "data_init" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "StratifiedKFold(n_splits=5, random_state=0, shuffle=True)" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "skf = StratifiedKFold(n_splits=5, shuffle=True, random_state=0)\n", "skf" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "tfms = get_transforms(flip_vert=True, max_warp=0.0, max_rotate=60.0, max_zoom=1.0)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "def model_callback(model, model_name):\n", " return [SaveModelCallback(model, every=\"improvement\", monitor=\"accuracy\", name=model_name)]" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[ .new_type at 0x7f2f4e434c80>>,\n", " Precision(average='macro', pos_label=1, eps=1e-09),\n", " Recall(average='macro', pos_label=1, eps=1e-09),\n", " FBeta(average='macro', pos_label=1, eps=1e-09, beta=2),\n", " KappaScore(weights='quadratic')]" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "our_metrics = [accuracy, Precision(average=\"macro\"), Recall(average=\"macro\"), FBeta(average=\"macro\"), KappaScore(weights=\"quadratic\")]\n", "our_metrics" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "idxs = [[train_idx, val_idx] for train_idx, val_idx in skf.split(data_init.x.items, data_init.y.items)]" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "def get_fold_data(fold_idxs, img_size, bs=16):\n", " return (ImageList.from_folder(data_path / \"train\")\n", " .split_by_idxs(fold_idxs[0], fold_idxs[1])\n", " .label_from_folder()\n", " .transform(tfms, size=img_size)\n", " .databunch(bs=bs)\n", " .normalize(imagenet_stats))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Fold-1" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "ImageDataBunch;\n", "\n", "Train: LabelList (772 items)\n", "x: ImageList\n", "Image (3, 224, 224),Image (3, 224, 224),Image (3, 224, 224),Image (3, 224, 224),Image (3, 224, 224)\n", "y: CategoryList\n", "normal_Superficial-Intermediate,normal_Superficial-Intermediate,normal_Superficial-Intermediate,normal_Superficial-Intermediate,normal_Superficial-Intermediate\n", "Path: ../../../Dataset/Sipakmed Dataset/wsi_dataset/train;\n", "\n", "Valid: LabelList (194 items)\n", "x: ImageList\n", "Image (3, 224, 224),Image (3, 224, 224),Image (3, 224, 224),Image (3, 224, 224),Image (3, 224, 224)\n", "y: CategoryList\n", "normal_Superficial-Intermediate,normal_Superficial-Intermediate,normal_Superficial-Intermediate,normal_Superficial-Intermediate,normal_Superficial-Intermediate\n", "Path: ../../../Dataset/Sipakmed Dataset/wsi_dataset/train;\n", "\n", "Test: None" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "fold_data = get_fold_data(idxs[0], img_size=224, bs=16)\n", "fold_data" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Loaded pretrained weights for efficientnet-b3\n" ] } ], "source": [ "learner = Learner(fold_data, efficientnet.EfficientNetB3(fold_data), metrics=our_metrics).to_fp16()\n", "learner = learner.split([learner.model._conv_stem, learner.model._blocks, learner.model._conv_head])" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
\n", " \n", " \n", " 33.33% [1/3 00:14<00:29]\n", "
\n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
epochtrain_lossvalid_lossaccuracyprecisionrecallf_betakappa_scoretime
01.555533#na#00:14

\n", "\n", "

\n", " \n", " \n", " 75.00% [36/48 00:11<00:03 5.3616]\n", "
\n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "LR Finder is complete, type {learner_name}.recorder.plot() to see the graph.\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "learner.lr_find()\n", "learner.recorder.plot()" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
epochtrain_lossvalid_lossaccuracyprecisionrecallf_betakappa_scoretime
01.5183251.4775540.4381440.4514760.4947670.4805360.48880600:18
11.3317561.1744360.6958760.6984370.7393720.7268180.68270300:18
21.0599820.6568240.8247420.8256820.8485430.8401810.77913600:17
30.7715580.3183620.9020620.9054260.9135360.9108770.88108900:18
40.5248460.2224500.9278350.9354320.9377140.9365520.92903400:18
50.4025530.2103830.9226800.9357590.9248070.9267360.92807200:18
60.3361920.1439310.9484540.9514760.9560270.9549170.92897100:18
70.2895560.1469580.9484540.9575660.9545610.9541590.95080000:18
80.2105430.2541880.9536080.9611370.9534300.9540900.95070500:18
90.2235460.2306840.9020620.9217650.9037660.9043500.89175300:18
100.2129700.1611730.9329900.9468200.9379640.9390800.92890000:18
110.1761390.1216820.9536080.9611550.9566770.9567190.96279900:18
120.1383590.1370380.9587630.9669310.9492230.9522200.94672300:18
130.1260470.1755070.9484540.9555770.9547350.9548770.96074800:18
140.1248300.1357390.9536080.9592370.9541550.9550420.95031100:18
150.1377570.1966300.9381440.9468070.9408370.9415780.93583400:18
160.1175890.1247780.9484540.9544350.9514870.9519590.93833100:18
170.1137710.1942720.9432990.9509830.9418440.9432670.92483300:18
180.0936630.1621940.9432990.9539090.9489980.9492560.93491000:18
190.0775460.1362480.9536080.9591420.9546390.9552630.95010800:18
200.0663780.1535400.9432990.9512420.9489980.9491480.94405200:18
210.0662620.1352820.9587630.9630060.9628830.9628270.96402200:17
220.0526220.1298810.9587630.9630970.9623310.9621590.96413000:18
230.0568230.1337560.9639180.9677480.9665870.9664880.95516200:17
240.0473970.1349300.9587630.9640870.9621420.9621940.94897800:18
250.0481220.1291840.9639180.9677480.9665870.9664880.95516200:18
260.0327000.1269680.9639180.9677480.9665870.9664880.95516200:18
270.0289410.1271910.9639180.9677480.9665870.9664880.95516200:18
280.0286350.1267770.9639180.9677480.9665870.9664880.95516200:18
290.0274500.1271660.9639180.9677480.9665870.9664880.95516200:18
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Better model found at epoch 0 with accuracy value: 0.438144326210022.\n", "Better model found at epoch 1 with accuracy value: 0.6958763003349304.\n", "Better model found at epoch 2 with accuracy value: 0.8247422575950623.\n", "Better model found at epoch 3 with accuracy value: 0.9020618796348572.\n", "Better model found at epoch 4 with accuracy value: 0.9278350472450256.\n", "Better model found at epoch 6 with accuracy value: 0.9484536051750183.\n", "Better model found at epoch 8 with accuracy value: 0.9536082744598389.\n", "Better model found at epoch 12 with accuracy value: 0.9587628841400146.\n", "Better model found at epoch 23 with accuracy value: 0.9639175534248352.\n" ] } ], "source": [ "learner.fit_one_cycle(30, max_lr=slice(1.5e-03), callbacks=model_callback(learner, \"best-effb3-sipak-multiclass-fold1-stage1\"))\n", "learner.save(\"last-effb3-sipak-multiclass-fold1-stage1\")" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
\n", " \n", " \n", " 33.33% [1/3 00:14<00:28]\n", "
\n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
epochtrain_lossvalid_lossaccuracyprecisionrecallf_betakappa_scoretime
00.032197#na#00:14

\n", "\n", "

\n", " \n", " \n", " 10.42% [5/48 00:05<00:46 0.0467]\n", "
\n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "LR Finder is complete, type {learner_name}.recorder.plot() to see the graph.\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "learner.load(\"best-effb3-sipak-multiclass-fold1-stage1\")\n", "learner = to_fp16(learner)\n", "learner.unfreeze()\n", "learner.lr_find()\n", "learner.recorder.plot()" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
epochtrain_lossvalid_lossaccuracyprecisionrecallf_betakappa_scoretime
00.0451690.1327370.9639180.9677480.9665870.9664880.95516200:17
10.0351270.1314920.9639180.9677480.9665870.9664880.95516200:18
20.0431550.1300700.9639180.9677480.9665870.9664880.95516200:17
30.0339010.1302350.9639180.9677480.9665870.9664880.95516200:18
40.0297470.1297530.9639180.9677480.9665870.9664880.95516200:17
50.0513960.1299250.9639180.9677480.9665870.9664880.95516200:17
60.0470830.1313490.9639180.9677480.9665870.9664880.95516200:19
70.0499390.1302000.9639180.9677480.9665870.9664880.95516200:19
80.0383600.1324340.9639180.9677480.9665870.9664880.95516200:18
90.0408900.1323490.9639180.9677480.9665870.9664880.95516200:18
100.0427830.1321700.9639180.9677480.9665870.9664880.95516200:18
110.0349740.1307990.9639180.9677480.9665870.9664880.95516200:18
120.0399760.1290300.9639180.9677480.9665870.9664880.95516200:18
130.0450370.1285390.9639180.9677480.9665870.9664880.95516200:18
140.0432470.1293800.9639180.9677480.9665870.9664880.95516200:18
150.0539510.1299740.9639180.9677480.9665870.9664880.95516200:18
160.0380510.1300490.9639180.9677480.9665870.9664880.95516200:18
170.0400180.1281910.9639180.9677480.9665870.9664880.95516200:18
180.0434820.1287310.9639180.9677480.9665870.9664880.95516200:18
190.0381570.1299860.9639180.9677480.9665870.9664880.95516200:17
200.0466800.1300970.9639180.9677480.9665870.9664880.95516200:19
210.0333480.1310190.9639180.9677480.9665870.9664880.95516200:18
220.0366550.1309850.9639180.9677480.9665870.9664880.95516200:17
230.0462070.1331350.9639180.9677480.9665870.9664880.95516200:17
240.0525020.1336340.9639180.9677480.9665870.9664880.95516200:18
250.0485500.1319620.9639180.9677480.9665870.9664880.95516200:18
260.0568370.1324050.9639180.9677480.9665870.9664880.95516200:18
270.0414070.1324520.9639180.9677480.9665870.9664880.95516200:18
280.0338850.1302330.9639180.9677480.9665870.9664880.95516200:17
290.0454170.1312410.9639180.9677480.9665870.9664880.95516200:18
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Better model found at epoch 0 with accuracy value: 0.9639175534248352.\n" ] } ], "source": [ "learner.fit_one_cycle(30, max_lr=slice(7e-07), callbacks=model_callback(learner, \"best-effb3-sipak-multiclass-fold1-stage2\"))\n", "learner.save(\"last-effb3-sipak-multiclass-fold1-stage2\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Fold-2" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "ImageDataBunch;\n", "\n", "Train: LabelList (773 items)\n", "x: ImageList\n", "Image (3, 224, 224),Image (3, 224, 224),Image (3, 224, 224),Image (3, 224, 224),Image (3, 224, 224)\n", "y: CategoryList\n", "normal_Superficial-Intermediate,normal_Superficial-Intermediate,normal_Superficial-Intermediate,normal_Superficial-Intermediate,normal_Superficial-Intermediate\n", "Path: ../../../Dataset/Sipakmed Dataset/wsi_dataset/train;\n", "\n", "Valid: LabelList (193 items)\n", "x: ImageList\n", "Image (3, 224, 224),Image (3, 224, 224),Image (3, 224, 224),Image (3, 224, 224),Image (3, 224, 224)\n", "y: CategoryList\n", "normal_Superficial-Intermediate,normal_Superficial-Intermediate,normal_Superficial-Intermediate,normal_Superficial-Intermediate,normal_Superficial-Intermediate\n", "Path: ../../../Dataset/Sipakmed Dataset/wsi_dataset/train;\n", "\n", "Test: None" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "fold_data = get_fold_data(idxs[1], img_size=224, bs=16)\n", "fold_data" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
\n", " \n", " \n", " 33.33% [1/3 00:11<00:23]\n", "
\n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
epochtrain_lossvalid_lossaccuracyprecisionrecallf_betakappa_scoretime
00.056576#na#00:11

\n", "\n", "

\n", " \n", " \n", " 52.08% [25/48 00:09<00:08 0.1691]\n", "
\n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "LR Finder is complete, type {learner_name}.recorder.plot() to see the graph.\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "learner.load(\"best-effb3-sipak-multiclass-fold1-stage2\")\n", "learner = to_fp16(learner)\n", "learner.data = fold_data\n", "learner.freeze()\n", "learner = to_fp16(learner)\n", "learner.lr_find()\n", "learner.recorder.plot()" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
epochtrain_lossvalid_lossaccuracyprecisionrecallf_betakappa_scoretime
00.0869890.0011221.0000001.0000001.0000001.0000001.00000000:15
10.0879940.0012561.0000001.0000001.0000001.0000001.00000000:15
20.0791990.0014331.0000001.0000001.0000001.0000001.00000000:15
30.0807740.0017111.0000001.0000001.0000001.0000001.00000000:16
40.0651110.0016041.0000001.0000001.0000001.0000001.00000000:15
50.0674270.0009291.0000001.0000001.0000001.0000001.00000000:15
60.0700000.0018451.0000001.0000001.0000001.0000001.00000000:16
70.0829780.0018201.0000001.0000001.0000001.0000001.00000000:15
80.0857950.0025231.0000001.0000001.0000001.0000001.00000000:15
90.1041850.0041241.0000001.0000001.0000001.0000001.00000000:15
100.0697560.0045201.0000001.0000001.0000001.0000001.00000000:15
110.0602280.0020551.0000001.0000001.0000001.0000001.00000000:15
120.0754740.0009441.0000001.0000001.0000001.0000001.00000000:15
130.0658740.0016321.0000001.0000001.0000001.0000001.00000000:16
140.0542700.0026781.0000001.0000001.0000001.0000001.00000000:15
150.0613250.0016351.0000001.0000001.0000001.0000001.00000000:16
160.0639480.0022251.0000001.0000001.0000001.0000001.00000000:16
170.0414730.0014241.0000001.0000001.0000001.0000001.00000000:16
180.0411670.0002321.0000001.0000001.0000001.0000001.00000000:16
190.0467100.0009441.0000001.0000001.0000001.0000001.00000000:16
200.0642830.0003961.0000001.0000001.0000001.0000001.00000000:16
210.0466780.0003551.0000001.0000001.0000001.0000001.00000000:16
220.0536330.0003621.0000001.0000001.0000001.0000001.00000000:15
230.0414950.0004781.0000001.0000001.0000001.0000001.00000000:15
240.0464660.0005151.0000001.0000001.0000001.0000001.00000000:16
250.0346590.0005601.0000001.0000001.0000001.0000001.00000000:16
260.0451810.0005581.0000001.0000001.0000001.0000001.00000000:15
270.0382620.0005581.0000001.0000001.0000001.0000001.00000000:15
280.0238000.0005681.0000001.0000001.0000001.0000001.00000000:16
290.0424900.0005651.0000001.0000001.0000001.0000001.00000000:16
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Better model found at epoch 0 with accuracy value: 1.0.\n" ] } ], "source": [ "learner.fit_one_cycle(30, max_lr=slice(2e-03), callbacks=model_callback(learner, \"best-effb3-sipak-multiclass-fold2-stage1\"))\n", "learner.save(\"last-effb3-sipak-multiclass-fold2-stage1\")" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
\n", " \n", " \n", " 33.33% [1/3 00:14<00:28]\n", "
\n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
epochtrain_lossvalid_lossaccuracyprecisionrecallf_betakappa_scoretime
00.076984#na#00:14

\n", "\n", "

\n", " \n", " \n", " 27.08% [13/48 00:08<00:22 0.2477]\n", "
\n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "LR Finder is complete, type {learner_name}.recorder.plot() to see the graph.\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "learner = learner.purge()\n", "learner.load(\"last-effb3-sipak-multiclass-fold2-stage1\") # change last to best as necessary\n", "learner = to_fp16(learner)\n", "learner.unfreeze()\n", "learner.lr_find()\n", "learner.recorder.plot()" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
epochtrain_lossvalid_lossaccuracyprecisionrecallf_betakappa_scoretime
00.0898420.0012661.0000001.0000001.0000001.0000001.00000000:18
10.0875030.0013631.0000001.0000001.0000001.0000001.00000000:18
20.0874560.0014241.0000001.0000001.0000001.0000001.00000000:18
30.0874370.0013961.0000001.0000001.0000001.0000001.00000000:18
40.1073930.0014321.0000001.0000001.0000001.0000001.00000000:18
50.1010980.0014861.0000001.0000001.0000001.0000001.00000000:18
60.1126580.0015031.0000001.0000001.0000001.0000001.00000000:18
70.0883730.0013971.0000001.0000001.0000001.0000001.00000000:18
80.0771470.0012611.0000001.0000001.0000001.0000001.00000000:18
90.1168400.0012681.0000001.0000001.0000001.0000001.00000000:18
100.0901700.0013191.0000001.0000001.0000001.0000001.00000000:18
110.0924370.0013141.0000001.0000001.0000001.0000001.00000000:18
120.0975900.0013321.0000001.0000001.0000001.0000001.00000000:18
130.1126710.0012541.0000001.0000001.0000001.0000001.00000000:18
140.0824110.0012301.0000001.0000001.0000001.0000001.00000000:19
150.0797990.0012861.0000001.0000001.0000001.0000001.00000000:18
160.0876370.0012411.0000001.0000001.0000001.0000001.00000000:18
170.0717180.0012321.0000001.0000001.0000001.0000001.00000000:18
180.0856470.0012221.0000001.0000001.0000001.0000001.00000000:18
190.0993130.0012811.0000001.0000001.0000001.0000001.00000000:18
200.0753260.0013611.0000001.0000001.0000001.0000001.00000000:18
210.0792970.0013631.0000001.0000001.0000001.0000001.00000000:18
220.0867470.0014511.0000001.0000001.0000001.0000001.00000000:18
230.0703730.0013141.0000001.0000001.0000001.0000001.00000000:18
240.0931830.0013621.0000001.0000001.0000001.0000001.00000000:18
250.1003770.0012801.0000001.0000001.0000001.0000001.00000000:18
260.0895380.0013901.0000001.0000001.0000001.0000001.00000000:18
270.0737560.0012891.0000001.0000001.0000001.0000001.00000000:18
280.0791290.0013621.0000001.0000001.0000001.0000001.00000000:18
290.0856180.0013721.0000001.0000001.0000001.0000001.00000000:18
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Better model found at epoch 0 with accuracy value: 1.0.\n" ] } ], "source": [ "learner.fit_one_cycle(30, max_lr=slice(4e-06), callbacks=model_callback(learner, \"best-effb3-sipak-multiclass-fold2-stage2\"))\n", "learner.save(\"last-effb3-sipak-multiclass-fold2-stage2\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Fold-3" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "ImageDataBunch;\n", "\n", "Train: LabelList (773 items)\n", "x: ImageList\n", "Image (3, 224, 224),Image (3, 224, 224),Image (3, 224, 224),Image (3, 224, 224),Image (3, 224, 224)\n", "y: CategoryList\n", "normal_Superficial-Intermediate,normal_Superficial-Intermediate,normal_Superficial-Intermediate,normal_Superficial-Intermediate,normal_Superficial-Intermediate\n", "Path: ../../../Dataset/Sipakmed Dataset/wsi_dataset/train;\n", "\n", "Valid: LabelList (193 items)\n", "x: ImageList\n", "Image (3, 224, 224),Image (3, 224, 224),Image (3, 224, 224),Image (3, 224, 224),Image (3, 224, 224)\n", "y: CategoryList\n", "normal_Superficial-Intermediate,normal_Superficial-Intermediate,normal_Superficial-Intermediate,normal_Superficial-Intermediate,normal_Superficial-Intermediate\n", "Path: ../../../Dataset/Sipakmed Dataset/wsi_dataset/train;\n", "\n", "Test: None" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "fold_data = get_fold_data(idxs[2], img_size=224, bs=16)\n", "fold_data" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
\n", " \n", " \n", " 33.33% [1/3 00:11<00:23]\n", "
\n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
epochtrain_lossvalid_lossaccuracyprecisionrecallf_betakappa_scoretime
00.040043#na#00:11

\n", "\n", "

\n", " \n", " \n", " 47.92% [23/48 00:08<00:09 0.1174]\n", "
\n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "LR Finder is complete, type {learner_name}.recorder.plot() to see the graph.\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "learner.load(\"best-effb3-sipak-multiclass-fold2-stage2\")\n", "learner = to_fp16(learner)\n", "learner.data = fold_data\n", "learner.freeze()\n", "learner = to_fp16(learner)\n", "learner.lr_find()\n", "learner.recorder.plot()" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
epochtrain_lossvalid_lossaccuracyprecisionrecallf_betakappa_scoretime
00.0842720.0032631.0000001.0000001.0000001.0000001.00000000:15
10.0671850.0033911.0000001.0000001.0000001.0000001.00000000:16
20.0651660.0031551.0000001.0000001.0000001.0000001.00000000:14
30.0669730.0027341.0000001.0000001.0000001.0000001.00000000:16
40.0801760.0025041.0000001.0000001.0000001.0000001.00000000:16
50.0791040.0026001.0000001.0000001.0000001.0000001.00000000:16
60.0886520.0025091.0000001.0000001.0000001.0000001.00000000:16
70.0727100.0030521.0000001.0000001.0000001.0000001.00000000:16
80.0534980.0030451.0000001.0000001.0000001.0000001.00000000:15
90.0574200.0029861.0000001.0000001.0000001.0000001.00000000:16
100.0548150.0024671.0000001.0000001.0000001.0000001.00000000:15
110.0501440.0025931.0000001.0000001.0000001.0000001.00000000:15
120.0502560.0023091.0000001.0000001.0000001.0000001.00000000:15
130.0625110.0023951.0000001.0000001.0000001.0000001.00000000:16
140.0638270.0024031.0000001.0000001.0000001.0000001.00000000:16
150.0493010.0024031.0000001.0000001.0000001.0000001.00000000:15
160.0496640.0019741.0000001.0000001.0000001.0000001.00000000:16
170.0434820.0017311.0000001.0000001.0000001.0000001.00000000:16
180.0328860.0014681.0000001.0000001.0000001.0000001.00000000:15
190.0408980.0013971.0000001.0000001.0000001.0000001.00000000:16
200.0353800.0014511.0000001.0000001.0000001.0000001.00000000:16
210.0434090.0014161.0000001.0000001.0000001.0000001.00000000:16
220.0407150.0013221.0000001.0000001.0000001.0000001.00000000:15
230.0463520.0013271.0000001.0000001.0000001.0000001.00000000:16
240.0382210.0013401.0000001.0000001.0000001.0000001.00000000:16
250.0436610.0013591.0000001.0000001.0000001.0000001.00000000:16
260.0562800.0014131.0000001.0000001.0000001.0000001.00000000:15
270.0516010.0013971.0000001.0000001.0000001.0000001.00000000:16
280.0533470.0014081.0000001.0000001.0000001.0000001.00000000:16
290.0493720.0014271.0000001.0000001.0000001.0000001.00000000:16
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Better model found at epoch 0 with accuracy value: 1.0.\n" ] } ], "source": [ "learner.fit_one_cycle(30, max_lr=slice(3e-04), callbacks=model_callback(learner, \"best-effb3-sipak-multiclass-fold3-stage1\"))\n", "learner.save(\"last-effb3-sipak-multiclass-fold3-stage1\")" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
\n", " \n", " \n", " 33.33% [1/3 00:14<00:28]\n", "
\n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
epochtrain_lossvalid_lossaccuracyprecisionrecallf_betakappa_scoretime
00.067328#na#00:14

\n", "\n", "

\n", " \n", " \n", " 14.58% [7/48 00:06<00:36 0.0776]\n", "
\n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "LR Finder is complete, type {learner_name}.recorder.plot() to see the graph.\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "learner.load(\"best-effb3-sipak-multiclass-fold3-stage1\")\n", "learner = to_fp16(learner)\n", "learner.unfreeze()\n", "learner.lr_find()\n", "learner.recorder.plot()" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
epochtrain_lossvalid_lossaccuracyprecisionrecallf_betakappa_scoretime
00.0644950.0032781.0000001.0000001.0000001.0000001.00000000:18
10.1179890.0033831.0000001.0000001.0000001.0000001.00000000:18
20.0955100.0033361.0000001.0000001.0000001.0000001.00000000:17
30.0961390.0034351.0000001.0000001.0000001.0000001.00000000:18
40.0964100.0033661.0000001.0000001.0000001.0000001.00000000:18
50.0795740.0033351.0000001.0000001.0000001.0000001.00000000:18
60.0840200.0033711.0000001.0000001.0000001.0000001.00000000:18
70.0846210.0034711.0000001.0000001.0000001.0000001.00000000:18
80.0880160.0035091.0000001.0000001.0000001.0000001.00000000:18
90.0809150.0033051.0000001.0000001.0000001.0000001.00000000:18
100.0720950.0032691.0000001.0000001.0000001.0000001.00000000:18
110.0819170.0032121.0000001.0000001.0000001.0000001.00000000:18
120.0870610.0033091.0000001.0000001.0000001.0000001.00000000:18
130.0882140.0031771.0000001.0000001.0000001.0000001.00000000:18
140.0965680.0031991.0000001.0000001.0000001.0000001.00000000:18
150.0770650.0032141.0000001.0000001.0000001.0000001.00000000:18
160.0680930.0034001.0000001.0000001.0000001.0000001.00000000:18
170.0642240.0034931.0000001.0000001.0000001.0000001.00000000:18
180.0726690.0033781.0000001.0000001.0000001.0000001.00000000:18
190.0930730.0034581.0000001.0000001.0000001.0000001.00000000:18
200.0780900.0033751.0000001.0000001.0000001.0000001.00000000:18
210.0786460.0032681.0000001.0000001.0000001.0000001.00000000:18
220.0935930.0032651.0000001.0000001.0000001.0000001.00000000:19
230.0896230.0033611.0000001.0000001.0000001.0000001.00000000:18
240.0814400.0032891.0000001.0000001.0000001.0000001.00000000:18
250.0730780.0032151.0000001.0000001.0000001.0000001.00000000:18
260.0789360.0033331.0000001.0000001.0000001.0000001.00000000:18
270.1057240.0032621.0000001.0000001.0000001.0000001.00000000:18
280.0967390.0032611.0000001.0000001.0000001.0000001.00000000:18
290.1068090.0032311.0000001.0000001.0000001.0000001.00000000:19
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Better model found at epoch 0 with accuracy value: 1.0.\n" ] } ], "source": [ "learner.fit_one_cycle(30, max_lr=slice(1.9e-07), callbacks=model_callback(learner, \"best-effb3-sipak-multiclass-fold3-stage2\"))\n", "learner.save(\"last-effb3-sipak-multiclass-fold3-stage2\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Fold-4" ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "ImageDataBunch;\n", "\n", "Train: LabelList (773 items)\n", "x: ImageList\n", "Image (3, 224, 224),Image (3, 224, 224),Image (3, 224, 224),Image (3, 224, 224),Image (3, 224, 224)\n", "y: CategoryList\n", "normal_Superficial-Intermediate,normal_Superficial-Intermediate,normal_Superficial-Intermediate,normal_Superficial-Intermediate,normal_Superficial-Intermediate\n", "Path: ../../../Dataset/Sipakmed Dataset/wsi_dataset/train;\n", "\n", "Valid: LabelList (193 items)\n", "x: ImageList\n", "Image (3, 224, 224),Image (3, 224, 224),Image (3, 224, 224),Image (3, 224, 224),Image (3, 224, 224)\n", "y: CategoryList\n", "normal_Superficial-Intermediate,normal_Superficial-Intermediate,normal_Superficial-Intermediate,normal_Superficial-Intermediate,normal_Superficial-Intermediate\n", "Path: ../../../Dataset/Sipakmed Dataset/wsi_dataset/train;\n", "\n", "Test: None" ] }, "execution_count": 36, "metadata": {}, "output_type": "execute_result" } ], "source": [ "fold_data = get_fold_data(idxs[3], img_size=224, bs=16)\n", "fold_data" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
\n", " \n", " \n", " 33.33% [1/3 00:11<00:23]\n", "
\n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
epochtrain_lossvalid_lossaccuracyprecisionrecallf_betakappa_scoretime
00.070607#na#00:11

\n", "\n", "

\n", " \n", " \n", " 47.92% [23/48 00:09<00:09 0.1173]\n", "
\n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "LR Finder is complete, type {learner_name}.recorder.plot() to see the graph.\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "learner.load(\"best-effb3-sipak-multiclass-fold3-stage2\")\n", "learner = to_fp16(learner)\n", "learner.data = fold_data\n", "learner.freeze()\n", "learner = to_fp16(learner)\n", "learner.lr_find()\n", "learner.recorder.plot()" ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
epochtrain_lossvalid_lossaccuracyprecisionrecallf_betakappa_scoretime
00.0410700.0070411.0000001.0000001.0000001.0000001.00000000:16
10.0694160.0084820.9948190.9956520.9962960.9961410.99388500:16
20.0598350.0078590.9948190.9956520.9962960.9961410.99388500:16
30.0769670.0104810.9948190.9956520.9962960.9961410.99388500:16
40.0883880.0055311.0000001.0000001.0000001.0000001.00000000:16
50.1107640.0218280.9948190.9956520.9962960.9961410.99388500:17
60.1162860.0189030.9896370.9914890.9921300.9919170.99238300:15
70.1127320.0026621.0000001.0000001.0000001.0000001.00000000:16
80.1722400.0480850.9896370.9920000.9911110.9911720.99690800:15
90.2244390.0916160.9792750.9771340.9837960.9821350.96535900:16
100.2228060.0244460.9948190.9956520.9962960.9961410.99388500:14
110.1712950.0249530.9896370.9879600.9921300.9912070.98027800:16
120.1112880.0069671.0000001.0000001.0000001.0000001.00000000:16
130.1083340.0401030.9896370.9879600.9921300.9912070.98027800:15
140.0985630.0717380.9844560.9837930.9884260.9873910.97877100:15
150.1072160.0161750.9948190.9956520.9962960.9961410.99388500:16
160.1081770.0260320.9948190.9959180.9955560.9955990.99846000:17
170.1378750.0435740.9844560.9838780.9888890.9877090.98635900:16
180.0995260.0484680.9896370.9915710.9925930.9923150.99235900:16
190.0988820.0356230.9844560.9837930.9884260.9873910.97877100:16
200.0989110.0305830.9896370.9920000.9918520.9918020.99692100:15
210.0797220.0354000.9844560.9836970.9876850.9868280.97868700:15
220.0899750.0350870.9844560.9837930.9884260.9873910.97877100:16
230.0691180.0196080.9896370.9915710.9925930.9923150.99235900:15
240.0567220.0205180.9948190.9956520.9962960.9961410.99388500:15
250.0344810.0204130.9896370.9879600.9921300.9912070.98027800:16
260.0408520.0190960.9896370.9879600.9921300.9912070.98027800:15
270.0350620.0195040.9896370.9879600.9921300.9912070.98027800:16
280.0346860.0197510.9896370.9879600.9921300.9912070.98027800:15
290.0493420.0196570.9896370.9879600.9921300.9912070.98027800:16
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Better model found at epoch 0 with accuracy value: 1.0.\n" ] } ], "source": [ "learner.fit_one_cycle(30, max_lr=slice(5.5e-03), callbacks=model_callback(learner, \"best-effb3-sipak-multiclass-fold4-stage1\"))\n", "learner.save(\"last-effb3-sipak-multiclass-fold4-stage1\")" ] }, { "cell_type": "code", "execution_count": 41, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
\n", " \n", " \n", " 33.33% [1/3 00:14<00:28]\n", "
\n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
epochtrain_lossvalid_lossaccuracyprecisionrecallf_betakappa_scoretime
00.109872#na#00:14

\n", "\n", "

\n", " \n", " \n", " 14.58% [7/48 00:06<00:36 0.1155]\n", "
\n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "LR Finder is complete, type {learner_name}.recorder.plot() to see the graph.\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "learner.load(\"best-effb3-sipak-multiclass-fold4-stage1\")\n", "learner = to_fp16(learner)\n", "learner.unfreeze()\n", "learner.lr_find()\n", "learner.recorder.plot()" ] }, { "cell_type": "code", "execution_count": 42, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
epochtrain_lossvalid_lossaccuracyprecisionrecallf_betakappa_scoretime
00.0774860.0067531.0000001.0000001.0000001.0000001.00000000:17
10.0587600.0070261.0000001.0000001.0000001.0000001.00000000:18
20.0688470.0066191.0000001.0000001.0000001.0000001.00000000:18
30.0732630.0066971.0000001.0000001.0000001.0000001.00000000:18
40.0747530.0070661.0000001.0000001.0000001.0000001.00000000:17
50.0736980.0072941.0000001.0000001.0000001.0000001.00000000:18
60.0714420.0071601.0000001.0000001.0000001.0000001.00000000:18
70.0857950.0068781.0000001.0000001.0000001.0000001.00000000:18
80.0840300.0071111.0000001.0000001.0000001.0000001.00000000:17
90.0906650.0067591.0000001.0000001.0000001.0000001.00000000:18
100.0686380.0065791.0000001.0000001.0000001.0000001.00000000:19
110.0870740.0061881.0000001.0000001.0000001.0000001.00000000:18
120.0939240.0063231.0000001.0000001.0000001.0000001.00000000:18
130.0793130.0064731.0000001.0000001.0000001.0000001.00000000:18
140.0893030.0068411.0000001.0000001.0000001.0000001.00000000:18
150.0719040.0067641.0000001.0000001.0000001.0000001.00000000:18
160.0538080.0066931.0000001.0000001.0000001.0000001.00000000:18
170.0579030.0066341.0000001.0000001.0000001.0000001.00000000:18
180.0472270.0067881.0000001.0000001.0000001.0000001.00000000:17
190.0576800.0064831.0000001.0000001.0000001.0000001.00000000:18
200.0549080.0063461.0000001.0000001.0000001.0000001.00000000:18
210.0693190.0061411.0000001.0000001.0000001.0000001.00000000:18
220.0606780.0061721.0000001.0000001.0000001.0000001.00000000:18
230.0753480.0062171.0000001.0000001.0000001.0000001.00000000:18
240.0740880.0062941.0000001.0000001.0000001.0000001.00000000:18
250.0799970.0065331.0000001.0000001.0000001.0000001.00000000:18
260.0639820.0064021.0000001.0000001.0000001.0000001.00000000:18
270.0540550.0066881.0000001.0000001.0000001.0000001.00000000:18
280.0583370.0064831.0000001.0000001.0000001.0000001.00000000:18
290.0825050.0061611.0000001.0000001.0000001.0000001.00000000:18
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Better model found at epoch 0 with accuracy value: 1.0.\n" ] } ], "source": [ "learner.fit_one_cycle(30, max_lr=slice(1.5e-05), callbacks=model_callback(learner, \"best-effb3-sipak-multiclass-fold4-stage2\"))\n", "learner.save(\"last-effb3-sipak-multiclass-fold4-stage2\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Fold-5" ] }, { "cell_type": "code", "execution_count": 43, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "ImageDataBunch;\n", "\n", "Train: LabelList (773 items)\n", "x: ImageList\n", "Image (3, 224, 224),Image (3, 224, 224),Image (3, 224, 224),Image (3, 224, 224),Image (3, 224, 224)\n", "y: CategoryList\n", "normal_Superficial-Intermediate,normal_Superficial-Intermediate,normal_Superficial-Intermediate,normal_Superficial-Intermediate,normal_Superficial-Intermediate\n", "Path: ../../../Dataset/Sipakmed Dataset/wsi_dataset/train;\n", "\n", "Valid: LabelList (193 items)\n", "x: ImageList\n", "Image (3, 224, 224),Image (3, 224, 224),Image (3, 224, 224),Image (3, 224, 224),Image (3, 224, 224)\n", "y: CategoryList\n", "normal_Superficial-Intermediate,normal_Superficial-Intermediate,normal_Superficial-Intermediate,normal_Superficial-Intermediate,normal_Superficial-Intermediate\n", "Path: ../../../Dataset/Sipakmed Dataset/wsi_dataset/train;\n", "\n", "Test: None" ] }, "execution_count": 43, "metadata": {}, "output_type": "execute_result" } ], "source": [ "fold_data = get_fold_data(idxs[4], img_size=224, bs=16)\n", "fold_data" ] }, { "cell_type": "code", "execution_count": 47, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
\n", " \n", " \n", " 33.33% [1/3 00:12<00:24]\n", "
\n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
epochtrain_lossvalid_lossaccuracyprecisionrecallf_betakappa_scoretime
00.076738#na#00:12

\n", "\n", "

\n", " \n", " \n", " 54.17% [26/48 00:09<00:07 0.2246]\n", "
\n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "LR Finder is complete, type {learner_name}.recorder.plot() to see the graph.\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "learner.purge()\n", "learner.load(\"best-effb3-sipak-multiclass-fold4-stage2\")\n", "learner = to_fp16(learner)\n", "learner.data = fold_data\n", "learner.freeze()\n", "learner = to_fp16(learner)\n", "learner.lr_find()\n", "learner.recorder.plot()" ] }, { "cell_type": "code", "execution_count": 48, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
epochtrain_lossvalid_lossaccuracyprecisionrecallf_betakappa_scoretime
00.0543780.0059821.0000001.0000001.0000001.0000001.00000000:16
10.0772290.0054831.0000001.0000001.0000001.0000001.00000000:16
20.0671420.0058391.0000001.0000001.0000001.0000001.00000000:16
30.0679880.0055511.0000001.0000001.0000001.0000001.00000000:16
40.0740380.0054691.0000001.0000001.0000001.0000001.00000000:16
50.1024620.0055911.0000001.0000001.0000001.0000001.00000000:16
60.0890000.0056141.0000001.0000001.0000001.0000001.00000000:16
70.0848240.0057821.0000001.0000001.0000001.0000001.00000000:16
80.0893370.0058001.0000001.0000001.0000001.0000001.00000000:16
90.0739090.0056681.0000001.0000001.0000001.0000001.00000000:15
100.0719720.0054751.0000001.0000001.0000001.0000001.00000000:16
110.0862370.0054971.0000001.0000001.0000001.0000001.00000000:15
120.0880200.0054841.0000001.0000001.0000001.0000001.00000000:16
130.0965420.0051111.0000001.0000001.0000001.0000001.00000000:16
140.0939490.0052291.0000001.0000001.0000001.0000001.00000000:16
150.0812800.0053121.0000001.0000001.0000001.0000001.00000000:16
160.0855940.0055091.0000001.0000001.0000001.0000001.00000000:16
170.0871720.0056881.0000001.0000001.0000001.0000001.00000000:16
180.0675210.0054281.0000001.0000001.0000001.0000001.00000000:15
190.0758210.0052221.0000001.0000001.0000001.0000001.00000000:15
200.0652210.0053851.0000001.0000001.0000001.0000001.00000000:16
210.0591180.0054441.0000001.0000001.0000001.0000001.00000000:16
220.0626500.0054861.0000001.0000001.0000001.0000001.00000000:15
230.0661520.0056391.0000001.0000001.0000001.0000001.00000000:17
240.0701200.0053311.0000001.0000001.0000001.0000001.00000000:16
250.0904600.0054431.0000001.0000001.0000001.0000001.00000000:16
260.0775020.0055581.0000001.0000001.0000001.0000001.00000000:16
270.0701460.0052881.0000001.0000001.0000001.0000001.00000000:16
280.0699670.0053101.0000001.0000001.0000001.0000001.00000000:16
290.0779520.0056761.0000001.0000001.0000001.0000001.00000000:16
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Better model found at epoch 0 with accuracy value: 1.0.\n" ] } ], "source": [ "learner.fit_one_cycle(30, max_lr=slice(5e-06), callbacks=model_callback(learner, \"best-effb3-sipak-multiclass-fold5-stage1\"))\n", "learner.save(\"last-effb3-sipak-multiclass-fold5-stage1\")" ] }, { "cell_type": "code", "execution_count": 50, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
\n", " \n", " \n", " 33.33% [1/3 00:14<00:28]\n", "
\n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
epochtrain_lossvalid_lossaccuracyprecisionrecallf_betakappa_scoretime
00.096371#na#00:14

\n", "\n", "

\n", " \n", " \n", " 22.92% [11/48 00:07<00:26 0.1950]\n", "
\n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "LR Finder is complete, type {learner_name}.recorder.plot() to see the graph.\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "learner.load(\"best-effb3-sipak-multiclass-fold5-stage1\") # change to best if last not better\n", "learner = to_fp16(learner)\n", "learner.unfreeze()\n", "learner.lr_find()\n", "learner.recorder.plot()" ] }, { "cell_type": "code", "execution_count": 51, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
epochtrain_lossvalid_lossaccuracyprecisionrecallf_betakappa_scoretime
00.0872530.0058891.0000001.0000001.0000001.0000001.00000000:18
10.0775160.0060441.0000001.0000001.0000001.0000001.00000000:18
20.0807620.0059221.0000001.0000001.0000001.0000001.00000000:18
30.0822500.0052721.0000001.0000001.0000001.0000001.00000000:18
40.0812670.0049621.0000001.0000001.0000001.0000001.00000000:18
50.0950390.0051311.0000001.0000001.0000001.0000001.00000000:18
60.0740780.0052581.0000001.0000001.0000001.0000001.00000000:18
70.0728260.0048631.0000001.0000001.0000001.0000001.00000000:17
80.0673230.0045821.0000001.0000001.0000001.0000001.00000000:18
90.0621310.0045441.0000001.0000001.0000001.0000001.00000000:18
100.0676380.0043451.0000001.0000001.0000001.0000001.00000000:18
110.0630450.0042511.0000001.0000001.0000001.0000001.00000000:17
120.0740080.0039781.0000001.0000001.0000001.0000001.00000000:18
130.0852410.0042231.0000001.0000001.0000001.0000001.00000000:18
140.0686300.0040471.0000001.0000001.0000001.0000001.00000000:18
150.0546640.0039061.0000001.0000001.0000001.0000001.00000000:17
160.0516980.0037091.0000001.0000001.0000001.0000001.00000000:19
170.0554080.0036471.0000001.0000001.0000001.0000001.00000000:18
180.0507610.0036521.0000001.0000001.0000001.0000001.00000000:17
190.0688390.0035591.0000001.0000001.0000001.0000001.00000000:18
200.0696590.0035271.0000001.0000001.0000001.0000001.00000000:18
210.0522230.0035501.0000001.0000001.0000001.0000001.00000000:19
220.0564010.0036821.0000001.0000001.0000001.0000001.00000000:18
230.0538050.0036441.0000001.0000001.0000001.0000001.00000000:18
240.0613320.0034291.0000001.0000001.0000001.0000001.00000000:18
250.0693410.0035351.0000001.0000001.0000001.0000001.00000000:18
260.0711680.0034821.0000001.0000001.0000001.0000001.00000000:18
270.0646680.0035851.0000001.0000001.0000001.0000001.00000000:19
280.0579660.0035831.0000001.0000001.0000001.0000001.00000000:18
290.0622390.0033561.0000001.0000001.0000001.0000001.00000000:19
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Better model found at epoch 0 with accuracy value: 1.0.\n" ] } ], "source": [ "learner.fit_one_cycle(30, max_lr=slice(3e-05), callbacks=model_callback(learner, \"best-effb3-sipak-multiclass-fold5-stage2\"))\n", "learner.save(\"last-effb3-sipak-multiclass-fold5-stage2\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Exporting the final model" ] }, { "cell_type": "code", "execution_count": 52, "metadata": {}, "outputs": [], "source": [ "learner.freeze()\n", "learner.export(\"last-effb3-sipak-multiclass.pkl\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Testing on 30 images (in valid folder)" ] }, { "cell_type": "code", "execution_count": 53, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "ImageDataBunch;\n", "\n", "Train: LabelList (966 items)\n", "x: ImageList\n", "Image (3, 224, 224),Image (3, 224, 224),Image (3, 224, 224),Image (3, 224, 224),Image (3, 224, 224)\n", "y: CategoryList\n", "normal_Superficial-Intermediate,normal_Superficial-Intermediate,normal_Superficial-Intermediate,normal_Superficial-Intermediate,normal_Superficial-Intermediate\n", "Path: ../../../Dataset/Sipakmed Dataset/wsi_dataset;\n", "\n", "Valid: LabelList (29 items)\n", "x: ImageList\n", "Image (3, 224, 224),Image (3, 224, 224),Image (3, 224, 224),Image (3, 224, 224),Image (3, 224, 224)\n", "y: CategoryList\n", "normal_Superficial-Intermediate,normal_Superficial-Intermediate,normal_Superficial-Intermediate,normal_Superficial-Intermediate,normal_Superficial-Intermediate\n", "Path: ../../../Dataset/Sipakmed Dataset/wsi_dataset;\n", "\n", "Test: None" ] }, "execution_count": 53, "metadata": {}, "output_type": "execute_result" } ], "source": [ "all_data = (ImageList.from_folder(data_path)\n", " .split_by_folder(train=\"train\", valid=\"test\")\n", " .label_from_folder()\n", " .transform(None, size=224)\n", " .databunch(bs=1)\n", " .normalize(imagenet_stats))\n", "all_data" ] }, { "cell_type": "code", "execution_count": 54, "metadata": {}, "outputs": [], "source": [ "imgs, labels = all_data.valid_ds.x, all_data.valid_ds.y\n", "binary_classes = [\"Abnormal\", \"Benign\", \"Normal\"]" ] }, { "cell_type": "code", "execution_count": 55, "metadata": {}, "outputs": [], "source": [ "def get_label(label):\n", " if \"abnormal\" in label:\n", " return \"Abnormal\"\n", " elif \"normal\" in label:\n", " return \"Normal\"\n", " elif \"benign\" in label:\n", " return \"Benign\"\n", "\n", "y_preds, y_true = [], []\n", "for img, label in zip(imgs, labels):\n", " y_true.append(get_label(str(label)))\n", " y_preds.append(get_label(str(learner.predict(img)[0])))" ] }, { "cell_type": "code", "execution_count": 56, "metadata": {}, "outputs": [], "source": [ "multi_y_preds, multi_y_true = [], []\n", "for img, label in zip(imgs, labels):\n", " multi_y_true.append(str(label))\n", " multi_y_preds.append(str(learner.predict(img)[0]))" ] }, { "cell_type": "code", "execution_count": 57, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['abnormal_Dyskeratotic',\n", " 'abnormal_Koilocytotic',\n", " 'benign_Metaplastic',\n", " 'normal_Parabasal',\n", " 'normal_Superficial-Intermediate']" ] }, "execution_count": 57, "metadata": {}, "output_type": "execute_result" } ], "source": [ "multi_classes = all_data.classes\n", "multi_classes" ] }, { "cell_type": "code", "execution_count": 58, "metadata": {}, "outputs": [], "source": [ "from sklearn.metrics import confusion_matrix\n", "\n", "np.set_printoptions(precision=2)\n", "\n", "def plot_confusion_matrix(y_true, y_pred, classes, normalize=False, title=\"Confusion matrix\", cmap=plt.cm.Blues):\n", " cm = confusion_matrix(y_true, y_pred)\n", " if normalize:\n", " cm = cm.astype('float') / cm.sum(axis=1)[:, np.newaxis]\n", " fig, ax = plt.subplots()\n", " im = ax.imshow(cm, interpolation='nearest', cmap=cmap)\n", " # We want to show all ticks...\n", " ax.set(xticks=np.arange(cm.shape[1]),\n", " yticks=np.arange(cm.shape[0]),\n", " # ... and label them with the respective list entries\n", " xticklabels=classes, yticklabels=classes,\n", " title=title,\n", " ylabel='Actual',\n", " xlabel='Predicted')\n", "\n", " # Rotate the tick labels and set their alignment.\n", " plt.setp(ax.get_xticklabels(), rotation=45, ha=\"right\",\n", " rotation_mode=\"anchor\")\n", "\n", " # Loop over data dimensions and create text annotations.\n", " fmt = '.2f' if normalize else 'd'\n", " thresh = cm.max() / 2.\n", " for i in range(cm.shape[0]):\n", " for j in range(cm.shape[1]):\n", " ax.text(j, i, format(cm[i, j], fmt),\n", " ha=\"center\", va=\"center\",\n", " color=\"white\" if cm[i, j] > thresh else \"black\")\n", " return ax" ] }, { "cell_type": "code", "execution_count": 59, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Plot non-normalized confusion matrix\n", "plot_confusion_matrix(y_true, y_preds, classes=binary_classes, title='Binary Confusion Matrix')\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 60, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Plot normalized confusion matrix\n", "plot_confusion_matrix(y_true, y_preds, normalize=True, classes=binary_classes, \n", " title='Normalized Binary Confusion Matrix')\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 61, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Plot normalized confusion matrix\n", "plot_confusion_matrix(multi_y_true, multi_y_preds, normalize=False, classes=multi_classes, \n", " title='Multi-class Confusion Matrix')\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 62, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Plot normalized confusion matrix\n", "plot_confusion_matrix(multi_y_true, multi_y_preds, normalize=True, classes=multi_classes, \n", " title='Normalized Multi-class Confusion Matrix')\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Results (first save results.csv)" ] }, { "cell_type": "code", "execution_count": 63, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " accuracy precision recall f_beta kappa_score\n", "0 0.963918 0.967748 0.966587 0.966488 0.955162\n", "1 1.000000 1.000000 1.000000 1.000000 1.000000\n", "2 1.000000 1.000000 1.000000 1.000000 1.000000\n", "3 1.000000 1.000000 1.000000 1.000000 1.000000\n", "4 1.000000 1.000000 1.000000 1.000000 1.000000\n", "*-**-**-**-**-**-**-**-**-**-*\n", "Results :-\n", "Accuracy : 99.2784 % | 1.1546 %\n", "Precision : 99.3550 % | 1.0321 %\n", "Recall : 99.3317 % | 1.0692 %\n", "F_beta : 99.3298 % | 1.0724 %\n", "Kappa_score : 99.1032 % | 1.4348 %\n" ] } ], "source": [ "def compute_results(fname):\n", " df = pd.read_csv(fname)\n", " print(df)\n", " print(\"*-*\" * 10)\n", " print(\"Results :-\")\n", " mean_df = np.mean(df, axis=0)\n", " mean_error_df = np.mean(np.abs(mean_df - df), axis=0)\n", " for col, mean, error in zip(list(df.columns), list(mean_df.values), list(mean_error_df.values)):\n", " print(f\"{col.capitalize()} : {mean * 100:.4f} % | { error * 100:.4f} %\")\n", "\n", "compute_results(\"results.csv\")" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.9" } }, "nbformat": 4, "nbformat_minor": 4 }