{ "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\n", "from functools import partial" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "%reload_ext autoreload\n", "%autoreload 2\n", "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[PosixPath('../../../Dataset/Herlev Dataset/best-rn34-herlev-multiclass-5fold.pkl'),\n", " PosixPath('../../../Dataset/Herlev Dataset/best-vgg19-herlev-multiclass-5fold.pkl'),\n", " PosixPath('../../../Dataset/Herlev Dataset/best-effb3-herlev-multiclass.pkl'),\n", " PosixPath('../../../Dataset/Herlev Dataset/abnormal_moderate-dysplastic'),\n", " PosixPath('../../../Dataset/Herlev Dataset/normal_superficiel'),\n", " PosixPath('../../../Dataset/Herlev Dataset/best-rn101-herlev-multiclass-5fold.pkl'),\n", " PosixPath('../../../Dataset/Herlev Dataset/abnormal_light-dysplastic'),\n", " PosixPath('../../../Dataset/Herlev Dataset/abnormal_severe-dysplastic'),\n", " PosixPath('../../../Dataset/Herlev Dataset/normal_columnar'),\n", " PosixPath('../../../Dataset/Herlev Dataset/normal_intermediate'),\n", " PosixPath('../../../Dataset/Herlev Dataset/abnormal_carcinoma-in-situ')]" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "path = Path(\".\")\n", "data_path = path / \"..\" / \"..\" / \"..\" / \"Dataset\" / \"Herlev Dataset\"\n", "data_path.ls()" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "LabelLists;\n", "\n", "Train: LabelList (917 items)\n", "x: ImageList\n", "Image (3, 83, 146),Image (3, 106, 116),Image (3, 129, 119),Image (3, 108, 110),Image (3, 209, 173)\n", "y: CategoryList\n", "abnormal_moderate-dysplastic,abnormal_moderate-dysplastic,abnormal_moderate-dysplastic,abnormal_moderate-dysplastic,abnormal_moderate-dysplastic\n", "Path: ../../../Dataset/Herlev Dataset;\n", "\n", "Valid: LabelList (0 items)\n", "x: ImageList\n", "\n", "y: CategoryList\n", "\n", "Path: ../../../Dataset/Herlev Dataset;\n", "\n", "Test: None" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data_init = (ImageList.from_folder(data_path)\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=30.0)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[ .new_type at 0x7f6ef8647378>>,\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": 7, "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": 8, "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": 9, "metadata": {}, "outputs": [], "source": [ "def model_callback(model, model_name):\n", " return [SaveModelCallback(model, every=\"improvement\", monitor=\"accuracy\", name=model_name)]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Fold-1" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "ImageDataBunch;\n", "\n", "Train: LabelList (733 items)\n", "x: ImageList\n", "Image (3, 64, 64),Image (3, 64, 64),Image (3, 64, 64),Image (3, 64, 64),Image (3, 64, 64)\n", "y: CategoryList\n", "abnormal_moderate-dysplastic,abnormal_moderate-dysplastic,abnormal_moderate-dysplastic,abnormal_moderate-dysplastic,abnormal_moderate-dysplastic\n", "Path: ../../../Dataset/Herlev Dataset;\n", "\n", "Valid: LabelList (184 items)\n", "x: ImageList\n", "Image (3, 64, 64),Image (3, 64, 64),Image (3, 64, 64),Image (3, 64, 64),Image (3, 64, 64)\n", "y: CategoryList\n", "abnormal_moderate-dysplastic,abnormal_moderate-dysplastic,abnormal_moderate-dysplastic,abnormal_moderate-dysplastic,abnormal_moderate-dysplastic\n", "Path: ../../../Dataset/Herlev Dataset;\n", "\n", "Test: None" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "fold_idxs = idxs[0]\n", "fold_data = (ImageList.from_folder(data_path)\n", " .split_by_idxs(fold_idxs[0], fold_idxs[1])\n", " .label_from_folder()\n", " .transform(tfms, size=64)\n", " .databunch(bs=64)\n", " .normalize(imagenet_stats))\n", "fold_data" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "Downloading: \"https://github.com/lukemelas/EfficientNet-PyTorch/releases/download/1.0/efficientnet-b4-6ed6700e.pth\" to /home/fadege/.cache/torch/checkpoints/efficientnet-b4-6ed6700e.pth\n" ] }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "c5d23369070e43c4b5dc91a03a2f4251", "version_major": 2, "version_minor": 0 }, "text/plain": [ "HBox(children=(FloatProgress(value=0.0, max=77999237.0), HTML(value='')))" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "Loaded pretrained weights for efficientnet-b4\n" ] } ], "source": [ "learner = Learner(fold_data, efficientnet.EfficientNetB4(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": 12, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
\n", " \n", " \n", " 70.00% [7/10 00:22<00:09]\n", "
\n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \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.966582#na#00:03
11.967218#na#00:03
21.968067#na#00:03
31.954544#na#00:03
41.869796#na#00:03
51.807107#na#00:03
63.417380#na#00:03

\n", "\n", "

\n", " \n", " \n", " 63.64% [7/11 00:02<00:01 6.1587]\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": 13, "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \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.9361621.9639720.114130nan0.1805340.114568-0.04409900:04
11.9174341.9511710.157609nan0.2427790.1636070.06631400:04
21.8786851.9234970.217391nan0.3103870.2277490.12262700:04
31.8378871.8711870.2663040.3346310.3527100.2794490.18090800:04
41.7757521.7871280.2717390.3207480.3329850.2795220.22508900:04
51.6842691.6676200.3260870.3480080.3717910.3250520.34192900:04
61.5870541.5417360.3804350.4068510.4025490.3745230.49291300:04
71.4898981.4320920.4456520.4940840.4717570.4553460.55250500:04
81.3950911.3572040.4510870.5125190.4839230.4700740.56760600:04
91.3147451.3250390.4728260.5174970.5158920.5013550.61823800:04
101.2517371.2795260.4728260.5257530.5204710.5086860.60551400:04
111.1765041.1831720.5434780.6002320.5766490.5720200.66133700:04
121.0946011.1526090.5380430.5970060.5731460.5722550.68435900:04
131.0386361.1931030.5706520.6619080.6003680.6026950.69923800:04
140.9848941.2475450.6195650.7092910.6562930.6561580.75749100:04
150.9472631.1379140.5923910.6707810.6363590.6382910.72743100:04
160.9092431.1154510.5869570.6779740.6187990.6198850.72487200:04
170.8674531.1471790.5923910.6775380.6380000.6412480.70353100:04
180.8308281.2235840.6141300.6873490.6540950.6562510.73545300:04
190.7879411.2608410.6195650.6926210.6539710.6541720.76808000:04
200.7504221.2630150.6141300.6788050.6505290.6511150.73599400:04
210.7208171.3088520.6304350.7025320.6631370.6632340.76772700:04
220.6752101.2711320.6304350.7002830.6720730.6708010.75737200:04
230.6472731.2417530.6358700.6922960.6658760.6658620.75493400:04
240.6156541.3365990.5978260.6591820.6331590.6354790.74522500:04
250.5926601.3997950.5706520.6425450.6098550.6120200.73013100:04
260.5635101.3487930.6086960.6630620.6501100.6512070.75127000:04
270.5440781.2974930.6250000.6899320.6618170.6622510.75969500:04
280.5155121.2633330.6304350.6929680.6638990.6663140.77853700:04
290.4833971.2219430.6739130.7298100.6943540.6958330.80232700:04
300.4618301.2480680.6358700.6982350.6653560.6685220.77343600:04
310.4310161.2351770.6195650.6792390.6600530.6613610.77513900:04
320.4041311.2335320.6467390.7007530.6827410.6825720.78158700:04
330.3903381.2848510.6576090.7258780.6948430.6942190.78184500:04
340.3757941.2992300.6413040.7054120.6727350.6732340.76854300:04
350.3600071.2745280.6521740.7092930.6791600.6805080.77965700:04
360.3458191.2580800.6467390.6982320.6689560.6703570.76877500:04
370.3235691.2649410.6521740.7082050.6693370.6722240.78090500:04
380.3131351.2759060.6684780.7313660.6905450.6933870.78648100:04
390.2968571.2903490.6576090.7235910.6832190.6858420.77915000:04
400.2993171.2806050.6630430.7273230.6923240.6939590.78571700:04
410.2932271.2559590.6521740.7181490.6837010.6860330.79074700:04
420.2885981.2342340.6467390.7118560.6789390.6812230.78925600:04
430.2880321.2202530.6413040.6825110.6621940.6644620.79674400:04
440.2815361.2147640.6413040.6872880.6621940.6654290.80929000:04
450.2801911.2129990.6467390.6926590.6669560.6702900.81011300:04
460.2707151.2104110.6358700.6836240.6585310.6616370.80262900:04
470.2687381.2097280.6413040.6875920.6632930.6660680.80691900:04
480.2701521.2047360.6358700.6840310.6596300.6622280.80033300:04
490.2576171.1979630.6358700.6836240.6585310.6616370.80262900:04
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Better model found at epoch 0 with accuracy value: 0.11413043737411499.\n", "Better model found at epoch 1 with accuracy value: 0.15760870277881622.\n", "Better model found at epoch 2 with accuracy value: 0.21739129722118378.\n", "Better model found at epoch 3 with accuracy value: 0.2663043439388275.\n", "Better model found at epoch 4 with accuracy value: 0.27173912525177.\n", "Better model found at epoch 5 with accuracy value: 0.32608696818351746.\n", "Better model found at epoch 6 with accuracy value: 0.3804347813129425.\n", "Better model found at epoch 7 with accuracy value: 0.44565218687057495.\n", "Better model found at epoch 8 with accuracy value: 0.45108696818351746.\n", "Better model found at epoch 9 with accuracy value: 0.4728260934352875.\n", "Better model found at epoch 11 with accuracy value: 0.54347825050354.\n", "Better model found at epoch 13 with accuracy value: 0.570652186870575.\n", "Better model found at epoch 14 with accuracy value: 0.6195651888847351.\n", "Better model found at epoch 21 with accuracy value: 0.6304348111152649.\n", "Better model found at epoch 23 with accuracy value: 0.635869562625885.\n", "Better model found at epoch 29 with accuracy value: 0.6739130616188049.\n" ] } ], "source": [ "learner.fit_one_cycle(50, max_lr=slice(2e-03), callbacks=model_callback(learner, \"best-effb4-herlev-multiclass-fold1-stage1\"))\n", "learner.save(\"last-effb4-herlev-multiclass-fold1-stage1\")" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
\n", " \n", " \n", " 60.00% [6/10 00:21<00:14]\n", "
\n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \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.337064#na#00:03
10.354438#na#00:03
20.348881#na#00:03
30.353889#na#00:03
40.349620#na#00:03
50.703945#na#00:03

\n", "\n", "

\n", " \n", " \n", " 36.36% [4/11 00:01<00:03 1.0305]\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-effb4-herlev-multiclass-fold1-stage1\")\n", "learner = to_fp16(learner)\n", "learner.unfreeze()\n", "learner.lr_find()\n", "learner.recorder.plot() " ] }, { "cell_type": "code", "execution_count": 15, "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \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.3835641.1946310.6684780.7136930.6874310.6895040.81225500:04
10.3559541.1707960.6739130.7175350.6923910.6943250.80888800:04
20.3330361.1558960.6684780.7135130.6887280.6906490.80215600:04
30.3252361.1349640.6684780.7128390.6898270.6913810.79543600:04
40.3423701.1260950.6521740.7016370.6751600.6768800.79014800:04
50.3386011.1271890.6467390.6977740.6714970.6733320.79261300:04
60.3246081.1397540.6467390.6934400.6723980.6740440.79069800:04
70.3118861.1890620.6304350.6853840.6638760.6643700.77148200:04
80.3118121.1526320.6358700.6874510.6728210.6720980.76696000:04
90.3017161.1511390.6304350.6827820.6575710.6587070.77863100:04
100.2964061.2083860.6413040.7083370.6676360.6717890.79827600:04
110.2821621.2498400.6358700.6987800.6611960.6649410.77566100:04
120.2733781.2384510.6304350.6947250.6592260.6637680.78190600:04
130.2646521.2301390.6358700.7099680.6736130.6769920.78520400:04
140.2697951.2263230.6304350.7104100.6755900.6796970.77254400:04
150.2581861.2533270.6086960.6759160.6507190.6519050.76475700:04
160.2563351.2139100.6630430.7270830.6930420.6957020.79657800:04
170.2585561.2168880.6413040.7029940.6713660.6744670.77907100:04
180.2483101.2290280.6521740.7161590.6843330.6875950.78619300:04
190.2361891.1518570.6521740.7109060.6939580.6947350.79372900:04
200.2246151.1016060.6413040.6993940.6833720.6837600.79491900:04
210.2193221.1556370.6521740.7167550.6967340.6960400.79456900:04
220.2089441.2251250.6521740.7308250.6854310.6868160.79394900:04
230.2073071.2070790.6521740.7192190.6963380.6977520.80624000:04
240.2034221.2198370.6793480.7462160.7164330.7178570.81221500:04
250.1965881.2198680.6902170.7411280.7199950.7212970.82616300:04
260.1902051.1975780.6956520.7382010.7160180.7184300.83950300:04
270.1743391.1785570.6684780.7162520.7007490.7013180.84644600:04
280.1659591.1595500.6793480.7401130.7204540.7226600.85897900:04
290.1582191.1804020.6902170.7487300.7299780.7322700.85835800:04
300.1557271.1824990.6739130.7358730.7146310.7177000.82571300:04
310.1555011.1915050.6630430.7271690.7075030.7094000.80777600:04
320.1468531.1590660.6739130.7343650.7226670.7225880.82352900:04
330.1470951.1432210.6521740.7191030.6997580.7004090.82047800:04
340.1391531.1357760.6521740.7190900.7041390.7038540.81165400:04
350.1353501.1392400.6630430.7289730.7136630.7131170.82806300:04
360.1305861.1297030.6684780.7313170.7271490.7252260.80339100:04
370.1257921.1312040.6684780.7328420.7206080.7207910.82898700:04
380.1170671.1415040.6739130.7374500.7253700.7255210.82571400:04
390.1145931.1500450.6739130.7382760.7264680.7263280.82324100:04
400.1128691.1488420.6684780.7344670.7193260.7197000.82211200:04
410.1089191.1459060.6630430.7289460.7145640.7149060.81779100:04
420.1054561.1377550.6684780.7345060.7193260.7194220.81292900:04
430.1020351.1281530.6739130.7380940.7229890.7235920.82514200:04
440.0970131.1241290.6847830.7455870.7337940.7342660.83287400:04
450.0920181.1196500.6847830.7455870.7337940.7342660.83287400:04
460.0950341.1216710.6793480.7401150.7290330.7295870.83206900:04
470.0956641.1213630.6847830.7455870.7337940.7342660.83287400:04
480.0936341.1206780.6902170.7511310.7385560.7388950.83367900:04
490.0905781.1210460.6902170.7511310.7385560.7388950.83367900:04
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Better model found at epoch 0 with accuracy value: 0.66847825050354.\n", "Better model found at epoch 1 with accuracy value: 0.6739130616188049.\n", "Better model found at epoch 24 with accuracy value: 0.679347813129425.\n", "Better model found at epoch 25 with accuracy value: 0.6902173757553101.\n", "Better model found at epoch 26 with accuracy value: 0.695652186870575.\n" ] } ], "source": [ "learner.fit_one_cycle(50, max_lr=slice(1e-04, 4.2e-04), callbacks=model_callback(learner, \"best-effb4-herlev-multiclass-fold1-stage2\"))\n", "learner.save(\"last-effb4-herlev-multiclass-fold1-stage2\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Fold-2" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "ImageDataBunch;\n", "\n", "Train: LabelList (733 items)\n", "x: ImageList\n", "Image (3, 64, 64),Image (3, 64, 64),Image (3, 64, 64),Image (3, 64, 64),Image (3, 64, 64)\n", "y: CategoryList\n", "abnormal_moderate-dysplastic,abnormal_moderate-dysplastic,abnormal_moderate-dysplastic,abnormal_moderate-dysplastic,abnormal_moderate-dysplastic\n", "Path: ../../../Dataset/Herlev Dataset;\n", "\n", "Valid: LabelList (184 items)\n", "x: ImageList\n", "Image (3, 64, 64),Image (3, 64, 64),Image (3, 64, 64),Image (3, 64, 64),Image (3, 64, 64)\n", "y: CategoryList\n", "abnormal_moderate-dysplastic,abnormal_moderate-dysplastic,abnormal_moderate-dysplastic,abnormal_moderate-dysplastic,abnormal_moderate-dysplastic\n", "Path: ../../../Dataset/Herlev Dataset;\n", "\n", "Test: None" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "fold_idxs = idxs[1]\n", "fold_data = (ImageList.from_folder(data_path)\n", " .split_by_idxs(fold_idxs[0], fold_idxs[1])\n", " .label_from_folder()\n", " .transform(tfms, size=64)\n", " .databunch(bs=64)\n", " .normalize(imagenet_stats))\n", "fold_data" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
\n", " \n", " \n", " 70.00% [7/10 00:18<00:07]\n", "
\n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \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.511050#na#00:02
10.468453#na#00:02
20.458126#na#00:02
30.468631#na#00:02
40.459332#na#00:02
50.451880#na#00:02
61.073525#na#00:02

\n", "\n", "

\n", " \n", " \n", " 18.18% [2/11 00:01<00:05 1.3833]\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-effb4-herlev-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": 18, "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \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.4630070.0142101.0000001.0000001.0000001.0000001.00000000:04
10.4812540.0141521.0000001.0000001.0000001.0000001.00000000:03
20.4721950.0147981.0000001.0000001.0000001.0000001.00000000:03
30.4757820.0175291.0000001.0000001.0000001.0000001.00000000:03
40.4298820.0217431.0000001.0000001.0000001.0000001.00000000:03
50.4251110.0276321.0000001.0000001.0000001.0000001.00000000:03
60.4036210.0367221.0000001.0000001.0000001.0000001.00000000:03
70.4067680.0402061.0000001.0000001.0000001.0000001.00000000:03
80.3891960.0523260.9891300.9915750.9915750.9915230.99167700:04
90.3703240.0589720.9945650.9962410.9950740.9952640.99917300:03
100.3573370.0515690.9945650.9962410.9950740.9952640.99917300:03
110.3437640.0693570.9782610.9799030.9840850.9830170.99013900:03
120.3583370.0928680.9728260.9788200.9767970.9767350.98925100:03
130.3577310.1212950.9673910.9738030.9738370.9737800.98846000:04
140.3537630.1336830.9619570.9670900.9718330.9702880.98121700:04
150.3604380.0937360.9673910.9680140.9689550.9680960.98212500:04
160.3583080.1513180.9402170.9412300.9458630.9440690.95708000:04
170.3501400.0981610.9619570.9654340.9605150.9610800.96642200:04
180.3362640.0549470.9891300.9863100.9859350.9857550.99834900:03
190.3326020.0760300.9619570.9576040.9630410.9612010.98184800:03
200.3460050.0922720.9619570.9666110.9715670.9701550.97833600:03
210.3447910.0504120.9836960.9861750.9890110.9881820.99093100:03
220.3344700.0471750.9945650.9953920.9963370.9961080.99258100:03
230.3360750.0486510.9945650.9953920.9963370.9961080.99258100:03
240.3184680.0623310.9782610.9795070.9851500.9836930.99015600:03
250.3140860.0760090.9673910.9676760.9778240.9748380.98855400:03
260.3202810.0520170.9945650.9953920.9963370.9961080.99258100:04
270.3133900.0495000.9836960.9879690.9864850.9866310.99094700:03
280.3102680.0515590.9891300.9917290.9914110.9914230.99175700:03
290.3112710.0661260.9836960.9873120.9877480.9875250.98441200:03
300.3000520.0522780.9891300.9917290.9914110.9914230.99175700:04
310.2903570.0629180.9782610.9844030.9815590.9817910.99013900:03
320.2828670.0677900.9782610.9810700.9828220.9822520.99014100:03
330.2707530.0723290.9782610.9804080.9840850.9831150.98361900:03
340.2587830.0667340.9782610.9811090.9829860.9825290.98346400:03
350.2526860.0670190.9836960.9880950.9866490.9868970.98426400:03
360.2453810.0608640.9891300.9917290.9914110.9914230.99175700:03
370.2438460.0601900.9891300.9917290.9914110.9914230.99175700:04
380.2371890.0603790.9891300.9917290.9914110.9914230.99175700:04
390.2316510.0584340.9836960.9882490.9842680.9849410.99091700:03
400.2268210.0577740.9891300.9917290.9914110.9914230.99175700:03
410.2175040.0606520.9891300.9917290.9914110.9914230.99175700:03
420.2022340.0630450.9836960.9882490.9875500.9876070.98844200:04
430.2002480.0638170.9891300.9917290.9914110.9914230.99175700:04
440.2014160.0642710.9891300.9917290.9914110.9914230.99175700:03
450.1954000.0638790.9891300.9917290.9914110.9914230.99175700:03
460.2002030.0631290.9891300.9917290.9914110.9914230.99175700:03
470.2012110.0634820.9836960.9882490.9875500.9876070.98844200:04
480.1994500.0630170.9891300.9917290.9914110.9914230.99175700:04
490.1961140.0618370.9891300.9917290.9914110.9914230.99175700:03
" ], "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(50, max_lr=slice(3e-03), callbacks=model_callback(learner, \"best-effb4-herlev-multiclass-fold2-stage1\"))\n", "learner.save(\"last-effb4-herlev-multiclass-fold2-stage1\")" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
\n", " \n", " \n", " 60.00% [6/10 00:20<00:13]\n", "
\n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \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.515068#na#00:03
10.462305#na#00:03
20.453109#na#00:03
30.431695#na#00:03
40.414730#na#00:03
50.648665#na#00:03

\n", "\n", "

\n", " \n", " \n", " 45.45% [5/11 00:02<00:02 0.9363]\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-effb4-herlev-multiclass-fold2-stage1\")\n", "learner = to_fp16(learner)\n", "learner.unfreeze()\n", "learner.lr_find()\n", "learner.recorder.plot()" ] }, { "cell_type": "code", "execution_count": 20, "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \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.4837050.0134761.0000001.0000001.0000001.0000001.00000000:05
10.4813430.0134121.0000001.0000001.0000001.0000001.00000000:04
20.4700870.0131161.0000001.0000001.0000001.0000001.00000000:04
30.4614750.0132291.0000001.0000001.0000001.0000001.00000000:04
40.4416450.0140151.0000001.0000001.0000001.0000001.00000000:04
50.4391120.0139921.0000001.0000001.0000001.0000001.00000000:04
60.4263580.0158051.0000001.0000001.0000001.0000001.00000000:04
70.4022530.0171971.0000001.0000001.0000001.0000001.00000000:04
80.3783250.0163781.0000001.0000001.0000001.0000001.00000000:04
90.3486110.0187021.0000001.0000001.0000001.0000001.00000000:04
100.3316080.0217971.0000001.0000001.0000001.0000001.00000000:04
110.3236350.0266820.9945650.9962410.9950740.9952640.99917300:04
120.2977500.0280751.0000001.0000001.0000001.0000001.00000000:04
130.2812730.0314180.9945650.9962410.9950740.9952640.99917300:04
140.2585950.0390060.9945650.9962410.9950740.9952640.99917300:04
150.2426240.0316011.0000001.0000001.0000001.0000001.00000000:04
160.2254150.0273601.0000001.0000001.0000001.0000001.00000000:04
170.2163080.0294310.9945650.9962410.9950740.9952640.99917300:04
180.2063320.0296530.9945650.9962410.9950740.9952640.99917300:04
190.2029860.0410250.9891300.9926740.9901480.9904800.99834900:04
200.1911990.0454770.9891300.9926740.9901480.9904800.99834900:04
210.1823200.0593160.9891300.9926740.9901480.9904800.99834900:04
220.1769930.0510440.9891300.9926740.9901480.9904800.99834900:04
230.1685810.0450070.9891300.9926740.9901480.9904800.99834900:04
240.1592730.0466710.9891300.9926740.9901480.9904800.99834900:04
250.1498110.0631090.9836960.9873120.9877480.9874620.98443500:04
260.1462450.0689650.9782610.9783830.9775440.9773010.98369700:05
270.1402500.0739080.9782610.9783830.9775440.9773010.98369700:04
280.1378890.0682180.9782610.9783830.9775440.9773010.98369700:04
290.1319270.0713060.9891300.9873120.9848700.9851020.99835400:04
300.1257370.0670750.9945650.9962410.9950740.9952640.99917300:04
310.1193860.0684820.9945650.9962410.9950740.9952640.99917300:04
320.1220860.0745750.9782610.9783830.9775440.9773010.98369700:04
330.1181250.0897060.9782610.9783830.9775440.9773010.98369700:04
340.1160900.0869290.9782610.9783830.9775440.9773010.98369700:04
350.1157210.0747720.9836960.9827040.9812070.9812110.99099100:04
360.1134730.0738050.9836960.9827040.9812070.9812110.99099100:04
370.1015820.0806770.9782610.9783830.9775440.9773010.98369700:04
380.0954090.0822630.9782610.9783830.9775440.9773010.98369700:04
390.0971800.0759930.9782610.9783830.9775440.9773010.98369700:04
400.0946800.0710520.9782610.9783830.9775440.9773010.98369700:04
410.0914550.0687950.9782610.9783830.9775440.9773010.98369700:04
420.0946670.0665720.9782610.9783830.9775440.9773010.98369700:04
430.0950820.0683760.9782610.9783830.9775440.9773010.98369700:04
440.0968520.0690990.9782610.9783830.9775440.9773010.98369700:04
450.0924300.0707770.9782610.9783830.9775440.9773010.98369700:04
460.0870110.0702780.9782610.9783830.9775440.9773010.98369700:04
470.0848360.0697470.9782610.9783830.9775440.9773010.98369700:04
480.0836320.0691870.9782610.9783830.9775440.9773010.98369700:04
490.0791510.0680110.9782610.9783830.9775440.9773010.98369700:04
" ], "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(50, max_lr=slice(1e-04, 3e-04), callbacks=model_callback(learner, \"best-effb4-herlev-multiclass-fold2-stage2\"))\n", "learner.save(\"last-effb4-herlev-multiclass-fold2-stage2\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Fold-3" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "ImageDataBunch;\n", "\n", "Train: LabelList (734 items)\n", "x: ImageList\n", "Image (3, 64, 64),Image (3, 64, 64),Image (3, 64, 64),Image (3, 64, 64),Image (3, 64, 64)\n", "y: CategoryList\n", "abnormal_moderate-dysplastic,abnormal_moderate-dysplastic,abnormal_moderate-dysplastic,abnormal_moderate-dysplastic,abnormal_moderate-dysplastic\n", "Path: ../../../Dataset/Herlev Dataset;\n", "\n", "Valid: LabelList (183 items)\n", "x: ImageList\n", "Image (3, 64, 64),Image (3, 64, 64),Image (3, 64, 64),Image (3, 64, 64),Image (3, 64, 64)\n", "y: CategoryList\n", "abnormal_moderate-dysplastic,abnormal_moderate-dysplastic,abnormal_moderate-dysplastic,abnormal_moderate-dysplastic,abnormal_moderate-dysplastic\n", "Path: ../../../Dataset/Herlev Dataset;\n", "\n", "Test: None" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "fold_idxs = idxs[2]\n", "fold_data = (ImageList.from_folder(data_path)\n", " .split_by_idxs(fold_idxs[0], fold_idxs[1])\n", " .label_from_folder()\n", " .transform(tfms, size=64)\n", " .databunch(bs=64)\n", " .normalize(imagenet_stats))\n", "fold_data" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
\n", " \n", " \n", " 70.00% [7/10 00:19<00:08]\n", "
\n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \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.456572#na#00:02
10.463473#na#00:03
20.451206#na#00:02
30.437930#na#00:02
40.428316#na#00:02
50.448779#na#00:02
60.782914#na#00:02

\n", "\n", "

\n", " \n", " \n", " 36.36% [4/11 00:01<00:02 1.5628]\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-effb4-herlev-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": 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.4630380.0217490.9945360.9965160.9960320.9960970.99665800:03
10.4552140.0212310.9945360.9965160.9960320.9960970.99665800:03
20.4516430.0218340.9945360.9965160.9960320.9960970.99665800:03
30.4355720.0236040.9945360.9965160.9960320.9960970.99665800:03
40.4203210.0280510.9890710.9917540.9920630.9918900.99581600:03
50.4082610.0359100.9890710.9917540.9920630.9918900.99581600:03
60.3949280.0363560.9945360.9965160.9960320.9960970.99665800:04
70.3848720.0322090.9945360.9965160.9960320.9960970.99665800:04
80.3783560.0320421.0000001.0000001.0000001.0000001.00000000:03
90.3716830.0407400.9890710.9926550.9903120.9906970.99163200:03
100.3652820.0437920.9890710.9918200.9924600.9922900.98919200:03
110.3575760.0393961.0000001.0000001.0000001.0000001.00000000:03
120.3459690.0335031.0000001.0000001.0000001.0000001.00000000:04
130.3397920.0342581.0000001.0000001.0000001.0000001.00000000:04
140.3418910.0311721.0000001.0000001.0000001.0000001.00000000:03
150.3339120.0277311.0000001.0000001.0000001.0000001.00000000:04
160.3297400.0345061.0000001.0000001.0000001.0000001.00000000:04
170.3135770.0393421.0000001.0000001.0000001.0000001.00000000:03
180.3118750.0343101.0000001.0000001.0000001.0000001.00000000:03
190.3088010.0372511.0000001.0000001.0000001.0000001.00000000:03
200.3073410.0417971.0000001.0000001.0000001.0000001.00000000:03
210.2935610.0412941.0000001.0000001.0000001.0000001.00000000:03
220.2887030.0397501.0000001.0000001.0000001.0000001.00000000:04
230.2766190.0382231.0000001.0000001.0000001.0000001.00000000:03
240.2755970.0368441.0000001.0000001.0000001.0000001.00000000:04
250.2764540.0364451.0000001.0000001.0000001.0000001.00000000:03
260.2772260.0360401.0000001.0000001.0000001.0000001.00000000:04
270.2817180.0360591.0000001.0000001.0000001.0000001.00000000:04
280.2788220.0364981.0000001.0000001.0000001.0000001.00000000:04
290.2757670.0363301.0000001.0000001.0000001.0000001.00000000:04
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Better model found at epoch 0 with accuracy value: 0.994535505771637.\n", "Better model found at epoch 8 with accuracy value: 1.0.\n" ] } ], "source": [ "learner.fit_one_cycle(30, max_lr=slice(1.35e-03), callbacks=model_callback(learner, \"best-effb4-herlev-multiclass-fold3-stage1\"))\n", "learner.save(\"last-effb4-herlev-multiclass-fold3-stage1\")" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
\n", " \n", " \n", " 60.00% [6/10 00:21<00:14]\n", "
\n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \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.377029#na#00:03
10.352532#na#00:03
20.362933#na#00:03
30.341532#na#00:03
40.335063#na#00:03
50.615698#na#00:03

\n", "\n", "

\n", " \n", " \n", " 36.36% [4/11 00:01<00:03 1.0647]\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-effb4-herlev-multiclass-fold3-stage1\")\n", "learner = to_fp16(learner)\n", "learner.unfreeze()\n", "learner.lr_find()\n", "learner.recorder.plot()" ] }, { "cell_type": "code", "execution_count": 25, "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \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.3566550.0315641.0000001.0000001.0000001.0000001.00000000:04
10.3474240.0314061.0000001.0000001.0000001.0000001.00000000:04
20.3537170.0317431.0000001.0000001.0000001.0000001.00000000:04
30.3307520.0308001.0000001.0000001.0000001.0000001.00000000:04
40.3166400.0304460.9945360.9953920.9964290.9961820.99252900:04
50.3055960.0302450.9945360.9953920.9964290.9961820.99252900:04
60.2868300.0237971.0000001.0000001.0000001.0000001.00000000:04
70.2817040.0451281.0000001.0000001.0000001.0000001.00000000:04
80.2743370.0703210.9726780.9794340.9803910.9797490.97131500:04
90.2631080.0690400.9836070.9845240.9867410.9862100.98834400:04
100.2467780.1266130.9726780.9772470.9795980.9787610.98671900:04
110.2364110.1233250.9453550.9451870.9483380.9473180.98004300:04
120.2290330.1475120.9398910.9386250.9473120.9445800.97927900:04
130.2243930.1419230.9453550.9479530.9542900.9527680.96954200:04
140.2291430.1907910.9180330.9324720.9387930.9368600.96016200:04
150.2262160.1656260.9344260.9510100.9482690.9481060.96714300:04
160.2235260.2287180.9125680.9281200.9316710.9306260.94472600:04
170.2207500.3096040.8852460.9106370.9052480.9046270.91349000:04
180.2085440.3593690.8633880.8917920.8955600.8926230.93127800:04
190.2065680.3148510.8961750.9173620.9221260.9204980.94050100:04
200.1980150.2255690.9234970.9411660.9425290.9412600.95648700:04
210.1877980.1915500.9398910.9493570.9540370.9526690.96820700:04
220.1726740.1919750.9398910.9512950.9513270.9512180.97238800:04
230.1604860.2597490.9125680.9308920.9311580.9308610.97744000:04
240.1507580.2680230.9234970.9394390.9359400.9363390.97268500:05
250.1408310.2506600.9234970.9394390.9359400.9363390.97268500:05
260.1309780.2063850.9344260.9477430.9453960.9457420.97422000:04
270.1270130.1853690.9344260.9477430.9453960.9457420.97422000:04
280.1211600.1975360.9344260.9423110.9463540.9450320.97427000:04
290.1161140.1828360.9344260.9424220.9455600.9446410.96752600:04
300.1069000.1829410.9289620.9384370.9415920.9405140.96664000:04
310.1045450.1778160.9344260.9424220.9455600.9446410.96752600:05
320.1027020.1797380.9344260.9423650.9451630.9442750.96747600:04
330.0982550.1781880.9344260.9423650.9451630.9442750.96747600:04
340.0954500.1779320.9289620.9377550.9402370.9395310.96669600:05
350.0899320.1755930.9289620.9377550.9402370.9395310.96669600:04
360.0832620.1739490.9289620.9377550.9402370.9395310.96669600:04
370.0810590.1722310.9289620.9377550.9402370.9395310.96669600:04
380.0862240.1713960.9289620.9377550.9402370.9395310.96669600:04
390.0817610.1714420.9289620.9377550.9402370.9395310.96669600:04
" ], "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(40, max_lr=slice(2e-04, 8e-04), callbacks=model_callback(learner, \"best-effb4-herlev-multiclass-fold3-stage2\"))\n", "learner.save(\"last-effb4-herlev-multiclass-fold3-stage2\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Fold-4" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "ImageDataBunch;\n", "\n", "Train: LabelList (734 items)\n", "x: ImageList\n", "Image (3, 64, 64),Image (3, 64, 64),Image (3, 64, 64),Image (3, 64, 64),Image (3, 64, 64)\n", "y: CategoryList\n", "abnormal_moderate-dysplastic,abnormal_moderate-dysplastic,abnormal_moderate-dysplastic,abnormal_moderate-dysplastic,abnormal_moderate-dysplastic\n", "Path: ../../../Dataset/Herlev Dataset;\n", "\n", "Valid: LabelList (183 items)\n", "x: ImageList\n", "Image (3, 64, 64),Image (3, 64, 64),Image (3, 64, 64),Image (3, 64, 64),Image (3, 64, 64)\n", "y: CategoryList\n", "abnormal_moderate-dysplastic,abnormal_moderate-dysplastic,abnormal_moderate-dysplastic,abnormal_moderate-dysplastic,abnormal_moderate-dysplastic\n", "Path: ../../../Dataset/Herlev Dataset;\n", "\n", "Test: None" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "fold_idxs = idxs[3]\n", "fold_data = (ImageList.from_folder(data_path)\n", " .split_by_idxs(fold_idxs[0], fold_idxs[1])\n", " .label_from_folder()\n", " .transform(tfms, size=64)\n", " .databunch(bs=64)\n", " .normalize(imagenet_stats))\n", "fold_data" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
\n", " \n", " \n", " 70.00% [7/10 00:20<00:08]\n", "
\n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \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.350390#na#00:02
10.343673#na#00:02
20.343127#na#00:02
30.341602#na#00:02
40.333560#na#00:02
50.339989#na#00:02
60.672537#na#00:02

\n", "\n", "

\n", " \n", " \n", " 18.18% [2/11 00:01<00:05 1.1401]\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": "iVBORw0KGgoAAAANSUhEUgAAAZIAAAEGCAYAAABPdROvAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+j8jraAAAgAElEQVR4nO3deXxVxfn48c+TQJB9S9jCkrDLvkTAnVpRRAWrVVHr0kW0SrWt1Wqtyw/1W61VW5WqaN1R6lpjRakbiiJL2HcISSAJW/Z9z/P7457ANWa5JDm59ybP+/W6L+6ZM2fuDDfwZM7MmRFVxRhjjGmoEH9XwBhjTHCzQGKMMaZRLJAYY4xpFAskxhhjGsUCiTHGmEZp4+8KNIfw8HCNiorydzWMMSaorFu3Ll1VI+rL1yoCSVRUFHFxcf6uhjHGBBUR2edLPru1ZYwxplEskBhjjGkUCyTGGGMaxQKJMcaYRrFAYowxplEskBhjjGkUCyTGGGMaxQKJMca0QLsO5fH4p7tJyytx/bMskBhjTAu0JTWHJz/fQ2FpueufZYHEGGNaoOzCUgC6dwxz/bMskBhjTAuUWVBKmxChczv3V8KyQGKMMS1QVmEp3TqEISKuf5argUREZorILhGJF5E7azh/nYikichG5/UrJ32CiHwnIttEZLOIXO51zcsikuh1zQQ322CMMcEoq6CMHh3bNstnudbnEZFQYCEwA0gB1opIrKpur5b136o6v1paIXCNqu4RkX7AOhFZpqrZzvnbVfUdt+pujDHBLrOwlO4d3B8fAXd7JFOAeFVNUNVSYAkwx5cLVXW3qu5x3h8AjgD1rolvjDHGI6ugZQSSSCDZ6zjFSavuEuf21TsiMqD6SRGZAoQBe72SH3KueUJE2tX04SIyT0TiRCQuLS2tEc0wxpjgk1VY2iwztsD/g+0fAlGqOg74FHjF+6SI9AVeA36uqpVO8l3ASOAkoAfwx5oKVtVFqhqjqjEREdaZMca0HqpKVmHzjZG4GUhSAe8eRn8n7ShVzVDVqscuXwAmV50TkS7AR8DdqrrK65qD6lECvITnFpoxxhhHbnE5FZXaIm5trQWGiUi0iIQBc4FY7wxOj6PKbGCHkx4GvA+8Wn1Qveoa8cxpuwjY6loLjDEmCGUVOA8jNlMgcW3WlqqWi8h8YBkQCryoqttEZAEQp6qxwC0iMhsoBzKB65zLLwPOAHqKSFXadaq6EVgsIhGAABuBG91qgzHGBKMs56n2Hs00RuLqI4+quhRYWi3tXq/3d+EZ86h+3evA67WUeVYTV9MYY1qUrGZcHgX8P9hujDGmiWUWlAHQvUPwD7YbY4zxg6NjJNYjMcYY0xBZhc23YCNYIDHGmBanORdsBAskxhjT4mQWlDbbw4hggcQYY1qcrMKyZnuGBCyQGGNMi5NVUNpsz5CABRJjjGlxqsZImosFEmOMaUGae8FGsEBijDEtSnMv2AgWSIwxpkVp7gUbwQKJMca0KJnNvGAjWCAxxpgWJbuZF2wECyTGGNOiVC3Y2MNubRljjGmIqjGSbi1l1paIzBSRXSISLyJ31nD+OhFJE5GNzutXXueuFZE9zutar/TJIrLFKfNJaa7FZIwxJgg094KN4GIgEZFQYCFwHjAKuEJERtWQ9d+qOsF5veBc2wO4D5iKZ0/2+0Sku5P/GeB6YJjzmulWG4wxJthkFZbSvWPzLdgI7vZIpgDxqpqgqqXAEmCOj9eeC3yqqpmqmgV8Csx09mvvoqqrVFWBV/Hs226MMQbPgo3NtaFVFTcDSSSQ7HWc4qRVd4mIbBaRd0RkQD3XRjrv6ysTEZknInEiEpeWltbQNhhjTFDJKmjeBRvB/4PtHwJRqjoOT6/jlaYqWFUXqWqMqsZEREQ0VbHGGBPQsgqbd8FGcDeQpAIDvI77O2lHqWqGqpY4hy8Ak+u5NtV5X2uZxhjTmjX3go3gbiBZCwwTkWgRCQPmArHeGZwxjyqzgR3O+2XAOSLS3RlkPwdYpqoHgVwRmebM1roG+MDFNhhjTNDwx4KNAK7ND1PVchGZjycohAIvquo2EVkAxKlqLHCLiMwGyoFM4Drn2kwReQBPMAJYoKqZzvubgJeB9sDHzssYY1o9fyzYCC4GEgBVXQosrZZ2r9f7u4C7arn2ReDFGtLjgDFNW1NjjAl+VQ8jtqQxEmOMMc2oasHG1jZryxhjTBM5uoS89UiMMcY0RFZh8y/YCBZIjDGmxfDHgo1ggcQYY1qMTD8s2AgWSIwxpsXI9sOCjWCBxBhjWozMgtJmHx8BCyTGGNNiZBWU0a2ZV/4FCyTGGNNi+GPBRrBAYowxLUbVplbNzQKJMca0AJWVngUbm3tTK7BAYowxLUKenxZsBAskxhjTImQV+mfBRrBAYowxLcLRBRstkBhjjGmIows2trRbWyIyU0R2iUi8iNxZR75LRERFJMY5vkpENnq9KkVkgnNuuVNm1blebrbBGGOCgb8WbAQXN7YSkVBgITADSAHWikisqm6vlq8zcCuwuipNVRcDi53zY4H/qOpGr8uucja4MsYYg/cS8i1r1tYUIF5VE1S1FFgCzKkh3wPAI0BxLeVc4VxrjDGmFlULNnZq5gUbwd1AEgkkex2nOGlHicgkYICqflRHOZcDb1ZLe8m5rXWP1LI6mYjME5E4EYlLS0trQPWNMSZ4ZBX4Z8FG8ONgu4iEAI8Dt9WRZypQqKpbvZKvUtWxwOnO6+qarlXVRaoao6oxERERTVhzY4wJPFmF/lmwEdwNJKnAAK/j/k5alc7AGGC5iCQB04DYqgF3x1yq9UZUNdX5Mw94A88tNGOMadWyCsr8Mj4C7gaStcAwEYkWkTA8QSG26qSq5qhquKpGqWoUsAqYXTWI7vRYLsNrfERE2ohIuPO+LXAB4N1bMcaYVimzsNQvU3/BxVlbqlouIvOBZUAo8KKqbhORBUCcqsbWXQJnAMmqmuCV1g5Y5gSRUOAz4HkXqm+MMUEl208LNoKLgQRAVZcCS6ul3VtL3unVjpfjud3lnVYATG7SShpjTJCrWrCxJY6RGGOMaQZVCzb6Y1MrsEBijDFBLyE9H4D+3Tv45fMtkBhjTJDbeiAXgDGRXfzy+RZIjDEmyG1LzaFbh7ZEdmvvl8+3QGKMMUFu64EcxkZ29ctT7WCBxBhjglppeSW7DuUxul9Xv9XBAokxxgSx3YfzKKtQv42PgAUSY4wJatsO5AAwxnokxhhjGmJrai6d27VhYA//TP0FCyTGGBPUth7IYVS/LoSE+GegHSyQGGNM0CqvqGTHwVzGRPrvthZYIDHGmKCVkF5AcVmlXwfawQKJMcYErS0p/h9oBwskxhgTtLYeyOGEtiEMjujk13pYIDHGmCC1LTWXUX27EOrHgXZwOZCIyEwR2SUi8SJyZx35LhERrdpmV0SiRKRIRDY6r2e98k4WkS1OmU+Kv9YEMMYYP6qsVLYdyPH7QDu4uLGViIQCC4EZQAqwVkRiVXV7tXydgVuB1dWK2KuqE2oo+hngeif/UmAm8HETV98YYwJaUkYBBaUVfh8fAXd7JFOAeFVNUNVSPHuvz6kh3wPAI0BxfQWKSF+gi6quUlUFXgUuasI6G2NMUDi2dHzLDiSRQLLXcYqTdpSITAIGqOpHNVwfLSIbROQrETndq8yUusr0KnueiMSJSFxaWlqDG2GMMYFoW2oOYaEhDOvt34F2cHnP9rqISAjwOHBdDacPAgNVNUNEJgP/EZHRx1O+qi4CFgHExMRoI6trjDEBZeuBHEb27UzbUP/PmXKzBqnAAK/j/k5alc7AGGC5iCQB04BYEYlR1RJVzQBQ1XXAXmC4c33/Oso0xpgWT1XZmprr16XjvbkZSNYCw0QkWkTCgLlAbNVJVc1R1XBVjVLVKGAVMFtV40QkwhmsR0QGA8OABFU9COSKyDRnttY1wAcutsEYYwJOSlYROUVlfn+ivYprt7ZUtVxE5gPLgFDgRVXdJiILgDhVja3j8jOABSJSBlQCN6pqpnPuJuBloD2e2Vo2Y8sY06oEwtLx3lwdI1HVpXim6Hqn3VtL3ule798F3q0lXxyeW2LGGNMqbU3NJTREGNGns7+rAtiT7cYYE3S2HshhWK9OnNA21N9VASyQGGNMUKmsVDYlZzM2AJ4fqWKBxBhjgsieI/lkFZYxJbqHv6tylAUSY4wJIqsTMwCYNrinn2tyjAUSY4wJIqsTMunX9QT6d2/v76ocZYHEGGOChKqyOjGTKdE9CKSFz30KJCLS0VnSBBEZLiKzRaStu1UzxhjjLSG9gPT8EqYG0G0t8L1H8jVwgohEAv8DrsbzUKAxxphmsjrB81z21AAaaAffA4moaiFwMfBPVb0UOK5FFI0xxjTOmsQMwju1Izq8o7+r8j0+BxIRORm4Cqha8j0wnoQxxphWoGp8ZOrgwBofAd8DyW+Bu4D3nfWyBgNfulctY4wx3pIziziYU8y0ALutBT6utaWqXwFfwdF9RNJV9RY3K2aMMeaYVc7zI4E20A6+z9p6Q0S6iEhHYCuwXURud7dqxhhjqqxJzKR7h7YMjfD/jojV+Xpra5Sq5uLZH/1jIBrPzC1jjDHNYHViBlOiexASEljjI+B7IGnrPDdyERCrqmWAbV9rjDHN4EB2EcmZRUyNDrzbWuB7IHkOSAI6Al+LyCAgt76LRGSmiOwSkXgRubOOfJeIiIpIjHM8Q0TWicgW58+zvPIud8rc6Lx6+dgGY4wJSmsSPc+PBNJCjd58HWx/EnjSK2mfiPyormucrXIXAjOAFGCtiMSq6vZq+ToDtwKrvZLTgQtV9YCIjMGzy2Kk1/mrnA2ujDGmxVudmEHnE9pwYt/A2Fq3Ol8H27uKyOMiEue8HsPTO6nLFCBeVRNUtRRYAsypId8DwCNAcVWCqm5Q1QPO4TagvYi086WuxhjT0qxOyGRKVA9CA3B8BHy/tfUikAdc5rxygZfquSYSSPY6TuH7vQpEZBIwQFU/onaXAOtVtcQr7SXnttY9EmhP5hhjTBM6kldMQnoBUwcH5m0t8H3P9iGqeonX8f8TkY2N+WDneZTHgevqyDMaT2/lHK/kq1Q11bkl9i6e2WOv1nDtPGAewMCBAxtTVWOM8Ztj4yOBOdAOvvdIikTktKoDETkVKKrnmlRggNdxfyetSmdgDLBcRJKAaUCs14B7f+B94BpV3Vt1kaqmOn/mAW/guYX2A6q6SFVjVDUmIiLCp0YaY0ygiUvKokNYKGP6Beb4CPjeI7kReFVEqjYJzgKureeatcAwEYnGE0DmAldWnVTVHCC86lhElgN/UNU4EemGZ02vO1X1W688bYBuqpruTEe+APjMxzYYY0zQ2XMkj+G9O9MmNHC3j/KpZqq6SVXHA+OAcao6ETirnmvKgfl4ZlztAN5y1ulaICKz6/nI+cBQ4N5q03zbActEZDOwEU+Aet6XNhhjTDBKSi8MuNV+q/O1RwKA83R7ld8Df68n/1JgabW0e2vJO93r/YPAg7UUO9mXuhpjTLArLqsgNbuIqJ6BHUga01ey2VLGGOOifRmFAERHtNxAYkukGGOMixLTCwCIDvAeSZ23tkQkj5oDhgDtXamRMcYY4FggiQrv4Oea1K3OQKKqnZurIsYYY74vKb2A8E7t6HxCW39XpU6BO5/MGGNaucSMAqIDvDcCFkiMMSZgJaYXBPyMLbBAYowxASm/pJy0vJKAn7EFFkiMMSYgJQXJjC2wQGKMMQHp2IwtCyTGGGMaoKpHYmMkxhhjGiQxvYC+XU+gfViov6tSLwskxhgTgBIzgmPGFlggMcaYgJSUXhAUM7bAAokxxgSc7MJSsgrLgmLGFlggMcaYgBNMM7bAAokxxgScpAznGRILJCAiM0Vkl4jEi8iddeS7RES0ar92J+0u57pdInLu8ZZpjDHBKjGtgBCBgT0Cf50tOM4dEo+HiIQCC4EZQAqwVkRiVXV7tXydgVuB1V5po/Ds8T4a6Ad8JiLDndP1lmmMMcEsMaOQyO7tCWsTHDeN3KzlFCBeVRNUtRRYAsypId8DwCNAsVfaHGCJqpaoaiIQ75Tna5nGGBO0ktILiA7v5O9q+MzNQBIJJHsdpzhpR4nIJGCAqn7k47X1lulV9jwRiRORuLS0tIa1wBhjmpmqkpheQHTP4LitBX4cbBeREOBx4DY3ylfVRaoao6oxERERbnyEMcY0ufT8UvJLyoNmxha4OEYCpAIDvI77O2lVOgNjgOUiAtAHiBWR2fVcW1eZxhgT1I7u0x5EgcTNHslaYJiIRItIGJ7B89iqk6qao6rhqhqlqlHAKmC2qsY5+eaKSDsRiQaGAWvqK9MYY4JdUhAGEtd6JKpaLiLzgWVAKPCiqm4TkQVAnKrWGgCcfG8B24Fy4GZVrQCoqUy32mCMMc0tMaOANiFCZLf2/q6Kz9y8tYWqLgWWVku7t5a806sdPwQ85EuZxhjTUiSmFTCwZwfahAbH1F+wJ9uNMSagJGUUBM0aW1UskBhjTICorFSSMgqCasYWWCAxxpiAcSi3mOKyyqAaaAcLJMYYEzCCccYWWCAxxpiAsedIPgCDg2RDqyoWSIwxJkBsSc2hZ8cw+nQ5wd9VOS4WSIwxJkBsTc1hbP+uOKt9BA0LJMYYEwCKSivYfTiPsZFd/V2V42aBxBhjAsD2g7lUKoyxQGKMMaYhtqbmAFiPxBhjTMNsSc0hvFMYfbsG10A7WCAxxpiAsCUlhzGRwTfQDhZIjDHG74pKK9hzJDgH2sECiTHG+F3VQLsFEmOMMQ1ydKC9vwWSHxCRmSKyS0TiReTOGs7fKCJbRGSjiHwjIqOc9KuctKpXpYhMcM4td8qsOtfLzTYYY4zbqgbag+2J9iqubWwlIqHAQmAGkAKsFZFYVd3ule0NVX3WyT8beByYqaqLgcVO+ljgP6q60eu6q5wteY0xJugF80A7uNsjmQLEq2qCqpYCS4A53hlUNdfrsCOgNZRzhXOtMca0OFUD7eOCdHwE3N1qNxJI9jpOAaZWzyQiNwO/B8KAs2oo53KqBSDgJRGpAN4FHlTVHwQgEZkHzAMYOHBgQ+pvjDGuC+Yn2qv4fbBdVReq6hDgj8Cfvc+JyFSgUFW3eiVfpapjgdOd19W1lLtIVWNUNSYiIsKl2htjTOME+0A7uBtIUoEBXsf9nbTaLAEuqpY2F3jTO0FVU50/84A38NxCM8aYoLQ5JbgH2sHdQLIWGCYi0SIShicoxHpnEJFhXofnA3u8zoUAl+E1PiIibUQk3HnfFrgA8O6tGGNMUNmamsPYIB5oBxfHSFS1XETmA8uAUOBFVd0mIguAOFWNBeaLyNlAGZAFXOtVxBlAsqomeKW1A5Y5QSQU+Ax43q02GGOMm6oG2s8d3dvfVWkUNwfbUdWlwNJqafd6vb+1jmuXA9OqpRUAk5u2lsYY4x8tYaAdAmCw3RhjWqstKdkAjOvfzc81aRwLJMYY4ydbUnMJ79SO3l3a+bsqjWKBxBhj/MQz0N4lqAfawQKJMcb4RWFpeVAvHe/NAokLth/I5fH/7aKsotLfVTHGBKi341KoVDhtWPA/MO3qrK3W6FBOMde9tIYjeSV0bNeGG84c4u8qGWMCTEl5Bc8s38uUqB6cFNXd39VpNOuRNKGi0grmvRZHQUk5J0V154nPdrM/o9Df1TLGBJi341I4lFvMLT8eFvTjI2CBpMmoKre/s4ktqTn8Y+5EnrxiIm1CQrj7P1uoYU1JY0wrVVpeyTPL9zJpYDdOHdrT39VpEhZIjtPSLQf537ZDFJdVfC/96S/i+e/mg/xx5kjOHtWbvl3bc8fMEazYk85/Nta1xJgxpjV5b30KqdlFLaY3AjZGclw2JWdz0+L1AHRq14azT+zFrLF9KSqr4LFPd3PxxEhuOGPw0fxXTR3E+xtSeeC/OzhzeC96dAzzV9WNMQGgrKKShcvjGd+/K2cOD/5B9irWI/GRqvLQRzsI7xTGC9fEcP7Yvny5K415r63j1iUbmTCgG/938djv/YYRGiI8fPE4covKeOijHX6svTEmEPxnQyrJmS2rNwLWI/HZsm2HWZOUyYMXjeHsUb05e1RvHvzJGFbuzWBNYgbXnRLNCW1Df3DdiD6dufHMITz9ZTw/mRjJacPC/VB7Y4y/lVdUsvDLeEb368JZI3v5uzpNynokPigtr+Thj3cwrFcn5p50bIuVtqEhnDk8gtvPHUlE59qXOJh/1lAGh3fkhtfiePLzPRSWlvv82fkl5Xy9O80G7I0Jch9uPkBSRmGL642ABRKfvL5qH0kZhfxp1om0CT3+v7IT2obyyi+mcPqwCB7/dDdnPrqcxav3Ue7DA4v3fbCNa15cw/LdaQ2pujEmAJSWV/Lk5/GM7NOZGScG95LxNbFAUo+cwjKe/GIPpw0NZ/qIhg+ODejRgWevnsy7vz6ZQT06cPf7Wznn71+zYX9WrddsP5DLextSAPjrJ7uorLReiTHB6JWVSSSmF3DHzBGEhLSs3gi4HEhEZKaI7BKReBG5s4bzN4rIFhHZKCLfiMgoJz1KRIqc9I0i8qzXNZOda+JF5ElxuY/49Jd7yCkq40+zTmyS7ujkQT14+8aTWXT1ZErKKrnx9XVkF5bWmPeRT3bS5YS2LJgzmh0Hc4nddKDRn2+a3sGcIrak5BzXLUvTeqTllfDk53uYPiKCs0a2vN4IuDjYLiKhwEJgBpACrBWRWFXd7pXtDVV91sk/G3gcmOmc26uqE2oo+hngemA1nk2zZgIfu9GG/RmFvLJyH5dO7s+ofl2arFwR4ZzRfejXrT0XLfyWez7YxlNXTPxenm/2pPPV7jTunnUiP5s6iCVrknns013MGtuXsDbWkQwUWQWlzHn6W47klQAQ2a09Q3t1YnjvTlxzchQDenTwcw2Nvz26bCdFZRXcc8Eof1fFNW7+jzQFiFfVBFUtxbP3+hzvDKqa63XYEajz3o2I9AW6qOoq9Yw+vwpc1LTVPuaRT3YSGiLcds4IV8ofE9mV3549jA83HeADr4cWKyuVv3y8g8hu7bn65EGEhAh3zBxBcmYRb67Z71PZOUVl3PLmBjY7G+eYpqeq/On9LWQVlvKXi8fyh3OGExPVnfT8El75bh+XPLOS+CP5/q6m8aPNKdm8vS6Fn58axZCITv6ujmvcnP4bCSR7HacAU6tnEpGbgd8DYcBZXqeiRWQDkAv8WVVXOGWmVCszsqYPF5F5wDyAgQMHNqgBs8b2ZdqQnvTuckKDrvfFjWcO4fOdR7jnP1uZEt2Dvl3b8+HmA2w7kMsTl48/OqX4zOERTBvcg6e+2MNPJ/enY7u6v7p/r91P7KYDxCVlsvTW0+nWwR6GbGrvrU/l462HuPO8kVwx5fs/Y7sP53Hl86uZu+g7Fv9qGiP6dPZTLY2/qCr3x26jZ8cwfvPjYf6ujqv8fo9EVReq6hDgj8CfneSDwEBVnYgnyLwhIsd1b0lVF6lqjKrGREQ0bJD8/HF9uXraoAZd66s2oSE8cdkEyiqUO97ZTHFZBY8u28Wovl2YM/5YjBQR/jhzJOn5pbywIrHOMisqlVdW7mNIREfS8ku47a1NATNQn55fws1vrOeddSm1Tmkur6jk5W8Tueu9zXy6/fAPlqMJBMmZhdwXu40p0T24/vTBPzg/vHdn/n3DNEJDhLmLvmNrao4famn86YONB1i/P5s7zh1JlxPa+rs6rnIzkKQCA7yO+ztptVmCc5tKVUtUNcN5vw7YCwx3ru9/HGUGhajwjvz5ghNZsSedq15YTUpWEX+adeIPZndMHNidc0f3ZtHXe8nIL6m1vM92HCY1u4jbzx3B3bNO5POdR3h+RYLbzahXTmEZV/9rDR9tPsgf3t7E3EWriD+S9708cUmZXPDUN9z/4Xb+s+EA178ax+QHPuWWNzfw8ZaDARFUKiqV297eBMBjl44ntJZZOEMiOvHWDSfTIawNVz6/io3JdpuxtSgoKecvH+9gXP+u/HRy//ovCHJuBpK1wDARiRaRMGAuEOudQUS8+3vnA3uc9AhnsB4RGQwMAxJU9SCQKyLTnNla1wAfuNiGZnPllIH8aEQE6/Zlcfqw8FqfgL/93BEUlVXw1BfxtZb18rdJRHZrz9kn9ubaU6KYNbYPf122i3X7Mt2qfr0KSsr5+ctr2Hskn1d+MYW/XDyWnYfyOO8fK3h02U5Ssgq57a1N/PTZ78gtKuPZn01m8/3n8OovpjB7Qj++iU/n14vXc84TX7M6IcNv7QD41zcJrEnM5P7Zo+sdTB/UsyP/vmEa3TqEceXzq/j16+t4YUUCG/ZnUVpuG5+1VE99Ec/h3BLuu3B0i5zuW524+cS0iMwC/g6EAi+q6kMisgCIU9VYEfkHcDZQBmQB81V1m4hcAixw0iuB+1T1Q6fMGOBloD2e2Vq/0XoaERMTo3Fxca60sSkdyS3moaU7uOXHw+ocmPvT+1tYsmY/b994CpMHfX9TnJ2Hcpn59xXced5IbnQ21cotLuOCJ7+hrKKSj245vdkXjywuq+CXr6xlVUImC6+cxMwxfQDPba7/+2gH723wdCrbhgq/On0wvzlrKB3Cvj8GVF5RyYo96dz/4Tb2ZRTy81OjuOPckbQP++GyNE2ttLySQznFpGYXkZhewP2x2zhrZC+e+dkkn6eEH8op5tFlu1iTlEFyZhEA7dqEcOrQcP6fDwHJBI9Nydlc/MxKLpkUyV9/Ot7f1WkUEVmnqjH15msNS28ESyDxVV5xGef9YwWhIcLSW07/3sD7Xe9t5v0Nqay668ffG2DfmprDxf9cySlDe/L8NTG0bcAT+g1RVlHJTYvX8+n2wzx26XguqaGbv3JvOv/dfJBfnBrF0F51D0oXlpbzyMc7eeW7fUT17MDfLh1PTFQPV+q+NimT3/17I6nZRXj/M+nfvT2x809rcEA+klvMun1ZxO3L4q21yVSqct/s0Vw6uX+LWzqjtSkuq+DCp74hr7icZb87g67tg3tsxAKJl5YWSADWJGZy+aLvmHvSAP5y8TjA80zDyQ9/zk8mRh5N87Z49T7ufn8rU6N78M+rJtGzU+3rgzWVO9/dzJK1ySyYM5prTo5qsnJX7k3njhQDLD4AABNZSURBVHc2k5pdxILZo7m6CcsGz0OGFz71DR3C2nDxpEj6dWtPpPPq1619kz3LU3VLb3ViJueO7s1fLh5n2w0EsUc+2ckzy/fy0s9P4kcjgn9hRl8Did9nbZmGmRLdgxvOGMKba5L5bPthAP4dl0xxWSXXnhJV4zVXTR3EE5ePZ0NyNrOf/pZtB9ydSRR/JI8la5O5/vToJg0iAKcMCeeT357Bj0f24p4PtvHOupT6L/JRSXkFv359PUWlFbx4XQy/PXs4l8UM4NSh4USFd2zSB0L7d+/AG9dP467zRvLFziOc+/evefGbRJbvOkJiegFlPqzHZgLDxuRsnvtqL5fF9G8RQeR4WI8kiJWUV3DRwpWk5RWz9JbT+ck/VzKgR3uWzDu5zus2p2Rzw2vryC4s49FLx3HBuH6u1O/Odz232VbeeZZrvZ/isgp+9UocK/em8/SVk5g1tm+NebILy+jT1bfnge56bzNvrknm2Z9NYuaYH5bnlu0Hcvn9WxvZeejYTLYQgcju7ZkW3ZNZ4/py6pBwW9kgABWXVXDBU99QUOK5pdVSpvvarS0vLTWQAOw6lMeFT39D7y7tSM4s4tmfTT46mF2XI3nF/Pr19azbl8XNPxrCbTOadjG5I3nFnPbwl1x2Un8evGhsk5Vbk8LScq751xo2pWSz6JqYo78N5haX8dp3+3jp20TS80sZ0KM9pwwO55ShPTl5SE96df5hYHlzzX7uem8LN00fwh0zR7pa75qoKkfyStiXUci+jAL2ZxayNy2fFbvTySspp2v7tswY1ZsLxvXljGERx/2dZRWU0vmENg1axdp4JrPc/vZmunVoy7TBPZk2uAdjI7vx2Ke7eO6rBF75xZQWtfOhBRIvLTmQALywIoEHP/IsqfLV7dN9/k+ipLyC+z7YxpK1ycwa24fHLp3QZLOgHvvfLp7+Mp4vbptOdHjHJimzLrnFZVz5/Cr2HM7nH3MnsCklh9e/20deSTlnDo/gtKHhxO3L5Lu9GeQWexZXHBzekUmDujNpYHcmD+pOfkk5VyxaxbQhPXnpupNqfT7EH0rKK1ixO52lWw7y6fbD5JWUc2LfLtw2Yzg/PrFXvYP0FZXK8ysSePx/uxnRpzNPXD6+3okN5vuSMwu55JmVVCr07BjGrsOenmP7tqGUlFdwWcwAHr7kh2OTwcwCiZeWHkgqK5X/W7qDaYN7cvao41tdVFX51zeJPLR0B+Miu/L8tTE1/qZ+PApLyznl4S+YGt2D566u92ewyWTkl3D5olXEH8lHBGaN6cuvpw9hTGTXo3kqKpXtB3L5dm86cUlZrN+fRWbBsdWXB/Roz4fzTwvoJWVKyitYuuUgf/9sD/syCpk4sBt/OGcEpw6t+dmj/RmF/P6tjcTty+LM4RFsTsmmsLSCO88bybUnR7WK5xwaKz2/hJ8+s5KswjLevvFkhvfuTEZ+CWuTMlmVkElaXgkPXzKWzi3kllYVCyReWnogaQqfbj/MLW9uoEfHMF64NoYT+zZ8teNXViZxX+w23v31yUwe5M7U3NocyS1mydpkLhjXl8E+LJKnqiRlFLJ+XxZbD+Rw5ZSBDOsdHL+pl1VU8s66FJ78fA8Hc4oZP6Abkwd2Z1S/Lozq24WhvTrx7voUHvjvdkJDhAVzRnPRhEjS8ku4890tfLHzCKcO7cmjPx1Pv27tm63Or363jyO5xVw4vh+j+3UJ+CnPecVlXPG85xeUxb+a2uw/0/5kgcSLBRLfbE3N4VevxJFXXMYfzh3B+WP70us4F6ysqFSm/+1LIjq1472bTnWppsZbcVkFb6zezwcbU9l5KI8S54n5EIFKhVOG9ORvl34/WKgqb65J5sGPthPqbGtw5ogITh8aTncfph9XVip/+98uKiqViQO7MXFg93oXN123L5M/vbeVXYfzCA0RKiqVkX06c/GkSC6aEHncP2vNobisgp+/tJY1SZm8cE0MP2phe63XxwKJFwskvjuUU8xNi9exfn82IjB5YHdmjunDzDF96N+9/qevl245yE2L1zf7jCfjUVGpJKYXsP1gLjsO5hLVswOXTh5Q6+2rpPQCnvhsN1/tTiO7sAwRGN+/GxeM68svT4uutbfw6ndJ3PvBtqMBAaBv1xOYMKAbY/t3ZWxkV8b060r3jmHkFJXx1092snj1fvp1PYEFc8YQE9WdDzcf5N11KWxMziZE4KyRvfjZtEE1TiIoKCnnsx2H2Xsknxmj+jAm0v2ejKoy/80NfLT5IE9cPp6fTGz5a2ZVZ4HEiwWS46Oq7DmSzydbD/Hx1kPsOOjZNqZHxzCiwzsefQ2J6MSkgd2O/iapqlz0z5VkF5byxW3TA2qw2tStolLZnJLNV7vT+HLnETal5HD7uSO4+UdDf5A3IS2fWU+uYGp0T567ejLbD+aycX82G5Kz2ZicdXQJGPBs9FVcVkFWYSk/PzWa388Y/oMtEPam5fPuuhTeiksmPb+UgT06cNXUgcye0I+N+7P57+aDfL7zMMVlx56pGdqr09GejFu35apm8N0xcwQ3Tf/h30NrYIHEiwWSxklKL+DznUeIP5JHQloBSRkFHM49tvrwgB7tmTywO/27d+DpL+N5YE7TP2lumo+qcuuSjXy4+QDPXx3zvQkc5RWVXPrcdySkFbDst2fU+GxOTmEZWw/ksDU1hy2pORSVVvC7GcO/N+mhJqXllXyy7RCvr9rHmsRjC4yGdwrjvDF9uXB8P4b16sTHWw/x3voU4vZlIQIXjuvH3y4df1zP11RUKml5JbU+W5SYXsCsf6xg8qDuvPqLKa12QoIFEi8WSJpefkk5ew7nedaMSvKsG5WeX0LPjmF888ezmmUxReOeotIKLnvuOxLS8nn/5lMZ7kxAWPhlPI8u28U/5k5gzoQa95RrErsO5fHZjsNMGNCNqdE9apzSvj+jkMVr9vHcVwmcP64vT86d6FMv+GBOEbe+uZG1+zK5/8LRP1gJoqyikp8++x1J6bUHy9bCAokXCyTuU1X2ZxbSNjSk2WYAGXd51hv7lg5hoXxw86kcyCniooXfcs7oPjx9xcSAmW31/NcJPLR0B5dO7s8jl4yrs/fw6fbD3P7OJkrLKxndrwtrk7K4afoQbj93xNH2PP7pbp78fA8Lr5zE+eNa9zifr4HEza12TSsiIgzq6f6Dh6b59O3anueunswVi1Zx8xvrySwopVuHMB6cMyZgggjA9WcMJq+knCc/30PHdm2478JRP6hfSXkFf1m6k5dXJjG6XxeeumIiA3t04J4PtvHP5Xs5nOt5DmRzSg5Pf7GHiydFtvogcjwskBhjajV5UHce+skYbn9nMwAvXXeST9ODm9vvzh5GQUk5//omkU7t2vC7GcNJTC9ghzN77fMdR9h1OI/rTonirlkjadfGc+v1/34yhj5dTuCJz3aTll9CUnoB/bq15//NHu3nFgUXVwOJiMwE/oFnY6sXVPXhaudvBG4GKoB8YJ6qbheRGcDDQBhQCtyuql841ywH+gJVU0POUdUjbrbDmNbs0pgB5BSVUVpRGbDPUYgIfz7/RApLy3n6y3ieX5Fw9HmaNiHCsN6def6aGGZUW/lBRLj17GH07tKOP72/BYAl805ucU+ou821MRJnq9zdwAwgBc/Wu1eo6navPF1UNdd5Pxu4SVVnishE4LCqHhCRMcAyVY108i0H/qCqPg962BiJMa1DRaXy7Fd7ySwo5cS+XTixb2eG9up0tAdSl+/2ZpBdWMp5Nawg3VoFwhjJFCBeVROcCi0B5gBHA0lVEHF0BNRJ3+CVvg1oLyLtVLUEY4ypRWiI1Pjsiy9OHtKziWvTeri5lnQkkOx1nOKkfY+I3Cwie4G/ArfUUM4lwPpqQeQlEdkoIvdILaN+IjJPROJEJC4tLa3hrTDGGFMnv29KoKoLVXUI8Efgz97nRGQ08Ahwg1fyVao6FjjdeV1dS7mLVDVGVWMiIlrO/gDGGBNo3AwkqcAAr+P+TlptlgAXVR2ISH/gfeAaVd1bla6qqc6fecAbeG6hGWOM8RM3A8laYJiIRItIGDAXiPXOICLDvA7PB/Y46d2Aj4A7VfVbr/xtRCTced8WuADY6mIbjDHG1MO1wXZVLReR+cAyPNN/X1TVbSKyAIhT1VhgvoicDZQBWcC1zuXzgaHAvSJyr5N2DlAALHOCSCjwGfC8W20wxhhTP1sixRhjTI18nf7r98F2Y4wxwc0CiTHGmEZpFbe2RCQN2OccdgVyashWU3r1NO/j2t6HA+mNrHJd9TzefL60q6Y0X9re3G2tL699t/bd1pTWWr/bpmjrIFWt//kJVW1VL2CRr+nV07yP63gf52Y9jzefL+2qr621tbe521pfXvtu7bu177b52ur9ao23tj48jvTqaR/68L6p+Fpmffl8aVdNab62vSkcT3l15bXv1r7bmtJa63frdluPahW3tpqTiMSpD7McWoLW1FZoXe1tTW2F1tVeN9raGnskblvk7wo0o9bUVmhd7W1NbYXW1d4mb6v1SIwxxjSK9UiMMcY0igUSY4wxjWKBpA4i8qKIHBGR414YUkQmi8gWEYkXkSe9900Rkd+IyE4R2SYif23aWjeMG20VkftFJNXZO2ajiMxq+po3jFvfrXP+NhHRqgVG/c2l7/YBEdnsfK//E5F+TV/z4+dSWx91/r1uFpH3nUVlA4JL7b3U+b+pUkR8G5Rv6vnELekFnAFMArY24No1wDRAgI+B85z0H+FZbLKdc9zL3+10sa3349kW2e/ta472OucG4FmodB8Q7u92uvjddvHKcwvwrL/b6WJbzwHaOO8fAR7xdztdbu+JwAhgORDjS1nWI6mDqn4NZHqnicgQEflERNaJyAoRGVn9OhHpi+cf2ir1fDOvcmyvlV8DD6uz46OqHnG3Fb5xqa0By8X2PgHcgbNtdCBwo61ayzbZ/uZSW/+nquVO1lV49lYKCC61d4eq7jqeelggOX6LgN+o6mTgD8A/a8gTiWdr4Sre2wwPB04XkdUi8pWInORqbRunsW0Fz1YBm50ueHf3qtokGtVeEZkDpKrqJrcr2gQa/d2KyEMikgxcBdxL4GqKn+Mqv8Dz23sga8r2+sS1/UhaIhHpBJwCvO11W7zdcRbTBuiBp0t5EvCWiAx2fisIGE3U1meAB/D8tvoA8Bief4gBp7HtFZEOwJ/w3AYJaE303aKqdwN3i8hdePYQuq/JKtlEmqqtTll3A+XA4qapXdNryvYeDwskxycEyFbVCd6JIhIKrHMOY/H8B+rd/fXeZjgFeM8JHGtEpBLPImppbla8ARrdVlU97HXd88B/3axwIzW2vUOAaGCT8w+4P7BeRKao6iGX6368muLn2NtiYCkBGEhooraKyHV4dmT9caD90ldNU3+3vvH3YFGgv4AovAaygJXApc57AcbXcl31gaxZTvqNwALn/XAgGefBUH+/XGhrX688vwOW+LuNbra3Wp4kAmSw3aXvdphXnt8A7/i7jS62dSawHYjwd9uao71e55fj42C73/8SAvkFvAkcxLMVcArwSzy/dX4CbHJ+uO6t5doYPPvJ7wWergoWQBjwunNuPXCWv9vpYltfA7YAm/H8FtS3udrjj/ZWyxMwgcSl7/ZdJ30zngUBI/3dThfbGo/nF76NzisgZqi52N6fOGWVAIeBZfXVw5ZIMcYY0yg2a8sYY0yjWCAxxhjTKBZIjDHGNIoFEmOMMY1igcQYY0yjWCAxrZKI5Dfz561sonKmi0iOs+ruThH5mw/XXCQio5ri842piQUSY5qAiNS5SoSqntKEH7dCPU8uTwQuEJFT68l/EWCBxLjGAokxjtpWTRWRC51FNjeIyGci0ttJv19EXhORb4HXnOMXRWS5iCSIyC1eZec7f053zr/j9CgWe+0DMctJW+fsD1HnkjKqWoTnAbmqRSOvF5G1IrJJRN4VkQ4icgowG3jU6cUM8WV1WGOOhwUSY46pbdXUb4BpqjoRWIJnmfgqo4CzVfUK53gkcC4wBbhPRNrW8DkTgd861w4GThWRE4Dn8OwJMRmIqK+yzmrKw4CvnaT3VPUkVR0P7AB+qaor8awqcLuqTlDVvXW005gGsUUbjaHeVVP7A/929nAIAxK9Lo11egZVPlLPXjMlInIE6M33l+sGWKOqKc7nbsSzVlI+kKCqVWW/Ccyrpbqni8gmPEHk73psUcgxIvIg0A3ohGeDreNppzENYoHEGI8aV011PAU8rqqxIjIdz86PVQqq5S3xel9Bzf/GfMlTlxWqeoGIRAOrROQtVd0IvAxcpKqbnNVqp9dwbV3tNKZB7NaWMRzd8S9RRC4FEI/xzumuHFti+1qXqrALGCwiUc7x5fVd4PReHgb+6CR1Bg46t9Ou8sqa55yrr53GNIgFEtNadRCRFK/X7/H85/tL57bRNmCOk/d+PLeC1gHpblTGuT12E/CJ8zl5QI4Plz4LnOEEoHuA1cC3wE6vPEuA253JAkOovZ3GNIit/mtMgBCRTqqa78ziWgjsUdUn/F0vY+pjPRJjAsf1zuD7Njy3057zc32M8Yn1SIwxxjSK9UiMMcY0igUSY4wxjWKBxBhjTKNYIDHGGNMoFkiMMcY0yv8HKhYTyIreGF4AAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "learner.load(\"best-effb4-herlev-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": 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.3302090.0268021.0000001.0000001.0000001.0000001.00000000:03
10.3267400.0272581.0000001.0000001.0000001.0000001.00000000:04
20.3339520.0288450.9945360.9965160.9950740.9953210.99916600:03
30.3115580.0412570.9945360.9928570.9964290.9956400.99916700:03
40.3266830.0497750.9836070.9827320.9879310.9866250.99750600:03
50.3238090.0431880.9890710.9892860.9915020.9909720.99833500:04
60.3138580.0299011.0000001.0000001.0000001.0000001.00000000:04
70.3501580.0591690.9726780.9750640.9803910.9790390.99583600:03
80.3668910.0850530.9672130.9683930.9777780.9751300.98838100:04
90.3838090.1050680.9726780.9744050.9702080.9707460.99584300:03
100.3974750.1356840.9508200.9659340.9484510.9504110.96531200:03
110.4149200.0882370.9562840.9584250.9569490.9562090.94104900:03
120.4078620.1583520.9508200.9506560.9507640.9499550.93823200:04
130.3942370.0361580.9836070.9870130.9892860.9884970.97779900:03
140.4176090.0531540.9726780.9782740.9797620.9790860.98239900:04
150.4111790.0522340.9781420.9807880.9833330.9827400.97657300:03
160.4049070.0684220.9781420.9831690.9833330.9832500.97653100:03
170.3868150.0936430.9672130.9736200.9781750.9764590.97529000:03
180.3839080.0846810.9672130.9709330.9777780.9756480.98836000:04
190.3743670.0730750.9781420.9818550.9813700.9811330.97761800:03
200.3573860.1081820.9562840.9654000.9657300.9647870.96146500:03
210.3399880.1154330.9617490.9698080.9696980.9688980.96234400:03
220.3238050.1177220.9453550.9576530.9581900.9567350.95341200:03
230.3128400.1093630.9398910.9529950.9532640.9521530.95259800:03
240.3002920.1003220.9508200.9612540.9617610.9606540.96058300:03
250.2853420.0920150.9508200.9612540.9617610.9606540.96058300:03
260.2710840.0873800.9562840.9654000.9657300.9647870.96146500:03
270.2597550.0894940.9562840.9654000.9657300.9647870.96146500:03
280.2594670.0906250.9562840.9654000.9657300.9647870.96146500:03
290.2538750.0907470.9562840.9654000.9657300.9647870.96146500:04
" ], "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(4.5e-03), callbacks=model_callback(learner, \"best-effb4-herlev-multiclass-fold4-stage1\"))\n", "learner.save(\"last-effb4-herlev-multiclass-fold4-stage1\")" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
\n", " \n", " \n", " 60.00% [6/10 00:21<00:14]\n", "
\n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \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.303084#na#00:03
10.323070#na#00:03
20.309407#na#00:03
30.308834#na#00:03
40.306288#na#00:04
50.580317#na#00:03

\n", "\n", "

\n", " \n", " \n", " 27.27% [3/11 00:01<00:04 0.9455]\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-effb4-herlev-multiclass-fold4-stage1\")\n", "learner = to_fp16(learner)\n", "learner.unfreeze()\n", "learner.lr_find()\n", "learner.recorder.plot()" ] }, { "cell_type": "code", "execution_count": 30, "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \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.3080360.0255151.0000001.0000001.0000001.0000001.00000000:04
10.3068320.0255891.0000001.0000001.0000001.0000001.00000000:04
20.3183330.0254771.0000001.0000001.0000001.0000001.00000000:04
30.3017470.0259731.0000001.0000001.0000001.0000001.00000000:04
40.2968210.0258671.0000001.0000001.0000001.0000001.00000000:04
50.2903150.0266361.0000001.0000001.0000001.0000001.00000000:04
60.2735780.0292891.0000001.0000001.0000001.0000001.00000000:04
70.2631770.0293731.0000001.0000001.0000001.0000001.00000000:04
80.2706920.0374531.0000001.0000001.0000001.0000001.00000000:04
90.2639690.0491280.9836070.9893360.9853860.9859690.99749000:04
100.2665710.0607600.9836070.9893360.9852220.9857240.99750200:04
110.2621000.0740070.9726780.9825140.9727770.9740290.99583600:04
120.2458720.0908330.9726780.9831520.9729410.9744230.98910400:04
130.2406880.0919410.9562840.9645990.9644230.9638440.97118500:04
140.2311220.0885540.9726780.9723300.9709360.9705900.98658900:04
150.2308980.0922500.9562840.9670560.9648190.9649370.97352200:04
160.2117530.1060590.9617490.9654570.9663380.9654540.97851100:04
170.2023840.1709090.9453550.9537170.9520530.9520590.95549200:04
180.1915480.1668740.9453550.9485910.9518880.9508140.98239400:04
190.1819350.1467960.9453550.9482800.9525180.9511600.98505500:04
200.1686430.1529150.9344260.9369340.9420360.9396980.96169500:04
210.1647200.1499120.9453550.9524340.9551310.9538080.96348200:04
220.1518210.1384510.9562840.9589450.9600570.9589220.98179200:04
230.1393630.1335700.9508200.9537040.9552960.9542260.97837600:05
240.1311620.1393800.9453550.9486130.9513270.9502200.97750900:04
250.1253670.1314590.9344260.9403870.9428300.9414750.96937500:04
260.1281140.1312050.9453550.9492490.9517240.9503520.97103000:04
270.1144370.1368720.9453550.9492490.9517240.9503520.97103000:04
280.1111720.1360190.9453550.9492490.9517240.9503520.97103000:04
290.1018430.1279200.9398910.9385710.9427110.9410070.96895200:04
300.0960860.1262660.9453550.9424190.9476370.9458720.96972100:04
310.0902900.1203910.9453550.9424190.9476370.9458720.96972100:04
320.0857950.1168880.9453550.9424190.9476370.9458720.96972100:04
330.0792870.1129320.9453550.9424190.9476370.9458720.96972100:04
340.0834140.1108930.9453550.9424190.9476370.9458720.96972100:04
350.0772770.1097040.9453550.9424190.9476370.9458720.96972100:04
360.0711300.1075610.9453550.9424190.9476370.9458720.96972100:04
370.0686410.1076340.9453550.9424190.9476370.9458720.96972100:04
380.0673460.1053180.9453550.9424190.9476370.9458720.96972100:04
390.0729640.1053890.9453550.9424190.9476370.9458720.96972100:04
" ], "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(40, max_lr=slice(2e-04, 4.5e-04), callbacks=model_callback(learner, \"best-effb4-herlev-multiclass-fold4-stage2\"))\n", "learner.save(\"last-effb4-herlev-multiclass-fold4-stage2\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Fold-5" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "ImageDataBunch;\n", "\n", "Train: LabelList (734 items)\n", "x: ImageList\n", "Image (3, 64, 64),Image (3, 64, 64),Image (3, 64, 64),Image (3, 64, 64),Image (3, 64, 64)\n", "y: CategoryList\n", "abnormal_moderate-dysplastic,abnormal_moderate-dysplastic,abnormal_moderate-dysplastic,abnormal_moderate-dysplastic,abnormal_moderate-dysplastic\n", "Path: ../../../Dataset/Herlev Dataset;\n", "\n", "Valid: LabelList (183 items)\n", "x: ImageList\n", "Image (3, 64, 64),Image (3, 64, 64),Image (3, 64, 64),Image (3, 64, 64),Image (3, 64, 64)\n", "y: CategoryList\n", "abnormal_moderate-dysplastic,abnormal_moderate-dysplastic,abnormal_moderate-dysplastic,abnormal_moderate-dysplastic,abnormal_moderate-dysplastic\n", "Path: ../../../Dataset/Herlev Dataset;\n", "\n", "Test: None" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "fold_idxs = idxs[4]\n", "fold_data = (ImageList.from_folder(data_path)\n", " .split_by_idxs(fold_idxs[0], fold_idxs[1])\n", " .label_from_folder()\n", " .transform(tfms, size=64)\n", " .databunch(bs=64)\n", " .normalize(imagenet_stats))\n", "fold_data" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
\n", " \n", " \n", " 70.00% [7/10 00:19<00:08]\n", "
\n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \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.317497#na#00:02
10.330295#na#00:02
20.339157#na#00:02
30.321955#na#00:02
40.320690#na#00:02
50.328698#na#00:03
60.873390#na#00:02

\n", "\n", "

\n", " \n", " \n", " 0.00% [0/11 00:00<00:00]\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-effb4-herlev-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": 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.2834420.0525730.9890710.9885890.9914110.9907260.98926500:03
10.3112650.0530440.9890710.9885890.9914110.9907260.98926500:04
20.3187400.0535010.9890710.9885890.9914110.9907260.98926500:03
30.3249190.0534630.9890710.9885890.9914110.9907260.98926500:03
40.3150750.0537340.9890710.9885890.9914110.9907260.98926500:03
50.3130560.0542720.9890710.9885890.9914110.9907260.98926500:03
60.3052640.0540030.9890710.9885890.9914110.9907260.98926500:03
70.3132020.0532260.9890710.9885890.9914110.9907260.98926500:04
80.3041270.0533480.9836070.9796600.9812070.9805650.98849700:03
90.3039040.0532410.9836070.9796600.9812070.9805650.98849700:03
100.3025110.0533910.9836070.9796600.9812070.9805650.98849700:03
110.3003140.0532770.9836070.9796600.9812070.9805650.98849700:03
120.2973550.0533070.9836070.9796600.9812070.9805650.98849700:04
130.2988530.0529860.9836070.9796600.9812070.9805650.98849700:03
140.3007250.0524050.9836070.9796600.9812070.9805650.98849700:04
150.2922820.0525860.9836070.9796600.9812070.9805650.98849700:03
160.2826210.0521520.9890710.9885890.9914110.9907260.98926500:04
170.2779240.0517490.9890710.9885890.9914110.9907260.98926500:03
180.2821940.0515210.9836070.9796600.9812070.9805650.98849700:03
190.2844860.0513090.9836070.9796600.9812070.9805650.98849700:03
200.2874250.0510200.9836070.9796600.9812070.9805650.98849700:03
210.2834070.0508830.9836070.9796600.9812070.9805650.98849700:03
220.2880190.0512520.9836070.9796600.9812070.9805650.98849700:04
230.2885740.0511780.9836070.9796600.9812070.9805650.98849700:03
240.2949120.0513730.9836070.9796600.9812070.9805650.98849700:03
250.2925300.0513420.9836070.9796600.9812070.9805650.98849700:03
260.2937380.0520120.9836070.9796600.9812070.9805650.98849700:03
270.2990570.0522360.9836070.9796600.9812070.9805650.98849700:03
280.3019640.0512040.9836070.9796600.9812070.9805650.98849700:04
290.3080230.0515220.9836070.9796600.9812070.9805650.98849700:03
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Better model found at epoch 0 with accuracy value: 0.9890710115432739.\n" ] } ], "source": [ "learner.fit_one_cycle(30, max_lr=slice(7e-05), callbacks=model_callback(learner, \"best-effb4-herlev-multiclass-fold5-stage1\"))\n", "learner.save(\"last-effb4-herlev-multiclass-fold5-stage1\")" ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
\n", " \n", " \n", " 60.00% [6/10 00:21<00:14]\n", "
\n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \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.320422#na#00:03
10.337426#na#00:03
20.330254#na#00:03
30.323374#na#00:03
40.336810#na#00:03
50.631335#na#00:03

\n", "\n", "

\n", " \n", " \n", " 36.36% [4/11 00:01<00:03 1.1327]\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-effb4-herlev-multiclass-fold5-stage1\")\n", "learner = to_fp16(learner)\n", "learner.unfreeze()\n", "learner.lr_find()\n", "learner.recorder.plot()" ] }, { "cell_type": "code", "execution_count": 37, "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.2516990.0524280.9890710.9885890.9914110.9907260.98926500:04
10.2836480.0517310.9890710.9885890.9914110.9907260.98926500:04
20.2884760.0504780.9890710.9885890.9914110.9907260.98926500:04
30.2878220.0492540.9890710.9885890.9914110.9907260.98926500:04
40.2798420.0487580.9836070.9796600.9812070.9805650.98849700:04
50.2756250.0465520.9836070.9796600.9812070.9805650.98849700:04
60.2746670.0453970.9890710.9885890.9914110.9907260.98926500:04
70.2790660.0518730.9890710.9864630.9861330.9859470.99176900:04
80.2901050.0488370.9890710.9864630.9861330.9859470.99176900:04
90.2844600.0432430.9890710.9872100.9861330.9861040.99587100:04
100.2845250.0429510.9945360.9961390.9963370.9962650.99668000:04
110.2674520.0484210.9890710.9865080.9923690.9910740.98346000:04
120.2584850.0459780.9890710.9865080.9923690.9910740.98346000:04
130.2472080.0436840.9945360.9953920.9963370.9961080.99255500:04
140.2437530.0421980.9890710.9915750.9915750.9915750.98503800:04
150.2365510.0432990.9890710.9915750.9915750.9915750.98503800:04
160.2351300.0431630.9890710.9915750.9915750.9915750.98503800:04
170.2320600.0428500.9890710.9915750.9915750.9915750.98503800:04
180.2250390.0442080.9890710.9915750.9915750.9915750.98503800:04
190.2150450.0429870.9890710.9915750.9915750.9915750.98503800:04
200.2043380.0427940.9890710.9915750.9915750.9915750.98503800:04
210.1937820.0435430.9890710.9915750.9915750.9915750.98503800:04
220.1918570.0439170.9890710.9915750.9915750.9915750.98503800:04
230.1879620.0445100.9890710.9915750.9915750.9915750.98503800:04
240.1872930.0452870.9890710.9915750.9915750.9915750.98503800:04
250.1872150.0454360.9890710.9915750.9915750.9915750.98503800:04
260.1819720.0451890.9890710.9915750.9915750.9915750.98503800:04
270.1794150.0449040.9890710.9915750.9915750.9915750.98503800:04
280.1770780.0446880.9890710.9915750.9915750.9915750.98503800:04
290.1819880.0445040.9890710.9915750.9915750.9915750.98503800:04
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Better model found at epoch 0 with accuracy value: 0.9890710115432739.\n", "Better model found at epoch 10 with accuracy value: 0.994535505771637.\n" ] } ], "source": [ "learner.fit_one_cycle(30, max_lr=slice(5e-04), callbacks=model_callback(learner, \"best-effb4-herlev-multiclass-fold5-stage2\"))\n", "learner.save(\"last-effb4-herlev-multiclass-fold5-stage2\")" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [], "source": [ "learner.load(\"best-effb4-herlev-multiclass-fold5-stage2\")\n", "learner.freeze()\n", "learner.export(\"best-effb4-herlev-multiclass.pkl\")" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "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 }