Skip to content

Instantly share code, notes, and snippets.

@jph00
Created May 4, 2022 01:48
Show Gist options
  • Save jph00/2e025ecff56620fdcc1966b788f85b72 to your computer and use it in GitHub Desktop.
Save jph00/2e025ecff56620fdcc1966b788f85b72 to your computer and use it in GitHub Desktop.
timm vs tvm fine tuning
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"metadata": {},
"id": "7195af18",
"cell_type": "markdown",
"source": "# timm vs tvm fine-tuning"
},
{
"metadata": {
"trusted": false
},
"id": "44eb0ad3",
"cell_type": "code",
"source": "#|export\nfrom fastai.vision.all import *",
"execution_count": 1,
"outputs": []
},
{
"metadata": {
"trusted": false
},
"id": "78c79f08",
"cell_type": "code",
"source": "path = untar_data(URLs.PETS)/'images'\n\ndls = ImageDataLoaders.from_name_func('.',\n get_image_files(path), valid_pct=0.2, seed=42,\n label_func=RegexLabeller(pat = r'^([^/]+)_\\d+'),\n item_tfms=Resize(224, method='squish'))",
"execution_count": 6,
"outputs": []
},
{
"metadata": {},
"id": "c6586051",
"cell_type": "markdown",
"source": "## tvm"
},
{
"metadata": {
"scrolled": false,
"trusted": false
},
"id": "7ec6bf20",
"cell_type": "code",
"source": "learn = vision_learner(dls, resnet34, metrics=error_rate).to_fp16()\nlearn.fine_tune(3)",
"execution_count": 7,
"outputs": [
{
"data": {
"text/html": "\n<style>\n /* Turns off some styling */\n progress {\n /* gets rid of default border in Firefox and Opera. */\n border: none;\n /* Needs to be in here for Safari polyfill so background images work as expected. */\n background-size: auto;\n }\n .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n background: #F44336;\n }\n</style>\n",
"text/plain": "<IPython.core.display.HTML object>"
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": "<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: left;\">\n <th>epoch</th>\n <th>train_loss</th>\n <th>valid_loss</th>\n <th>error_rate</th>\n <th>time</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td>0</td>\n <td>1.509213</td>\n <td>0.356186</td>\n <td>0.112314</td>\n <td>00:07</td>\n </tr>\n </tbody>\n</table>",
"text/plain": "<IPython.core.display.HTML object>"
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": "\n<style>\n /* Turns off some styling */\n progress {\n /* gets rid of default border in Firefox and Opera. */\n border: none;\n /* Needs to be in here for Safari polyfill so background images work as expected. */\n background-size: auto;\n }\n .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n background: #F44336;\n }\n</style>\n",
"text/plain": "<IPython.core.display.HTML object>"
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": "<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: left;\">\n <th>epoch</th>\n <th>train_loss</th>\n <th>valid_loss</th>\n <th>error_rate</th>\n <th>time</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td>0</td>\n <td>0.455695</td>\n <td>0.331886</td>\n <td>0.100135</td>\n <td>00:08</td>\n </tr>\n <tr>\n <td>1</td>\n <td>0.213132</td>\n <td>0.276668</td>\n <td>0.080514</td>\n <td>00:08</td>\n </tr>\n </tbody>\n</table>",
"text/plain": "<IPython.core.display.HTML object>"
},
"metadata": {},
"output_type": "display_data"
}
]
},
{
"metadata": {
"scrolled": false,
"trusted": false
},
"id": "e8f981b2",
"cell_type": "code",
"source": "learn = vision_learner(dls, resnet34, metrics=error_rate).to_fp16()\nlearn.fine_tune(3)",
"execution_count": 9,
"outputs": [
{
"data": {
"text/html": "\n<style>\n /* Turns off some styling */\n progress {\n /* gets rid of default border in Firefox and Opera. */\n border: none;\n /* Needs to be in here for Safari polyfill so background images work as expected. */\n background-size: auto;\n }\n .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n background: #F44336;\n }\n</style>\n",
"text/plain": "<IPython.core.display.HTML object>"
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": "<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: left;\">\n <th>epoch</th>\n <th>train_loss</th>\n <th>valid_loss</th>\n <th>error_rate</th>\n <th>time</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td>0</td>\n <td>1.502705</td>\n <td>0.400162</td>\n <td>0.129229</td>\n <td>00:07</td>\n </tr>\n </tbody>\n</table>",
"text/plain": "<IPython.core.display.HTML object>"
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": "\n<style>\n /* Turns off some styling */\n progress {\n /* gets rid of default border in Firefox and Opera. */\n border: none;\n /* Needs to be in here for Safari polyfill so background images work as expected. */\n background-size: auto;\n }\n .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n background: #F44336;\n }\n</style>\n",
"text/plain": "<IPython.core.display.HTML object>"
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": "<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: left;\">\n <th>epoch</th>\n <th>train_loss</th>\n <th>valid_loss</th>\n <th>error_rate</th>\n <th>time</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td>0</td>\n <td>0.445414</td>\n <td>0.356927</td>\n <td>0.119756</td>\n <td>00:08</td>\n </tr>\n <tr>\n <td>1</td>\n <td>0.253193</td>\n <td>0.303988</td>\n <td>0.089986</td>\n <td>00:08</td>\n </tr>\n <tr>\n <td>2</td>\n <td>0.101743</td>\n <td>0.260026</td>\n <td>0.079838</td>\n <td>00:08</td>\n </tr>\n </tbody>\n</table>",
"text/plain": "<IPython.core.display.HTML object>"
},
"metadata": {},
"output_type": "display_data"
}
]
},
{
"metadata": {
"scrolled": false,
"trusted": false
},
"id": "a6a3da68",
"cell_type": "code",
"source": "learn = vision_learner(dls, resnet34, metrics=error_rate).to_fp16()\nlearn.fine_tune(3)",
"execution_count": 10,
"outputs": [
{
"data": {
"text/html": "\n<style>\n /* Turns off some styling */\n progress {\n /* gets rid of default border in Firefox and Opera. */\n border: none;\n /* Needs to be in here for Safari polyfill so background images work as expected. */\n background-size: auto;\n }\n .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n background: #F44336;\n }\n</style>\n",
"text/plain": "<IPython.core.display.HTML object>"
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": "<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: left;\">\n <th>epoch</th>\n <th>train_loss</th>\n <th>valid_loss</th>\n <th>error_rate</th>\n <th>time</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td>0</td>\n <td>1.493860</td>\n <td>0.374025</td>\n <td>0.123139</td>\n <td>00:07</td>\n </tr>\n </tbody>\n</table>",
"text/plain": "<IPython.core.display.HTML object>"
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": "\n<style>\n /* Turns off some styling */\n progress {\n /* gets rid of default border in Firefox and Opera. */\n border: none;\n /* Needs to be in here for Safari polyfill so background images work as expected. */\n background-size: auto;\n }\n .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n background: #F44336;\n }\n</style>\n",
"text/plain": "<IPython.core.display.HTML object>"
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": "<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: left;\">\n <th>epoch</th>\n <th>train_loss</th>\n <th>valid_loss</th>\n <th>error_rate</th>\n <th>time</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td>0</td>\n <td>0.463749</td>\n <td>0.360396</td>\n <td>0.112314</td>\n <td>00:08</td>\n </tr>\n <tr>\n <td>1</td>\n <td>0.249122</td>\n <td>0.262384</td>\n <td>0.080514</td>\n <td>00:09</td>\n </tr>\n <tr>\n <td>2</td>\n <td>0.092573</td>\n <td>0.250281</td>\n <td>0.080514</td>\n <td>00:09</td>\n </tr>\n </tbody>\n</table>",
"text/plain": "<IPython.core.display.HTML object>"
},
"metadata": {},
"output_type": "display_data"
}
]
},
{
"metadata": {},
"id": "18d44fd6",
"cell_type": "markdown",
"source": "## timm"
},
{
"metadata": {
"scrolled": false,
"trusted": false
},
"id": "22b41c39",
"cell_type": "code",
"source": "learn = vision_learner(dls, 'resnet34', metrics=error_rate).to_fp16()\nlearn.fine_tune(3)",
"execution_count": 8,
"outputs": [
{
"data": {
"text/html": "\n<style>\n /* Turns off some styling */\n progress {\n /* gets rid of default border in Firefox and Opera. */\n border: none;\n /* Needs to be in here for Safari polyfill so background images work as expected. */\n background-size: auto;\n }\n .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n background: #F44336;\n }\n</style>\n",
"text/plain": "<IPython.core.display.HTML object>"
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": "<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: left;\">\n <th>epoch</th>\n <th>train_loss</th>\n <th>valid_loss</th>\n <th>error_rate</th>\n <th>time</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td>0</td>\n <td>1.765600</td>\n <td>0.440381</td>\n <td>0.144790</td>\n <td>00:07</td>\n </tr>\n </tbody>\n</table>",
"text/plain": "<IPython.core.display.HTML object>"
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": "\n<style>\n /* Turns off some styling */\n progress {\n /* gets rid of default border in Firefox and Opera. */\n border: none;\n /* Needs to be in here for Safari polyfill so background images work as expected. */\n background-size: auto;\n }\n .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n background: #F44336;\n }\n</style>\n",
"text/plain": "<IPython.core.display.HTML object>"
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": "<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: left;\">\n <th>epoch</th>\n <th>train_loss</th>\n <th>valid_loss</th>\n <th>error_rate</th>\n <th>time</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td>0</td>\n <td>0.534259</td>\n <td>0.360783</td>\n <td>0.117050</td>\n <td>00:08</td>\n </tr>\n <tr>\n <td>1</td>\n <td>0.357924</td>\n <td>0.326842</td>\n <td>0.111637</td>\n <td>00:09</td>\n </tr>\n </tbody>\n</table>",
"text/plain": "<IPython.core.display.HTML object>"
},
"metadata": {},
"output_type": "display_data"
}
]
},
{
"metadata": {
"scrolled": false,
"trusted": false
},
"id": "18ef37cb",
"cell_type": "code",
"source": "learn = vision_learner(dls, 'resnet34', metrics=error_rate).to_fp16()\nlearn.fine_tune(3)",
"execution_count": 11,
"outputs": [
{
"data": {
"text/html": "\n<style>\n /* Turns off some styling */\n progress {\n /* gets rid of default border in Firefox and Opera. */\n border: none;\n /* Needs to be in here for Safari polyfill so background images work as expected. */\n background-size: auto;\n }\n .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n background: #F44336;\n }\n</style>\n",
"text/plain": "<IPython.core.display.HTML object>"
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": "<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: left;\">\n <th>epoch</th>\n <th>train_loss</th>\n <th>valid_loss</th>\n <th>error_rate</th>\n <th>time</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td>0</td>\n <td>1.758452</td>\n <td>0.480506</td>\n <td>0.158999</td>\n <td>00:07</td>\n </tr>\n </tbody>\n</table>",
"text/plain": "<IPython.core.display.HTML object>"
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": "\n<style>\n /* Turns off some styling */\n progress {\n /* gets rid of default border in Firefox and Opera. */\n border: none;\n /* Needs to be in here for Safari polyfill so background images work as expected. */\n background-size: auto;\n }\n .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n background: #F44336;\n }\n</style>\n",
"text/plain": "<IPython.core.display.HTML object>"
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": "<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: left;\">\n <th>epoch</th>\n <th>train_loss</th>\n <th>valid_loss</th>\n <th>error_rate</th>\n <th>time</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td>0</td>\n <td>0.560145</td>\n <td>0.377301</td>\n <td>0.130582</td>\n <td>00:09</td>\n </tr>\n <tr>\n <td>1</td>\n <td>0.358545</td>\n <td>0.320285</td>\n <td>0.107578</td>\n <td>00:08</td>\n </tr>\n <tr>\n <td>2</td>\n <td>0.234589</td>\n <td>0.303257</td>\n <td>0.102842</td>\n <td>00:09</td>\n </tr>\n </tbody>\n</table>",
"text/plain": "<IPython.core.display.HTML object>"
},
"metadata": {},
"output_type": "display_data"
}
]
},
{
"metadata": {
"scrolled": false,
"trusted": false
},
"id": "a3369cf1",
"cell_type": "code",
"source": "learn = vision_learner(dls, 'resnet34', metrics=error_rate).to_fp16()\nlearn.fine_tune(3)",
"execution_count": 12,
"outputs": [
{
"data": {
"text/html": "\n<style>\n /* Turns off some styling */\n progress {\n /* gets rid of default border in Firefox and Opera. */\n border: none;\n /* Needs to be in here for Safari polyfill so background images work as expected. */\n background-size: auto;\n }\n .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n background: #F44336;\n }\n</style>\n",
"text/plain": "<IPython.core.display.HTML object>"
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": "<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: left;\">\n <th>epoch</th>\n <th>train_loss</th>\n <th>valid_loss</th>\n <th>error_rate</th>\n <th>time</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td>0</td>\n <td>1.692621</td>\n <td>0.433086</td>\n <td>0.139378</td>\n <td>00:07</td>\n </tr>\n </tbody>\n</table>",
"text/plain": "<IPython.core.display.HTML object>"
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": "\n<style>\n /* Turns off some styling */\n progress {\n /* gets rid of default border in Firefox and Opera. */\n border: none;\n /* Needs to be in here for Safari polyfill so background images work as expected. */\n background-size: auto;\n }\n .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n background: #F44336;\n }\n</style>\n",
"text/plain": "<IPython.core.display.HTML object>"
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": "<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: left;\">\n <th>epoch</th>\n <th>train_loss</th>\n <th>valid_loss</th>\n <th>error_rate</th>\n <th>time</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td>0</td>\n <td>0.544526</td>\n <td>0.358825</td>\n <td>0.119756</td>\n <td>00:09</td>\n </tr>\n <tr>\n <td>1</td>\n <td>0.356689</td>\n <td>0.318357</td>\n <td>0.102165</td>\n <td>00:09</td>\n </tr>\n <tr>\n <td>2</td>\n <td>0.223420</td>\n <td>0.314372</td>\n <td>0.106901</td>\n <td>00:09</td>\n </tr>\n </tbody>\n</table>",
"text/plain": "<IPython.core.display.HTML object>"
},
"metadata": {},
"output_type": "display_data"
}
]
},
{
"metadata": {
"trusted": false
},
"id": "82774c08",
"cell_type": "code",
"source": "",
"execution_count": null,
"outputs": []
}
],
"metadata": {
"kernelspec": {
"name": "python3",
"display_name": "Python 3 (ipykernel)",
"language": "python"
},
"language_info": {
"name": "python",
"version": "3.9.5",
"mimetype": "text/x-python",
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"pygments_lexer": "ipython3",
"nbconvert_exporter": "python",
"file_extension": ".py"
},
"toc": {
"nav_menu": {},
"number_sections": false,
"sideBar": true,
"skip_h1_title": false,
"base_numbering": 1,
"title_cell": "Table of Contents",
"title_sidebar": "Contents",
"toc_cell": false,
"toc_position": {},
"toc_section_display": true,
"toc_window_display": false
},
"gist": {
"id": "",
"data": {
"description": "timm vs tvm fine tuning",
"public": true
}
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment