This commit is contained in:
Jeremy Howard committed 2020-09-03 15:58:27 -07:00
1 parent d67a599255
commit dd985841b6
23 files changed
+644 -21167

No files matched your search

+23 -1064
View File
File diff suppressed because it is too large. Load diff
+24 -453
View File
@@ -128,18 +128,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<function utils.search_images_bing(key, term, min_sz=128)>"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"search_images_bing"
]
@@ -148,18 +137,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"150"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"results = search_images_bing(key, 'grizzly bear')\n",
"ims = results.attrgot('content_url')\n",
@@ -169,9 +147,7 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"hide_input": true
},
"metadata": {},
"outputs": [],
"source": [
"#hide\n",
@@ -192,19 +168,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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 truncated
"text/plain": [
"<PIL.Image.Image image mode=RGB size=109x128 at 0x7F78BCDD5390>"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"im = Image.open(dest)\n",
"im.to_thumb(128,128)"
@@ -239,18 +203,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(#421) [Path('bears/black/00000095.jpg'),Path('bears/black/00000133.jpg'),Path('bears/black/00000062.jpg'),Path('bears/black/00000023.jpg'),Path('bears/black/00000029.jpg'),Path('bears/black/00000094.jpg'),Path('bears/black/00000124.jpg'),Path('bears/black/00000056.jpeg'),Path('bears/black/00000046.jpg'),Path('bears/black/00000045.jpg')...]"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"fns = get_image_files(path)\n",
"fns"
@@ -260,28 +213,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"(#0) []"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"failed = verify_images(fns)\n",
"failed"
@@ -344,20 +276,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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 truncated
"text/plain": [
"<Figure size 864x216 with 4 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"outputs": [],
"source": [
"dls.valid.show_batch(max_n=4, nrows=1)"
]
@@ -366,20 +285,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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 truncated
"text/plain": [
"<Figure size 864x216 with 4 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"outputs": [],
"source": [
"bears = bears.new(item_tfms=Resize(128, ResizeMethod.Squish))\n",
"dls = bears.dataloaders(path)\n",
@@ -390,20 +296,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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 truncated
"text/plain": [
"<Figure size 864x216 with 4 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"outputs": [],
"source": [
"bears = bears.new(item_tfms=Resize(128, ResizeMethod.Pad, pad_mode='zeros'))\n",
"dls = bears.dataloaders(path)\n",
@@ -414,20 +307,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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 truncated
"text/plain": [
"<Figure size 864x216 with 4 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"outputs": [],
"source": [
"bears = bears.new(item_tfms=RandomResizedCrop(128, min_scale=0.3))\n",
"dls = bears.dataloaders(path)\n",
@@ -445,20 +325,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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 truncated
"text/plain": [
"<Figure size 864x432 with 8 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"outputs": [],
"source": [
"bears = bears.new(item_tfms=Resize(128), batch_tfms=aug_transforms(mult=2))\n",
"dls = bears.dataloaders(path)\n",
@@ -488,91 +355,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"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.235733</td>\n",
" <td>0.212541</td>\n",
" <td>0.087302</td>\n",
" <td>00:05</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>"
],
"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.213371</td>\n",
" <td>0.112450</td>\n",
" <td>0.023810</td>\n",
" <td>00:05</td>\n",
" </tr>\n",
" <tr>\n",
" <td>1</td>\n",
" <td>0.173855</td>\n",
" <td>0.072306</td>\n",
" <td>0.023810</td>\n",
" <td>00:06</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2</td>\n",
" <td>0.147096</td>\n",
" <td>0.039068</td>\n",
" <td>0.015873</td>\n",
" <td>00:06</td>\n",
" </tr>\n",
" <tr>\n",
" <td>3</td>\n",
" <td>0.123984</td>\n",
" <td>0.026801</td>\n",
" <td>0.015873</td>\n",
" <td>00:06</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"outputs": [],
"source": [
"learn = cnn_learner(dls, resnet18, metrics=error_rate)\n",
"learn.fine_tune(4)"
@@ -582,30 +365,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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 truncated
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"outputs": [],
"source": [
"interp = ClassificationInterpretation.from_learner(learn)\n",
"interp.plot_confusion_matrix()"
@@ -615,20 +375,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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 truncated
"text/plain": [
"<Figure size 1080x288 with 5 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"outputs": [],
"source": [
"interp.plot_top_losses(5, nrows=1)"
]
@@ -637,42 +384,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "d547f14e0f7848f39627ebb88d457e64",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"VBox(children=(Dropdown(options=('black', 'grizzly', 'teddy'), value='black'), Dropdown(options=('Train', 'Val…"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"outputs": [],
"source": [
"cleaner = ImageClassifierCleaner(learn)\n",
"cleaner"
@@ -716,18 +428,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(#1) [Path('export.pkl')]"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"path = Path()\n",
"path.ls(file_exts='.pkl')"
@@ -746,28 +447,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"('grizzly', tensor(1), tensor([9.0767e-06, 9.9999e-01, 1.5748e-07]))"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"learn_inf.predict('images/grizzly.jpg')"
]
@@ -776,18 +456,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(#3) ['black','grizzly','teddy']"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"learn_inf.dls.vocab"
]
@@ -803,22 +472,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "e0c4141e3c76425c98ae9994ccf9a748",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"FileUpload(value={}, description='Upload')"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"outputs": [],
"source": [
"btn_upload = widgets.FileUpload()\n",
"btn_upload"
@@ -827,9 +481,7 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"hide_input": true
},
"metadata": {},
"outputs": [],
"source": [
"#hide\n",
@@ -862,18 +514,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"outputs": [],
"source": [
"pred,pred_idx,probs = learn_inf.predict(img)"
]
@@ -882,22 +523,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "08509e39d3454701b5fed10439970e84",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"Label(value='Prediction: grizzly; Probability: 1.0000')"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"outputs": [],
"source": [
"lbl_pred = widgets.Label()\n",
"lbl_pred.value = f'Prediction: {pred}; Probability: {probs[pred_idx]:.04f}'\n",
@@ -908,22 +534,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "5948c2dc026d43cb9afdce7dee8fa425",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"Button(description='Classify', style=ButtonStyle())"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"outputs": [],
"source": [
"btn_run = widgets.Button(description='Classify')\n",
"btn_run"
@@ -960,22 +571,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "e9e7b05555a44125ac0e5365e17ea59d",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"VBox(children=(Label(value='Select your bear!'), FileUpload(value={}, description='Upload'), Button(descriptio…"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"outputs": [],
"source": [
"VBox([widgets.Label('Select your bear!'), \n",
" btn_upload, btn_run, out_pl, lbl_pred])"
@@ -1100,31 +696,6 @@
"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.7.7"
},
"toc": {
"base_numbering": 1,
"nav_menu": {},
"number_sections": false,
"sideBar": true,
"skip_h1_title": true,
"title_cell": "Table of Contents",
"title_sidebar": "Contents",
"toc_cell": false,
"toc_position": {},
"toc_section_display": true,
"toc_window_display": false
}
},
"nbformat": 4,
-25
View File
@@ -316,31 +316,6 @@
"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.7.7"
},
"toc": {
"base_numbering": 1,
"nav_menu": {},
"number_sections": false,
"sideBar": true,
"skip_h1_title": true,
"title_cell": "Table of Contents",
"title_sidebar": "Contents",
"toc_cell": false,
"toc_position": {},
"toc_section_display": true,
"toc_window_display": false
}
},
"nbformat": 4,
File diff suppressed because it is too large. Load diff
+37 -1158
View File
File diff suppressed because it is too large. Load diff
+98 -977
View File
File diff suppressed because it is too large. Load diff
+9 -373
View File
@@ -64,67 +64,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"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>accuracy</th>\n",
" <th>time</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <td>0</td>\n",
" <td>1.583403</td>\n",
" <td>2.064317</td>\n",
" <td>0.401792</td>\n",
" <td>01:03</td>\n",
" </tr>\n",
" <tr>\n",
" <td>1</td>\n",
" <td>1.208877</td>\n",
" <td>1.260106</td>\n",
" <td>0.601568</td>\n",
" <td>01:02</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2</td>\n",
" <td>0.925265</td>\n",
" <td>1.036154</td>\n",
" <td>0.664302</td>\n",
" <td>01:03</td>\n",
" </tr>\n",
" <tr>\n",
" <td>3</td>\n",
" <td>0.730190</td>\n",
" <td>0.700906</td>\n",
" <td>0.777819</td>\n",
" <td>01:03</td>\n",
" </tr>\n",
" <tr>\n",
" <td>4</td>\n",
" <td>0.585707</td>\n",
" <td>0.541810</td>\n",
" <td>0.825243</td>\n",
" <td>01:03</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"outputs": [],
"source": [
"model = xresnet50()\n",
"learn = Learner(dls, model, loss_func=CrossEntropyLossFlat(), metrics=accuracy)\n",
@@ -142,19 +82,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(TensorImage([0.4842, 0.4711, 0.4511], device='cuda:5'),\n",
" TensorImage([0.2873, 0.2893, 0.3110], device='cuda:5'))"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"x,y = dls.one_batch()\n",
"x.mean(dim=[0,2,3]),x.std(dim=[0,2,3])"
@@ -189,19 +117,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(TensorImage([-0.0787, 0.0525, 0.2136], device='cuda:5'),\n",
" TensorImage([1.2330, 1.2112, 1.3031], device='cuda:5'))"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"x,y = dls.one_batch()\n",
"x.mean(dim=[0,2,3]),x.std(dim=[0,2,3])"
@@ -211,67 +127,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"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>accuracy</th>\n",
" <th>time</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <td>0</td>\n",
" <td>1.632865</td>\n",
" <td>2.250024</td>\n",
" <td>0.391337</td>\n",
" <td>01:02</td>\n",
" </tr>\n",
" <tr>\n",
" <td>1</td>\n",
" <td>1.294041</td>\n",
" <td>1.579932</td>\n",
" <td>0.517177</td>\n",
" <td>01:02</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2</td>\n",
" <td>0.960535</td>\n",
" <td>1.069164</td>\n",
" <td>0.657207</td>\n",
" <td>01:04</td>\n",
" </tr>\n",
" <tr>\n",
" <td>3</td>\n",
" <td>0.730220</td>\n",
" <td>0.767433</td>\n",
" <td>0.771845</td>\n",
" <td>01:05</td>\n",
" </tr>\n",
" <tr>\n",
" <td>4</td>\n",
" <td>0.577889</td>\n",
" <td>0.550673</td>\n",
" <td>0.824496</td>\n",
" <td>01:06</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"outputs": [],
"source": [
"model = xresnet50()\n",
"learn = Learner(dls, model, loss_func=CrossEntropyLossFlat(), metrics=accuracy)\n",
@@ -289,60 +145,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"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>accuracy</th>\n",
" <th>time</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <td>0</td>\n",
" <td>1.902943</td>\n",
" <td>2.447006</td>\n",
" <td>0.401419</td>\n",
" <td>00:30</td>\n",
" </tr>\n",
" <tr>\n",
" <td>1</td>\n",
" <td>1.315203</td>\n",
" <td>1.572992</td>\n",
" <td>0.525765</td>\n",
" <td>00:30</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2</td>\n",
" <td>1.001199</td>\n",
" <td>0.767886</td>\n",
" <td>0.759149</td>\n",
" <td>00:30</td>\n",
" </tr>\n",
" <tr>\n",
" <td>3</td>\n",
" <td>0.765864</td>\n",
" <td>0.665562</td>\n",
" <td>0.797984</td>\n",
" <td>00:30</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"outputs": [],
"source": [
"dls = get_dls(128, 128)\n",
"learn = Learner(dls, xresnet50(), loss_func=CrossEntropyLossFlat(), \n",
@@ -354,98 +157,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"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>accuracy</th>\n",
" <th>time</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <td>0</td>\n",
" <td>0.985213</td>\n",
" <td>1.654063</td>\n",
" <td>0.565721</td>\n",
" <td>01:06</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>"
],
"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>accuracy</th>\n",
" <th>time</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <td>0</td>\n",
" <td>0.706869</td>\n",
" <td>0.689622</td>\n",
" <td>0.784541</td>\n",
" <td>01:07</td>\n",
" </tr>\n",
" <tr>\n",
" <td>1</td>\n",
" <td>0.739217</td>\n",
" <td>0.928541</td>\n",
" <td>0.712472</td>\n",
" <td>01:07</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2</td>\n",
" <td>0.629462</td>\n",
" <td>0.788906</td>\n",
" <td>0.764003</td>\n",
" <td>01:07</td>\n",
" </tr>\n",
" <tr>\n",
" <td>3</td>\n",
" <td>0.491912</td>\n",
" <td>0.502622</td>\n",
" <td>0.836445</td>\n",
" <td>01:06</td>\n",
" </tr>\n",
" <tr>\n",
" <td>4</td>\n",
" <td>0.414880</td>\n",
" <td>0.431332</td>\n",
" <td>0.863331</td>\n",
" <td>01:06</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"outputs": [],
"source": [
"learn.dls = get_dls(64, 224)\n",
"learn.fine_tune(5, 1e-3)"
@@ -462,68 +174,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"0.8737863898277283"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"preds,targs = learn.tta()\n",
"accuracy(preds, targs).item()"
@@ -553,23 +204,8 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"hide_input": true
},
"outputs": [
{
"data": {
"image/png": "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 truncated
"text/plain": [
"<Figure size 864x288 with 3 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"metadata": {},
"outputs": [],
"source": [
"church = PILImage.create(get_image_files_sorted(path/'train'/'n03028079')[0])\n",
"gas = PILImage.create(get_image_files_sorted(path/'train'/'n03425413')[0])\n",
+33 -1050
View File
File diff suppressed because it is too large. Load diff
+59 -7128
View File
File diff suppressed because it is too large. Load diff
+49 -939
View File
File diff suppressed because it is too large. Load diff
+24 -302
View File
@@ -84,18 +84,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(#374) ['xxbos','xxmaj','well',',','\"','cube','\"','(','1997',')'...]"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"tok = Tokenizer.from_folder(path)\n",
"tok.setup(txts)\n",
@@ -107,18 +96,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"tensor([ 2, 8, 76, 10, 23, 3112, 23, 34, 3113, 33])"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"num = Numericalize()\n",
"num.setup(toks)\n",
@@ -130,18 +108,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(#10) ['xxbos','xxmaj','well',',','\"','cube','\"','(','1997',')']"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"nums_dec = num.decode(nums[0][:10]); nums_dec"
]
@@ -150,18 +117,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'xxbos xxmaj well , \" cube \" ( 1997 )'"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"tok.decode(nums_dec)"
]
@@ -170,19 +126,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"((#374) ['xxbos','xxmaj','well',',','\"','cube','\"','(','1997',')'...],\n",
" (#207) ['xxbos','xxmaj','conrad','xxmaj','hall','went','out','with','a','bang'...])"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"tok((txts[0], txts[1]))"
]
@@ -198,18 +142,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(3, 2.0)"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"def f(x:int): return x+1\n",
"tfm = Transform(f)\n",
@@ -220,18 +153,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(3, 2.0)"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"@Transform\n",
"def f(x:int): return x+1\n",
@@ -254,18 +176,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(3.0, -1.0, 2.0)"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"tfm = NormalizeMean()\n",
"tfm.setup([1,2,3,4,5])\n",
@@ -286,18 +197,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"tensor([ 2, 8, 76, 10, 23, 3112, 23, 34, 3113, 33, 10, 8, 4477, 22, 88, 32, 10, 27, 42, 14])"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"tfms = Pipeline([tok, num])\n",
"t = tfms(txts[0]); t[:20]"
@@ -307,18 +207,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'xxbos xxmaj well , \" cube \" ( 1997 ) , xxmaj vincenzo \\'s first movie , was one of the most interesti'"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"tfms.decode(t)[:100]"
]
@@ -350,18 +239,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"tensor([ 2, 8, 91, 11, 22, 5793, 22, 37, 4910, 34, 11, 8, 13042, 23, 107, 30, 11, 25, 44, 14])"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"t = tls[0]; t[:20]"
]
@@ -370,18 +248,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'xxbos xxmaj well , \" cube \" ( 1997 ) , xxmaj vincenzo \\'s first movie , was one of the most interesti'"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"tls.decode(t)[:100]"
]
@@ -390,19 +257,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"xxbos xxmaj well , \" cube \" ( 1997 ) , xxmaj vincenzo 's first movie , was one of the most interesting and tricky ideas that xxmaj i 've ever seen when talking about movies . xxmaj they had just one scenery , a bunch of actors and a plot . xxmaj so , what made it so special were all the effective direction , great dialogs and a bizarre condition that characters had to deal like rats in a labyrinth . xxmaj his second movie , \" cypher \" ( 2002 ) , was all about its story , but it was n't so good as \" cube \" but here are the characters being tested like rats again . \n",
"\n",
" \" nothing \" is something very interesting and gets xxmaj vincenzo coming back to his ' cube days ' , locking the characters once again in a very different space with no time once more playing with the characters like playing with rats in an experience room . xxmaj but instead of a thriller sci - fi ( even some of the promotional teasers and trailers erroneous seemed like that ) , \" nothing \" is a loose and light comedy that for sure can be called a modern satire about our society and also about the intolerant world we 're living . xxmaj once again xxmaj xxunk amaze us with a great idea into a so small kind of thing . 2 actors and a blinding white scenario , that 's all you got most part of time and you do n't need more than that . xxmaj while \" cube \" is a claustrophobic experience and \" cypher \" confusing , \" nothing \" is completely the opposite but at the same time also desperate . \n",
"\n",
" xxmaj this movie proves once again that a smart idea means much more than just a millionaire budget . xxmaj of course that the movie fails sometimes , but its prime idea means a lot and offsets any flaws . xxmaj there 's nothing more to be said about this movie because everything is a brilliant surprise and a totally different experience that i had in movies since \" cube \" .\n"
]
}
],
"outputs": [],
"source": [
"tls.show(t)"
]
@@ -423,18 +278,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"tensor([ 2, 8, 20, 30, 87, 510, 1570, 12, 408, 379, 4196, 10, 8, 20, 30, 16, 13, 12216, 202, 509])"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"tls.valid[0][:20]"
]
@@ -443,18 +287,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(#50000) ['pos','pos','pos','pos','pos','pos','pos','pos','pos','pos'...]"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"lbls = files.map(parent_label)\n",
"lbls"
@@ -464,18 +297,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"((#2) ['neg','pos'], TensorCategory(1))"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"cat = Categorize()\n",
"cat.setup(lbls)\n",
@@ -486,18 +308,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"TensorCategory(1)"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"tls_y = TfmdLists(files, [parent_label, Categorize()])\n",
"tls_y[0]"
@@ -527,19 +338,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(tensor([ 2, 8, 20, 30, 87, 510, 1570, 12, 408, 379, 4196, 10, 8, 20, 30, 16, 13, 12216, 202, 509]),\n",
" TensorCategory(0))"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"x_tfms = [Tokenizer.from_folder(path), Numericalize]\n",
"y_tfms = [parent_label, Categorize()]\n",
@@ -552,19 +351,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"('xxbos xxmaj this movie had horrible lighting and terrible camera movements . xxmaj this movie is a jumpy horror flick with no meaning at all . xxmaj the slashes are totally fake looking . xxmaj it looks like some 17 year - old idiot wrote this movie and a 10 year old kid shot it . xxmaj with the worst acting you can ever find . xxmaj people are tired of knives . xxmaj at least move on to guns or fire . xxmaj it has almost exact lines from \" when a xxmaj stranger xxmaj calls \" . xxmaj with gruesome killings , only crazy people would enjoy this movie . xxmaj it is obvious the writer does n\\'t have kids or even care for them . i mean at show some mercy . xxmaj just to sum it up , this movie is a \" b \" movie and it sucked . xxmaj just for your own sake , do n\\'t even think about wasting your time watching this crappy movie .',\n",
" 'neg')"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"t = dsets.valid[0]\n",
"dsets.decode(t)"
@@ -648,20 +435,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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 truncated
"text/plain": [
"<Figure size 360x360 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"outputs": [],
"source": [
"img = PILImage.create(files[0])\n",
"s = SiameseImage(img, img, True)\n",
@@ -672,20 +446,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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 truncated
"text/plain": [
"<Figure size 360x360 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"outputs": [],
"source": [
"img1 = PILImage.create(files[1])\n",
"s1 = SiameseImage(img, img1, False)\n",
@@ -696,20 +457,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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 truncated
"text/plain": [
"<Figure size 360x360 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"outputs": [],
"source": [
"s2 = Resize(224)(s1)\n",
"s2.show();"
@@ -756,20 +504,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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 truncated
"text/plain": [
"<Figure size 360x360 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"outputs": [],
"source": [
"splits = RandomSplitter()(files)\n",
"tfm = SiameseTransform(files, label_func, splits)\n",
@@ -780,20 +515,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAASUAAADICAYAAACuyvefAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nOy9ebBt+VXf91m/YQ/nnDu++XX365bUrZZakyVrYIhASGAzxsSB4BSJjR1SZZdTFOUEO7ErVaSSSuIYKhMGHFcIRSAgx0KOTWwGM0hCQlJkkITUQlJLPXe/fuO994x7/4aVP3773Htft3gCCtyvXfdb9eree86+5/3OPfv33Wt913etLarKCU5wghPcKTAv9gJOcIITnOA4TkjpBCc4wR2FE1I6wQlOcEfhhJROcIIT3FE4IaUTnOAEdxROSOkEJzjBHYUTUjrBCU5wR+GElE7wAojI7Ni/LCLLYz9/94u9vhP8mw05MU+e4HYQkceA71XVf3mbY5yqxn99qzrBv8k4iZRO8IeGiPw3IvJuEflZEZkC/4GI/LSI/OCxY75+ILT1z3eLyHtF5KqIPCoif/1FWPoJXgI4IaUT/FHx7wD/F7AFvPt2B4qIBX4B+P+Au4BvAH5ARN71J73IE7z0cEJKJ/ij4jdV9Z+palbV5Zc59iuATVX9b1W1V9VHgP8d+At/8ss8wUsN7sVewAlesnjyD3HsvcAlEdk79pgFfuOPdUUn+DcCJ6R0gj8qnl8hmQOjYz+fP/b9k8DnVfXVf+KrOsFLHifp2wn+uPBx4FtEZEdELgDfd+y53wJ6EflPRaQRESsirxORP/3iLPUEdzJOSOkEf1z4SeAzwOPALwI/t35isAt8M/BW4DHgGvAPgM1/3Ys8wZ2PE5/SCU5wgjsKJ5HSCU5wgjsKJ6R0ghOc4I7CCSmd4AQnuKNwQkonOMEJ7iickNIJTnCCOwq3NU/+1//F96tPK+rYo6s95osDtE8c9JGuTyyXC/oUmS2XrKRmZaHyhklMSLdARXCuJjab9FT42mNNhYiSEboUcShRM6IZUbAClTOMqprKWVpf0dQV1jmwhpH1qDV476m8x3tL4yy2bfHe45zBWo9Yj3MO6x3WCsZ6rLVY61AD1pa3bozBiAMjiAgqFkNGxaKqqMkYteVYIJGQrOScy/Navu/mU27uXWdvOceEhDGGRpSD5QE3nn2Oa1efImVh1IzpjLIAej+irj33nDrLXWfuYms8JhuDiZmD2ZTnLl/nuSvP8tQzl7n+3BUODg6oqgpVRWJGbaKiZhl7FMNstWJvGZnGjtCXqqpqAgzrKquqIlLeK1lRKZ+1iBw+t/66Pn6N44+vkXMmxqMBAa957f2kpOAcfd/jRfG2YhmWkAU3aljuT9ne3gajpJARMVBZlosDtkebJI18xZvehK8aJjtnsMZgXUWfFZczSCAnSzuqyQmqqkJEWK1WqFpijCTteeyxJ/jFn/s5upT5j77vr9HYlmXoCUQQC31P3/eICL3z6HKOk5Y+LOj7Fe/9+feSy4f+koQzlqiGb/rWb+Ff/MI/KQ/eIcV2VZXf77nbktK4aXFZYJVJMmYclKWDzTqx6AO+cfR9ZJUjpu9JOAiJUe3Y2tjGG6GPif0cSJpYRWi8w3qLNY4RHieGYAx9v0BCIOVIzsPJniFoxqGA0ohBjWCtxVmLWoNYgzW+EAuAcahYxBx7z2LLRlz/HYyQouKcIxtDVsFgsChIRkXQPGzA7MiqWKeQv/RGNcghQTm1zCUwEQsq+AzEjMHgTHmNnBLJlfPDGAdqQBWLQRSiGf4PySRVSJmcM0LZcMYYshgEIeSe2hrmIdBpIguIAmRKH6w9XO+aUA6JxygCqMoLSOv4z8YYVFMhj+fh+SQVY/n9sOowviKGGdaA9zWV8yCGdnebHKHXHpsatFZiLjs/5IQTy6c/8zBf9daHED9C6cAqohbjhBgCzhs0C8YIfVhRVRVVVeG9J4TEbNFz8f4HaM+fhiv7bFUtfRYQT03F0sxxImAsfbdi0QeMQG1yudA1m9z/mlfx8jzhF3/vX0G+Q3bzHxJv/oq38dTVp7C2IsUI5Bd7SV8Wt03f3GhE3W5gxxt415B2dhlt71JvnGFna4NTk202JyNO1RWNM9iUaL1jY9JwbmfEy8/scPfuBmOX2LCOxfKAxXJKCAFjlGYyZmNrh3O7Zzl9+jzt1hbG1eAFaSrGp7fZ3N6kampAMLreyAZrLTjwWTDGEIgYBJMVtYpKRkQoWxdEhWSURMZmizOGmAMSC+kZIGMGgjDDRhQgY+0R6RgFK6b8X6I4KyAZMUo2Qs6ZVlwhQaNUzlN7S2UAFWLKJFNIxoiiKYIpr9+LkjG4DKLlo9GoRFEUgwqkDCEEnCREDREliUEi+GhxyhAJ2cM1Q3ks53wLiais3+MRjhMXw9/6S+H5x62Rc6bvOxJKih11M0FxxFXPYrEk0rFaBQ6mN/GmxviIicI4w2a7VaKslJkuIgcHEQ0rXFWRlhGbC5EZBM2elBJIxjlHHC4o1lq6bklbT9g2lm//89/OxrjhH/zY/4QfWZq2EG2TKwKWtq6o65qJM2y4Gt96vHPEEDB7M/7u//m/Yfh9L+p3NDQnHvm9z/L5T34aZzzG2hd7SX8g3D5S2tiCGJCVZ2Ucdc5466hDh/Qeuin1Qoldw4rMXhfwTY2rG5p2TNVadmrHvF8xzYmDaHhuPuV0VSEyYqsZsbNzClN5QtfT75zmynNPMB7VnD+7y5ndXSrrWM4XTG/ss1ouMQJZBNVEjoLxFZ0RHCUaysZisZhhEx+mZWQYnkkkQMrGN0IeTmgzkAmU6MEYQVXIOSHiynEAAkoaIowEauhjHiKpTNJIRQ0i9DGQUiLGSI4R0zhcspAD2ghiHTlnkEKoxkDISso95LLpbIYUe9CEEwOmIolCThiEmEOJrhykvI6QelQz69RtnbLdYpbNa8JaR1P5lq/ldTJIBv2DndDOe3wFiiGJIajSVjVtY0jRsexWTEYtdsNhe0VcRdJMUKFpGq5f3Sc5R1PXzBYd7fwaVXUeYy2ddoxsg0gCIl02aDY0xmK0RJL70wMwlhh7EjXbO+eYbG/RPLcgaU82DucTq5QY1cJitkDE4sRgrJC7KdaOsHbEy97+Jt7wlje9FIKLL4kE7O/fRHNkPNolxPmLvaQ/EG4bKbWjmnbc4EYNrt1gvLlLM9lisrXFeGNCO5rQVA1N1dK2LbWzqDPUzmMMbNWeU23DPae32KkMp2vLqU2PsZmmqWk2WiaTEZu1Z9RUbDY1d7/s5bz83ks8+MADvPr+V/KKl72ce++9l+2LZ/BNhWTF5IhJisHRGSWTig60JomskPXwCrfelHbIwEoEZbHWogNplfROh8jBHP4eHKU7VkpEpSkc+x1TIpCsxNyBsYSB3IpeZUu0psOackJJrCST14+ZclUThZxjeQ/i6LOSVIiaUclYKQQTU180LSnkabMZ1qN44zGkw2jpOBkdrnmtKQ0QOuBIFzp+jKqCOp4fEf1+nQCaMxotGhMOocKQYqSPNRih8jX7ix6NG+wv9+noiBrp+x4NHTt1gxeDRfjdT/0e1iTIQlLwTgihIyZhvpjiK0vOmZTK+02aMQY2JltY64mScd7wrd/9XXQWxpTXHo0mJRLOFlc5rGnZMharmd7UHBx09LKimi5xQ1T+/Pf/0oCBHAHP/a95I8b5F3tBfyDclpSaekTlaurxmMnmDhsbm4zaMe1oQt022LqhaWrGbcOo8oydI8aeVe5BMt4YfFuuZC5nGpsYqWCthxzZbFqc1HjvS0pkDHedOcfFC2c5f/oMk80xk80NNre32N0cM9qYII0QotIP6ZlVg9WSZgRJJQ3LcUhXiggNkEkl9dMjklmneGpKXqQiGAMiiiFjRREpRCUihxdMYwYiokQiDKK3qCeh2EFINUlIIZY0I8WygaKSMvhYtJGUS1rlBr3GGIOVoi15WzZClSgEKiWq8bYqaWYuontCqMUOm1nxrqLo+PmQPIxZi955+HqUemV1lIhqregajsRx88II67ZIiDVsNxt467FG6bqO2E/JZKwzbE88aX4FE6FB8DJiVLWE5YosGWMcwQRMVdN1HdPrjwMRSxG0TW3xkwlJI84X0ghZSSngrCWslgQiYxPQPtNN51jx/MgP/1265Yq6raiswRlP62qkjkztEvQp9r74z7n22C+ie1f57BNfYHNrQkrp901j72xkxBje/Lav5vxdZ4l9eLEX9AfCbdO3qmpI1iIrgXbYrAISBPIEUkBjSzNqqbuexvWkEJAIYRWZVzMmzpD6rmgNMZPFYp2j9g3z5YLJxi7WVWzsTFBrGE8829sT2o0tmqYFNYScOHNqE9PNuKkdqxiYzzMqPd5mnLaElKgG3cQYQy4qTKkw6SCSDhtNc8YYweYakxSMwKH2VHQdM2zSPEQYJYUTsirK8JhCMhEsxBiJkklZERxIJptMpoi4ISdSypi1zmMLUazPdR2IjbSmvoymQozZKqLgjGBQVDNGhYQjknEGMor3jipGQgSHkKREGAAlQ7RDxHSU0q3xfAJ6vtj9pbAWwY8j9gnrhWWVWc0T4gXTWpx4UsyoKSldXY04vXOaaVxiIog1qE6oXSJpJKlQtTWPPPxF7n/gAliD5B7JmRhyoU2rxNhRV2MEwVcNmkr6fGpzl8V8Ci5z7vxFJpfuxl+5ytmdc4TUs7Wxy3w+ZZ4rmvkn6PZ/D5PhQtsyu+ut5L5DkuPS3fdw4/qn/xCkfGch58zHP/Zhcl4xrhvm3erwonqn4vZCd2VLRaMd4euG2jc4W2N9DXVDXTdUzYSqbqm8Z+QMDUroVywWC/Zmc/b35kxXC5Yp0cdAHiIlEUG7joO9myyT0seAhghhifcWzBClmEzTtozbMVvjmp3tCRttg3glZ6WPQswJExJxHRXlEi0VHJXu4/CYUYNLine truncated
"text/plain": [
"<Figure size 360x360 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"outputs": [],
"source": [
"tls = TfmdLists(files, tfm, splits=splits)\n",
"show_at(tls.valid, 0);"
+20 -885
View File
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
+9 -485
View File
@@ -15,9 +15,7 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"hide_input": false
},
"metadata": {},
"outputs": [],
"source": [
"#hide\n",
@@ -68,20 +66,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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 truncated
"text/plain": [
"<Figure size 432x432 with 4 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"outputs": [],
"source": [
"dls.show_batch(max_n=4)"
]
@@ -131,40 +116,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"(0.47863011360168456, 3.981071710586548)"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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 truncated
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"outputs": [],
"source": [
"learn.lr_find()"
]
@@ -173,67 +125,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"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>accuracy</th>\n",
" <th>time</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <td>0</td>\n",
" <td>1.901582</td>\n",
" <td>2.155090</td>\n",
" <td>0.325350</td>\n",
" <td>00:07</td>\n",
" </tr>\n",
" <tr>\n",
" <td>1</td>\n",
" <td>1.559855</td>\n",
" <td>1.586795</td>\n",
" <td>0.507771</td>\n",
" <td>00:07</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2</td>\n",
" <td>1.296350</td>\n",
" <td>1.295499</td>\n",
" <td>0.571720</td>\n",
" <td>00:07</td>\n",
" </tr>\n",
" <tr>\n",
" <td>3</td>\n",
" <td>1.144139</td>\n",
" <td>1.139257</td>\n",
" <td>0.639236</td>\n",
" <td>00:07</td>\n",
" </tr>\n",
" <tr>\n",
" <td>4</td>\n",
" <td>1.049770</td>\n",
" <td>1.092619</td>\n",
" <td>0.659108</td>\n",
" <td>00:07</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"outputs": [],
"source": [
"learn.fit_one_cycle(5, 3e-3)"
]
@@ -309,67 +201,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"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>accuracy</th>\n",
" <th>time</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <td>0</td>\n",
" <td>1.973174</td>\n",
" <td>1.845491</td>\n",
" <td>0.373248</td>\n",
" <td>00:08</td>\n",
" </tr>\n",
" <tr>\n",
" <td>1</td>\n",
" <td>1.678627</td>\n",
" <td>1.778713</td>\n",
" <td>0.439236</td>\n",
" <td>00:08</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2</td>\n",
" <td>1.386163</td>\n",
" <td>1.596503</td>\n",
" <td>0.507261</td>\n",
" <td>00:08</td>\n",
" </tr>\n",
" <tr>\n",
" <td>3</td>\n",
" <td>1.177839</td>\n",
" <td>1.102993</td>\n",
" <td>0.644841</td>\n",
" <td>00:09</td>\n",
" </tr>\n",
" <tr>\n",
" <td>4</td>\n",
" <td>1.052435</td>\n",
" <td>1.038013</td>\n",
" <td>0.667771</td>\n",
" <td>00:09</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"outputs": [],
"source": [
"learn.fit_one_cycle(5, 3e-3)"
]
@@ -388,67 +220,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"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>accuracy</th>\n",
" <th>time</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <td>0</td>\n",
" <td>1.964076</td>\n",
" <td>1.864578</td>\n",
" <td>0.355159</td>\n",
" <td>00:12</td>\n",
" </tr>\n",
" <tr>\n",
" <td>1</td>\n",
" <td>1.636880</td>\n",
" <td>1.596789</td>\n",
" <td>0.502675</td>\n",
" <td>00:12</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2</td>\n",
" <td>1.335378</td>\n",
" <td>1.304472</td>\n",
" <td>0.588535</td>\n",
" <td>00:12</td>\n",
" </tr>\n",
" <tr>\n",
" <td>3</td>\n",
" <td>1.089160</td>\n",
" <td>1.065063</td>\n",
" <td>0.663185</td>\n",
" <td>00:12</td>\n",
" </tr>\n",
" <tr>\n",
" <td>4</td>\n",
" <td>0.942904</td>\n",
" <td>0.963589</td>\n",
" <td>0.692739</td>\n",
" <td>00:12</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"outputs": [],
"source": [
"learn = get_learner(get_model())\n",
"learn.fit_one_cycle(5, 3e-3)"
@@ -478,30 +250,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[ConvLayer(\n",
" (0): Conv2d(3, 32, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)\n",
" (1): BatchNorm2d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
" (2): ReLU()\n",
" ), ConvLayer(\n",
" (0): Conv2d(32, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
" (1): BatchNorm2d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
" (2): ReLU()\n",
" ), ConvLayer(\n",
" (0): Conv2d(32, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
" (1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
" (2): ReLU()\n",
" ), MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)]"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"_resnet_stem(3,32,32,64)"
]
@@ -544,67 +293,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"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>accuracy</th>\n",
" <th>time</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <td>0</td>\n",
" <td>1.673882</td>\n",
" <td>1.828394</td>\n",
" <td>0.413758</td>\n",
" <td>00:13</td>\n",
" </tr>\n",
" <tr>\n",
" <td>1</td>\n",
" <td>1.331675</td>\n",
" <td>1.572685</td>\n",
" <td>0.518217</td>\n",
" <td>00:13</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2</td>\n",
" <td>1.087224</td>\n",
" <td>1.086102</td>\n",
" <td>0.650701</td>\n",
" <td>00:13</td>\n",
" </tr>\n",
" <tr>\n",
" <td>3</td>\n",
" <td>0.900428</td>\n",
" <td>0.968219</td>\n",
" <td>0.684331</td>\n",
" <td>00:12</td>\n",
" </tr>\n",
" <tr>\n",
" <td>4</td>\n",
" <td>0.760280</td>\n",
" <td>0.782558</td>\n",
" <td>0.757197</td>\n",
" <td>00:12</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"outputs": [],
"source": [
"learn = get_learner(rn)\n",
"learn.fit_one_cycle(5, 3e-3)"
@@ -652,172 +341,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"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>accuracy</th>\n",
" <th>time</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <td>0</td>\n",
" <td>1.613448</td>\n",
" <td>1.473355</td>\n",
" <td>0.514140</td>\n",
" <td>00:31</td>\n",
" </tr>\n",
" <tr>\n",
" <td>1</td>\n",
" <td>1.359604</td>\n",
" <td>2.050794</td>\n",
" <td>0.397452</td>\n",
" <td>00:31</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2</td>\n",
" <td>1.253112</td>\n",
" <td>4.511735</td>\n",
" <td>0.387006</td>\n",
" <td>00:31</td>\n",
" </tr>\n",
" <tr>\n",
" <td>3</td>\n",
" <td>1.133450</td>\n",
" <td>2.575221</td>\n",
" <td>0.396178</td>\n",
" <td>00:31</td>\n",
" </tr>\n",
" <tr>\n",
" <td>4</td>\n",
" <td>1.054752</td>\n",
" <td>1.264525</td>\n",
" <td>0.613758</td>\n",
" <td>00:32</td>\n",
" </tr>\n",
" <tr>\n",
" <td>5</td>\n",
" <td>0.927930</td>\n",
" <td>2.670484</td>\n",
" <td>0.422675</td>\n",
" <td>00:32</td>\n",
" </tr>\n",
" <tr>\n",
" <td>6</td>\n",
" <td>0.838268</td>\n",
" <td>1.724588</td>\n",
" <td>0.528662</td>\n",
" <td>00:32</td>\n",
" </tr>\n",
" <tr>\n",
" <td>7</td>\n",
" <td>0.748289</td>\n",
" <td>1.180668</td>\n",
" <td>0.666497</td>\n",
" <td>00:31</td>\n",
" </tr>\n",
" <tr>\n",
" <td>8</td>\n",
" <td>0.688637</td>\n",
" <td>1.245039</td>\n",
" <td>0.650446</td>\n",
" <td>00:32</td>\n",
" </tr>\n",
" <tr>\n",
" <td>9</td>\n",
" <td>0.645530</td>\n",
" <td>1.053691</td>\n",
" <td>0.674904</td>\n",
" <td>00:31</td>\n",
" </tr>\n",
" <tr>\n",
" <td>10</td>\n",
" <td>0.593401</td>\n",
" <td>1.180786</td>\n",
" <td>0.676433</td>\n",
" <td>00:32</td>\n",
" </tr>\n",
" <tr>\n",
" <td>11</td>\n",
" <td>0.536634</td>\n",
" <td>0.879937</td>\n",
" <td>0.713885</td>\n",
" <td>00:32</td>\n",
" </tr>\n",
" <tr>\n",
" <td>12</td>\n",
" <td>0.479208</td>\n",
" <td>0.798356</td>\n",
" <td>0.741656</td>\n",
" <td>00:32</td>\n",
" </tr>\n",
" <tr>\n",
" <td>13</td>\n",
" <td>0.440071</td>\n",
" <td>0.600644</td>\n",
" <td>0.806879</td>\n",
" <td>00:32</td>\n",
" </tr>\n",
" <tr>\n",
" <td>14</td>\n",
" <td>0.402952</td>\n",
" <td>0.450296</td>\n",
" <td>0.858599</td>\n",
" <td>00:32</td>\n",
" </tr>\n",
" <tr>\n",
" <td>15</td>\n",
" <td>0.359117</td>\n",
" <td>0.486126</td>\n",
" <td>0.846369</td>\n",
" <td>00:32</td>\n",
" </tr>\n",
" <tr>\n",
" <td>16</td>\n",
" <td>0.313642</td>\n",
" <td>0.442215</td>\n",
" <td>0.861911</td>\n",
" <td>00:32</td>\n",
" </tr>\n",
" <tr>\n",
" <td>17</td>\n",
" <td>0.294050</td>\n",
" <td>0.485967</td>\n",
" <td>0.853503</td>\n",
" <td>00:32</td>\n",
" </tr>\n",
" <tr>\n",
" <td>18</td>\n",
" <td>0.270583</td>\n",
" <td>0.408566</td>\n",
" <td>0.875924</td>\n",
" <td>00:32</td>\n",
" </tr>\n",
" <tr>\n",
" <td>19</td>\n",
" <td>0.266003</td>\n",
" <td>0.411752</td>\n",
" <td>0.872611</td>\n",
" <td>00:33</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"outputs": [],
"source": [
"learn = get_learner(rn)\n",
"learn.fit_one_cycle(20, 3e-3)"
+4 -147
View File
@@ -47,20 +47,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'cut': -2,\n",
" 'split': <function fastai.vision.learner._resnet_split(m)>,\n",
" 'stats': ([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])}"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"model_meta[resnet50]"
]
@@ -69,31 +56,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Sequential(\n",
" (0): AdaptiveConcatPool2d(\n",
" (ap): AdaptiveAvgPool2d(output_size=1)\n",
" (mp): AdaptiveMaxPool2d(output_size=1)\n",
" )\n",
" (1): full: False\n",
" (2): BatchNorm1d(20, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
" (3): Dropout(p=0.25, inplace=False)\n",
" (4): Linear(in_features=20, out_features=512, bias=False)\n",
" (5): ReLU(inplace=True)\n",
" (6): BatchNorm1d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
" (7): Dropout(p=0.5, inplace=False)\n",
" (8): Linear(in_features=512, out_features=2, bias=False)\n",
")"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"create_head(20,2)"
]
@@ -240,60 +203,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"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>accuracy</th>\n",
" <th>time</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <td>0</td>\n",
" <td>0.367015</td>\n",
" <td>0.281242</td>\n",
" <td>0.885656</td>\n",
" <td>00:26</td>\n",
" </tr>\n",
" <tr>\n",
" <td>1</td>\n",
" <td>0.307688</td>\n",
" <td>0.214721</td>\n",
" <td>0.915426</td>\n",
" <td>00:26</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2</td>\n",
" <td>0.275221</td>\n",
" <td>0.170615</td>\n",
" <td>0.936401</td>\n",
" <td>00:26</td>\n",
" </tr>\n",
" <tr>\n",
" <td>3</td>\n",
" <td>0.223771</td>\n",
" <td>0.159633</td>\n",
" <td>0.943843</td>\n",
" <td>00:26</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"outputs": [],
"source": [
"learn.fit_one_cycle(4, 3e-3)"
]
@@ -302,60 +212,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"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>accuracy</th>\n",
" <th>time</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <td>0</td>\n",
" <td>0.212744</td>\n",
" <td>0.159033</td>\n",
" <td>0.944520</td>\n",
" <td>00:35</td>\n",
" </tr>\n",
" <tr>\n",
" <td>1</td>\n",
" <td>0.201893</td>\n",
" <td>0.159615</td>\n",
" <td>0.942490</td>\n",
" <td>00:35</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2</td>\n",
" <td>0.204606</td>\n",
" <td>0.152338</td>\n",
" <td>0.945196</td>\n",
" <td>00:36</td>\n",
" </tr>\n",
" <tr>\n",
" <td>3</td>\n",
" <td>0.213203</td>\n",
" <td>0.148346</td>\n",
" <td>0.947903</td>\n",
" <td>00:36</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"outputs": [],
"source": [
"learn.unfreeze()\n",
"learn.fit_one_cycle(4, slice(1e-6,1e-4))"
+25 -321
View File
@@ -3,13 +3,23 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"hide_input": false
},
"metadata": {},
"outputs": [],
"source": [
"#hide\n",
"from utils import *"
"!pip install -Uqq fastbook\n",
"import fastbook\n",
"fastbook.setup_book()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"#hide\n",
"from fastbook import *"
]
},
{
@@ -67,53 +77,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"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>accuracy</th>\n",
" <th>time</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <td>0</td>\n",
" <td>2.571932</td>\n",
" <td>2.685040</td>\n",
" <td>0.322548</td>\n",
" <td>00:11</td>\n",
" </tr>\n",
" <tr>\n",
" <td>1</td>\n",
" <td>1.904674</td>\n",
" <td>1.852589</td>\n",
" <td>0.437452</td>\n",
" <td>00:11</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2</td>\n",
" <td>1.586909</td>\n",
" <td>1.374908</td>\n",
" <td>0.594904</td>\n",
" <td>00:11</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"outputs": [],
"source": [
"learn = get_learner()\n",
"learn.fit_one_cycle(3, 0.003)"
@@ -132,40 +96,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"(0.017378008365631102, 3.019951861915615e-07)"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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 truncated
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"outputs": [],
"source": [
"learn.lr_find()"
]
@@ -174,53 +105,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"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>accuracy</th>\n",
" <th>time</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <td>0</td>\n",
" <td>2.969412</td>\n",
" <td>2.214596</td>\n",
" <td>0.242038</td>\n",
" <td>00:09</td>\n",
" </tr>\n",
" <tr>\n",
" <td>1</td>\n",
" <td>2.442730</td>\n",
" <td>1.845950</td>\n",
" <td>0.362548</td>\n",
" <td>00:09</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2</td>\n",
" <td>2.157159</td>\n",
" <td>1.741143</td>\n",
" <td>0.408917</td>\n",
" <td>00:09</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"outputs": [],
"source": [
"learn.fit_one_cycle(3, 0.03, moms=(0,0,0))"
]
@@ -254,53 +139,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"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>accuracy</th>\n",
" <th>time</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <td>0</td>\n",
" <td>2.730918</td>\n",
" <td>2.009971</td>\n",
" <td>0.332739</td>\n",
" <td>00:09</td>\n",
" </tr>\n",
" <tr>\n",
" <td>1</td>\n",
" <td>2.204893</td>\n",
" <td>1.747202</td>\n",
" <td>0.441529</td>\n",
" <td>00:09</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2</td>\n",
" <td>1.875621</td>\n",
" <td>1.684515</td>\n",
" <td>0.445350</td>\n",
" <td>00:09</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"outputs": [],
"source": [
"learn = get_learner(opt_func=opt_func)\n",
"learn.fit(3, 0.03)"
@@ -316,23 +155,8 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"hide_input": true
},
"outputs": [
{
"data": {
"image/png": "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 truncated
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"metadata": {},
"outputs": [],
"source": [
"x = np.linspace(-4, 4, 100)\n",
"y = 1 - (x/3) ** 2\n",
@@ -350,23 +174,8 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"hide_input": true
},
"outputs": [
{
"data": {
"image/png": "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 truncated
"text/plain": [
"<Figure size 864x576 with 4 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"metadata": {},
"outputs": [],
"source": [
"x = np.linspace(-4, 4, 100)\n",
"y = 1 - (x/3) ** 2\n",
@@ -418,53 +227,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"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>accuracy</th>\n",
" <th>time</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <td>0</td>\n",
" <td>2.856000</td>\n",
" <td>2.493429</td>\n",
" <td>0.246115</td>\n",
" <td>00:10</td>\n",
" </tr>\n",
" <tr>\n",
" <td>1</td>\n",
" <td>2.504205</td>\n",
" <td>2.463813</td>\n",
" <td>0.348280</td>\n",
" <td>00:10</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2</td>\n",
" <td>2.187387</td>\n",
" <td>1.755670</td>\n",
" <td>0.418853</td>\n",
" <td>00:10</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"outputs": [],
"source": [
"learn = get_learner(opt_func=opt_func)\n",
"learn.fit_one_cycle(3, 0.03)"
@@ -474,20 +237,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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 truncated
"text/plain": [
"<Figure size 864x288 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"outputs": [],
"source": [
"learn.recorder.plot_sched()"
]
@@ -528,53 +278,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"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>accuracy</th>\n",
" <th>time</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <td>0</td>\n",
" <td>2.766912</td>\n",
" <td>1.845900</td>\n",
" <td>0.402548</td>\n",
" <td>00:11</td>\n",
" </tr>\n",
" <tr>\n",
" <td>1</td>\n",
" <td>2.194586</td>\n",
" <td>1.510269</td>\n",
" <td>0.504459</td>\n",
" <td>00:11</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2</td>\n",
" <td>1.869099</td>\n",
" <td>1.447939</td>\n",
" <td>0.544968</td>\n",
" <td>00:11</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"outputs": [],
"source": [
"learn = get_learner(opt_func=opt_func)\n",
"learn.fit_one_cycle(3, 0.003)"
+43 -537
View File
@@ -15,9 +15,7 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"hide_input": false
},
"metadata": {},
"outputs": [],
"source": [
"#hide\n",
@@ -93,16 +91,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"CPU times: user 1.15 s, sys: 4.09 ms, total: 1.15 s\n",
"Wall time: 1.15 s\n"
]
}
],
"outputs": [],
"source": [
"%time t1=matmul(m1, m2)"
]
@@ -111,15 +100,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"14 µs ± 8.95 µs per loop (mean ± std. dev. of 7 runs, 20 loops each)\n"
]
}
],
"outputs": [],
"source": [
"%timeit -n 20 t2=m1@m2"
]
@@ -135,18 +116,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"tensor([12., 14., 3.])"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"a = tensor([10., 6, -4])\n",
"b = tensor([2., 8, 7])\n",
@@ -157,18 +127,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"tensor([False, True, True])"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"a < b"
]
@@ -177,18 +136,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(tensor(False), tensor(False))"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"(a < b).all(), (a==b).all()"
]
@@ -197,18 +145,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"9.666666984558105"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"(a + b).mean().item()"
]
@@ -217,20 +154,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"tensor([[ 1., 4., 9.],\n",
" [16., 25., 36.],\n",
" [49., 64., 81.]])"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"m = tensor([[1., 2, 3], [4,5,6], [7,8,9]])\n",
"m*m"
@@ -240,19 +164,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"ename": "RuntimeError",
"evalue": "The size of tensor a (3) must match the size of tensor b (2) at non-singleton dimension 0",
"output_type": "error",
"traceback": [
"\u001b[0;31m------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mRuntimeError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m<ipython-input-12-add73c4f74e0>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0mn\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtensor\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m1.\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m2\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m3\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0;36m4\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m5\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m6\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[0mm\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0mn\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
"\u001b[0;31mRuntimeError\u001b[0m: The size of tensor a (3) must match the size of tensor b (2) at non-singleton dimension 0"
]
}
],
"outputs": [],
"source": [
"n = tensor([[1., 2, 3], [4,5,6]])\n",
"m*n"
@@ -278,15 +190,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1.7 ms ± 88.1 µs per loop (mean ± std. dev. of 7 runs, 20 loops each)\n"
]
}
],
"outputs": [],
"source": [
"%timeit -n 20 t3 = matmul(m1,m2)"
]
@@ -309,18 +213,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"tensor([ True, True, False])"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"a = tensor([10., 6, -4])\n",
"a > 0"
@@ -330,20 +223,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"tensor([[-1.4652, -1.0989, -0.7326],\n",
" [-0.3663, 0.0000, 0.3663],\n",
" [ 0.7326, 1.0989, 1.4652]])"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"m = tensor([[1., 2, 3], [4,5,6], [7,8,9]])\n",
"(m - 5) / 2.73"
@@ -360,18 +240,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(torch.Size([3, 3]), torch.Size([3]))"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"c = tensor([10.,20,30])\n",
"m = tensor([[1., 2, 3], [4,5,6], [7,8,9]])\n",
@@ -382,20 +251,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"tensor([[11., 22., 33.],\n",
" [14., 25., 36.],\n",
" [17., 28., 39.]])"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"m + c"
]
@@ -404,20 +260,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"tensor([[10., 20., 30.],\n",
" [10., 20., 30.],\n",
" [10., 20., 30.]])"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"c.expand_as(m)"
]
@@ -426,21 +269,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
" 10.0\n",
" 20.0\n",
" 30.0\n",
"[torch.FloatStorage of size 3]"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"t = c.expand_as(m)\n",
"t.storage()"
@@ -450,18 +279,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"((0, 1), torch.Size([3, 3]))"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"t.stride(), t.shape"
]
@@ -470,20 +288,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"tensor([[11., 22., 33.],\n",
" [14., 25., 36.],\n",
" [17., 28., 39.]])"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"c + m"
]
@@ -492,19 +297,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"tensor([[11., 22., 33.],\n",
" [14., 25., 36.]])"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"c = tensor([10.,20,30])\n",
"m = tensor([[1., 2, 3], [4,5,6]])\n",
@@ -515,19 +308,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"ename": "RuntimeError",
"evalue": "The size of tensor a (2) must match the size of tensor b (3) at non-singleton dimension 1",
"output_type": "error",
"traceback": [
"\u001b[0;31m------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mRuntimeError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m<ipython-input-25-64bbbad4d99c>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0mc\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtensor\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m10.\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m20\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[0mm\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtensor\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m1.\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m2\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m3\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0;36m4\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m5\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m6\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----> 3\u001b[0;31m \u001b[0mc\u001b[0m\u001b[0;34m+\u001b[0m\u001b[0mm\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
"\u001b[0;31mRuntimeError\u001b[0m: The size of tensor a (2) must match the size of tensor b (3) at non-singleton dimension 1"
]
}
],
"outputs": [],
"source": [
"c = tensor([10.,20])\n",
"m = tensor([[1., 2, 3], [4,5,6]])\n",
@@ -538,18 +319,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(torch.Size([3, 3]), torch.Size([3, 1]))"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"c = tensor([10.,20,30])\n",
"m = tensor([[1., 2, 3], [4,5,6], [7,8,9]])\n",
@@ -561,20 +331,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"tensor([[11., 12., 13.],\n",
" [24., 25., 26.],\n",
" [37., 38., 39.]])"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"c+m"
]
@@ -583,21 +340,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
" 10.0\n",
" 20.0\n",
" 30.0\n",
"[torch.FloatStorage of size 3]"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"t = c.expand_as(m)\n",
"t.storage()"
@@ -607,18 +350,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"((1, 0), torch.Size([3, 3]))"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"t.stride(), t.shape"
]
@@ -627,18 +359,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(torch.Size([3]), torch.Size([1, 3]), torch.Size([3, 1]))"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"c = tensor([10.,20,30])\n",
"c.shape, c.unsqueeze(0).shape,c.unsqueeze(1).shape"
@@ -648,18 +369,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(torch.Size([3]), torch.Size([1, 3]), torch.Size([3, 1]))"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"c.shape, c[None,:].shape,c[:,None].shape"
]
@@ -668,18 +378,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(torch.Size([1, 3]), torch.Size([3, 1]))"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"c[None].shape,c[...,None].shape"
]
@@ -705,15 +404,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"357 µs ± 7.2 µs per loop (mean ± std. dev. of 7 runs, 20 loops each)\n"
]
}
],
"outputs": [],
"source": [
"%timeit -n 20 t4 = matmul(m1,m2)"
]
@@ -745,15 +436,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"68.7 µs ± 4.06 µs per loop (mean ± std. dev. of 7 runs, 20 loops each)\n"
]
}
],
"outputs": [],
"source": [
"%timeit -n 20 t5 = matmul(m1,m2)"
]
@@ -807,18 +490,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"torch.Size([200, 50])"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"l1 = lin(x, w1, b1)\n",
"l1.shape"
@@ -828,18 +500,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(tensor(0.0019), tensor(10.1058))"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"l1.mean(), l1.std()"
]
@@ -848,22 +509,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"tensor([[nan, nan, nan, nan, nan],\n",
" [nan, nan, nan, nan, nan],\n",
" [nan, nan, nan, nan, nan],\n",
" [nan, nan, nan, nan, nan],\n",
" [nan, nan, nan, nan, nan]])"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"x = torch.randn(200, 100)\n",
"for i in range(50): x = x @ torch.randn(100,100)\n",
@@ -874,22 +520,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"tensor([[0., 0., 0., 0., 0.],\n",
" [0., 0., 0., 0., 0.],\n",
" [0., 0., 0., 0., 0.],\n",
" [0., 0., 0., 0., 0.],\n",
" [0., 0., 0., 0., 0.]])"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"x = torch.randn(200, 100)\n",
"for i in range(50): x = x @ (torch.randn(100,100) * 0.01)\n",
@@ -900,22 +531,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"tensor([[ 0.7554, 0.6167, -0.1757, -1.5662, 0.5644],\n",
" [-0.1987, 0.6292, 0.3283, -1.1538, 0.5416],\n",
" [ 0.6106, 0.2556, -0.0618, -0.9463, 0.4445],\n",
" [ 0.4484, 0.7144, 0.1164, -0.8626, 0.4413],\n",
" [ 0.3463, 0.5930, 0.3375, -0.9486, 0.5643]])"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"x = torch.randn(200, 100)\n",
"for i in range(50): x = x @ (torch.randn(100,100) * 0.1)\n",
@@ -926,18 +542,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"tensor(0.7042)"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"x.std()"
]
@@ -969,18 +574,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(tensor(-0.0050), tensor(1.0000))"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"l1 = lin(x, w1, b1)\n",
"l1.mean(),l1.std()"
@@ -999,18 +593,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(tensor(0.3961), tensor(0.5783))"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"l2 = relu(l1)\n",
"l2.mean(),l2.std()"
@@ -1020,22 +603,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"tensor([[0.0000e+00, 1.9689e-08, 4.2820e-08, 0.0000e+00, 0.0000e+00],\n",
" [0.0000e+00, 1.6701e-08, 4.3501e-08, 0.0000e+00, 0.0000e+00],\n",
" [0.0000e+00, 1.0976e-08, 3.0411e-08, 0.0000e+00, 0.0000e+00],\n",
" [0.0000e+00, 1.8457e-08, 4.9469e-08, 0.0000e+00, 0.0000e+00],\n",
" [0.0000e+00, 1.9949e-08, 4.1643e-08, 0.0000e+00, 0.0000e+00]])"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"x = torch.randn(200, 100)\n",
"for i in range(50): x = relu(x @ (torch.randn(100,100) * 0.1))\n",
@@ -1046,22 +614,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"tensor([[0.2871, 0.0000, 0.0000, 0.0000, 0.0026],\n",
" [0.4546, 0.0000, 0.0000, 0.0000, 0.0015],\n",
" [0.6178, 0.0000, 0.0000, 0.0180, 0.0079],\n",
" [0.3333, 0.0000, 0.0000, 0.0545, 0.0000],\n",
" [0.1940, 0.0000, 0.0000, 0.0000, 0.0096]])"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"x = torch.randn(200, 100)\n",
"for i in range(50): x = relu(x @ (torch.randn(100,100) * sqrt(2/100)))\n",
@@ -1094,18 +647,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(tensor(0.5661), tensor(0.8339))"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"l1 = lin(x, w1, b1)\n",
"l2 = relu(l1)\n",
@@ -1129,18 +671,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"torch.Size([200, 1])"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"out = model(x)\n",
"out.shape"
@@ -1217,21 +748,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$\\displaystyle 2 sx$"
],
"text/plain": [
"2*sx"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"from sympy import symbols,diff\n",
"sx,sy = symbols('sx sy')\n",
@@ -1479,18 +996,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(torch.Size([2, 10]), torch.Size([2]))"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"lin = LinearLayer(10,2)\n",
"p1,p2 = lin.parameters()\n",
+9 -157
View File
@@ -15,9 +15,7 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"hide_input": false
},
"metadata": {},
"outputs": [],
"source": [
"#hide\n",
@@ -42,70 +40,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"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.145994</td>\n",
" <td>0.019272</td>\n",
" <td>0.006089</td>\n",
" <td>00:14</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>"
],
"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.053405</td>\n",
" <td>0.052540</td>\n",
" <td>0.010825</td>\n",
" <td>00:19</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"outputs": [],
"source": [
"path = untar_data(URLs.PETS)/'images'\n",
"def is_cat(x): return x[0].isupper()\n",
@@ -168,18 +103,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"tensor([[0.0010, 0.9990]], device='cuda:0')"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"F.softmax(output, dim=-1)"
]
@@ -188,18 +112,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(#2) [False,True]"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"dls.vocab"
]
@@ -208,18 +121,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"torch.Size([1, 3, 224, 224])"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"x.shape"
]
@@ -228,18 +130,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"torch.Size([2, 7, 7])"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"cam_map = torch.einsum('ck,kij->cij', learn.model[1][-1].weight, act)\n",
"cam_map.shape"
@@ -249,20 +140,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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 truncated
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"outputs": [],
"source": [
"x_dec = TensorImage(dls.train.decode((x,))[0][0])\n",
"_,ax = plt.subplots()\n",
@@ -355,20 +233,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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 truncated
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"outputs": [],
"source": [
"_,ax = plt.subplots()\n",
"x_dec.show(ctx=ax)\n",
@@ -404,20 +269,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAOcAAADnCAYAAADl9EEgAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjMsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+AADFEAAAgAElEQVR4nOy9X5JkSW7u9wPgJyKzqrqHQxrNaJKume4KtAFpPdqLlqC1aCt6vWY0icOZ6e6qzDjugB4A+IlsDYea4oP40NGWnZWZ8eccdwfw4cPncIkIfnv89vjt8Z/vof9/X8Bvj98evz3+8uM34/zt8dvjP+njN+P87fHb4z/p4zfj/O3x2+M/6eM34/zt8dvjP+lj/LU//s//0/8SyeYKItfvVRVVxbhhcucWLxxxY7hxoByq3FW5mXEfwiHBkOCuwqFwaDBwVgSB4AEBBIoDERAIIcJajs/JnCdzLtZcrOUsd+Z0wpNt9gjcI79H/gxCICDUd8n3luCmyk0jvyS4GxwCLybcFG4KGs5//0//yH/3T//Ijz984rgHdsDtODjfg/e3hS8FORC7g9xwlLXgMeExJ49zstxZvnjMxVwTIhClrssRFUwFUUE1R+L98c7Xrz+x3InIL2oOVginB4/phCqnB+dypjvTcxxXgAdMh4WyQvAQEMVUEVVEpN4yMASRQAHNoUKiZ0U4hiHkPPH8Pahx914ciAgRgkewHESUQEHAQ3DAoe4NQoSIYAERgRP1HsF0JyKuD6xZjajP9CD6ekXJjxGCwEJyfUS9X42fe64fj8BU+8U5tu64572IgNTfY48FIFErK+ckIqdGRPNeRci4l++b4xyEO77y/XNO4b/9n7//3/+PP/5v/+vfbJxgiFyjEuSNxjam5wGrSUVQEVRBtS6aWgSy3wgkBzj2L6X+L9fzJJeDu+NrseZM44zAV0A49LXsklAOxIcLE9m/zed+fH4OYF7vfpkY95vy+fMPvLx8IkLr93X/4QR9Dw5rgighA0cJ0omZWk14jl3Ppi8Hy+uwdh71fsjz6EqPPLjnIJMTrqp4Xbv0fyIQ9b2ut8d/z8G1bnrE84ft1CgjVa4ru6bu+l4LXkFcr7GWvH8h10Eu2PpQT+cpcb2v1BwqabSy5zNQueatBr6MI58f8qurC9JYg22YET2uz0tC0F7IUu+9Hx2Q+kuJnpPYq6ieen1mzp9DPF2zKEI6X3ptCzVH/NXHXzVO2au1LiD8aaDYnqjmBGrA2hG1Yef116KW/Ld7L+zY3qVHL/a7Us/zGuD6/jTo/uzC41poSkaO56mDnLAgvW1Eu478VA/Z1ykifPr0hdfXz6gNgkjPWB6QyIWDyRUN3HEmy5W19iDkpXkQIQiajsnrd5K/j4hapFEv64WRf6ecgUQbXU5ur9c9E78uW8tltOK9mNmLRJ5/4HmeMso+L6BAcvFRRlTXgBiqNa49/pGIKNeDdszJMShDkbhcZhpmGp1EbCO9HEdctxbPjiW2w91WXuu1Zzb9Yd6X1jpTgVAtW4v9Mur+5FqI27B7DeILcEx/5eRxQK8xfJoWkUYeUqhwf8q/+fjrkVOeU1Iva4zrWv7iI8O9hO6bDi5Dbk8lIhkg2rJrEX94pwh8rYIBO0RSI79fGs+X9Bdvuie2F6C0l9h/TTgcuPQCFj59+sztdic8kGG1GAteShS8HwTGcuNcbYROoDtCt/cV1jW0Ihlxn2+6x6buS1WfIFZHTPY4JKR0/NdvUwtVRFDRMm74aGm9wnsScnyk4Oe+ZgFFEMu1vzyelkA9lzLicALvIFzv2vBZypF+xEqyrykdj7SBdSBo5/Yhaj29wQfP295Y6roSXVBz23PRRl3YZ0flNjR5+qICSP6pIKk7gmdULwTQnxt157EdTP2/htt7+q7l+G8+/h1Ye4XeKGDfAGlD1fIFFFSBjAouTrgQWhijffQTDFMVQrT95ZOhXRHXKwdorO7RXpG8nhrQa+3lxFSMywVRcNI/gDJ5moQLCl8LRnh9eWWMwVqLMUZFDjArP985mhpilveycm2YGOdcCddUMTNWOHGmgaop7msbzLN5NGQ1M+acT1GioGOjBi8E4r+OoD13iorifgWVvdDkchzXIsk51nIMVOSWylM/RJgap3Zke5FzLTx5upbgKarJ01r4cMWg7SD9aQ204UTFnSeU9eHF+77Z925qGbkj88yGfE6g7ogavv92rZt93R1gnpziXj89dpGpQzuERl7PqKTfxzuVkw+T9Rcffx3W4mUIDT2i5y8vSEBrJvbYxK++dyQSyXxJe8LbvHVDjo+5YC/AIoBWfs8oWq+NawCpPI9fLRZvT8YTfCSQSAiikvnAUMUITC/Ca4wBIUx3boCHV46VuZg7GUHrc8UUgcwv3Dgb/qphAuIL32MnZD7ie7j2ZAtIXcOODtLRtiAWQcR6ytt/nXsq9Fde7V5bTiAOYu3na/ak+AJJcioBWDmLJ9KkDW3P1FPUufL7a7FSTjckKqJfUHF7iufHU4AMnvP1a03tf27E9eRwyzBFBmqXcYasdO6dC6kiakg7+w8ergb+GWwUpMn3zzkSfgVtRZ9e+uxE4ild9afX/NuPv2qcWpPvRbz0oiWSoEFHegDpqCNPHksx0zRErYWrNbnyFE1DrghZudvzpC/3NMoAdt7SYyhX1KjoElE8WkeW+ltEmq9pLUACXxNXA7E9gJAL83bccQ/ezweHwfSFOdzMUJUkYjSZOSdYvjin81ggMgoR5L1HXZeYoKastXh/TG63kZC0Pvo5T0lkYdBMYRmk49vRObXY9wLXJwitydYuZ0aypJcDdIrYfMpBa0F3yGvvX/929wtl1GuW+44Gz4ijo0Q7mwaPIUHyasmi+hOWcdgRzN3L6NoZ13p8ev92ROkMfOeOfR+qAxHD0UQNITiaDrYgZ76X/yo//DXWlLqWVY623ptgRaBaCDAuMi0qZdBah7QDjXZkXtzHX3/8O5GzI2bOfQW+7Y21vLkiaYwMRiiqssN7U7YZBSFU9mDsPG9Drmt8Li8T6Wnae7aD/hWUau8aUsZAJEPYUboQgNSAmihW7+dr4QhjGGMMzJQxDnQMRA3EUVPUyiDJaJiQPb1vFFvpvljxyCFSkJCCn7kURdMh+fR93xuibyhYBlApfzOBzyx0T4OWMwqvvzYpBoUU9htchidSiyqdbTLsbZwbg9RcdDTlQ7Tc19DX31PVC/RXyDOnM6q8sup7R259mv8cX/d15YDleLejoqHhhb6kHVUPPBdKaK+0IvPFnR6Ra2GvKJXyS7WWGtKWQTdJB+nsMv2wXAvpwfL6CiJ7eAUPfxqx+r9+hPR/6fFXjdPkBSRqKHICxQQJYYljMRhyZ3DD5OAmg4ExlISNEZgahwlDYCgYMLTery0wYO1w2AMShM+Mbr6I7UE7p6hoKGxqvvF8ExlWHnZDxcjPVxFMhMMGh0rzaxktVDjud24vLww7nsoJipYXzvKWFqLwgqaKKQwjDW+9o2IJfcJxWRzq2IAhgnqgLALHkIS9BZeSBYQpwmjauaNMkU0CGOkY2+D6RjtKKlH33LBXdh1QtRDOnmtQudhSoZwxu/KSZI1Ifn7B/+XBRZIWBH3Ko59Q+f7Sp7nLvxWTXU6o/8tRLaOsW9wBMngKGg2d0+l0vhexkLKLiMDqPdvveQRW99Kr4AoMwXJBIjnkdF4N7TNJUFGGjkSTwIqVV67pkAVhFSHU6dSeh5o3/Ssm+leNc+j9w88qXesTVALzwYg7Qw6OMEyVIYJpYJ6xzQSGSn4JGF6+zuv6hBBHwje5Awmj5jrxNYm1coqjc4q8OaVKIpJ5nj7FlmbGekKhnlOYnxBsGMcYKPn5adHGy8sr95dXxnGgplTIz4H0RMEiwlozmTsVZICacWB4BI/HCTJBByrB0InEaiTPwFhr0qyvSYEMBSuofNdgGohnMT9rIQmLDDCCFWA7MuaXb2Sa2HWVEa9yXBAfDI+aj3TAOdQm7QLaaea/0/GlEwyJEgBEzZkgSjlInuBtOYrKZT3SEbh4lbtKiNJ5aDmbzfrKE10nV1Tr623k0WOQ6K6ddT6/OY6sN2pB5kq96r9GKGmYafSLKx1jo7VceyaGoTRLOyTJJS8izUtg4pGp4POj39E+VER+ZX//5l+AQ16u1JCEaF1rCwkO7hwyGIxNJAzNGqNpUfDh4JWvUpDJJzWFIIJJ5SPSuQPAAl/JaBb83OgGii1XQgtG0eofaHp7EyikPzbaY4LgWTivRaNq2HFwf/nE6+cvfPr8mXG7Y1oESgiEIe5EF9Y9WGshMTPiDeV2ZOnCV7B8IjExVdQWZ0zwQCyVUu+PBR6YBZleejKjorgEmHM3gSVIkz+xyqODbYgPUXnmzrMQNJRTBXVYIrmQ6AhYziAyDkhIvSrnTmopbnfXuZMoEvrk9KqUEJkqiNlOWXZWQkbvznK8iDmXzsla4QWiV3TxaIPYeIoWWbg7Le7Rzf7mpfbPUaivllneU4sBkB3ld+za5JJg5oSmoxW9ymKbOW6V1RP0jvpsiWt9VlHtIo8oJ1Tjc3yvcd54+VXekLmTVB3ppjcGl2RvSBISpjCQlISF70nWnvCIND4qz9H2sheEzqJ8RtOdl+0xlG2oTkbxnAyp2lVDhiejJQOPEkUIFQGxVkbQ48anT5/4/MMPvHz+zO3lFbWReWZbvUMsWFI134JRaOZIGieqwjDndgve3ycCjJ2TnHgk2WGisGYaugbWi7L+HSRum5qfF5JyRw1Po4xGCrnyDhGiDNMTrBUZokxPeZ5vYNXO64LzndNaoRntaFfesudB67k7NrftNvR7WsjLA5enEsuv4GkVh3rGdsQ0TbjZNINHFN7qqJgcR16nXNCWy0AFmvHaawb4MAIfau88EVsKgT2x47olf6vgWBt5EmU7fCexlZh6gwDI0tqFJjxRXQT2/yKgrse/Y5wFawuIe3hFsryLine truncated
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"outputs": [],
"source": [
"_,ax = plt.subplots()\n",
"x_dec.show(ctx=ax)\n",
+31 -475
View File
@@ -49,18 +49,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Path('/home/jhoward/.fastai/data/imagenette2-160/val/n03417042/n03417042_3752.JPEG')"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"t = get_image_files(path)\n",
"t[0]"
@@ -70,18 +59,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Path('/home/jhoward/.fastai/data/imagenette2-160/val/n03417042/n03417042_3752.JPEG')"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"from glob import glob\n",
"files = L(glob(f'{path}/**/*.JPEG', recursive=True)).map(Path)\n",
@@ -92,19 +70,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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 truncated
"text/plain": [
"<PIL.JpegImagePlugin.JpegImageFile image mode=RGB size=213x160 at 0x7FA45AC27D50>"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"im = Image.open(files[0])\n",
"im"
@@ -114,18 +80,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"torch.Size([160, 213, 3])"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"im_t = tensor(im)\n",
"im_t.shape"
@@ -135,18 +90,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(#10) ['n03417042','n03445777','n03888257','n03394916','n02979186','n03000684','n03425413','n01440764','n03028079','n02102040']"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"lbls = files.map(Self.parent.name()).unique(); lbls"
]
@@ -155,27 +99,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'n03417042': 0,\n",
" 'n03445777': 1,\n",
" 'n03888257': 2,\n",
" 'n03394916': 3,\n",
" 'n02979186': 4,\n",
" 'n03000684': 5,\n",
" 'n03425413': 6,\n",
" 'n01440764': 7,\n",
" 'n03028079': 8,\n",
" 'n02102040': 9}"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"v2i = lbls.val2idx(); v2i"
]
@@ -206,18 +130,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(9469, 3925)"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"train_filt = L(o.parent.parent.name=='train' for o in files)\n",
"train,valid = files[train_filt],files[~train_filt]\n",
@@ -228,18 +141,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(torch.Size([64, 64, 3]), tensor(0))"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"train_ds,valid_ds = Dataset(train),Dataset(valid)\n",
"x,y = train_ds[0]\n",
@@ -250,20 +152,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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 truncated
"text/plain": [
"<Figure size 144x144 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"outputs": [],
"source": [
"show_image(x, title=lbls[y]);"
]
@@ -283,18 +172,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(torch.Size([2, 64, 64, 3]), tensor([0, 0]))"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"x,y = collate([1,2], train_ds)\n",
"x.shape,y"
@@ -324,18 +202,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(torch.Size([128, 64, 64, 3]), torch.Size([128]), 74)"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"n_workers = min(16, defaults.cpus)\n",
"train_dl = DataLoader(train_ds, bs=128, shuffle=True, n_workers=n_workers)\n",
@@ -348,18 +215,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[tensor([0.4544, 0.4453, 0.4141]), tensor([0.2812, 0.2766, 0.2981])]"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"stats = [xb.mean((0,1,2)),xb.std((0,1,2))]\n",
"stats"
@@ -393,18 +249,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(tensor([0.3732, 0.4907, 0.5633]), tensor([1.0212, 1.0311, 1.0131]))"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"t = tfm_x(x)\n",
"t.mean((0,2,3)),t.std((0,2,3))"
@@ -432,18 +277,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"tensor(3., requires_grad=True)"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"Parameter(tensor(3.))"
]
@@ -510,18 +344,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"2"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"l = ConvLayer(3, 4)\n",
"len(l.parameters())"
@@ -531,18 +354,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"torch.Size([128, 4, 64, 64])"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"xbt = tfm_x(xb)\n",
"r = l(xbt)\n",
@@ -569,18 +381,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"torch.Size([3, 2])"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"l = Linear(4,2)\n",
"r = l(torch.ones(3,4))\n",
@@ -603,18 +404,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"4"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"t = T()\n",
"len(t.parameters())"
@@ -624,18 +414,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"device(type='cuda', index=5)"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"t.cuda()\n",
"t.l.w.device"
@@ -696,18 +475,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"10"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"m = simple_cnn()\n",
"len(m.parameters())"
@@ -717,28 +485,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.5239089727401733 0.8776043057441711\n",
"0.43470510840415955 0.8347987532615662\n",
"0.4357188045978546 0.7621666193008423\n",
"0.46562111377716064 0.7416611313819885\n"
]
},
{
"data": {
"text/plain": [
"torch.Size([128, 10])"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"def print_stats(outp, inp): print (outp.mean().item(),outp.std().item())\n",
"for i in range(4): m.layers[i].hook = print_stats\n",
@@ -767,18 +514,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"tensor(-1.2790, grad_fn=<SelectBackward>)"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"def log_softmax(x): return (x.exp()/(x.exp().sum(-1,keepdim=True))).log()\n",
"\n",
@@ -789,18 +525,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"tensor(2.5666, grad_fn=<NegBackward>)"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"loss = nll(sm, yb)\n",
"loss"
@@ -810,18 +535,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"tensor(-1.2790, grad_fn=<SelectBackward>)"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"def log_softmax(x): return x - x.exp().sum(-1,keepdim=True).log()\n",
"sm = log_softmax(r); sm[0][0]"
@@ -831,18 +545,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"tensor(True)"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"x = torch.rand(5)\n",
"a = x.max()\n",
@@ -853,18 +556,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"tensor(3.9784, grad_fn=<SelectBackward>)"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"def logsumexp(x):\n",
" m = x.max(-1)[0]\n",
@@ -886,18 +578,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"tensor(-1.2790, grad_fn=<SelectBackward>)"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"sm = log_softmax(r); sm[0][0]"
]
@@ -1045,42 +726,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0 True 2.1275552130636814 0.2314922378287042\n"
]
},
{
"data": {
"text/html": [],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0 False 1.9942575636942674 0.2991082802547771\n"
]
}
],
"outputs": [],
"source": [
"cbs = [SetupLearnerCB(),TrackResults()]\n",
"learn = Learner(simple_cnn(), dls, cross_entropy, lr=0.1, cbs=cbs)\n",
@@ -1120,71 +766,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0 True 2.6336045582954903 0.11014890695955222\n"
]
},
{
"data": {
"text/html": [],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0 False 2.230653363853503 0.18318471337579617\n"
]
},
{
"data": {
"text/html": [
"\n",
" <div>\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",
" <progress value='12' class='' max='74', style='width:300px; height:20px; vertical-align: middle;'></progress>\n",
" 16.22% [12/74 00:02<00:12]\n",
" </div>\n",
" "
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"outputs": [],
"source": [
"lrfind = LRFinder()\n",
"learn = Learner(simple_cnn(), dls, cross_entropy, lr=0.1, cbs=cbs+[lrfind])\n",
@@ -1195,20 +777,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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 truncated
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"outputs": [],
"source": [
"plt.plot(lrfind.lrs[:-2],lrfind.losses[:-2])\n",
"plt.xscale('log')"
@@ -1264,20 +833,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAX8AAAD7CAYAAACCEpQdAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nO3deXiU9bn/8fednSQECIQdEtkRZI0soa7VVq2nsiqCLG4o2J7T6q+2PdaeVtu6tPacagHBWtkUcAH3ra1LlbAFWaOIggn7DoGEJZB8f3/MxI7pABPIZLbP67rm0jzPk8n9JTM3D8/c8xlzziEiIrElLtQFiIhI3VPzFxGJQWr+IiIxSM1fRCQGqfmLiMSghFAXEIgmTZq4nJycUJchIhJRVqxYsdc5l+VvX0Q0/5ycHAoKCkJdhohIRDGz4lPt02UfEZEYpOYvIhKD1PxFRGKQmr+ISAxS8xcRiUEBNX8zyzSzhWZWZmbFZjbqFMddZmbvm1mJmRX52Z/j3X/EzNab2RXnWL+IiJyFQM/8JwPlQDNgNDDVzLr5Oa4M+Cvwk1Pcz1xgJdAYuA940cz8zqCKiEjwnLH5m1kaMAy43zlX6pz7GHgVGFP9WOfcMufcbGCTn/vpBPQB/sc5d9Q59xKw1nvfEga+3F3K2+t2hroMEakDgZz5dwIqnHMbfLatBvyd+Z9ON2CTc+5wIPdjZhPMrMDMCvbs2VPDHyVn457nV3HnnBX86tVCKir1OQ8i0SyQ5p8OlFTbVgLUr+HPqtH9OOemO+dynXO5WVm6MhRsKzcfYPXWEnq2bsCM/CLumF3AkfKToS5LRIIkkOZfCmRU25YBHPZzbF3cjwTBjPwi6icn8NztA/j197vx3vrd3DBtCbsPHwt1aSISBIE0/w1Agpl19NnWEyis4c8qBNqZme+Z/tncj9Sy3YeO8ebaHYzIbUNacgLj8nKYPiaXL3eXMmRyPht26e9nkWhzxubvnCsDFgAPmFmamQ0CrgNmVz/WzOLMLAVI9HxpKWaW5L2fDcAq4H+824cAPYCXam85cjaeXbqZk5WOsQOzv952xfnNeP6OgZRXVDJsaj6LvtwbwgpFpLYFOuo5CagH7MYzrjnROVdoZheZWanPcRcDR4E3gbbe/3/XZ/9IIBc4ADwMDHfO6dXcECo/WcmzSzdzWeem5DRJ+8a+C1o3YOGkPFo0SGHcX5fxQsGWEFUpIrUtoEhn59x+YLCf7R/heSG36usPADvN/RQBl9awRgmiN9fuYG/pccbl5fjd37pRKi9OzGPinBX85MU1bNl/hB9f2QmzU/6aRSQCKN4hxs3IL6JdVhoXdWhyymMyUhJ5Znw/RvRtzePvfcndz6/m+MmKOqxSRGqbmn8MW7XlIKu2HGTcwBzi4k5/Jp+UEMejw3twz5WdWLhyG+P+uoySIyfqqFIRqW1q/jFsZn4R6ckJDOvbOqDjzYwffrsj/3dDLz4pPsjQqYvYsv9IkKsUkWBQ849Ruw8f4/U12xnetzXpyTX7NM/BvVsx69Z+7C0tZ8iURazacjBIVYpIsKj5x6i5S7dwouKb4501MaBdY16amEe9pHhGTl+sTCCRCKPmH4M8453FXNo5i3ZZ6Wf+hlPo0DSdhZMG0aV5BhOfXcFfPtqEc8oEEokEav4x6K11O9h9+NTjnTXRJD2ZubcP4LvnN+c3b3ymUDiRCKHmH4Nm5hdxXpM0LulYO4F59ZLimTK6D7dfdB4zFxcrFE4kAqj5x5g1Ww/yyeaDjB2YfcbxzpqIizPu+975PHCdTyjcIYXCiYQrNf8YMyO/iLSkeIYHON5ZU2MH5vDUWG8o3BSFwomEKzX/GLK39Divr97B8L6tqZ+SGLSf8+2uPqFwU/L5+AuFwomEGzX/GDJ36WbKKyoZWwsv9J7JBa0b8PJdg2jRMIXxzyzjeYXCiYQVNf8YcaKikjlLi7m4Uxbtz2G8syZaNazHixPzGNCuMfe+uIbH3v1co6AiYULNP0a8vW4nuw4dZ3ze2b2p62xlpCTyzM0Xcn1ua55470t+PH+VQuFEwkDN3tcvEWtmfhHZjVO5tFPTOv/ZifFxPDKsB20zU/nDuxvYUXKM6WNyaZAavNcdROT0dOYfA9ZtK6Gg+ABjA0jvDBYz4weXd+RPI3uxcvNBhkxdxOZ9CoUTCRU1/xgwI7+I1KR4RuQGZ7yzJq7r1YrZt/ZjnzcUbuXmA6EuSSQmqflHuX2lx3l19XaG9WlNRhDHO2uif7vGLJiUR1pyAiOnL+HtdTtCXZJIzFHzj3Lzlm+h/GQl4+r4hd4zaZ+VzoJJeXRtkcHEZz9RKJxIHVPzj2InKiqZs6SYizo2oUPT+qEu5980SU9m3oQBXNXNEwr3P68WcrKiMtRlicQENf8o9m7hLnaUHGPcwJxQl3JKKYnxTB7VhwkXt2PW4mLumL2CsuMKhRMJNjX/KDYzv4i2malc1qXuxztrIi7O+O9ruvLgdd14//Pd3DB9sULhRIJMzT9KFW4vYVnRfsYOzCY+ROOdNTVmYA5/GZfLpj1lDJ68iM93KhROJFjU/KPUzPwi6iXGMyK3TahLqZHLu3hC4U5WOoZPVSicSLCo+Ueh/WXlvLJqO0P7tKJBvfAY76yJ7q08oXAtG9bzhMItVyicSG1T849C85Zv5vjJylr5mMZQadmwHi9MHMjA9o259yWFwonUNjX/KHOyopI5i4sZ1KExnZqF33hnTWSkJPLX8RdyQ24bnnjvS36kUDiRWqPmH2X+9ukutof5eGdNJMbH8fCwC/jJdzvzyqrtjHl6GQePlIe6LJGIp+YfZWbkF9G6UT2+3bVZqEupNWbGXZd14E8je7Fq80GGTs1XKJzIOVLzjyKf7TjE0q8ia7yzJq7r1Yo5t/X/OhTuE4XCiZy1gJq/mWWa2UIzKzOzYjMbdYrjzMweMbN93tujZmY++y83s0/M7JCZbTKzCbW1EPGMd6YkxnF9hI131kS/8zK/DoW7cfoS3lqrUDiRsxHomf9koBxoBowGpppZNz/HTQAGAz2BHsC1wB0AZpYILASmAQ2AG4A/mlnPc1mAeBwoK+flVdsY0rs1DVOTQl1OULXPSmfhpDzOb5nBpOcUCidyNs7Y/M0sDRgG3O+cK3XOfQy8Cozxc/g44DHn3Fbn3DbgMWC8d18mkAHMdh7Lgc+A8899GTK/YAvHToRfemewNE5PZu7t/wqF++UrCoUTqYlAzvw7ARXOuQ0+21YD/s78u3n3/dtxzrldwFzgZjOLN7OBQDbwsb8famYTzKzAzAr27NkTQJmx62RFJbMXFzOwXWO6NM8IdTl1pioU7o6L2zF7STETFAonErBAmn86UFJtWwngb4i8+rElQLrPdf+5wC+B48BHwH3OOb9v33TOTXfO5TrncrOysgIoM3b9/bPdbDt4NKLf1HW24uKMn1/TlQcHd+eDz3dz/bTF7FIonMgZBdL8S/FcrvGVAfhL3ap+bAZQ6pxzZtYFmA+MBZLw/IvgXjP7Xo2rlm+YmV9Eq4b1uKJreKd3BtOYAdk8Pe5CvtpbxpDJi1i/81CoSxIJa4E0/w1Agpl19NnWEyj0c2yhd5+/47oDnzvn3nHOVTrnPgfeAK6uedlSZf3OQyzetI8xA7NJiI/tyd3LujT9OhRuxNTFfPSFLheKnMoZu4VzrgxYADxgZmlmNgi4Dpjt5/BZwN1m1srMWgL3ADO8+1YCHb3jnmZm7fFMA632cz8SoJn5xSQnxHFDFI931kRVKFyrRvW4+ZnlCoUTOYVATxUnAfWA3Xiu2090zhWa2UVmVupz3DTgNWAtsA7Pmf00AOfcRuAW4HHgEPAh8BLwdC2sIyYdPFLOwpVbGdK7FY3Sonu8syZaNqzHC3f+KxTuD+8oFE6kuoRADnLO7cczv199+0d4XuSt+toB93pv/u7neeD5s6pU/s3zX4935oS6lLBT3xsKd//L6/jz+1+y5cARHh3eg+SE+FCXJhIWAmr+En4qKh2zFhfT/7xMuraInfHOmkiMj+OhoRfQJjOV37/zOTsOHmP62L5R/yY4kUDE9iuEEewfn+1i64GjjNdZ/2lVhcI9fmNvVm3xhMIV7ysLdVkiIafmH6FmLi6iZYMUrjw/etI7g+n7PVsy57b+7C8rZ8iUfIXCScxT849AG3YdZtGX+7hJ45010u+8TBZMzKN+ikLhRNQ5ItDM/CKSEuIYeWHbUJcScdplpbNgYh7dvKFwT/1ToXASm9T8I0zJkRMs+GQbg3u1JFPjnWelcXoyz90+gKu7N+e3b37G/a+sUyicxBw1/wjzwootHD1RofHOc5SSGM+fb/SEws1ZspnbZxUoFE5iipp/BKka7+yXk0m3lg1CXU7EqwqF+83g7ny4YY9C4SSmqPlHkPfX72bz/iM6669lN/mEwg1WKJzECDX/CDJzcREtGqTwnW4a76xtVaFwlc4xfOpi/rlBoXAS3dT8I8SXuw/z0Rd7uWlANoka7wyKqlC41o3qcfOM5cxfvjnUJYkEjbpIhJiZX+wd71R6ZzC1aOAJhRvUoQk/fWktv39nPZWVGgWV6KPmHwEOHTvBS59s5fs9W9I4PTnU5US9+imJPD0ul5EXtmHy+xv50fxVHD9ZEeqyRGqVgt0iwAsFWzlSXqEcnzpUFQrXtnEqj779OTtLjjFtTF9FZ0vU0Jl/mKusdMxaXERudiO6t9J4Z10yMyZd2oEnvKFwwxQKJ1FEzT/MfbBhN8X7NN4ZSv/RsyXP3t6f/Uc8oXArihUKJ5FPzT/MzcgvpllGMld1bx7qUmLahTmZLJw0iPopCYx6aglvKhROIpyafxjbuKeUf27Yw039Nd4ZDs5rksaCiXl0b9WASc9+wvR/blQonEQsdZQwNiu/iKT4OG7sr/TOcNE4PZlnb+vP9y5owe/eXK9QOIlYmvYJU4ePneDFFVu5tmcLmmi8M6yLine truncated
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"outputs": [],
"source": [
"plt.plot(onecyc.lrs);"
]
-11
View File
@@ -1,16 +1,5 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"#hide\n",
"from utils import *\n",
"from fastai.vision.widgets import *"
]
},
{
"cell_type": "markdown",
"metadata": {},
+6 -72
View File
@@ -30,18 +30,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"2"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"1+1"
]
@@ -57,18 +46,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"1.5"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"3/2"
]
@@ -146,18 +124,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(1, 2, 4, 8)"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"a = 1\n",
"b = a + 1\n",
@@ -170,20 +137,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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 truncated
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"outputs": [],
"source": [
"plt.plot([a,b,c,d])\n",
"plt.show()"
@@ -193,19 +147,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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 truncated
"text/plain": [
"<PIL.JpegImagePlugin.JpegImageFile image mode=RGB size=394x500 at 0x7F689F7B16D0>"
]
},
"execution_count": null,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"Image.open('images/chapter1_cat_example.jpg')"
]
@@ -256,15 +198,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"56.1 µs ± 592 ns per loop (mean ± std. dev. of 7 runs, 10000 loops each)\n"
]
}
],
"outputs": [],
"source": [
"%timeit [i+1 for i in range(1000)]"
]