{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Lesson 1 (essential) - What's your pet" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Initialisation" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "%reload_ext autoreload\n", "%autoreload 2\n", "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "from fastai.vision import *\n", "from fastai.metrics import error_rate" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "bs = 64\n", "# bs = 16 # uncomment this line if you run out of memory even after clicking Kernel->Restart" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Databunch" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "PosixPath('/home/sgugger/.fastai/data/oxford-iiit-pet')" ] }, "execution_count": null, "metadata": {}, "output_type": "execute_result" } ], "source": [ "path = untar_data(URLs.PETS); path\n", "path.ls()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[PosixPath('/home/ubuntu/.fastai/data/oxford-iiit-pet/images/saint_bernard_188.jpg'),\n", " PosixPath('/home/ubuntu/.fastai/data/oxford-iiit-pet/images/staffordshire_bull_terrier_114.jpg'),\n", " PosixPath('/home/ubuntu/.fastai/data/oxford-iiit-pet/images/Persian_144.jpg'),\n", " PosixPath('/home/ubuntu/.fastai/data/oxford-iiit-pet/images/Maine_Coon_268.jpg'),\n", " PosixPath('/home/ubuntu/.fastai/data/oxford-iiit-pet/images/newfoundland_95.jpg')]" ] }, "execution_count": null, "metadata": {}, "output_type": "execute_result" } ], "source": [ "path_img = path/'images'\n", "fnames = get_image_files(path_img)\n", "fnames[:5]" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "np.random.seed(2)\n", "pat = r'/([^/]+)_\\d+.jpg$'\n", "\n", "data = ImageDataBunch.from_name_re(path_img, fnames, pat, ds_tfms=get_transforms(), size=224, bs=bs\n", " ).normalize(imagenet_stats)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Training (resnet34)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "data": { "text/html": [ "Total time: 01:46

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \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_losserror_rate
11.4099390.3576080.102165
20.5394080.2424960.073072
30.3402120.2213380.066306
40.2618590.2166190.071042
\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "learn = cnn_learner(data, models.resnet34, metrics=error_rate)\n", "learn.fit_one_cycle(4)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Unfreezing, fine-tuning, and learning rates" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "data": { "text/html": [], "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" ] } ], "source": [ "learn.lr_find()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "

" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "learn.recorder.plot()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "data": { "text/html": [ "Total time: 00:53

\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
epochtrain_lossvalid_losserror_rate
10.2425440.2084890.067659
20.2069400.2044820.062246
\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "learn.unfreeze()\n", "learn.fit_one_cycle(2, max_lr=slice(1e-6,1e-4))" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (fastai)", "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.6" } }, "nbformat": 4, "nbformat_minor": 2 }