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

\n", "\n", "

\n", " \n", " \n", " 85.42% [41/48 00:11<00:02 5.3880]\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": [ "with gpu_mem_restore_ctx():\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", "
epochtrain_lossvalid_lossaccuracyprecisionrecallf_betakappa_scoretime
01.5168531.4370600.5618560.5895080.5429590.5416480.59644800:54
11.2871411.0443770.7989690.7885350.8211170.8108310.73859800:16
20.9528020.5131120.8350520.8342450.8591980.8480570.78237100:16
30.6444340.2398660.9020620.9004970.9182650.9138910.90920800:16
40.4655480.1862880.9432990.9525930.9495650.9491710.95958300:16
50.3431100.1429150.9484540.9559830.9543720.9541930.95663400:16
60.3211800.2364060.9226800.9337220.9320540.9318860.94204500:17
70.2662720.1702720.9329900.9399180.9443640.9431960.95250700:16
80.2550930.2112450.9536080.9538040.9622540.9591950.96337700:16
90.2446950.1976870.9278350.9387450.9396530.9384500.92588400:16
100.1992260.2120080.9587630.9639060.9668720.9661680.97610800:16
110.2270990.1369890.9484540.9571420.9511090.9519290.94793900:16
120.1751600.0752750.9742270.9758640.9716600.9724150.95588900:16
130.1616740.0592080.9742270.9729400.9762010.9753910.96409200:16
140.1644460.1469200.9742270.9725740.9790860.9775270.97639000:17
150.1633430.1472910.9690720.9718010.9672160.9680300.94521200:17
160.1304370.1062920.9742270.9757490.9790860.9783590.98059800:17
170.0987000.1325230.9639180.9686060.9707640.9698250.97774600:17
180.0951580.1223370.9639180.9671920.9718680.9707700.97779200:16
190.0714020.1835480.9742270.9769390.9738880.9740480.96878400:16
200.0542010.1338390.9639180.9672280.9713160.9701850.97785800:17
210.0493060.1050540.9793810.9804460.9829790.9821200.98220600:17
220.0502310.1168240.9793810.9804460.9829790.9821200.98220600:17
230.0434290.1192660.9793810.9804460.9829790.9821200.98220600:17
240.0451290.1222790.9690720.9717380.9750200.9739560.97932300:17
250.0313130.1124900.9690720.9717380.9750200.9739560.97932300:17
260.0281900.1081780.9742270.9758330.9792750.9783520.98073300:16
270.0289150.1066770.9793810.9796380.9835300.9825780.98222400:16
280.0198210.1054850.9793810.9796380.9835300.9825780.98222400:17
290.0221330.1051990.9793810.9796380.9835300.9825780.98222400:16
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Better model found at epoch 0 with accuracy value: 0.561855673789978.\n", "Better model found at epoch 1 with accuracy value: 0.7989690899848938.\n", "Better model found at epoch 2 with accuracy value: 0.8350515365600586.\n", "Better model found at epoch 3 with accuracy value: 0.9020618796348572.\n", "Better model found at epoch 4 with accuracy value: 0.9432989954948425.\n", "Better model found at epoch 5 with accuracy value: 0.9484536051750183.\n", "Better model found at epoch 8 with accuracy value: 0.9536082744598389.\n", "Better model found at epoch 10 with accuracy value: 0.9587628841400146.\n", "Better model found at epoch 12 with accuracy value: 0.9742268323898315.\n", "Better model found at epoch 21 with accuracy value: 0.9793814420700073.\n" ] } ], "source": [ "with gpu_mem_restore_ctx():\n", " learner.fit_one_cycle(30, max_lr=slice(2e-03), callbacks=model_callback(learner, \"best-effb3-sipak-multiclass-fold1-224-stage1\"))\n", " learner.save(\"last-effb3-sipak-multiclass-fold1-224-stage1\")" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
\n", " \n", " \n", " 33.33% [1/3 00:13<00:26]\n", "
\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.046040#na#00:13

\n", "\n", "

\n", " \n", " \n", " 10.42% [5/48 00:04<00:41 0.0557]\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": [ "with gpu_mem_restore_ctx():\n", " learner.load(\"best-effb3-sipak-multiclass-fold1-224-stage1\")\n", " learner = to_fp16(learner)\n", " learner.unfreeze()\n", " learner.lr_find()\n", " learner.recorder.plot()" ] }, { "cell_type": "code", "execution_count": 17, "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.0388030.1014340.9742270.9758330.9792750.9783520.98073300:16
10.0487710.0972030.9742270.9758330.9792750.9783520.98073300:16
20.0428890.0951730.9690720.9713040.9748310.9740090.97917800:16
30.0362040.0946980.9690720.9713040.9748310.9740090.97917800:17
40.0483490.0953940.9690720.9713040.9748310.9740090.97917800:16
50.0464480.0935130.9690720.9713040.9748310.9740090.97917800:16
60.0575920.0941160.9690720.9713040.9748310.9740090.97917800:16
70.0408120.0941760.9690720.9713040.9748310.9740090.97917800:17
80.0447580.0960860.9690720.9713040.9748310.9740090.97917800:16
90.0524650.0962870.9690720.9713040.9748310.9740090.97917800:17
100.0598740.0960830.9690720.9713040.9748310.9740090.97917800:16
110.0403660.0944190.9690720.9713040.9748310.9740090.97917800:16
120.0355560.0953100.9690720.9713040.9748310.9740090.97917800:16
130.0412130.0948230.9690720.9713040.9748310.9740090.97917800:16
140.0519230.0939900.9690720.9713040.9748310.9740090.97917800:17
150.0502490.0957330.9742270.9758330.9792750.9783520.98073300:16
160.0406450.0961300.9742270.9758330.9792750.9783520.98073300:16
170.0503740.0947120.9690720.9713040.9748310.9740090.97917800:16
180.0366800.0942120.9742270.9758330.9792750.9783520.98073300:17
190.0469620.0946930.9742270.9758330.9792750.9783520.98073300:16
200.0351730.0938670.9742270.9758330.9792750.9783520.98073300:16
210.0371050.0946180.9742270.9758330.9792750.9783520.98073300:16
220.0596890.0933650.9742270.9758330.9792750.9783520.98073300:16
230.0432580.0931040.9742270.9758330.9792750.9783520.98073300:17
240.0354300.0943930.9742270.9758330.9792750.9783520.98073300:17
250.0373740.0945900.9742270.9758330.9792750.9783520.98073300:16
260.0456870.0956460.9690720.9713040.9748310.9740090.97917800:17
270.0399530.0953420.9690720.9713040.9748310.9740090.97917800:17
280.0490090.0950790.9690720.9713040.9748310.9740090.97917800:16
290.0410370.0967410.9690720.9713040.9748310.9740090.97917800:17
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Better model found at epoch 0 with accuracy value: 0.9742268323898315.\n" ] } ], "source": [ "with gpu_mem_restore_ctx():\n", " learner.fit_one_cycle(30, max_lr=slice(6e-07), callbacks=model_callback(learner, \"best-effb3-sipak-multiclass-fold1-224-stage2\"))\n", " learner.save(\"last-effb3-sipak-multiclass-fold1-224-stage2\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 256x256" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [], "source": [ "with gpu_mem_restore_ctx():\n", " fold_data = get_fold_data(idxs[0], img_size=256, bs=16)\n", " fold_data" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
\n", " \n", " \n", " 33.33% [1/3 00:12<00:24]\n", "
\n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
epochtrain_lossvalid_lossaccuracyprecisionrecallf_betakappa_scoretime
00.036866#na#00:12

\n", "\n", "

\n", " \n", " \n", " 45.83% [22/48 00:08<00:10 0.0529]\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": [ "with gpu_mem_restore_ctx():\n", " learner.load(\"best-effb3-sipak-multiclass-fold1-224-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": 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", "
epochtrain_lossvalid_lossaccuracyprecisionrecallf_betakappa_scoretime
00.0500920.1251360.9639180.9684300.9698350.9692740.97749900:14
10.0397460.1355320.9742270.9764270.9792750.9785050.98065600:15
20.0343320.1633730.9639180.9684300.9698350.9692740.97749900:15
30.0560520.1731980.9690720.9731770.9740900.9736500.97892500:15
40.0711550.1955670.9690720.9716330.9761230.9751210.97920000:15
50.0702080.1157210.9793810.9791410.9761050.9766510.95773500:15
60.0709100.2107110.9793810.9803480.9824110.9817550.98190000:15
70.0899220.3331310.9793810.9811020.9829790.9822650.98213400:14
80.1167620.3263920.9690720.9715770.9746410.9739680.97903200:15
90.1197400.2886720.9690720.9715770.9746410.9739680.97903200:14
100.1163310.2358660.9690720.9715770.9746410.9739680.97903200:16
110.1566830.2800920.9793810.9796380.9833410.9825440.98210000:15
120.1213180.1829160.9845360.9838970.9877860.9869220.98364900:15
130.0833780.1528500.9690720.9711310.9753820.9744270.97920000:15
140.1410210.1367140.9587630.9637600.9664930.9657770.97596400:15
150.0944920.1702930.9690720.9711310.9753820.9744270.97920000:14
160.0786720.1175630.9690720.9725540.9746410.9741040.97894700:15
170.0629020.1707470.9690720.9711310.9753820.9743700.97483100:14
180.0346420.1271250.9690720.9715770.9748310.9739470.97480500:15
190.0548780.1182020.9742270.9758020.9794480.9785600.97606200:15
200.0510660.1585420.9742270.9767540.9783450.9778620.98044000:15
210.0517820.1729090.9690720.9713970.9759340.9748530.97475600:14
220.0444200.1369280.9639180.9670800.9709380.9700820.96878400:15
230.0409910.1263220.9690720.9720790.9746410.9740440.97452500:15
240.0268850.1405120.9639180.9675420.9703860.9697060.97312200:14
250.0313010.1326750.9690720.9720790.9746410.9740440.97452500:14
260.0326270.1445910.9742270.9758330.9788970.9782230.97603600:14
270.0246020.1378180.9793810.9796380.9833410.9825440.98210000:15
280.0260950.1373780.9742270.9753860.9796380.9786830.97622900:15
290.0204200.1389320.9793810.9796380.9833410.9825440.98210000:15
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Better model found at epoch 0 with accuracy value: 0.9639175534248352.\n", "Better model found at epoch 1 with accuracy value: 0.9742268323898315.\n", "Better model found at epoch 5 with accuracy value: 0.9793814420700073.\n", "Better model found at epoch 12 with accuracy value: 0.9845361113548279.\n" ] } ], "source": [ "with gpu_mem_restore_ctx():\n", " learner.fit_one_cycle(30, max_lr=slice(6e-03), callbacks=model_callback(learner, \"best-effb3-sipak-multiclass-fold1-256-stage1\"))\n", " learner.save(\"last-effb3-sipak-multiclass-fold1-256-stage1\")" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
\n", " \n", " \n", " 33.33% [1/3 00:13<00:27]\n", "
\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.052869#na#00:13

\n", "\n", "

\n", " \n", " \n", " 12.50% [6/48 00:05<00:40 0.1286]\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": [ "with gpu_mem_restore_ctx():\n", " learner.load(\"best-effb3-sipak-multiclass-fold1-256-stage1\")\n", " learner = to_fp16(learner)\n", " learner.unfreeze()\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.0497440.1760650.9793810.9800970.9835300.9827260.98215300:17
10.0501580.1430650.9793810.9797340.9840820.9831080.98217200:18
20.0326450.2431630.9587630.9629300.9641750.9638230.96420500:17
30.0644470.4042260.9329900.9428180.9443640.9435460.94824300:17
40.1082700.2131030.9587630.9641840.9659420.9654280.97141300:17
50.1746600.2292880.9639180.9707410.9671380.9676270.97302100:17
60.3826480.3368520.9329900.9456220.9387110.9385900.91714700:17
70.1963590.1750120.9587630.9643640.9571170.9583450.94681100:18
80.2674353.7198560.8453610.8855060.8524430.8497350.87407200:18
90.2497301.8641680.9278350.9395290.9283220.9302330.91573900:18
100.1588030.3040130.9536080.9623000.9580600.9584930.94803400:17
110.3444041.1567450.8814430.9172460.8917750.8918520.88351400:18
120.2262750.3078360.9484540.9567310.9484180.9497120.94354000:17
130.1504930.1485650.9484540.9483320.9571300.9546060.94847900:17
140.1518140.1022330.9742270.9716130.9796380.9778980.97161300:17
150.1151830.0984390.9896910.9883370.9913000.9906470.98502300:17
160.0883460.0998870.9742270.9713970.9803780.9783610.97620400:17
170.1056110.0891640.9793810.9803480.9831520.9824170.98197300:17
180.0687170.1196450.9742270.9757450.9803780.9792770.98069600:17
190.0814510.1401280.9639180.9695160.9713000.9703400.97741100:16
200.0590960.0703920.9793810.9803480.9838930.9830250.98204600:17
210.0430790.0643370.9845360.9842590.9883370.9874180.98360000:17
220.0326850.0766190.9845360.9842590.9883370.9874180.98360000:17
230.0371820.0917180.9793810.9796380.9833410.9825440.98210000:18
240.0330830.0861010.9742270.9757490.9790860.9783590.98059800:17
250.0353030.0830710.9793810.9796380.9833410.9825440.98210000:18
260.0224510.0888150.9742270.9757490.9790860.9783590.98059800:17
270.0172640.0862890.9742270.9757490.9790860.9783590.98059800:18
280.0175150.0888710.9742270.9757490.9790860.9783590.98059800:17
290.0213380.0883630.9742270.9757490.9790860.9783590.98059800:18
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Better model found at epoch 0 with accuracy value: 0.9793814420700073.\n", "Better model found at epoch 15 with accuracy value: 0.9896907210350037.\n" ] } ], "source": [ "with gpu_mem_restore_ctx():\n", " learner.fit_one_cycle(30, max_lr=slice(2.7e-04, 6e-04), callbacks=model_callback(learner, \"best-effb3-sipak-multiclass-fold1-256-stage2\"))\n", " learner.save(\"last-effb3-sipak-multiclass-fold1-256-stage2\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 512x512" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [], "source": [ "with gpu_mem_restore_ctx():\n", " fold_data = get_fold_data(idxs[0], img_size=512, bs=8)\n", " fold_data" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
\n", " \n", " \n", " 0.00% [0/2 00:00<00:00]\n", "
\n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
epochtrain_lossvalid_lossaccuracyprecisionrecallf_betakappa_scoretime

\n", "\n", "

\n", " \n", " \n", " 85.42% [82/96 00:18<00:03 2.7992]\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": [ "with gpu_mem_restore_ctx():\n", " learner.load(\"best-effb3-sipak-multiclass-fold1-256-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": 26, "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.8743460.3972070.8711340.8850510.8919610.8895420.92201000:25
10.9086120.3721560.8969070.9163800.9112200.9112580.93356300:25
20.7942450.3779630.9020620.9201710.9154760.9154040.93514300:26
30.8040870.3401070.9072160.9244980.9150840.9160810.93679000:25
40.7345780.3287000.9072160.9244980.9150840.9160810.93679000:24
50.6641810.3103600.9072160.9262260.9210230.9207450.93679000:27
60.5785170.3010710.9278350.9397420.9388010.9385340.95313200:26
70.5410880.2962730.9175260.9276800.9321340.9303570.95046000:26
80.5589450.2904170.9175260.9276800.9321340.9303570.95046000:25
90.4820080.2763430.9175260.9276800.9321340.9303570.95046000:25
100.4137220.2752630.9123710.9242880.9276900.9259390.94877900:25
110.4399270.2664020.9278350.9346640.9402830.9386310.95360200:25
120.5103920.2548510.9278350.9346640.9402830.9386310.95360200:25
130.4514450.2499490.9278350.9346640.9402830.9386310.95360200:25
140.3917650.2443810.9278350.9346640.9402830.9386310.95360200:25
150.4494310.2448010.9226800.9300580.9360270.9343770.95227300:26
160.3875570.2368220.9278350.9340790.9404720.9388980.95374100:26
170.4165860.2374540.9278350.9346640.9402830.9386310.95360200:25
180.4314070.2562110.9226800.9301690.9360270.9342310.95246500:25
190.4343510.2353290.9329900.9384050.9447270.9430040.95525600:26
200.3239520.2397710.9226800.9311760.9365790.9347480.95213100:25
210.3703020.2312260.9278350.9347840.9410230.9391140.95378900:26
220.4065380.2416470.9278350.9348850.9410230.9389390.95397400:25
230.3898660.2418330.9329900.9384240.9447270.9428380.95543600:25
240.4033810.2402540.9329900.9384240.9447270.9428380.95543600:25
250.4165290.2304580.9278350.9339380.9404720.9387260.95392600:25
260.4258810.2420050.9278350.9339380.9404720.9387260.95392600:25
270.4543390.2273130.9278350.9340790.9404720.9388980.95374100:25
280.3666970.2339380.9278350.9348850.9410230.9389390.95397400:25
290.3454580.2430290.9278350.9339380.9404720.9387260.95392600:25
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Better model found at epoch 0 with accuracy value: 0.8711340427398682.\n", "Better model found at epoch 1 with accuracy value: 0.8969072103500366.\n", "Better model found at epoch 2 with accuracy value: 0.9020618796348572.\n", "Better model found at epoch 3 with accuracy value: 0.907216489315033.\n", "Better model found at epoch 6 with accuracy value: 0.9278350472450256.\n", "Better model found at epoch 19 with accuracy value: 0.9329897165298462.\n" ] } ], "source": [ "with gpu_mem_restore_ctx():\n", " learner.fit_one_cycle(30, max_lr=slice(7e-05), callbacks=model_callback(learner, \"best-effb3-sipak-multiclass-fold1-512-stage1\"))\n", " learner.save(\"last-effb3-sipak-multiclass-fold1-512-stage1\")" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
\n", " \n", " \n", " 0.00% [0/2 00:00<00:00]\n", "
\n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
epochtrain_lossvalid_lossaccuracyprecisionrecallf_betakappa_scoretime

\n", "\n", "

\n", " \n", " \n", " 72.92% [70/96 00:23<00:08 1.5806]\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": [ "with gpu_mem_restore_ctx():\n", " learner.load(\"best-effb3-sipak-multiclass-fold1-512-stage1\")\n", " learner = to_fp16(learner)\n", " learner.unfreeze()\n", " learner.lr_find()\n", " learner.recorder.plot()" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
epochtrain_lossvalid_lossaccuracyprecisionrecallf_betakappa_scoretime
00.5099530.2382300.9329900.9384050.9447270.9430040.95525600:35
10.4023600.2412110.9278350.9348850.9410230.9389390.95397400:35
20.5530900.2402430.9278350.9348850.9410230.9389390.95397400:34
30.3877080.2441180.9278350.9348850.9410230.9389390.95397400:34
40.4224140.2274450.9329900.9384240.9447270.9428380.95543600:34
50.4230440.2113000.9329900.9391090.9447270.9430760.95958900:35
60.3877980.2008480.9329900.9436540.9441750.9438660.95946800:35
70.3759990.2086640.9432990.9512640.9521340.9516580.96262200:35
80.3681930.2046050.9381440.9469310.9478790.9475280.96110600:36
90.3730690.1959380.9381440.9469310.9478790.9475280.96110600:37
100.3570020.1997010.9329900.9424430.9436240.9432220.95975200:37
110.3992180.1904190.9381440.9469310.9478790.9475280.96110600:38
120.3233760.1809240.9432990.9507390.9515830.9513440.96258200:41
130.2501810.1750020.9381440.9469310.9478790.9475280.96110600:41
140.2663030.1768630.9432990.9507390.9515830.9513440.96258200:40
150.2626820.1730440.9432990.9507390.9515830.9513440.96258200:40
160.2333920.1647480.9484540.9548280.9560270.9556860.96420500:40
170.2319860.1618810.9484540.9548280.9560270.9556860.96420500:41
180.3024770.1554600.9484540.9548280.9560270.9556860.96420500:40
190.2575210.1626550.9381440.9469310.9478790.9475280.96110600:40
200.2569880.1571480.9484540.9548280.9560270.9556860.96420500:41
210.2739300.1509920.9432990.9508650.9523230.9518640.96273300:40
220.3087570.1429650.9484540.9552700.9560270.9558500.96406000:40
230.2802170.1430420.9484540.9552700.9560270.9558500.96406000:41
240.2417050.1494710.9484540.9548280.9560270.9556860.96420500:41
250.2373720.1508010.9484540.9548280.9560270.9556860.96420500:41
260.2230080.1513350.9484540.9548280.9560270.9556860.96420500:40
270.2576390.1447970.9484540.9548280.9560270.9556860.96420500:40
280.2235720.1448040.9484540.9548280.9560270.9556860.96420500:40
290.2396220.1433410.9484540.9552700.9560270.9558500.96406000:40
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Better model found at epoch 0 with accuracy value: 0.9329897165298462.\n", "Better model found at epoch 7 with accuracy value: 0.9432989954948425.\n", "Better model found at epoch 16 with accuracy value: 0.9484536051750183.\n" ] } ], "source": [ "with gpu_mem_restore_ctx():\n", " learner.fit_one_cycle(30, max_lr=slice(2e-05), callbacks=model_callback(learner, \"best-effb3-sipak-multiclass-fold1-512-stage2\"))\n", " learner.save(\"last-effb3-sipak-multiclass-fold1-512-stage2\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 1024x1024" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [], "source": [ "with gpu_mem_restore_ctx():\n", " fold_data = get_fold_data(idxs[0], img_size=1024, bs=4)\n", " fold_data" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
\n", " \n", " \n", " 0.00% [0/1 00:00<00:00]\n", "
\n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
epochtrain_lossvalid_lossaccuracyprecisionrecallf_betakappa_scoretime

\n", "\n", "

\n", " \n", " \n", " 11.92% [23/193 00:11<01:23 1.5545]\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": "iVBORw0KGgoAAAANSUhEUgAAAYIAAAEJCAYAAACZjSCSAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+j8jraAAAgAElEQVR4nO3dd3yUVb7H8c8vCaE3CTWFUKUXCR0U7IIKdrDvqqzrWlhXr3p11XtX10VdvWJHVwULYIdVARsKSiAEAQlSpCQktAABEkogyZz7RwaXZUMIkskz5ft+veZFZp72m5BnfnPO85zfMeccIiISuaK8DkBERLylRCAiEuGUCEREIpwSgYhIhFMiEBGJcEoEIiIRLsbrAI5XXFycS05O9joMEZGQsmjRou3OucZlLQu5RJCcnEx6errXYYiIhBQzyzraMnUNiYhEOCUCEZEIp0QgIhLhlAhERCKcEoGISIRTIhARiXBKBCIiEU6JQCSMLcvZzf0fLWPW8i1o7hE5mpAbUCYix5a1Yy9Pfr6afy7dRJTB2ws2cEaHJjx8YWcST6rldXgSZJQIRMLI9j0HeO7rNby9IIvoKOPWoW25YVAr3l+Uw9Nfruasp7/ljjPac8OgVsTGqENASlmoNRdTUlKcSkyI/Lu9B4r5x3frefnbtRQW+7g8JZGxZ7ajab0av6yzcdd+/mf6cj7/aSvtmtThkZFd6Nu6kYdRS1Uys0XOuZQylykRiISuohIfUxZm88yXP7N9zwHO6dyUu8/pQNsmdY66zZc/beWh6cvZuGs/l/ZK4L7zOtCoTvUqjFq8UF4iUNeQSAhyzjEjYwtPzFrF+u176Z3ckJev6UWvlg2Pue2ZnZoyoG0jnv16Da/MWceXK7Zy77kduDwlkagoq4LoJdioRSASYuav28FjM1ayNHsX7ZrU4Z5zO3BGxyaYHf+H+OqtBTzwUQZpmXn0atmQRy/qQodm9QIQtXhNXUMiYWDllnwen7mKr1fm0qxeDe48qz0XnxJPTPSJXfR1zvH+ohwem7GS3fuLuGFQK+44ox21q6vDIJyoa0gkhG3ctZ+nv1jNBz/kUKd6DPec24HrByRTMza6UvZvZlyWksiZHZsybuZKJsxZxydLN/HQhZ05u1PTX9XSkNCiFoFIkNq9r4gXvlnD6/MywcF1A1ryh6FtaVArNqDHTc/M44GPM1i5pUBjD8KIuoZEQkhhUQkT52Xy/Ow1FBwo5qKe8dx5VnsSGlbdh3FRiY83vs/k6S9X43NOYw/CgBKBSAgo8Tk++CGHp79YzebdhQw5uTH/dU4HOrXw7uKtxh6EDyUCkSDmnGP2qlzGzVjFqq0FdE+ozz3ndWBAmzivQ/uFxh6EPl0sFglSP2zYyd9mrCRtfR7JjWrx/JWnMKxrs6C7QKuxB+FNLQIRD6zdtocnZ61iRsYW4urEcscZ7RjVJ4lqJ3graFXQ2IPQpK4hkSCRm1/IM1/9zJSF2VSPieKmwa256dTW1Amxe/Y19iD0qGtIxGMFhUW8Mmcdr8xdT1GJjyv7JHH7Ge1oXDc0+9k19iC8qEUgEkAHi328vSCLZ79eQ97egwzv1py7zj6ZVnG1vQ6tUmnsQfBT15BIFfP5HJ8s28yTs1axIW8f/VqfxH3ndaR7YgOvQwsYjT0IbkoEIlXou5+387eZK8jYmE+HZnW557wODGnfOGK6SzT2IDgpEYhUgYyNuxk3cyVzf95OfIOa3HlWe0b2jCc6Qm+v1NiD4KKLxSIBVFTi45kvf+b5b9ZQr0Y17h/WkWv6t6RGtcopCheqNPYgdKhFIHICsnbs5fYpS1iavYvLeiXwwPBO1K9Vzeuwgs7qrQU88HEGaes19sAr6hoSqWTOOT74YSMPTcsgKsp47OKunN+thddhBbVDv7O/frbil7EHY89sR61YdUxUhfISQcAu55vZa2aWa2YZR1k+xMx2m9kS/+PBQMUiUpl27y/itsmLueu9pXRuUZ+ZY09VEqgAM+PSXgl8dedpXJ6SwIQ56xjx3Pf8vLXA69AiXiDv63oDOPcY68x1zvXwP/43gLGIVIq09XkMe2YuMzK2cNfZ7Zk8ph/xDWp6HVZIaVg7lscu7sZbN/Rl576DXPjc93ywKMfrsCJawBKBc24OkBeo/YtUpeISH099vopRE1KJjjLev7k/t57eLmLvCKoMg9rF8entg+mWUJ8/vbeUe97/kcKiEq/Dikhej/Tob2ZLzWyGmXX2OBaRMm3YsY/LXk5l/NdruKhnAp/dMZieSQ29DissNK1Xg7dv7MsfhrZhano2I5//nnXb9ngdVsTxMhH8ALR0znUHngU+PtqKZjbGzNLNLH3btm1VFqDIR4tzGDZ+Lmty9zB+dE/+fnn3kCsQF+xioqO4+5wOvP6b3mzNL+SCZ79j+tJNXocVUQJ615CZJQOfOOe6VGDdTCDFObe9vPV015BUhfzCIv78cQbTlmyid3JDnr6iR5VOFRmpNu3az22TF7MoaydX90vigeGdIn48RmUJygFlZtYM2Oqcc2bWh9LWyQ6v4hE5JD0zj7FTl7B5dyF3ntWeW4a0ISYE5gkIBy0a1GTKmH48MWsVE+asY0n2Lp6/8hRaNgqvIn3BJpC3j04GUoGTzSzHzG4ws5vN7Gb/KpcCGWa2FBgPjHKhNqhBwkpxiY+nv1jN5S+nYgbv/q4/t5/RTkmgilWLjuK/h3XklWtT2LBjH+eP/46ZGZu9DiusaUCZCJCdt4+xU5ewKGsnF/WM539HdKZuDY0Q9lp23j5ufecHlubs5jcDk7nvvI6qZvorBWXXkEiwmLZkIw98VDru8ZlRPRjRI97jiOSQxJNq8d7NA/jrZyt4/ftMftiwi+ev7KnrNZVMqVUiVkFhEX+cuoQ7piyhfbO6fHbHYCWBIBQbE8XDF3bmxatOYV3uHoaP/44vf9rqdVhhRYlAItKirJ0MGz+XaUs2MvbMdkwd008zagW587o255PbB5HQsCY3Tkrnsc9WUFTi8zqssKBEIBGlxOcY/9XPXP5yKj5f6QXhsWe21wXhENGyUW0++P0AruqbxMtz1jF6wnw2797vdVghT3/9EjFydu5j1IRUnvpiNed3a86MsYNJST7J67DkONWoFs2jF3XlmVE9WLE5n+Hjv+ObVblehxXSlAgkIkxfuonznpnLis0FPH1Fd54Z1ZN6uisopI3oEc/02wbRpG51fvPGQp6ctYpidRX9KkoEEtb2HCjmzneXcPvkxbRtUofPbh/MRT0TvA5LKkmbxnX46JaBXNYrgedmr+HqfywgN7/Q67BCjhKBhK3FG3YyfPxcPl68kdtPb8t7v+tPUiNdEA43NWOjefzS7jx5WXeWZO9i2PjvmLem3Eo1cgQlAgk7JT7Hc1//zKUvpVJc4pgypj93nn2yLgiHuUt7JTD91kE0qFWNq/6xgGe+/JkSX2gNmPWKzgwJKxt37Wf0K/N58vPVDOvanM/uGEyfVrogHCnaN63LtD8MZGSPeJ7+cjXXv57G9j0HvA4r6CkRSNj45MdNnPd/c1i+cTd/v6w740f1oH5NXRCONLWrx/DU5d3528VdWbA+j+Hj57JgnepZlkeJQELe3gPF3P3eUm59ZzGtGtfhszsGc0mvBMw0e1ikMjNG9Uni41sGUis2hitfXcCL36zFp66iMikRSEhbmr2L4ePn8v4POdw6tC3v39xfJYvlF51a1GP6rQM5r0szxs1cyQ0TF7Jz70Gvwwo6SgQSkkp8judnr+GSF+dxsNjHlJv6cdc5J1NNF4TlCHVrVOPZ0T35y4jOfL9mB8PHz2VR1k6vwwoqOmsk5GzatZ8rX5nPE7NWcU6XZsy441T6tm7kdVgSxMyMa/on88HvBxAdbVzxciqvzl1HqJXhDxQlAgkp67btYdj4uSzbuJvHL+3Gc6N7Ur+WLghLxXRNqM8ntw3mjI5NeOTTFfzuzUXs3lfkdVieUyKQkOHzOe77cBklPscntw3i8pREXRCW41a/ZjVeuroXfz6/E1+vzGX4s3P5MWeX12F5SolAQsa76dksWJ/Hfw/rSOvGdbwOR0KYmXHDoFa8e3N/nINLX0xlUmpmxHYVKRFISMgtKOSvn62gT6uTuCIl0etwJEycktSQT28fxOB2cTw4bTm3vrOYgsLI6ypSIpCQ8D/Tf6Kw2MdjF3clKkrdQVJ5GtSK5ZVrU7j3vA7MXL6FC579jvkRNgBNiUCC3pc/beXTZZu5bWhb2qhLSAIgKsq4+bQ2TBnTjwPFPkZNmM/Vry6ImNtMlQgkqBUUFvHnaRmc3LQuvzutjdfhSJjrnXwSs+8awgPDO7JySz6XvDiP615LY2l2eF9MViKQoPbkrFVsyS/ksUu6EhujP1cJvBrVorlxcGvm/NdQ7j2vAz/m7GLE899z48SFLN+02+vwAkJnlgStRVk7mTQ/i+v6J3NKUkOvw5EIUys2hptPa8Pce07nrrPbk7Y+j+Hjv+PmNxexakuB1+FVKgu126VSUlJcenq612FIgB0s9nH+s3PZU1jM53eeRp3qMV6HJBFu9/4iXvtuPa99t549B4sZ3rU5Y89sT9smoXHdyswWOedSylqmFoEEpZe/XcvqrXv4y8guSgISFOrXrMYfz2rP3HuGcsuQNny9Mpezn/6WP05dQub2vV6Hd0KUCCTorN22h2e/XsPwbs05o2NTr8MR+TcNasVy9zkdmPtfQ7lpcGtmZGzmjKe+5e73lpKdt8/r8H4VdQ1JUPH5HKNemc/Kzfl8+afTaFK3htchiZQrt6CQl75Zx1sLsvD5HJelJHLr6W2Jb1DT69D+jbqGJGRMTc8mbX0e9w/vqCQgIaFJ3Ro8eEEn5tw9lCv7JvH+omyGPvEND07LYMvuQq/DqxC1CCRo5OYXcsZT39K5RT0m39RPBeUkJG3ctZ/nvl7De+nZREUZV/dtyc1DWnv+xUYtAgkJD/9zOQeKfTx2cTclAQlZ8Q1q8tjFXfn6T0MY0b0FE1MzOfXx2Tz22Qp27DngdXhlUiKQoPDFT1v5bNkW7jijHa3iNNWkhL6kRrV44rLufHnnaZzXpTkT5q5j8OOzeWLWSnbtC67pMgOWCMzsNTPLNbOMY6zX28yKzezSQMUiwa2gsIg/f5xBh2Z1GXNqa6/DEalUreJq8/QVPfjij6dyeocmPD97LYPHzebpL1aze39wVDoNZIvgDeDc8lYws2hgHPB5AOOQIPfErFVsLSjksYu7as5hCVttm9TluStPYebYwQxsG8czX/3M4HFf89zXP7PnQLGnsQXsrHPOzQHyjrHabcAHQG6g4pDgtihrJ2/6y0j0VBkJiQAdmtXjpWt68cltg+jT6iSe/Hw1g8d9zYvfrGXfQW8Sgmdfv8wsHrgIeNGrGMRbB4t93PfhjzSvV4O7zjnZ63BEqlSX+Pq8el1vPv7DQLolNGDczJWc+vhsXp27jsKikiqNxct2+P8B9zjnfMda0czGmFm6maVv27atCkKTqvCSv4zEIxepjIRErh6JDZj42z588Pv+nNysLo98uoJTH5/NG9+vr7KEENBxBGaWDHzinOtSxrL1wKF7BOOAfcAY59zH5e1T4wjCw5rcPQx7Zi5nd27Kc1ee4nU4IkFj/rodPPX5atIy82hevwZ/GNqWy1MST7gMe1COI3DOtXLOJTvnkoH3gVuOlQQkPPh8jv/+cBk1Y6N56ILOXocjElT6tW7E1N/1460b+tKsfg0e+DiDoU9+w9SFGygqOWYHyq8SsPa4mU0GhgBxZpYDPARUA3DOvRSo40rwm7Iwm7TMPB6/pBuN61b3OhyRoGNmDGoXx8C2jfhm9Tae/mI193ywjIyN+fxl5H90sJywgCUC59zo41j3+kDFIcFla34hj81YQf/WjbgsJcHrcESCmpkx9OQmDGnfmK9W5JIcVysgx9EVOqlSD00rLSPx14u7qoyESAWZGWd2ClxJdo3ekSoza/kWZi5XGQmRYKNEIFUiv7CIB6epjIRIMFLXkFSJx2euJLfgAC9fk6IyEiJBRmekBFx6Zh5vzd/A9QOS6ZHYwOtwROQISgQSUAeKS7j3w2XEN6jJXWerjIRIMFLXkATUi9+sZU3uHl6/vje1VUZCJCipRSABsya3gBdmr+WC7i0Y2qGJ1+GIyFEoEUhA+HyOez8oLSPx4PmdvA5HRMqhRCAB8U7aBtKzdnL/8I4qIyES5JQIpNJt2V3IuBkrGdCmEZf1UhkJkWCnRCCV7qHpGRws8fHXi1RGQiQUKBFIpZqZsYVZy7dyx5ntSFYZCZGQoEQgleZQGYmOzetx02CVkRAJFUoEUmnGzVjJ9j0H+NvFXVVGQiSE6GyVSrEwM4+3F2zg+gGt6K4yEiIhRYlATtiB4hLu/eBH4hvU5E9nt/c6HBE5ThVKBGZW28yi/D+3N7MLzaxaYEOTUPHC7LWs3baXRy7qojISIiGooi2COUANM4sHPgeuAd4IVFASOn7eWsAL36zhwu4tGHqyykiIhKKKJgJzzu0DLgZecM5dBnQOXFgSCnw+x70fLqN29RgevEBlJERCVYUTgZn1B64CPvW/Fh2YkCRUvJ22gUVZO7l/WEfi6qiMhEioqmgiGAvcB3zknFtuZq2B2YELS4LdoTISA9s24lKVkRAJaRW6suec+xb4FsB/0Xi7c+72QAYmwe3BaRkUlfh4dKTKSIiEuoreNfSOmdUzs9pABvCTmd0d2NAkWM3M2MznP21l7JntVUZCJAxUtGuok3MuHxgJzABaUXrnkESY3fuLeHDacjo2r8eNg1t5HY6IVIKKJoJq/nEDI4HpzrkiwAUuLAlW42aWlpEYd4nKSIiEi4qeyS8DmUBtYI6ZtQTyAxWUBKe09Xm8s2ADvxnYim4JKiMhEi4qerF4PDD+sJeyzGxoYEKSYHSguIT7PiwtI3HnWSojIRJOKnqxuL6ZPWVm6f7H3yltHUiEeN5fRuJRlZEQCTsV7Rp6DSgALvc/8oHXAxWUBJfVWwt48Zs1jOjRgiEqIyESdir61a6Nc+6Sw57/j5ktCURAElx8Psd9/jISfz5fZSREwlFFWwT7zWzQoSdmNhDYH5iQJJi8vSCLRVk7eWB4J5WREAlTFW0R3AxMMrP6/uc7gevK28DMXgPOB3Kdc13KWD4C+AvgA4qBsc657yoauATe5t37GTdzFYPaxnHJKfFehyMiAVKhFoFzbqlzrjvQDejmnOsJnH6Mzd4Azi1n+VdAd+dcD+C3wKsViUWqhnOOB6ctp9jn49GLuqiMhEgYO64RQc65fP8IY4A7j7HuHCCvnOV7nHOHBqXVRgPUgsq8tTv4wl9GomUj3SAmEs5OZGjoCX9FNLOLzGwlpaWtf3ui+5PK8/r3mTSqHcv1A5K9DkVEAuxEEsEJf4N3zn3knOtAaemKvxxtPTMbc2gMw7Zt2070sHIM2Xn7+GrlVkb1SaRGNU07IRLuyr1YbGYFlP2Bb0DNygrCOTfHzFqbWZxzbnsZyycAEwBSUlLUhRRgby3IIsqMq/q29DoUEakC5SYC51zdQB3YzNoCa51zzsxOAaoDOwJ1PKmYwqISpi7M5uxOTWnRoNJyvYgEsYDVCjCzycAQIM7McoCHgGoAzrmXgEuAa82siNIxCVccdvFYPDJ96SZ27Svi2v7JXociIlUkYInAOTf6GMvHAeMCdXw5fs45Js7LpH3TOvRrfZLX4YhIFVFBefnFDxt2sXxTPtf2T9a4AZEIokQgv5iUmknd6jFc1FOjiEUiiRKBAJBbUMhnyzZzaUqCykyLRBglAgFgSlo2RSWOa/rpllGRSKNEIBSV+Hh7QRantm9M68Z1vA5HRKqYEoHw+fKtbM0/wHX91RoQiURKBMLE1EwST6qp2cdEIpQSQYRbsTmftPV5XNOvJdFRumVUJBIpEUS4SamZVI+J4vKURK9DERGPKBFEsN37ivho8UZG9oinQa1Yr8MREY8oEUSw9xZlU1jk49oBukgsEsmUCCKUz+eYlJpF7+SGdG5R/9gbiEjYUiKIUN+u3saGvH2qMioiSgSRamJqJk3qVueczs28DkVEPKZEEIEyt+/lm1XbuLJvErEx+hMQiXT6FIhAb87PIibKuLJPktehiEgQUCKIMPsOFvNuejbndW1Ok3o1vA5HRIKAEkGE+XjxJgoKi1VXSER+oUQQQZxzTErNpFPzevRq2dDrcEQkSCgRRJC09Xms3FLAdQNaaipKEfmFEkEEmZSaRf2a1biwu6aiFJF/USKIEFt2FzJz+Rau6J1Izdhor8MRkSCiRBAh3l6Qhc85ru6ri8Qi8u+UCCLAgeISJqdt4PSTm5DUqJbX4YhIkFEiiAAzlm1h+56DXDsg2etQRCQIKRFEgImpmbSOq83gtnFehyIiQUiJIMz9mLOLxRt2cU3/lkRpKkoRKYMSQZiblJpFrdhoLumV4HUoIhKklAjCWN7eg0xfuomLT4mnXo1qXocjIkFKiSCMTV2YzcFinyafEZFyKRGEqRKf4635WfRv3Yj2Tet6HY6IBDElgjD11YqtbNy1n+s0Mb2IHEPAEoGZvWZmuWaWcZTlV5nZj2a2zMzmmVn3QMUSiSalZtG8fg3O7NjU61BEJMgFskXwBnBuOcvXA6c557oCfwEmBDCWiLImt4Dv1mzn6n4tiYlWo09EyhcTqB075+aYWXI5y+cd9nQ+oPsbK8mbqVnERkdxRe9Er0MRkRAQLF8XbwBmeB1EOCgoLOL9RTmc3605cXWqex2OiISAgLUIKsrMhlKaCAaVs84YYAxAUpImXC/PR4s3svdgieoKiUiFedoiMLNuwKvACOfcjqOt55yb4JxLcc6lNG7cuOoCDDHOOSbOy6R7Qn16JDbwOhwRCRGeJQIzSwI+BK5xzq32Ko5w8v2aHazdtlcDyETkuASsa8jMJgNDgDgzywEeAqoBOOdeAh4EGgEv+OfPLXbOpQQqnkgwMTWTRrVjGd6tudehiEgICeRdQ6OPsfxG4MZAHT/SZOft46sVW/n9kDbUqKapKEWk4oLlriE5QW8v2ADAVZqKUkSOkxJBGCgsKmHqwg2c3akZLRrU9DocEQkxSgRh4J9LN7FzXxHXqq6QiPwKSgQhzjnHxNRM2jWpQ//WjbwOR0RCkBJBiFucvYuMjflcOyAZ/91XIiLHRYkgxE2al0nd6jFc3DPe61BEJEQpEYSwbQUH+HTZZi7plUDt6p5XCxGREKVEEMKmpG2gqMRxTX9dJBaRX0+JIEQVlfh4e8EGBreLo03jOl6HIyIhTIkgRH3x01a25BdyneoKicgJUiIIURPnZZLQsCZDOzTxOhQRCXFKBCFoxeZ8FqzP45p+LYmO0i2jInJilAhC0KTULKrHaCpKEakcSgQhZve+Ij5evJGRPeJpUCvW63BEJAwoEYSY9xZls7+oRLeMikilUSIIIT6f4835WaS0bEiX+PpehyMiYUKJIIR8+/M2snbs08T0IlKplAhCyKR5mTSuW51zOzfzOhQRCSNKBCEic/tevlm9jSv7JBEbo/82Eak8+kQJEW/NzyLajCv7JnkdioiEGSWCELDvYDHvpmdzbpdmNK1Xw+twRCTMKBGEgGlLNpFfWMx1ukgsIgGgRBDknHNMnJdJx+b1SGnZ0OtwRCQMKREEuYWZO1m5pYDr+rfUVJQiEhBKBEFuYmom9WrEMKKHpqIUkcBQIghiW3YXMitjC1f0TqRmbLTX4YhImIqYRHCguIQ1uXu8DuO4vLMgixLnuKZfstehiEgYi5hEMGv5Vs586lsufymVjxbnUFhU4nVI5TpQXMI7aRs4/eQmJDWq5XU4IhLGIiYRDGjTiHvP60BuQSF/nLqUPo9+ycPTl7NqS4HXoZVpZsYWtu85qLpCIhJw5pzzOobjkpKS4tLT03/19j6fY/76HUxOy2ZWxhYOlvg4JakBo/skcX63FkHTF3/xC9+zc18RX915GlGahUxETpCZLXLOpZS1LKaqg/FaVJQxoE0cA9rEkbf3IB/+kMM7aRu4+/0f+d9//sTInvGM6pNI5xbelXlelrObHzbs4sHzOykJiEjARVwiONxJtWO5cXBrbhjUioWZO5mctoGp6dm8OT+L7gn1Gd0niQu6t6B29ar9NU1KzaRWbDSX9Eqo0uOKSGSKuK6hY9m17yAfLd7IlLRsVm0toHZsNBf2iGd0n0S6xtcP+KCunXsP0vexr7isVwKPXtQ1oMcSkchRXtdQwC4Wm9lrZpZrZhlHWd7BzFLN7ICZ3RWoOI5Xg1qx/GZgK2aOHcwHvx/AsK7N+WhxDhc+9z3nP/sdb87PIr+wKGDHn5qezcFiH9f2Tw7YMUREDhewFoGZnQrsASY557qUsbwJ0BIYCex0zj1Zkf0GukVQlvzCIqYt3sg7adms2JxPzWrRXNC9OaP6JNEzsUGltRJKfI5TH59N4kk1mTKmf6XsU0QEPLpY7JybY2bJ5SzPBXLNbHigYqgs9WpU45r+yVzdryU/5uxmysINTFuyiXfTc+jQrC6jeidyUc8E6teqdkLH+XplLht37eeB4R0rKXIRkWMLiYvFZjYGGAOQlOTdxCxmRvfEBnRPbMD9wzvxz6WbmJy2gYf/+ROPzVjJ8K7NGd03iZSWDX9VK2FSaibN69fgrE5NKz94EZGjCIlE4JybAEyA0q4hj8MBoE71GEb3SWJ0nyQyNpa2Ej5evIkPF2+kbZM6jOqdyCWnJNCwdmyF9rcmdw9zf97OXWe3JyY6Ysb5iUgQ0CdOJegSX59HRnYl7f4zePzSbtStEcMjn66g71+/4vbJi0ldu4NjXYt5a34WsdFRjOqjqShFpGqFRIsgVNSKjeHylEQuT0lk5ZZ8pqRl8+EPOUxfuolWcbVLWwm9EoirU/3ftttzoJj3F+UwvFvz/1gmIhJogbxraDIwBIgDtgIPAdUAnHMvmVkzIB2oB/govcOok3Muv7z9enHX0IkoLCrhs2WbmZy2gYWZO6kWbZzdqRmj+iQysE0cUVHGm6mZ/Hnacj66ZQA9kzQLmYhUvvLuGtKAsiq0JreAyWnZfPBDDrv2FZF4Uk1G9U7iwx9yqFM9hmm3DvI6RBEJU0oEQaawqIRZy7cwOXOGmCsAAAd+SURBVG0D89flAfD3y7qrpISIBIyKzgWZGtWiGdEjnhE94lm3bQ+LsnYyokcLr8MSkQilROCx1o3r0LpxHa/DEJEIpttHRUQinBKBiEiEUyIQEYlwSgQiIhFOiUBEJMIpEYiIRDglAhGRCKdEICIS4UKuxISZbQOyjni5PrDbg3C8OH5VHCtQx4gDtgdgvxL+vD7Hw0FL51zjshaEXCIoi5lNcM6NiYTjV8WxAnUMM0s/Wq0TkfJ4fY6Hu3DpGvpnBB2/Ko7l9e9T5Ej6mwygsGgRSGhQi0AkOIVLi0BCwwSvAxCR/6QWgYhIhFOLQEQkwikRAGY22MxeMrNXzWye1/EEOzN7zcxyzSzjV2zby8yWmdkaMxtvZnbYstvMbKWZLTezxys3aolkZhZlZo+a2bNmdp3X8QQbTxKBmTUws/f9J/0KM+v/K/dz1A8kMzvXzFb5P3DuLW8/zrm5zrmbgU+Aib8mlgjzBnDur9z2ReAmoJ3/cS6AmQ0FRgDdnXOdgSdPPEzxgpklmtlsM/vJn9TvOIF9Vco5TunfVgJQBOT82njClnOuyh+Uftje6P85FmhwxPImQN0jXmtbxn5OBU4BMo54PRpYC7T2738p0AnoSumH/eGPJodt9+6Rx9XjqP+HyYf/3oE2wExgETAX6FDGNs2BlYc9Hw28fNjv/kyv35celfK30Rw4xf9zXWA10OmIdar0HAfuBX7n3/Z9r39Hwfao8haBmdWn9D/3HwDOuYPOuV1HrHYa8LGZVfdvcxPw7JH7cs7NAfLKOEwfYI1zbp1z7iAwBRjhnFvmnDv/iEeu/xhJwG7nXEElvdVIMwG4zTnXC7gLeKGMdeL5929jOf7XANoDg81sgZl9a2a9AxqtBIxzbrNz7gf/zwXACv71/3xIVZ/jOcBO/7YllfA2w4oXcxa3ArYBr5tZd0q/Qd7hnNt7aAXn3Htm1gqYambvAb8FzjqOY8QD2Yc9zwH6HmObG4DXj+MY4mdmdYABwHuHdflXP87dxAAnAf2A3sC7Ztba+b/CSWgys2SgJ7Dg8Nc9OMc/BJ41s8HAnOM4TkTwIhHEUNrUu805t8DMnqG02fbnw1dyzj1uZlMo7VNu45zbE8ignHMPBXL/YS4K2OWc63H4i2YWTWmiB5hO6f9lwmGrJAAb/T/nAB/6P/jTzMxHaW2ibYEMXALH/wXhA2Cscy7/yOVVeY475/ZR+mVPyuDFxeIcIMc5d+gbwvuUJoZ/48/cXYCPgOP9kN4IJB72/PAPHKlk/pN8vZldBmClujvnSpxzPfyPB51zm4F8M+vnv1voWmCafzcfA0P927entN9XBepClJlVozQJvO2c+/Ao6+gcDxJVngicc1uAbDM72f/SGcBPh69jZj0p7XMeAfwGaGRmjxzHYRYC7cyslZnFAqMo/UYqlcDMJgOpwMlmlmNmNwBXATeY2VJgOaX/d2W5BXgVWEPpxb4Z/tdfA1r77w6ZAlynbqHQ5E/y/wBWOOeeOso6OseDiRdXqIEeQDrwI6XfBBsesXwg0PWw59WAm8rYz2RgM/+6JeyGw5YNo/RuhbXA/V5flddDj0h5AIMA5z+/l/gfw45YR+d4ED1UYkJEJMJpZLGISIRTIhARiXBKBCIiEU6JQEQkwikRiIhEOCUCEZEIp0QgYcHMAlqCpIzjVcq8FWY2xMx2m9kSf1n2Y5bfNrORZtapMo4vAkoEImUys3LrcDnnBlTi4ea60jpNPYHzzWzgMdYfSWnJZZFKoUQgYcvM2pjZTDNbZGZzzayD//UL/OWuF5vZl2bW1P/6w2b2ppl9D7zpf/6amX1jZuvM7PbD9r3H/+8Q//JDEy29fWjWNTMb5n9tkZXOxvZJefE65/ZTOgo33r/9TWa20MyWmtkHZlbLzAYAFwJP+FsRbY72PkUqSolAwtnR5kj4DujnnOtJaV2j/zpsm06UTpAz2v+8A3AOpfXvH/IXUztST2Csf9vWwEAzqwG8DJznP37jYwVrZg0pnbXtUJnkD51zvZ1z3Smt6X+Dc24epTV17nalxfzWlvM+RSrEizLUIgF3jDkSEiitg9+c0iqn6w/bdLr/m/khnzrnDgAHzCwXaMp/TnWY5pzL8R93CaWzt+0B1jnnDu17MjDmKOEO9hfrawf8nystzAjQxV+IrQFQB5h1nO9TpEKUCCRclTlHgt+zwFPOuelmNgR4+LBle49Y98BhP5dQ9jlTkXXKM9c5d75/opb5Zvauc24JpXNDj3TOLTWz64EhZWxb3vsUqRB1DUlYckeZI8G/uD7/ql1/XYBCWEVpWe1k//MrjrWBv/XwN+Ae/0t1gc3+7qirDlu1wL/sWO9TpEKUCCRc1PLPjXDocSdHnyPhYUq7UhYRoMlv/N1LtwAz/ccpAHZXYNOXgFP9CeTPlE7x+D2w8rB1pgB3+y92t6Hic0GIlEllqEUCxMzqOOf2+O8ieh742Tn3tNdxiRxJLQKRwLnJf/F4OaXdUS97HI9ImdQiEBGJcGoRiIhEOCUCEZEIp0QgIhLhlAhERCKcEoGISIRTIhARiXD/DxSRCkf57s3gAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "with gpu_mem_restore_ctx():\n", " learner.load(\"best-effb3-sipak-multiclass-fold1-512-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": 31, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
epochtrain_lossvalid_lossaccuracyprecisionrecallf_betakappa_scoretime
01.42193213.6362760.7989690.8177650.7948950.7952760.83073201:19
11.3863647.3971800.7835050.8095510.7837840.7831430.82180201:21
21.3959248.8017200.7680410.7867920.7516760.7530590.81241201:21
31.44264814.2649830.7731960.7872270.7555690.7576780.81279301:21
41.52415712.1753680.7680410.7848970.7524170.7533370.80567601:21
51.3551423.7879110.7680410.7807960.7620880.7613800.79560601:20
61.4270846.9823840.7731960.7828110.7582650.7603450.80645501:22
71.62503315.9372390.7731960.7909150.7555690.7574760.81387401:22
81.50171311.1790110.7731960.7824830.7590060.7607200.80726101:21
91.48621821.3742120.7628870.7732190.7476100.7490930.79495901:21
101.4429371.7146710.7680410.7879480.7516760.7532180.81279301:21
111.5395352.5545790.7628870.7847750.7576430.7582370.79273801:22
121.5561187.5273220.7628870.7787350.7522560.7533100.80029401:21
131.4905466.4138200.7938140.7984400.7905340.7895560.82838301:21
141.3434678.6199580.7577320.7604640.7471540.7465660.80570601:21
151.5673299.0076190.7680410.7901880.7511240.7539250.80701401:21
161.6083184.7759800.7680410.7927630.7511240.7536410.81662901:21
171.5232565.6582290.7731960.7945290.7593680.7612960.82270601:21
181.4681306.6223630.7886600.8136420.7874880.7872270.82727801:21
191.5111672.2666150.7731960.7878350.7758250.7742310.80674001:13
201.46461713.6266610.7783510.8003650.7590830.7616590.83158901:18
211.48952117.8722690.7835050.7943940.7771880.7774750.82125001:21
221.52225215.6651500.7783510.7870160.7786820.7772770.80906401:19
231.4128892.8864190.7989690.8073710.7990730.7985640.81461601:22
241.40556010.3254700.7938140.8060220.7845950.7863070.82303501:21
251.39934023.6625480.7835050.7947390.7818340.7819770.83242201:22
261.4342037.9309520.7783510.7866220.7734840.7728140.80188801:22
271.5476476.5484880.7783510.7916870.7632610.7653180.82541501:23
281.33559113.3749680.7783510.7913690.7727430.7731730.81907301:22
291.5083344.9929540.7783510.7938890.7633670.7660150.80340101:22
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Better model found at epoch 0 with accuracy value: 0.7989690899848938.\n" ] } ], "source": [ "with gpu_mem_restore_ctx():\n", " learner.fit_one_cycle(30, max_lr=slice(6.5e-07), callbacks=model_callback(learner, \"best-effb3-sipak-multiclass-fold1-1024-stage1\"))\n", " learner.save(\"last-effb3-sipak-multiclass-fold1-1024-stage1\")" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
\n", " \n", " \n", " 0.00% [0/1 00:00<00:00]\n", "
\n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
epochtrain_lossvalid_lossaccuracyprecisionrecallf_betakappa_scoretime

\n", "\n", "

\n", " \n", " \n", " 41.97% [81/193 00:54<01:14 3.8512]\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": [ "with gpu_mem_restore_ctx():\n", " learner.load(\"best-effb3-sipak-multiclass-fold1-1024-stage1\")\n", " learner = to_fp16(learner)\n", " learner.unfreeze()\n", " learner.lr_find()\n", " learner.recorder.plot()" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
\n", " \n", " \n", " 53.33% [16/30 34:47<30:26]\n", "
\n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \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.38420210.7573880.8092780.8099920.8156670.8122360.84004502:14
11.1339818.7473550.8195880.8144560.8400650.8320380.84955502:15
20.8605181.9909500.8556700.8513400.8793560.8706590.88754902:16
30.6482248.6268290.8969070.8985160.9169570.9113560.91865002:17
40.5325902.0116450.9226800.9242290.9371460.9332820.92245602:17
50.4829103.9372650.9278350.9296770.9408500.9381000.94968802:17
60.4589854.7478710.9381440.9354810.9522460.9480310.96208102:15
70.42888916.8461700.9536080.9524240.9644600.9615860.97359502:18
80.3546286.4741150.9587630.9599240.9670610.9647180.98813702:06
90.31932536.3646740.9484540.9383910.9560270.9499070.94781002:05
100.3337248.5234870.9742270.9672080.9798270.9766760.98363202:07
110.24333560.4215770.9536080.9477250.9637190.9594880.97328102:04
120.285779100.1707310.9536080.9577850.9624270.9612530.98211801:59
130.25592580.9945220.9639180.9593330.9711270.9678500.96010202:00
140.21867255.8298000.9690720.9704850.9755710.9742200.98219002:00
150.13586484.3525310.9587630.9628020.9641750.9637610.97589602:03

\n", "\n", "

\n", " \n", " \n", " 88.08% [170/193 01:41<00:13 0.1746]\n", "
\n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Better model found at epoch 0 with accuracy value: 0.8092783689498901.\n", "Better model found at epoch 1 with accuracy value: 0.8195876479148865.\n", "Better model found at epoch 2 with accuracy value: 0.8556700944900513.\n", "Better model found at epoch 3 with accuracy value: 0.8969072103500366.\n", "Better model found at epoch 4 with accuracy value: 0.9226804375648499.\n", "Better model found at epoch 5 with accuracy value: 0.9278350472450256.\n", "Better model found at epoch 6 with accuracy value: 0.938144326210022.\n", "Better model found at epoch 7 with accuracy value: 0.9536082744598389.\n", "Better model found at epoch 8 with accuracy value: 0.9587628841400146.\n", "Better model found at epoch 10 with accuracy value: 0.9742268323898315.\n" ] }, { "ename": "KeyboardInterrupt", "evalue": "", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;32mwith\u001b[0m \u001b[0mgpu_mem_restore_ctx\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[0mlearner\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfit_one_cycle\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m30\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmax_lr\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mslice\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m3e-04\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcallbacks\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mmodel_callback\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlearner\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"best-effb3-sipak-multiclass-fold1-1024-stage2\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 3\u001b[0;31m \u001b[0mlearner\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msave\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"last-effb3-sipak-multiclass-fold1-1024-stage2\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[0;32m~/.local/lib/python3.6/site-packages/fastai/utils/ipython.py\u001b[0m in \u001b[0;36m__exit__\u001b[0;34m(self, exc_type, exc_val, exc_tb)\u001b[0m\n\u001b[1;32m 62\u001b[0m \u001b[0mtraceback\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mclear_frames\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mexc_tb\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 63\u001b[0m \u001b[0mgc\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcollect\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 64\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mexc_type\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mexc_val\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mwith_traceback\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mexc_tb\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;32mwith\u001b[0m \u001b[0mgpu_mem_restore_ctx\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mlearner\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfit_one_cycle\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m30\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmax_lr\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mslice\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m3e-04\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcallbacks\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mmodel_callback\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlearner\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"best-effb3-sipak-multiclass-fold1-1024-stage2\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3\u001b[0m \u001b[0mlearner\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msave\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"last-effb3-sipak-multiclass-fold1-1024-stage2\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m~/.local/lib/python3.6/site-packages/fastai/train.py\u001b[0m in \u001b[0;36mfit_one_cycle\u001b[0;34m(***failed resolving arguments***)\u001b[0m\n\u001b[1;32m 21\u001b[0m callbacks.append(OneCycleScheduler(learn, max_lr, moms=moms, div_factor=div_factor, pct_start=pct_start,\n\u001b[1;32m 22\u001b[0m final_div=final_div, tot_epochs=tot_epochs, start_epoch=start_epoch))\n\u001b[0;32m---> 23\u001b[0;31m \u001b[0mlearn\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfit\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcyc_len\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmax_lr\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mwd\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mwd\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcallbacks\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mcallbacks\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 24\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 25\u001b[0m def fit_fc(learn:Learner, tot_epochs:int=1, lr:float=defaults.lr, moms:Tuple[float,float]=(0.95,0.85), start_pct:float=0.72,\n", "\u001b[0;32m~/.local/lib/python3.6/site-packages/fastai/basic_train.py\u001b[0m in \u001b[0;36mfit\u001b[0;34m(***failed resolving arguments***)\u001b[0m\n\u001b[1;32m 198\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mopt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlr\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mopt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mwd\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mlr\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mwd\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 199\u001b[0m \u001b[0mcallbacks\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0mcb\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mcb\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcallback_fns\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0mlistify\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdefaults\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mextra_callback_fns\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0mlistify\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcallbacks\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 200\u001b[0;31m \u001b[0mfit\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mepochs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmetrics\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmetrics\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcallbacks\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcallbacks\u001b[0m\u001b[0;34m+\u001b[0m\u001b[0mcallbacks\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 201\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 202\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mcreate_opt\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlr\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0mFloats\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mwd\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0mFloats\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m0.\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m->\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m~/.local/lib/python3.6/site-packages/fastai/basic_train.py\u001b[0m in \u001b[0;36mfit\u001b[0;34m(***failed resolving arguments***)\u001b[0m\n\u001b[1;32m 99\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mxb\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0myb\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mprogress_bar\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlearn\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtrain_dl\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mparent\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mpbar\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 100\u001b[0m \u001b[0mxb\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0myb\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcb_handler\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mon_batch_begin\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mxb\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0myb\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 101\u001b[0;31m \u001b[0mloss\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mloss_batch\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlearn\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmodel\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mxb\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0myb\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlearn\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mloss_func\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlearn\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mopt\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcb_handler\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 102\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mcb_handler\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mon_batch_end\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mloss\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;32mbreak\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 103\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m~/.local/lib/python3.6/site-packages/fastai/basic_train.py\u001b[0m in \u001b[0;36mloss_batch\u001b[0;34m(***failed resolving arguments***)\u001b[0m\n\u001b[1;32m 33\u001b[0m \u001b[0mloss\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mskip_bwd\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcb_handler\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mon_backward_begin\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mloss\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 34\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mskip_bwd\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mloss\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbackward\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 35\u001b[0;31m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mcb_handler\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mon_backward_end\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mopt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstep\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 36\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mcb_handler\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mon_step_end\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mopt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mzero_grad\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 37\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m~/.local/lib/python3.6/site-packages/fastai/callback.py\u001b[0m in \u001b[0;36mon_backward_end\u001b[0;34m(***failed resolving arguments***)\u001b[0m\n\u001b[1;32m 295\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mon_backward_end\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m->\u001b[0m\u001b[0mAny\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 296\u001b[0m \u001b[0;34m\"Handle end of gradient calculation.\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 297\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'backward_end'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcall_mets\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mFalse\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 298\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstate_dict\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'skip_step'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 299\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m~/.local/lib/python3.6/site-packages/fastai/callback.py\u001b[0m in \u001b[0;36m__call__\u001b[0;34m(***failed resolving arguments***)\u001b[0m\n\u001b[1;32m 249\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mcall_mets\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 250\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mmet\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmetrics\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_call_and_update\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmet\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcb_name\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 251\u001b[0;31m \u001b[0;32mfor\u001b[0m \u001b[0mcb\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcallbacks\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_call_and_update\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcb\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcb_name\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 252\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 253\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mset_dl\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdl\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0mDataLoader\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m~/.local/lib/python3.6/site-packages/fastai/callback.py\u001b[0m in \u001b[0;36m_call_and_update\u001b[0;34m(***failed resolving arguments***)\u001b[0m\n\u001b[1;32m 239\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_call_and_update\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcb\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcb_name\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m->\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 240\u001b[0m \u001b[0;34m\"Call `cb_name` on `cb` and update the inner state.\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 241\u001b[0;31m \u001b[0mnew\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mifnone\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mgetattr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcb\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34mf'on_{cb_name}'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m**\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstate_dict\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdict\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 242\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mk\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mv\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mnew\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mitems\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 243\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mk\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstate_dict\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m~/.local/lib/python3.6/site-packages/fastai/callbacks/fp16.py\u001b[0m in \u001b[0;36mon_backward_end\u001b[0;34m(***failed resolving arguments***)\u001b[0m\n\u001b[1;32m 99\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mon_backward_end\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0mAny\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m->\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 100\u001b[0m \u001b[0;34m\"Convert the gradients back to FP32 and divide them by the scale.\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 101\u001b[0;31m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdynamic\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0mgrad_overflow\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmodel_params\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mloss_scale\u001b[0m \u001b[0;34m>\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 102\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mloss_scale\u001b[0m \u001b[0;34m/=\u001b[0m \u001b[0;36m2\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 103\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnoskip\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m~/.local/lib/python3.6/site-packages/fastai/callbacks/fp16.py\u001b[0m in \u001b[0;36mgrad_overflow\u001b[0;34m(***failed resolving arguments***)\u001b[0m\n\u001b[1;32m 58\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mp\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mgroup\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 59\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mgrad\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 60\u001b[0;31m \u001b[0ms\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfloat\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mgrad\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfloat\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msum\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 61\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0ms\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0mfloat\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'inf'\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0ms\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0mfloat\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'-inf'\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0ms\u001b[0m \u001b[0;34m!=\u001b[0m \u001b[0ms\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0;32mTrue\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 62\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0;32mFalse\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;31mKeyboardInterrupt\u001b[0m: " ] } ], "source": [ "with gpu_mem_restore_ctx():\n", " learner.fit_one_cycle(30, max_lr=slice(3e-04), callbacks=model_callback(learner, \"best-effb3-sipak-multiclass-fold1-1024-stage2\"))\n", " learner.save(\"last-effb3-sipak-multiclass-fold1-1024-stage2\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 2048x2048" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "with gpu_mem_restore_ctx():\n", " fold_data = get_fold_data(idxs[0], img_size=2048, bs=8)\n", " fold_data" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "with gpu_mem_restore_ctx():\n", " learner.load(\"best-effb3-sipak-multiclass-fold1-1024-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": null, "metadata": {}, "outputs": [], "source": [ "with gpu_mem_restore_ctx():\n", " learner.fit_one_cycle(30, max_lr=slice(7e-07), callbacks=model_callback(learner, \"best-effb3-sipak-multiclass-fold1-2048-stage1\"))\n", " learner.save(\"last-effb3-sipak-multiclass-fold1-2048-stage1\")" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "with gpu_mem_restore_ctx():\n", " learner.load(\"best-effb3-sipak-multiclass-fold1-2048-stage1\")\n", " learner = to_fp16(learner)\n", " learner.unfreeze()\n", " learner.lr_find()\n", " learner.recorder.plot()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "with gpu_mem_restore_ctx():\n", " learner.fit_one_cycle(30, max_lr=slice(7e-07), callbacks=model_callback(learner, \"best-effb3-sipak-multiclass-fold1-2048-stage2\"))\n", " learner.save(\"last-effb3-sipak-multiclass-fold1-1024-stage2\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Fold-2" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 224x224" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "with gpu_mem_restore_ctx():\n", " fold_data = get_fold_data(idxs[0], img_size=224, bs=16)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "with gpu_mem_restore_ctx():\n", " learner.load(\"best-effb3-sipak-multiclass-fold1-2048-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": null, "metadata": {}, "outputs": [], "source": [ "with gpu_mem_restore_ctx():\n", " learner.fit_one_cycle(30, max_lr=slice(7e-07), callbacks=model_callback(learner, \"best-effb3-sipak-multiclass-fold2-224-stage1\"))\n", " learner.save(\"last-effb3-sipak-multiclass-fold2-224-stage1\")" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "with gpu_mem_restore_ctx():\n", " learner.load(\"best-effb3-sipak-multiclass-fold2-224-stage1\")\n", " learner = to_fp16(learner)\n", " learner.unfreeze()\n", " learner.lr_find()\n", " learner.recorder.plot()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "with gpu_mem_restore_ctx():\n", " learner.fit_one_cycle(30, max_lr=slice(7e-07), callbacks=model_callback(learner, \"best-effb3-sipak-multiclass-fold2-224-stage2\"))\n", " learner.save(\"last-effb3-sipak-multiclass-fold2-224-stage2\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 256x256" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "with gpu_mem_restore_ctx():\n", " fold_data = get_fold_data(idxs[0], img_size=256, bs=16)\n", " fold_data" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "with gpu_mem_restore_ctx():\n", " learner.load(\"best-effb3-sipak-multiclass-fold2-224-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": null, "metadata": {}, "outputs": [], "source": [ "with gpu_mem_restore_ctx():\n", " learner.fit_one_cycle(30, max_lr=slice(7e-07), callbacks=model_callback(learner, \"best-effb3-sipak-multiclass-fold2-256-stage1\"))\n", " learner.save(\"last-effb3-sipak-multiclass-fold2-256-stage1\")" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "with gpu_mem_restore_ctx():\n", " learner.load(\"best-effb3-sipak-multiclass-fold2-256-stage1\")\n", " learner = to_fp16(learner)\n", " learner.unfreeze()\n", " learner.lr_find()\n", " learner.recorder.plot()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "with gpu_mem_restore_ctx():\n", " learner.fit_one_cycle(30, max_lr=slice(7e-07), callbacks=model_callback(learner, \"best-effb3-sipak-multiclass-fold2-256-stage2\"))\n", " learner.save(\"last-effb3-sipak-multiclass-fold2-256-stage2\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 512x512" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "with gpu_mem_restore_ctx():\n", " fold_data = get_fold_data(idxs[0], img_size=2048, bs=2)\n", " fold_data" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "with gpu_mem_restore_ctx():\n", " learner.load(\"best-effb3-sipak-multiclass-fold2-256-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": null, "metadata": {}, "outputs": [], "source": [ "with gpu_mem_restore_ctx():\n", " learner.fit_one_cycle(30, max_lr=slice(7e-07), callbacks=model_callback(learner, \"best-effb3-sipak-multiclass-fold2-512-stage1\"))\n", " learner.save(\"last-effb3-sipak-multiclass-fold2-512-stage1\")" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "with gpu_mem_restore_ctx():\n", " learner.load(\"best-effb3-sipak-multiclass-fold2-512-stage1\")\n", " learner = to_fp16(learner)\n", " learner.unfreeze()\n", " learner.lr_find()\n", " learner.recorder.plot()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "with gpu_mem_restore_ctx():\n", " learner.fit_one_cycle(30, max_lr=slice(7e-07), callbacks=model_callback(learner, \"best-effb3-sipak-multiclass-fold2-512-stage2\"))\n", " learner.save(\"last-effb3-sipak-multiclass-fold2-512-stage2\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 1024x1024" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "with gpu_mem_restore_ctx():\n", " fold_data = get_fold_data(idxs[0], img_size=1024, bs=4)\n", " fold_data" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "with gpu_mem_restore_ctx():\n", " learner.load(\"best-effb3-sipak-multiclass-fold2-512-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": null, "metadata": {}, "outputs": [], "source": [ "with gpu_mem_restore_ctx():\n", " learner.fit_one_cycle(30, max_lr=slice(7e-07), callbacks=model_callback(learner, \"best-effb3-sipak-multiclass-fold2-1024-stage1\"))\n", " learner.save(\"last-effb3-sipak-multiclass-fold2-1024-stage1\")" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "with gpu_mem_restore_ctx():\n", " learner.load(\"best-effb3-sipak-multiclass-fold2-1024-stage1\")\n", " learner = to_fp16(learner)\n", " learner.unfreeze()\n", " learner.lr_find()\n", " learner.recorder.plot()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "with gpu_mem_restore_ctx():\n", " learner.fit_one_cycle(30, max_lr=slice(7e-07), callbacks=model_callback(learner, \"best-effb3-sipak-multiclass-fold2-1024-stage2\"))\n", " learner.save(\"last-effb3-sipak-multiclass-fold2-1024-stage2\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 2048x2048" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "with gpu_mem_restore_ctx():\n", " fold_data = get_fold_data(idxs[0], img_size=2048, bs=2)\n", " fold_data" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ " with gpu_mem_restore_ctx():\n", " learner.load(\"best-effb3-sipak-multiclass-fold2-1024-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": null, "metadata": {}, "outputs": [], "source": [ "with gpu_mem_restore_ctx():\n", " learner.fit_one_cycle(30, max_lr=slice(7e-07), callbacks=model_callback(learner, \"best-effb3-sipak-multiclass-fold2-2048-stage1\"))\n", " learner.save(\"last-effb3-sipak-multiclass-fold2-2048-stage1\")" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "with gpu_mem_restore_ctx():\n", " learner.load(\"best-effb3-sipak-multiclass-fold2-2048-stage1\")\n", " learner = to_fp16(learner)\n", " learner.unfreeze()\n", " learner.lr_find()\n", " learner.recorder.plot()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "with gpu_mem_restore_ctx():\n", " learner.fit_one_cycle(30, max_lr=slice(7e-07), callbacks=model_callback(learner, \"best-effb3-sipak-multiclass-fold2-2048-stage2\"))\n", " learner.save(\"last-effb3-sipak-multiclass-fold2-1024-stage2\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Fold3" ] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "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": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Exporting the final model" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [], "source": [ "learner.freeze()\n", "learner.export(\"best-progressive-effb3-sipak-multiclass.pkl\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Testing on 30 images (in valid folder)" ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "ImageDataBunch;\n", "\n", "Train: LabelList (966 items)\n", "x: ImageList\n", "Image (3, 224, 224),Image (3, 224, 224),Image (3, 224, 224),Image (3, 224, 224),Image (3, 224, 224)\n", "y: CategoryList\n", "normal_Superficial-Intermediate,normal_Superficial-Intermediate,normal_Superficial-Intermediate,normal_Superficial-Intermediate,normal_Superficial-Intermediate\n", "Path: ../../../Dataset/Sipakmed Dataset/wsi_dataset;\n", "\n", "Valid: LabelList (29 items)\n", "x: ImageList\n", "Image (3, 224, 224),Image (3, 224, 224),Image (3, 224, 224),Image (3, 224, 224),Image (3, 224, 224)\n", "y: CategoryList\n", "normal_Superficial-Intermediate,normal_Superficial-Intermediate,normal_Superficial-Intermediate,normal_Superficial-Intermediate,normal_Superficial-Intermediate\n", "Path: ../../../Dataset/Sipakmed Dataset/wsi_dataset;\n", "\n", "Test: None" ] }, "execution_count": 36, "metadata": {}, "output_type": "execute_result" } ], "source": [ "all_data = (ImageList.from_folder(data_path)\n", " .split_by_folder(train=\"train\", valid=\"test\")\n", " .label_from_folder()\n", " .transform(None, size=224)\n", " .databunch(bs=1)\n", " .normalize(imagenet_stats))\n", "all_data" ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [], "source": [ "imgs, labels = all_data.valid_ds.x, all_data.valid_ds.y\n", "binary_classes = [\"Abnormal\", \"Benign\", \"Normal\"]" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [], "source": [ "def get_label(label):\n", " if \"abnormal\" in label:\n", " return \"Abnormal\"\n", " elif \"normal\" in label:\n", " return \"Normal\"\n", " elif \"benign\" in label:\n", " return \"Benign\"\n", "\n", "y_preds, y_true = [], []\n", "for img, label in zip(imgs, labels):\n", " y_true.append(get_label(str(label)))\n", " y_preds.append(get_label(str(learner.predict(img)[0])))" ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [], "source": [ "multi_y_preds, multi_y_true = [], []\n", "for img, label in zip(imgs, labels):\n", " multi_y_true.append(str(label))\n", " multi_y_preds.append(str(learner.predict(img)[0]))" ] }, { "cell_type": "code", "execution_count": 40, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['abnormal_Dyskeratotic',\n", " 'abnormal_Koilocytotic',\n", " 'benign_Metaplastic',\n", " 'normal_Parabasal',\n", " 'normal_Superficial-Intermediate']" ] }, "execution_count": 40, "metadata": {}, "output_type": "execute_result" } ], "source": [ "multi_classes = all_data.classes\n", "multi_classes" ] }, { "cell_type": "code", "execution_count": 41, "metadata": {}, "outputs": [], "source": [ "from sklearn.metrics import confusion_matrix\n", "\n", "np.set_printoptions(precision=2)\n", "\n", "def plot_confusion_matrix(y_true, y_pred, classes, normalize=False, title=\"Confusion matrix\", cmap=plt.cm.Blues):\n", " cm = confusion_matrix(y_true, y_pred)\n", " if normalize:\n", " cm = cm.astype('float') / cm.sum(axis=1)[:, np.newaxis]\n", " fig, ax = plt.subplots()\n", " im = ax.imshow(cm, interpolation='nearest', cmap=cmap)\n", " # We want to show all ticks...\n", " ax.set(xticks=np.arange(cm.shape[1]),\n", " yticks=np.arange(cm.shape[0]),\n", " # ... and label them with the respective list entries\n", " xticklabels=classes, yticklabels=classes,\n", " title=title,\n", " ylabel='Actual',\n", " xlabel='Predicted')\n", "\n", " # Rotate the tick labels and set their alignment.\n", " plt.setp(ax.get_xticklabels(), rotation=45, ha=\"right\",\n", " rotation_mode=\"anchor\")\n", "\n", " # Loop over data dimensions and create text annotations.\n", " fmt = '.2f' if normalize else 'd'\n", " thresh = cm.max() / 2.\n", " for i in range(cm.shape[0]):\n", " for j in range(cm.shape[1]):\n", " ax.text(j, i, format(cm[i, j], fmt),\n", " ha=\"center\", va=\"center\",\n", " color=\"white\" if cm[i, j] > thresh else \"black\")\n", " return ax" ] }, { "cell_type": "code", "execution_count": 42, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Plot non-normalized confusion matrix\n", "plot_confusion_matrix(y_true, y_preds, classes=binary_classes, title='Binary Confusion Matrix')\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 43, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Plot normalized confusion matrix\n", "plot_confusion_matrix(y_true, y_preds, normalize=True, classes=binary_classes, \n", " title='Normalized Binary Confusion Matrix')\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 44, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Plot normalized confusion matrix\n", "plot_confusion_matrix(multi_y_true, multi_y_preds, normalize=False, classes=multi_classes, \n", " title='Multi-class Confusion Matrix')\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 45, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Plot normalized confusion matrix\n", "plot_confusion_matrix(multi_y_true, multi_y_preds, normalize=True, classes=multi_classes, \n", " title='Normalized Multi-class Confusion Matrix')\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Results (first save results.csv)" ] }, { "cell_type": "code", "execution_count": 46, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " accuracy precision recall f_beta kappa_score\n", "0 0.979381 0.980446 0.982979 0.982120 0.982206\n", "1 0.984536 0.983897 0.987786 0.986922 0.983649\n", "2 0.932990 0.938405 0.944727 0.943004 0.955256\n", "3 0.948454 0.954828 0.956027 0.955686 0.964205\n", "4 0.974227 0.967208 0.979827 0.976676 0.983632\n", "*-**-**-**-**-**-**-**-**-**-*\n", "Results :-\n", "Accuracy : 96.3918 % | 1.8556 %\n", "Precision : 96.4957 % | 1.4672 %\n", "Recall : 97.0269 % | 1.5914 %\n", "F_beta : 96.8882 % | 1.5629 %\n", "Kappa_score : 97.3790 % | 1.1247 %\n" ] } ], "source": [ "def compute_results(fname):\n", " df = pd.read_csv(fname)\n", " print(df)\n", " print(\"*-*\" * 10)\n", " print(\"Results :-\")\n", " mean_df = np.mean(df, axis=0)\n", " mean_error_df = np.mean(np.abs(mean_df - df), axis=0)\n", " for col, mean, error in zip(list(df.columns), list(mean_df.values), list(mean_error_df.values)):\n", " print(f\"{col.capitalize()} : {mean * 100:.4f} % | { error * 100:.4f} %\")\n", "\n", "compute_results(\"results.csv\")" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.9" } }, "nbformat": 4, "nbformat_minor": 4 }