From d14961535e6168d3fd0800f85bab13c1aef02d7e Mon Sep 17 00:00:00 2001 From: Dmitri Soshnikov Date: Mon, 13 Dec 2021 17:36:47 +0300 Subject: [PATCH] Add Intro, Frameworks, ConvNets NBs --- 1-Intro/README.md | 27 +- 1-Intro/images/history-of-ai.png | Bin 44872 -> 35953 bytes 1-Intro/images/ilsvrc.gif | Bin 0 -> 31346 bytes 1-Intro/images/turing-test-evol.png | Bin 0 -> 47324 bytes .../03-Perceptron/Perceptron.ipynb | 5 - .../04-OwnFramework/OwnFramework.ipynb | 1872 +++++++++-------- 3-NeuralNetworks/04-OwnFramework/README.md | 12 +- .../05-Frameworks/IntroKerasTF.ipynb | 157 +- .../05-Frameworks/IntroPyTorch.ipynb | 278 +-- 3-NeuralNetworks/05-Frameworks/README.md | 37 + 4-ComputerVision/07-ConvNets/ConfNetsTF.ipynb | 673 ++++++ .../07-ConvNets/ConvNetsPyTorch.ipynb | 568 +++++ 4-ComputerVision/07-ConvNets/README.md | 32 + .../images/FeatureExtractionCNN.png | Bin 0 -> 84807 bytes .../07-ConvNets/images/cnn-pyramid.png | Bin 0 -> 276081 bytes .../07-ConvNets/images/convolutionExample.png | Bin 0 -> 14862 bytes .../07-ConvNets/images/filter-horiz.png | Bin 0 -> 20299 bytes .../07-ConvNets/images/filter-vert.png | Bin 0 -> 21353 bytes .../07-ConvNets/images/lmfilters.jpg | Bin 0 -> 12730 bytes 4-ComputerVision/07-ConvNets/pytorchcv.py | 169 ++ 4-ComputerVision/07-ConvNets/tfcv.py | 86 + .../TransferLearningPyTorch.ipynb | 953 +++++++++ .../TransferLearningTF.ipynb | 1492 +++++++++++++ .../08-TransferLearning/pytorchcv.py | 169 ++ 4-ComputerVision/08-TransferLearning/tfcv.py | 86 + README.md | 2 +- 26 files changed, 5553 insertions(+), 1065 deletions(-) create mode 100644 1-Intro/images/ilsvrc.gif create mode 100644 1-Intro/images/turing-test-evol.png create mode 100644 3-NeuralNetworks/05-Frameworks/README.md create mode 100644 4-ComputerVision/07-ConvNets/ConfNetsTF.ipynb create mode 100644 4-ComputerVision/07-ConvNets/ConvNetsPyTorch.ipynb create mode 100644 4-ComputerVision/07-ConvNets/README.md create mode 100644 4-ComputerVision/07-ConvNets/images/FeatureExtractionCNN.png create mode 100644 4-ComputerVision/07-ConvNets/images/cnn-pyramid.png create mode 100644 4-ComputerVision/07-ConvNets/images/convolutionExample.png create mode 100644 4-ComputerVision/07-ConvNets/images/filter-horiz.png create mode 100644 4-ComputerVision/07-ConvNets/images/filter-vert.png create mode 100644 4-ComputerVision/07-ConvNets/images/lmfilters.jpg create mode 100644 4-ComputerVision/07-ConvNets/pytorchcv.py create mode 100644 4-ComputerVision/07-ConvNets/tfcv.py create mode 100644 4-ComputerVision/08-TransferLearning/TransferLearningPyTorch.ipynb create mode 100644 4-ComputerVision/08-TransferLearning/TransferLearningTF.ipynb create mode 100644 4-ComputerVision/08-TransferLearning/pytorchcv.py create mode 100644 4-ComputerVision/08-TransferLearning/tfcv.py diff --git a/1-Intro/README.md b/1-Intro/README.md index 2be8d7ed..06fc293f 100644 --- a/1-Intro/README.md +++ b/1-Intro/README.md @@ -57,12 +57,11 @@ Alternatively, we can try to model the simplest elements inside our brain – a A part of Artificial Intelligence that is based on computer learning to solve the problem based on some data is called **Machine Learning**. We will not consider classical machine learning in this course - we refer you to a separate [Machine Learning for Beginners](http://aka.ms/ml-for-beginners) Curriculum. | ![ML for Beginners](images/ml-for-beginners.png) -----|----- - ## A Brief History of AI Artificial Intelligence was started as a field in the middle of XX century. Initially symbolic reasoning was a prevalent approach, and it led to a number of important successes, such as expert systems – computer programs that were able to act as an expert in some limited problem domain. However, it soon became obvious that such approach does not scale well. Extracting the knowledge from an expert, representing it in a computer, and keeping that knowledgebase accurate turns out to be a very complex task, and too expensive to be practical in many cases. This led to so-called [AI Winter](https://en.wikipedia.org/wiki/AI_winter) in the 1970s. -![Brief History of AI](images/history-of-ai.png) +Brief History of AI As time passed, computing resources became cheaper, and more data has become available, the neural network approaches started demonstrating great performance in competing with human beings in many areas, such as computer vision, or speech understanding. In the last decade, the term Artificial Intelligence is mostly used as a synonym for Neural Networks, because most of the AI successes that we hear about are based on them. @@ -76,5 +75,27 @@ Similarly, we can see how the approach towards creating “talking programs” ( * Early program of this kind, [Eliza](https://en.wikipedia.org/wiki/ELIZA), was based on very simple grammatical rule and re-formulation of the input sentence into a question. * Modern assistants, such as Cortana, Siri or Google Assistant, are all hybrid systems, that use Neural networks to convert speech into text and to recognize our intent, and then employ some reasoning or explicit algorithms to perform required actions -* In the future, we may expect complete neural-based model to handle dialogue by itself, recent GPT family of neural networks show great success in this. +* In the future, we may expect complete neural-based model to handle dialogue by itself. Recent GPT and [Turing-NLG](https://turing.microsoft.com/) family of neural networks show great success in this. + + + +## Recent AI Research + +Recent huge growth in neural network research started around 2010, when large public datasets started to become available. A huge collection of images called [ImageNet](https://en.wikipedia.org/wiki/ImageNet), which contains around 14 million annotated images, gave birth to [ImageNet Large Scale Visual Recognition Challenge](https://image-net.org/challenges/LSVRC/). + +![ILSVRC Accuracy](images/ilsvrc.gif) + +In 2012, [Convolutional Neural Networks](../4-ComputerVision/07-ConvNets/README.md) were first used in image classification, which lead to significant drop in classification errors (from almost 30% to 16.4%). In 2015, ResNet architecture from Microsoft Research [achieved human-level accuracy](https://doi.org/10.1109/ICCV.2015.123). + +Since then, Neural Networks demonstrated very successful behaviour in many tasks: + +------|------- +Year | Human Parity in +-----|-------- +2015 | [Image Classification](https://doi.org/10.1109/ICCV.2015.123) +2016 | [Conversational Speech Recognition](https://arxiv.org/abs/1610.05256) +2018 | [Automatic Machine Translation](https://arxiv.org/abs/1803.05567) (Chinese-to-English) +2020 | [Image Captioning](https://arxiv.org/abs/2009.13682) + +Last years witnessed huge successes with large language models, such as BERT and GPT-3. This happens mainly due to the fact that there is a lot of general text data available, which allows us to train models that capture the structure and meaning of texts, pre-train them on general text collections, and then specialize those models for more specific tasks. We will learn more about [Natural Language Processing](../5-NLP/README.md) later in this course. diff --git a/1-Intro/images/history-of-ai.png b/1-Intro/images/history-of-ai.png index ae42232b3d6115e08766c56fdb9897cfb6ca28fe..4a5a2d6916f2d89caee4082c93a2ea12cc42b7e8 100644 GIT binary patch literal 35953 zcmb??Wl&sC5GU>u9D*(G?hcE4LU0Z4w&(`;009<<-~oaLLh#_exCWO1i~HgdIR1Ba zRaf`nK3&y&)id)(dS3Uu>FNHx*mqjWxL9wo5D*Y>RaF#p5D-wI2nfimD9EoRm9K5*lfIzZyeaTNX2WP zQ^|PO%1oG4l993%1>^DF*btEIk9~X5y>ChK8Xi^P$w|2kidSG}J4kt0>+_nBx}Et2 zzzF~UbUm=zgm`AxHIp5DZ^I{VyRo@j_oEIN>wqupNN%G`x6POpqUq7{-d54QlN4IJ zF{-9?nk`7-T1ku0@n7u1WRU}nZ8J%3e_FjU!Ja#4FPB6Ac+udUgsB?oY&9x=Pp$N@ z5hiNqey;@gEu(byduUbCJ*sX_ zV&qupfcp68?nQ0)=WI%!X{wC*rJn=xS2xNQt+G(rQ#%pQ?dRIGN8rhe{(H@{&!mFO zyB%O*X|G$OqE7Yff?X_Ydxbw=@88~dBX4mP+qaOz4c{KHuYuw>T0cPi92Uq)aa*Tt zM`GG@J%_NP0|$;1V`!|fA(Pbbg(u;0`Z6C2D>M9=Fb9;5fa%}cWE7u#35A10th}?~ zYw4UHl%SInW(QeB9G$_LD6kJ4jIhTh9}&Jk1sFVQxFO~%WHcILd9I$3=(J_1#sfea zrr>!^8dvkbOQQ{o7_HVglK9$mXa|%s0>6t-k>KF+Y@6Q}71du^o{kr(_n9Y(@W4iQ z!gbE|M!c~1+igT0XCJAcEWdsWJfj5+wtUK|qXQJ6vkg0Ft&zQ1nGvmxTUAwf^pypi z4YT^_ek6Pkbkok*G9rXp{LIkyLxA7g7|n05MtIb#Taj}|1~#uSLaG*~tCXf8F$wN@ zGEjLI=E4e1S!whxNJJZRZd(6$i_am8c}x&8_KaDfc?OomDtZh-wKx^gc8;?6CR0OVPJA4V=1c+=o$8-Useusw!N<-W|R#x9+ z3N68?9J$r3w(xZ^mbu@;)4edjY%WT%-{lbRsh)uOz~l0FDT7~$;gxU4Ye}+LWi}uN zy*cGvF}aBMt4Na>cwPeNAd;M!OjO|dHbneA{5h#Jz?Qs29}M3f9s5^VKt`1<*hR;L z30(_Fpz1$zKozn0A|)%5<^VD!B;4C3AVhGUf%I{T2up@(+SSj&cR(7893}r)Q!AN7 zL5WjG+7#>IqhP@|SK%#Mp@I78*$B(8dJF=vOxyX;0dDWd86%%aR!;S4b)eJ*LZ>Ew zg1|!*vn*tg82d*X!>$t%erd1+O7NkvAMFVJ&Kr2>zuw=M8J}jGgxx4^ThCVJWp4kN zauRiFNtRexON0ix9Xc03sH1^Z8<-;l87pg;VAL5dPFVO>KxhtT@5G8AY}4#Gvu+w! zfypi=h_3Tbs+OrHEn!oTd2J_;S1ohksHb$Z8oWL

HGd;Vgp~E+6(j_5>QLElZQX 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 literal 44872 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⪼x!x_?$hCQms6_j-X{rrPwKr2Yh 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 ATmS$7 literal 0 HcmV?d00001 diff --git a/1-Intro/images/turing-test-evol.png b/1-Intro/images/turing-test-evol.png new file mode 100644 index 0000000000000000000000000000000000000000..7883f7e1dcf55af7466ce5f1d70f52145bad6525 GIT binary patch literal 47324 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 Sri1Tce~R*IZ)@IIg#ACO4^FiJ literal 0 HcmV?d00001 diff --git a/3-NeuralNetworks/03-Perceptron/Perceptron.ipynb b/3-NeuralNetworks/03-Perceptron/Perceptron.ipynb index 8b4aad8e..bc3442fe 100644 --- a/3-NeuralNetworks/03-Perceptron/Perceptron.ipynb +++ b/3-NeuralNetworks/03-Perceptron/Perceptron.ipynb @@ -1048,11 +1048,6 @@ "This notebook is a part of [AI for Beginners Curricula](http://github.com/microsoft/ai-for-beginners), and has been prepared by [Dmitry Soshnikov](http://soshnikov.com). It is inspired by Neural Network Workshop at Microsoft Research Cambridge. Some code and illustrative materials are taken from presentations by [Katja Hoffmann](https://www.microsoft.com/en-us/research/people/kahofman/), [Matthew Johnson](https://www.microsoft.com/en-us/research/people/matjoh/) and [Ryoto Tomioka](https://www.microsoft.com/en-us/research/people/ryoto/), and from [NeuroWorkshop](http://github.com/shwars/NeuroWorkshop) repository." ], "metadata": {} - }, - { - "cell_type": "markdown", - "source": [], - "metadata": {} } ], "metadata": { diff --git a/3-NeuralNetworks/04-OwnFramework/OwnFramework.ipynb b/3-NeuralNetworks/04-OwnFramework/OwnFramework.ipynb index 81883322..6bdc2341 100644 --- a/3-NeuralNetworks/04-OwnFramework/OwnFramework.ipynb +++ b/3-NeuralNetworks/04-OwnFramework/OwnFramework.ipynb @@ -2,1097 +2,1316 @@ "cells": [ { "cell_type": "markdown", - "source": [ - "## Multi-Layered Perceptrons\r\n", - "## Building our own Neural Framework\r\n", - "\r\n", - "> This notebook is a part of [AI for Beginners Curricula](http://github.com/microsoft/ai-for-beginners). Visit the repository for complete set of learning materials.\r\n", - "\r\n", - "In this notebook, we will gradually build our own neural framework capable of solving multi-class classification tasks as well as regression with multi-layered preceptrons.\r\n", - "\r\n", - "First, let's import some required libraries." - ], "metadata": { "slideshow": { "slide_type": "slide" } - } + }, + "source": [ + "## Multi-Layered Perceptrons\n", + "## Building our own Neural Framework\n", + "\n", + "> This notebook is a part of [AI for Beginners Curricula](http://github.com/microsoft/ai-for-beginners). Visit the repository for complete set of learning materials.\n", + "\n", + "In this notebook, we will gradually build our own neural framework capable of solving multi-class classification tasks as well as regression with multi-layered preceptrons.\n", + "\n", + "First, let's import some required libraries." + ] }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 14, + "metadata": { + "slideshow": { + "slide_type": "skip" + } + }, + "outputs": [], "source": [ - "%matplotlib nbagg\r\n", - "import matplotlib.pyplot as plt \r\n", - "from matplotlib import gridspec\r\n", - "from sklearn.datasets import make_classification\r\n", - "import numpy as np\r\n", - "# pick the seed for reproducability - change it to explore the effects of random variations\r\n", - "np.random.seed(0)\r\n", + "%matplotlib nbagg\n", + "import matplotlib.pyplot as plt \n", + "from matplotlib import gridspec\n", + "from sklearn.datasets import make_classification\n", + "import numpy as np\n", + "# pick the seed for reproducibility - change it to explore the effects of random variations\n", + "np.random.seed(0)\n", "import random" - ], + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "## Sample Dataset\n", + "\n", + "As before, we will start with a simple sample dataset with two parameters.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "scrolled": false, + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [], + "source": [ + "n = 100\n", + "X, Y = make_classification(n_samples = n, n_features=2,\n", + " n_redundant=0, n_informative=2, flip_y=0.2)\n", + "X = X.astype(np.float32)\n", + "Y = Y.astype(np.int32)\n", + "\n", + "# Разбиваем на обучающую и тестовые выборки\n", + "train_x, test_x = np.split(X, [n*8//10])\n", + "train_labels, test_labels = np.split(Y, [n*8//10])" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "scrolled": false, + "slideshow": { + "slide_type": "skip" + } + }, + "outputs": [], + "source": [ + "def plot_dataset(suptitle, features, labels):\n", + " # prepare the plot\n", + " fig, ax = plt.subplots(1, 1)\n", + " #pylab.subplots_adjust(bottom=0.2, wspace=0.4)\n", + " fig.suptitle(suptitle, fontsize = 16)\n", + " ax.set_xlabel('$x_i[0]$ -- (feature 1)')\n", + " ax.set_ylabel('$x_i[1]$ -- (feature 2)')\n", + "\n", + " colors = ['r' if l else 'b' for l in labels]\n", + " ax.scatter(features[:, 0], features[:, 1], marker='o', c=colors, s=100, alpha = 0.5)\n", + " fig.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "scrolled": false, + "slideshow": { + "slide_type": "slide" + } + }, "outputs": [ { - "output_type": "error", - "ename": "ImportError", - "evalue": "cannot import name 'animation' from partially initialized module 'matplotlib' (most likely due to a circular import) (C:\\winapp\\Miniconda3\\lib\\site-packages\\matplotlib\\__init__.py)", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mImportError\u001b[0m Traceback (most recent call last)", - "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mget_ipython\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mrun_line_magic\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'matplotlib'\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m'nbagg'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 2\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mmatplotlib\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mpyplot\u001b[0m \u001b[1;32mas\u001b[0m \u001b[0mplt\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 3\u001b[0m \u001b[1;32mfrom\u001b[0m \u001b[0mmatplotlib\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mgridspec\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 4\u001b[0m \u001b[1;32mfrom\u001b[0m \u001b[0msklearn\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mdatasets\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mmake_classification\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 5\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mnumpy\u001b[0m \u001b[1;32mas\u001b[0m \u001b[0mnp\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32mC:\\winapp\\Miniconda3\\lib\\site-packages\\IPython\\core\\interactiveshell.py\u001b[0m in \u001b[0;36mrun_line_magic\u001b[1;34m(self, magic_name, line, _stack_depth)\u001b[0m\n\u001b[0;32m 2346\u001b[0m \u001b[0mkwargs\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;34m'local_ns'\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mget_local_scope\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mstack_depth\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 2347\u001b[0m \u001b[1;32mwith\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mbuiltin_trap\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 2348\u001b[1;33m \u001b[0mresult\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mfn\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m*\u001b[0m\u001b[0margs\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 2349\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0mresult\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 2350\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32mC:\\winapp\\Miniconda3\\lib\\site-packages\\decorator.py\u001b[0m in \u001b[0;36mfun\u001b[1;34m(*args, **kw)\u001b[0m\n\u001b[0;32m 230\u001b[0m \u001b[1;32mif\u001b[0m \u001b[1;32mnot\u001b[0m \u001b[0mkwsyntax\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 231\u001b[0m \u001b[0margs\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mkw\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mfix\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0margs\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mkw\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0msig\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 232\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0mcaller\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mfunc\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m*\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mextras\u001b[0m \u001b[1;33m+\u001b[0m \u001b[0margs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m**\u001b[0m\u001b[0mkw\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 233\u001b[0m \u001b[0mfun\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m__name__\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mfunc\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m__name__\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 234\u001b[0m \u001b[0mfun\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m__doc__\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mfunc\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m__doc__\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32mC:\\winapp\\Miniconda3\\lib\\site-packages\\IPython\\core\\magic.py\u001b[0m in \u001b[0;36m\u001b[1;34m(f, *a, **k)\u001b[0m\n\u001b[0;32m 185\u001b[0m \u001b[1;31m# but it's overkill for just that one bit of state.\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 186\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0mmagic_deco\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0marg\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 187\u001b[1;33m \u001b[0mcall\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;32mlambda\u001b[0m \u001b[0mf\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m*\u001b[0m\u001b[0ma\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m**\u001b[0m\u001b[0mk\u001b[0m\u001b[1;33m:\u001b[0m \u001b[0mf\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m*\u001b[0m\u001b[0ma\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m**\u001b[0m\u001b[0mk\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 188\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 189\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mcallable\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0marg\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32mC:\\winapp\\Miniconda3\\lib\\site-packages\\IPython\\core\\magics\\pylab.py\u001b[0m in \u001b[0;36mmatplotlib\u001b[1;34m(self, line)\u001b[0m\n\u001b[0;32m 97\u001b[0m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"Available matplotlib backends: %s\"\u001b[0m \u001b[1;33m%\u001b[0m \u001b[0mbackends_list\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 98\u001b[0m \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 99\u001b[1;33m \u001b[0mgui\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mbackend\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mshell\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0menable_matplotlib\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0margs\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mgui\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mlower\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0misinstance\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0margs\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mgui\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mstr\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;32melse\u001b[0m \u001b[0margs\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mgui\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 100\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_show_matplotlib_backend\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0margs\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mgui\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mbackend\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 101\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32mC:\\winapp\\Miniconda3\\lib\\site-packages\\IPython\\core\\interactiveshell.py\u001b[0m in \u001b[0;36menable_matplotlib\u001b[1;34m(self, gui)\u001b[0m\n\u001b[0;32m 3515\u001b[0m \"\"\"\n\u001b[0;32m 3516\u001b[0m \u001b[1;32mfrom\u001b[0m \u001b[0mIPython\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcore\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mpylabtools\u001b[0m \u001b[1;32mas\u001b[0m \u001b[0mpt\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 3517\u001b[1;33m \u001b[1;32mfrom\u001b[0m \u001b[0mmatplotlib_inline\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mbackend_inline\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mconfigure_inline_support\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 3518\u001b[0m \u001b[0mgui\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mbackend\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mpt\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mfind_gui_and_backend\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mgui\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mpylab_gui_select\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 3519\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32mC:\\winapp\\Miniconda3\\lib\\site-packages\\matplotlib_inline\\backend_inline.py\u001b[0m in \u001b[0;36m\u001b[1;34m\u001b[0m\n\u001b[0;32m 4\u001b[0m \u001b[1;31m# Distributed under the terms of the BSD 3-Clause License.\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 5\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 6\u001b[1;33m \u001b[1;32mimport\u001b[0m \u001b[0mmatplotlib\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 7\u001b[0m from matplotlib.backends.backend_agg import ( # noqa\n\u001b[0;32m 8\u001b[0m \u001b[0mnew_figure_manager\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32mC:\\winapp\\Miniconda3\\lib\\site-packages\\matplotlib\\__init__.py\u001b[0m in \u001b[0;36m\u001b[1;34m\u001b[0m\n\u001b[0;32m 105\u001b[0m \u001b[1;31m# cbook must import matplotlib only within function\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 106\u001b[0m \u001b[1;31m# definitions, so it is safe to import from it here.\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 107\u001b[1;33m \u001b[1;32mfrom\u001b[0m \u001b[1;33m.\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0m_api\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mcbook\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mdocstring\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mrcsetup\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 108\u001b[0m \u001b[1;32mfrom\u001b[0m \u001b[0mmatplotlib\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcbook\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mMatplotlibDeprecationWarning\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0msanitize_sequence\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 109\u001b[0m \u001b[1;32mfrom\u001b[0m \u001b[0mmatplotlib\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcbook\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mmplDeprecation\u001b[0m \u001b[1;31m# deprecated\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32mC:\\winapp\\Miniconda3\\lib\\site-packages\\matplotlib\\rcsetup.py\u001b[0m in \u001b[0;36m\u001b[1;34m\u001b[0m\n\u001b[0;32m 22\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mnumpy\u001b[0m \u001b[1;32mas\u001b[0m \u001b[0mnp\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 23\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 24\u001b[1;33m \u001b[1;32mfrom\u001b[0m \u001b[0mmatplotlib\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0m_api\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0manimation\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mcbook\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 25\u001b[0m \u001b[1;32mfrom\u001b[0m \u001b[0mmatplotlib\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcbook\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mls_mapper\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 26\u001b[0m \u001b[1;32mfrom\u001b[0m \u001b[0mmatplotlib\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcolors\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mColormap\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mis_color_like\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;31mImportError\u001b[0m: cannot import name 'animation' from partially initialized module 'matplotlib' (most likely due to a circular import) (C:\\winapp\\Miniconda3\\lib\\site-packages\\matplotlib\\__init__.py)" + "data": { + "application/javascript": "/* Put everything inside the global mpl namespace */\n/* global mpl */\nwindow.mpl = {};\n\nmpl.get_websocket_type = function () {\n if (typeof WebSocket !== 'undefined') {\n return WebSocket;\n } else if (typeof MozWebSocket !== 'undefined') {\n return MozWebSocket;\n } else {\n alert(\n 'Your browser does not have WebSocket support. ' +\n 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n 'Firefox 4 and 5 are also supported but you ' +\n 'have to enable WebSockets in about:config.'\n );\n }\n};\n\nmpl.figure = function (figure_id, websocket, ondownload, parent_element) {\n this.id = figure_id;\n\n this.ws = websocket;\n\n this.supports_binary = this.ws.binaryType !== undefined;\n\n if (!this.supports_binary) {\n var warnings = document.getElementById('mpl-warnings');\n if (warnings) {\n warnings.style.display = 'block';\n warnings.textContent =\n 'This browser does not support binary websocket messages. ' +\n 'Performance may be slow.';\n }\n }\n\n this.imageObj = new Image();\n\n this.context = undefined;\n this.message = undefined;\n this.canvas = undefined;\n this.rubberband_canvas = undefined;\n this.rubberband_context = undefined;\n this.format_dropdown = undefined;\n\n this.image_mode = 'full';\n\n this.root = document.createElement('div');\n this.root.setAttribute('style', 'display: inline-block');\n this._root_extra_style(this.root);\n\n parent_element.appendChild(this.root);\n\n this._init_header(this);\n this._init_canvas(this);\n this._init_toolbar(this);\n\n var fig = this;\n\n this.waiting = false;\n\n this.ws.onopen = function () {\n fig.send_message('supports_binary', { value: fig.supports_binary });\n fig.send_message('send_image_mode', {});\n if (fig.ratio !== 1) {\n fig.send_message('set_dpi_ratio', { dpi_ratio: fig.ratio });\n }\n fig.send_message('refresh', {});\n };\n\n this.imageObj.onload = function () {\n if (fig.image_mode === 'full') {\n // Full images could contain transparency (where diff images\n // almost always do), so we need to clear the canvas so that\n // there is no ghosting.\n fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n }\n fig.context.drawImage(fig.imageObj, 0, 0);\n };\n\n this.imageObj.onunload = function () {\n fig.ws.close();\n };\n\n this.ws.onmessage = this._make_on_message_function(this);\n\n this.ondownload = ondownload;\n};\n\nmpl.figure.prototype._init_header = function () {\n var titlebar = document.createElement('div');\n titlebar.classList =\n 'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n var titletext = document.createElement('div');\n titletext.classList = 'ui-dialog-title';\n titletext.setAttribute(\n 'style',\n 'width: 100%; text-align: center; padding: 3px;'\n );\n titlebar.appendChild(titletext);\n this.root.appendChild(titlebar);\n this.header = titletext;\n};\n\nmpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._init_canvas = function () {\n var fig = this;\n\n var canvas_div = (this.canvas_div = document.createElement('div'));\n canvas_div.setAttribute(\n 'style',\n 'border: 1px solid #ddd;' +\n 'box-sizing: content-box;' +\n 'clear: both;' +\n 'min-height: 1px;' +\n 'min-width: 1px;' +\n 'outline: 0;' +\n 'overflow: hidden;' +\n 'position: relative;' +\n 'resize: both;'\n );\n\n function on_keyboard_event_closure(name) {\n return function (event) {\n return fig.key_event(event, name);\n };\n }\n\n canvas_div.addEventListener(\n 'keydown',\n on_keyboard_event_closure('key_press')\n );\n canvas_div.addEventListener(\n 'keyup',\n on_keyboard_event_closure('key_release')\n );\n\n this._canvas_extra_style(canvas_div);\n this.root.appendChild(canvas_div);\n\n var canvas = (this.canvas = document.createElement('canvas'));\n canvas.classList.add('mpl-canvas');\n canvas.setAttribute('style', 'box-sizing: content-box;');\n\n this.context = canvas.getContext('2d');\n\n var backingStore =\n this.context.backingStorePixelRatio ||\n this.context.webkitBackingStorePixelRatio ||\n this.context.mozBackingStorePixelRatio ||\n this.context.msBackingStorePixelRatio ||\n this.context.oBackingStorePixelRatio ||\n this.context.backingStorePixelRatio ||\n 1;\n\n this.ratio = (window.devicePixelRatio || 1) / backingStore;\n\n var rubberband_canvas = (this.rubberband_canvas = document.createElement(\n 'canvas'\n ));\n rubberband_canvas.setAttribute(\n 'style',\n 'box-sizing: content-box; position: absolute; left: 0; top: 0; z-index: 1;'\n );\n\n // Apply a ponyfill if ResizeObserver is not implemented by browser.\n if (this.ResizeObserver === undefined) {\n if (window.ResizeObserver !== undefined) {\n this.ResizeObserver = window.ResizeObserver;\n } else {\n var obs = _JSXTOOLS_RESIZE_OBSERVER({});\n this.ResizeObserver = obs.ResizeObserver;\n }\n }\n\n this.resizeObserverInstance = new this.ResizeObserver(function (entries) {\n var nentries = entries.length;\n for (var i = 0; i < nentries; i++) {\n var entry = entries[i];\n var width, height;\n if (entry.contentBoxSize) {\n if (entry.contentBoxSize instanceof Array) {\n // Chrome 84 implements new version of spec.\n width = entry.contentBoxSize[0].inlineSize;\n height = entry.contentBoxSize[0].blockSize;\n } else {\n // Firefox implements old version of spec.\n width = entry.contentBoxSize.inlineSize;\n height = entry.contentBoxSize.blockSize;\n }\n } else {\n // Chrome <84 implements even older version of spec.\n width = entry.contentRect.width;\n height = entry.contentRect.height;\n }\n\n // Keep the size of the canvas and rubber band canvas in sync with\n // the canvas container.\n if (entry.devicePixelContentBoxSize) {\n // Chrome 84 implements new version of spec.\n canvas.setAttribute(\n 'width',\n entry.devicePixelContentBoxSize[0].inlineSize\n );\n canvas.setAttribute(\n 'height',\n entry.devicePixelContentBoxSize[0].blockSize\n );\n } else {\n canvas.setAttribute('width', width * fig.ratio);\n canvas.setAttribute('height', height * fig.ratio);\n }\n canvas.setAttribute(\n 'style',\n 'width: ' + width + 'px; height: ' + height + 'px;'\n );\n\n rubberband_canvas.setAttribute('width', width);\n rubberband_canvas.setAttribute('height', height);\n\n // And update the size in Python. We ignore the initial 0/0 size\n // that occurs as the element is placed into the DOM, which should\n // otherwise not happen due to the minimum size styling.\n if (fig.ws.readyState == 1 && width != 0 && height != 0) {\n fig.request_resize(width, height);\n }\n }\n });\n this.resizeObserverInstance.observe(canvas_div);\n\n function on_mouse_event_closure(name) {\n return function (event) {\n return fig.mouse_event(event, name);\n };\n }\n\n rubberband_canvas.addEventListener(\n 'mousedown',\n on_mouse_event_closure('button_press')\n );\n rubberband_canvas.addEventListener(\n 'mouseup',\n on_mouse_event_closure('button_release')\n );\n rubberband_canvas.addEventListener(\n 'dblclick',\n on_mouse_event_closure('dblclick')\n );\n // Throttle sequential mouse events to 1 every 20ms.\n rubberband_canvas.addEventListener(\n 'mousemove',\n on_mouse_event_closure('motion_notify')\n );\n\n rubberband_canvas.addEventListener(\n 'mouseenter',\n on_mouse_event_closure('figure_enter')\n );\n rubberband_canvas.addEventListener(\n 'mouseleave',\n on_mouse_event_closure('figure_leave')\n );\n\n canvas_div.addEventListener('wheel', function (event) {\n if (event.deltaY < 0) {\n event.step = 1;\n } else {\n event.step = -1;\n }\n on_mouse_event_closure('scroll')(event);\n });\n\n canvas_div.appendChild(canvas);\n canvas_div.appendChild(rubberband_canvas);\n\n this.rubberband_context = rubberband_canvas.getContext('2d');\n this.rubberband_context.strokeStyle = '#000000';\n\n this._resize_canvas = function (width, height, forward) {\n if (forward) {\n canvas_div.style.width = width + 'px';\n canvas_div.style.height = height + 'px';\n }\n };\n\n // Disable right mouse context menu.\n this.rubberband_canvas.addEventListener('contextmenu', function (_e) {\n event.preventDefault();\n return false;\n });\n\n function set_focus() {\n canvas.focus();\n canvas_div.focus();\n }\n\n window.setTimeout(set_focus, 100);\n};\n\nmpl.figure.prototype._init_toolbar = function () {\n var fig = this;\n\n var toolbar = document.createElement('div');\n toolbar.classList = 'mpl-toolbar';\n this.root.appendChild(toolbar);\n\n function on_click_closure(name) {\n return function (_event) {\n return fig.toolbar_button_onclick(name);\n };\n }\n\n function on_mouseover_closure(tooltip) {\n return function (event) {\n if (!event.currentTarget.disabled) {\n return fig.toolbar_button_onmouseover(tooltip);\n }\n };\n }\n\n fig.buttons = {};\n var buttonGroup = document.createElement('div');\n buttonGroup.classList = 'mpl-button-group';\n for (var toolbar_ind in mpl.toolbar_items) {\n var name = mpl.toolbar_items[toolbar_ind][0];\n var tooltip = mpl.toolbar_items[toolbar_ind][1];\n var image = mpl.toolbar_items[toolbar_ind][2];\n var method_name = mpl.toolbar_items[toolbar_ind][3];\n\n if (!name) {\n /* Instead of a spacer, we start a new button group. */\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n buttonGroup = document.createElement('div');\n buttonGroup.classList = 'mpl-button-group';\n continue;\n }\n\n var button = (fig.buttons[name] = document.createElement('button'));\n button.classList = 'mpl-widget';\n button.setAttribute('role', 'button');\n button.setAttribute('aria-disabled', 'false');\n button.addEventListener('click', on_click_closure(method_name));\n button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n\n var icon_img = document.createElement('img');\n icon_img.src = '_images/' + image + '.png';\n icon_img.srcset = '_images/' + image + '_large.png 2x';\n icon_img.alt = tooltip;\n button.appendChild(icon_img);\n\n buttonGroup.appendChild(button);\n }\n\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n\n var fmt_picker = document.createElement('select');\n fmt_picker.classList = 'mpl-widget';\n toolbar.appendChild(fmt_picker);\n this.format_dropdown = fmt_picker;\n\n for (var ind in mpl.extensions) {\n var fmt = mpl.extensions[ind];\n var option = document.createElement('option');\n option.selected = fmt === mpl.default_extension;\n option.innerHTML = fmt;\n fmt_picker.appendChild(option);\n }\n\n var status_bar = document.createElement('span');\n status_bar.classList = 'mpl-message';\n toolbar.appendChild(status_bar);\n this.message = status_bar;\n};\n\nmpl.figure.prototype.request_resize = function (x_pixels, y_pixels) {\n // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n // which will in turn request a refresh of the image.\n this.send_message('resize', { width: x_pixels, height: y_pixels });\n};\n\nmpl.figure.prototype.send_message = function (type, properties) {\n properties['type'] = type;\n properties['figure_id'] = this.id;\n this.ws.send(JSON.stringify(properties));\n};\n\nmpl.figure.prototype.send_draw_message = function () {\n if (!this.waiting) {\n this.waiting = true;\n this.ws.send(JSON.stringify({ type: 'draw', figure_id: this.id }));\n }\n};\n\nmpl.figure.prototype.handle_save = function (fig, _msg) {\n var format_dropdown = fig.format_dropdown;\n var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n fig.ondownload(fig, format);\n};\n\nmpl.figure.prototype.handle_resize = function (fig, msg) {\n var size = msg['size'];\n if (size[0] !== fig.canvas.width || size[1] !== fig.canvas.height) {\n fig._resize_canvas(size[0], size[1], msg['forward']);\n fig.send_message('refresh', {});\n }\n};\n\nmpl.figure.prototype.handle_rubberband = function (fig, msg) {\n var x0 = msg['x0'] / fig.ratio;\n var y0 = (fig.canvas.height - msg['y0']) / fig.ratio;\n var x1 = msg['x1'] / fig.ratio;\n var y1 = (fig.canvas.height - msg['y1']) / fig.ratio;\n x0 = Math.floor(x0) + 0.5;\n y0 = Math.floor(y0) + 0.5;\n x1 = Math.floor(x1) + 0.5;\n y1 = Math.floor(y1) + 0.5;\n var min_x = Math.min(x0, x1);\n var min_y = Math.min(y0, y1);\n var width = Math.abs(x1 - x0);\n var height = Math.abs(y1 - y0);\n\n fig.rubberband_context.clearRect(\n 0,\n 0,\n fig.canvas.width / fig.ratio,\n fig.canvas.height / fig.ratio\n );\n\n fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n};\n\nmpl.figure.prototype.handle_figure_label = function (fig, msg) {\n // Updates the figure title.\n fig.header.textContent = msg['label'];\n};\n\nmpl.figure.prototype.handle_cursor = function (fig, msg) {\n var cursor = msg['cursor'];\n switch (cursor) {\n case 0:\n cursor = 'pointer';\n break;\n case 1:\n cursor = 'default';\n break;\n case 2:\n cursor = 'crosshair';\n break;\n case 3:\n cursor = 'move';\n break;\n }\n fig.rubberband_canvas.style.cursor = cursor;\n};\n\nmpl.figure.prototype.handle_message = function (fig, msg) {\n fig.message.textContent = msg['message'];\n};\n\nmpl.figure.prototype.handle_draw = function (fig, _msg) {\n // Request the server to send over a new figure.\n fig.send_draw_message();\n};\n\nmpl.figure.prototype.handle_image_mode = function (fig, msg) {\n fig.image_mode = msg['mode'];\n};\n\nmpl.figure.prototype.handle_history_buttons = function (fig, msg) {\n for (var key in msg) {\n if (!(key in fig.buttons)) {\n continue;\n }\n fig.buttons[key].disabled = !msg[key];\n fig.buttons[key].setAttribute('aria-disabled', !msg[key]);\n }\n};\n\nmpl.figure.prototype.handle_navigate_mode = function (fig, msg) {\n if (msg['mode'] === 'PAN') {\n fig.buttons['Pan'].classList.add('active');\n fig.buttons['Zoom'].classList.remove('active');\n } else if (msg['mode'] === 'ZOOM') {\n fig.buttons['Pan'].classList.remove('active');\n fig.buttons['Zoom'].classList.add('active');\n } else {\n fig.buttons['Pan'].classList.remove('active');\n fig.buttons['Zoom'].classList.remove('active');\n }\n};\n\nmpl.figure.prototype.updated_canvas_event = function () {\n // Called whenever the canvas gets updated.\n this.send_message('ack', {});\n};\n\n// A function to construct a web socket function for onmessage handling.\n// Called in the figure constructor.\nmpl.figure.prototype._make_on_message_function = function (fig) {\n return function socket_on_message(evt) {\n if (evt.data instanceof Blob) {\n var img = evt.data;\n if (img.type !== 'image/png') {\n /* FIXME: We get \"Resource interpreted as Image but\n * transferred with MIME type text/plain:\" errors on\n * Chrome. But how to set the MIME type? It doesn't seem\n * to be part of the websocket stream */\n img.type = 'image/png';\n }\n\n /* Free the memory for the previous frames */\n if (fig.imageObj.src) {\n (window.URL || window.webkitURL).revokeObjectURL(\n fig.imageObj.src\n );\n }\n\n fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n img\n );\n fig.updated_canvas_event();\n fig.waiting = false;\n return;\n } else if (\n typeof evt.data === 'string' &&\n evt.data.slice(0, 21) === 'data:image/png;base64'\n ) {\n fig.imageObj.src = evt.data;\n fig.updated_canvas_event();\n fig.waiting = false;\n return;\n }\n\n var msg = JSON.parse(evt.data);\n var msg_type = msg['type'];\n\n // Call the \"handle_{type}\" callback, which takes\n // the figure and JSON message as its only arguments.\n try {\n var callback = fig['handle_' + msg_type];\n } catch (e) {\n console.log(\n \"No handler for the '\" + msg_type + \"' message type: \",\n msg\n );\n return;\n }\n\n if (callback) {\n try {\n // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n callback(fig, msg);\n } catch (e) {\n console.log(\n \"Exception inside the 'handler_\" + msg_type + \"' callback:\",\n e,\n e.stack,\n msg\n );\n }\n }\n };\n};\n\n// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\nmpl.findpos = function (e) {\n //this section is from http://www.quirksmode.org/js/events_properties.html\n var targ;\n if (!e) {\n e = window.event;\n }\n if (e.target) {\n targ = e.target;\n } else if (e.srcElement) {\n targ = e.srcElement;\n }\n if (targ.nodeType === 3) {\n // defeat Safari bug\n targ = targ.parentNode;\n }\n\n // pageX,Y are the mouse positions relative to the document\n var boundingRect = targ.getBoundingClientRect();\n var x = e.pageX - (boundingRect.left + document.body.scrollLeft);\n var y = e.pageY - (boundingRect.top + document.body.scrollTop);\n\n return { x: x, y: y };\n};\n\n/*\n * return a copy of an object with only non-object keys\n * we need this to avoid circular references\n * http://stackoverflow.com/a/24161582/3208463\n */\nfunction simpleKeys(original) {\n return Object.keys(original).reduce(function (obj, key) {\n if (typeof original[key] !== 'object') {\n obj[key] = original[key];\n }\n return obj;\n }, {});\n}\n\nmpl.figure.prototype.mouse_event = function (event, name) {\n var canvas_pos = mpl.findpos(event);\n\n if (name === 'button_press') {\n this.canvas.focus();\n this.canvas_div.focus();\n }\n\n var x = canvas_pos.x * this.ratio;\n var y = canvas_pos.y * this.ratio;\n\n this.send_message(name, {\n x: x,\n y: y,\n button: event.button,\n step: event.step,\n guiEvent: simpleKeys(event),\n });\n\n /* This prevents the web browser from automatically changing to\n * the text insertion cursor when the button is pressed. We want\n * to control all of the cursor setting manually through the\n * 'cursor' event from matplotlib */\n event.preventDefault();\n return false;\n};\n\nmpl.figure.prototype._key_event_extra = function (_event, _name) {\n // Handle any extra behaviour associated with a key event\n};\n\nmpl.figure.prototype.key_event = function (event, name) {\n // Prevent repeat events\n if (name === 'key_press') {\n if (event.key === this._key) {\n return;\n } else {\n this._key = event.key;\n }\n }\n if (name === 'key_release') {\n this._key = null;\n }\n\n var value = '';\n if (event.ctrlKey && event.key !== 'Control') {\n value += 'ctrl+';\n }\n else if (event.altKey && event.key !== 'Alt') {\n value += 'alt+';\n }\n else if (event.shiftKey && event.key !== 'Shift') {\n value += 'shift+';\n }\n\n value += 'k' + event.key;\n\n this._key_event_extra(event, name);\n\n this.send_message(name, { key: value, guiEvent: simpleKeys(event) });\n return false;\n};\n\nmpl.figure.prototype.toolbar_button_onclick = function (name) {\n if (name === 'download') {\n this.handle_save(this, null);\n } else {\n this.send_message('toolbar_button', { name: name });\n }\n};\n\nmpl.figure.prototype.toolbar_button_onmouseover = function (tooltip) {\n this.message.textContent = tooltip;\n};\n\n///////////////// REMAINING CONTENT GENERATED BY embed_js.py /////////////////\n// prettier-ignore\nvar _JSXTOOLS_RESIZE_OBSERVER=function(A){var t,i=new WeakMap,n=new WeakMap,a=new WeakMap,r=new WeakMap,o=new Set;function s(e){if(!(this instanceof s))throw new TypeError(\"Constructor requires 'new' operator\");i.set(this,e)}function h(){throw new TypeError(\"Function is not a constructor\")}function c(e,t,i,n){e=0 in arguments?Number(arguments[0]):0,t=1 in arguments?Number(arguments[1]):0,i=2 in arguments?Number(arguments[2]):0,n=3 in arguments?Number(arguments[3]):0,this.right=(this.x=this.left=e)+(this.width=i),this.bottom=(this.y=this.top=t)+(this.height=n),Object.freeze(this)}function d(){t=requestAnimationFrame(d);var s=new WeakMap,p=new Set;o.forEach((function(t){r.get(t).forEach((function(i){var r=t instanceof window.SVGElement,o=a.get(t),d=r?0:parseFloat(o.paddingTop),f=r?0:parseFloat(o.paddingRight),l=r?0:parseFloat(o.paddingBottom),u=r?0:parseFloat(o.paddingLeft),g=r?0:parseFloat(o.borderTopWidth),m=r?0:parseFloat(o.borderRightWidth),w=r?0:parseFloat(o.borderBottomWidth),b=u+f,F=d+l,v=(r?0:parseFloat(o.borderLeftWidth))+m,W=g+w,y=r?0:t.offsetHeight-W-t.clientHeight,E=r?0:t.offsetWidth-v-t.clientWidth,R=b+v,z=F+W,M=r?t.width:parseFloat(o.width)-R-E,O=r?t.height:parseFloat(o.height)-z-y;if(n.has(t)){var k=n.get(t);if(k[0]===M&&k[1]===O)return}n.set(t,[M,O]);var S=Object.create(h.prototype);S.target=t,S.contentRect=new c(u,d,M,O),s.has(i)||(s.set(i,[]),p.add(i)),s.get(i).push(S)}))})),p.forEach((function(e){i.get(e).call(e,s.get(e),e)}))}return s.prototype.observe=function(i){if(i instanceof window.Element){r.has(i)||(r.set(i,new Set),o.add(i),a.set(i,window.getComputedStyle(i)));var n=r.get(i);n.has(this)||n.add(this),cancelAnimationFrame(t),t=requestAnimationFrame(d)}},s.prototype.unobserve=function(i){if(i instanceof window.Element&&r.has(i)){var n=r.get(i);n.has(this)&&(n.delete(this),n.size||(r.delete(i),o.delete(i))),n.size||r.delete(i),o.size||cancelAnimationFrame(t)}},A.DOMRectReadOnly=c,A.ResizeObserver=s,A.ResizeObserverEntry=h,A}; // eslint-disable-line\nmpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Left button pans, Right button zooms\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n\nmpl.extensions = [\"eps\", \"jpeg\", \"pgf\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\"];\n\nmpl.default_extension = \"png\";/* global mpl */\n\nvar comm_websocket_adapter = function (comm) {\n // Create a \"websocket\"-like object which calls the given IPython comm\n // object with the appropriate methods. Currently this is a non binary\n // socket, so there is still some room for performance tuning.\n var ws = {};\n\n ws.binaryType = comm.kernel.ws.binaryType;\n ws.readyState = comm.kernel.ws.readyState;\n function updateReadyState(_event) {\n if (comm.kernel.ws) {\n ws.readyState = comm.kernel.ws.readyState;\n } else {\n ws.readyState = 3; // Closed state.\n }\n }\n comm.kernel.ws.addEventListener('open', updateReadyState);\n comm.kernel.ws.addEventListener('close', updateReadyState);\n comm.kernel.ws.addEventListener('error', updateReadyState);\n\n ws.close = function () {\n comm.close();\n };\n ws.send = function (m) {\n //console.log('sending', m);\n comm.send(m);\n };\n // Register the callback with on_msg.\n comm.on_msg(function (msg) {\n //console.log('receiving', msg['content']['data'], msg);\n var data = msg['content']['data'];\n if (data['blob'] !== undefined) {\n data = {\n data: new Blob(msg['buffers'], { type: data['blob'] }),\n };\n }\n // Pass the mpl event to the overridden (by mpl) onmessage function.\n ws.onmessage(data);\n });\n return ws;\n};\n\nmpl.mpl_figure_comm = function (comm, msg) {\n // This is the function which gets called when the mpl process\n // starts-up an IPython Comm through the \"matplotlib\" channel.\n\n var id = msg.content.data.id;\n // Get hold of the div created by the display call when the Comm\n // socket was opened in Python.\n var element = document.getElementById(id);\n var ws_proxy = comm_websocket_adapter(comm);\n\n function ondownload(figure, _format) {\n window.open(figure.canvas.toDataURL());\n }\n\n var fig = new mpl.figure(id, ws_proxy, ondownload, element);\n\n // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n // web socket which is closed, not our websocket->open comm proxy.\n ws_proxy.onopen();\n\n fig.parent_element = element;\n fig.cell_info = mpl.find_output_cell(\"

\");\n if (!fig.cell_info) {\n console.error('Failed to find cell for figure', id, fig);\n return;\n }\n fig.cell_info[0].output_area.element.on(\n 'cleared',\n { fig: fig },\n fig._remove_fig_handler\n );\n};\n\nmpl.figure.prototype.handle_close = function (fig, msg) {\n var width = fig.canvas.width / fig.ratio;\n fig.cell_info[0].output_area.element.off(\n 'cleared',\n fig._remove_fig_handler\n );\n fig.resizeObserverInstance.unobserve(fig.canvas_div);\n\n // Update the output cell to use the data from the current canvas.\n fig.push_to_output();\n var dataURL = fig.canvas.toDataURL();\n // Re-enable the keyboard manager in IPython - without this line, in FF,\n // the notebook keyboard shortcuts fail.\n IPython.keyboard_manager.enable();\n fig.parent_element.innerHTML =\n '';\n fig.close_ws(fig, msg);\n};\n\nmpl.figure.prototype.close_ws = function (fig, msg) {\n fig.send_message('closing', msg);\n // fig.ws.close()\n};\n\nmpl.figure.prototype.push_to_output = function (_remove_interactive) {\n // Turn the data on the canvas into data in the output cell.\n var width = this.canvas.width / this.ratio;\n var dataURL = this.canvas.toDataURL();\n this.cell_info[1]['text/html'] =\n '';\n};\n\nmpl.figure.prototype.updated_canvas_event = function () {\n // Tell IPython that the notebook contents must change.\n IPython.notebook.set_dirty(true);\n this.send_message('ack', {});\n var fig = this;\n // Wait a second, then push the new image to the DOM so\n // that it is saved nicely (might be nice to debounce this).\n setTimeout(function () {\n fig.push_to_output();\n }, 1000);\n};\n\nmpl.figure.prototype._init_toolbar = function () {\n var fig = this;\n\n var toolbar = document.createElement('div');\n toolbar.classList = 'btn-toolbar';\n this.root.appendChild(toolbar);\n\n function on_click_closure(name) {\n return function (_event) {\n return fig.toolbar_button_onclick(name);\n };\n }\n\n function on_mouseover_closure(tooltip) {\n return function (event) {\n if (!event.currentTarget.disabled) {\n return fig.toolbar_button_onmouseover(tooltip);\n }\n };\n }\n\n fig.buttons = {};\n var buttonGroup = document.createElement('div');\n buttonGroup.classList = 'btn-group';\n var button;\n for (var toolbar_ind in mpl.toolbar_items) {\n var name = mpl.toolbar_items[toolbar_ind][0];\n var tooltip = mpl.toolbar_items[toolbar_ind][1];\n var image = mpl.toolbar_items[toolbar_ind][2];\n var method_name = mpl.toolbar_items[toolbar_ind][3];\n\n if (!name) {\n /* Instead of a spacer, we start a new button group. */\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n buttonGroup = document.createElement('div');\n buttonGroup.classList = 'btn-group';\n continue;\n }\n\n button = fig.buttons[name] = document.createElement('button');\n button.classList = 'btn btn-default';\n button.href = '#';\n button.title = name;\n button.innerHTML = '';\n button.addEventListener('click', on_click_closure(method_name));\n button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n buttonGroup.appendChild(button);\n }\n\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n\n // Add the status bar.\n var status_bar = document.createElement('span');\n status_bar.classList = 'mpl-message pull-right';\n toolbar.appendChild(status_bar);\n this.message = status_bar;\n\n // Add the close button to the window.\n var buttongrp = document.createElement('div');\n buttongrp.classList = 'btn-group inline pull-right';\n button = document.createElement('button');\n button.classList = 'btn btn-mini btn-primary';\n button.href = '#';\n button.title = 'Stop Interaction';\n button.innerHTML = '';\n button.addEventListener('click', function (_evt) {\n fig.handle_close(fig, {});\n });\n button.addEventListener(\n 'mouseover',\n on_mouseover_closure('Stop Interaction')\n );\n buttongrp.appendChild(button);\n var titlebar = this.root.querySelector('.ui-dialog-titlebar');\n titlebar.insertBefore(buttongrp, titlebar.firstChild);\n};\n\nmpl.figure.prototype._remove_fig_handler = function (event) {\n var fig = event.data.fig;\n if (event.target !== this) {\n // Ignore bubbled events from children.\n return;\n }\n fig.close_ws(fig, {});\n};\n\nmpl.figure.prototype._root_extra_style = function (el) {\n el.style.boxSizing = 'content-box'; // override notebook setting of border-box.\n};\n\nmpl.figure.prototype._canvas_extra_style = function (el) {\n // this is important to make the div 'focusable\n el.setAttribute('tabindex', 0);\n // reach out to IPython and tell the keyboard manager to turn it's self\n // off when our div gets focus\n\n // location in version 3\n if (IPython.notebook.keyboard_manager) {\n IPython.notebook.keyboard_manager.register_events(el);\n } else {\n // location in version 2\n IPython.keyboard_manager.register_events(el);\n }\n};\n\nmpl.figure.prototype._key_event_extra = function (event, _name) {\n var manager = IPython.notebook.keyboard_manager;\n if (!manager) {\n manager = IPython.keyboard_manager;\n }\n\n // Check for shift+enter\n if (event.shiftKey && event.which === 13) {\n this.canvas_div.blur();\n // select the cell after this one\n var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n IPython.notebook.select(index + 1);\n }\n};\n\nmpl.figure.prototype.handle_save = function (fig, _msg) {\n fig.ondownload(fig, null);\n};\n\nmpl.find_output_cell = function (html_output) {\n // Return the cell and output element which can be found *uniquely* in the notebook.\n // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n // IPython event is triggered only after the cells have been serialised, which for\n // our purposes (turning an active figure into a static one), is too late.\n var cells = IPython.notebook.get_cells();\n var ncells = cells.length;\n for (var i = 0; i < ncells; i++) {\n var cell = cells[i];\n if (cell.cell_type === 'code') {\n for (var j = 0; j < cell.output_area.outputs.length; j++) {\n var data = cell.output_area.outputs[j];\n if (data.data) {\n // IPython >= 3 moved mimebundle to data attribute of output\n data = data.data;\n }\n if (data['text/html'] === html_output) {\n return [cell, data, j];\n }\n }\n }\n }\n};\n\n// Register the function which deals with the matplotlib target/channel.\n// The kernel may be null if the page has been refreshed.\nif (IPython.notebook.kernel !== null) {\n IPython.notebook.kernel.comm_manager.register_target(\n 'matplotlib',\n mpl.mpl_figure_comm\n );\n}\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot_dataset('Scatterplot of the training data', train_x, train_labels)\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[ 1.3382818 -0.98613256]\n", + " [ 0.5128146 0.43299454]\n", + " [-0.4473693 -0.2680512 ]\n", + " [-0.9865851 -0.28692 ]\n", + " [-1.0693829 0.41718036]]\n", + "[1 1 0 0 0]\n" ] } ], - "metadata": { - "slideshow": { - "slide_type": "skip" - } - } - }, - { - "cell_type": "markdown", "source": [ - "## Sample Dataset\r\n", - "\r\n", - "As before, we will start with a simple sample dataset with two parameters.|\r\n" - ], - "metadata": { - "slideshow": { - "slide_type": "slide" - } - } - }, - { - "cell_type": "code", - "execution_count": null, - "source": [ - "n = 100\r\n", - "X, Y = make_classification(n_samples = n, n_features=2,\r\n", - " n_redundant=0, n_informative=2, flip_y=0.2)\r\n", - "X = X.astype(np.float32)\r\n", - "Y = Y.astype(np.int32)\r\n", - "\r\n", - "# Разбиваем на обучающую и тестовые выборки\r\n", - "train_x, test_x = np.split(X, [n*8//10])\r\n", - "train_labels, test_labels = np.split(Y, [n*8//10])" - ], - "outputs": [], - "metadata": { - "scrolled": false, - "slideshow": { - "slide_type": "slide" - } - } - }, - { - "cell_type": "code", - "execution_count": null, - "source": [ - "def plot_dataset(suptitle, features, labels):\r\n", - " # prepare the plot\r\n", - " fig, ax = plt.subplots(1, 1)\r\n", - " #pylab.subplots_adjust(bottom=0.2, wspace=0.4)\r\n", - " fig.suptitle(suptitle, fontsize = 16)\r\n", - " ax.set_xlabel('$x_i[0]$ -- (feature 1)')\r\n", - " ax.set_ylabel('$x_i[1]$ -- (feature 2)')\r\n", - "\r\n", - " colors = ['r' if l else 'b' for l in labels]\r\n", - " ax.scatter(features[:, 0], features[:, 1], marker='o', c=colors, s=100, alpha = 0.5)\r\n", - " fig.show()" - ], - "outputs": [], - "metadata": { - "scrolled": false, - "slideshow": { - "slide_type": "skip" - } - } - }, - { - "cell_type": "code", - "execution_count": null, - "source": [ - "plot_dataset('Scatterplot of the training data', train_x, train_labels)\r\n", - "plt.show()" - ], - "outputs": [], - "metadata": { - "scrolled": false, - "slideshow": { - "slide_type": "slide" - } - } - }, - { - "cell_type": "code", - "execution_count": null, - "source": [ - "print(train_x[:5])\r\n", + "print(train_x[:5])\n", "print(train_labels[:5])" - ], - "outputs": [], - "metadata": {} + ] }, { "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, "source": [ - "## Machine Learning Problem\r\n", - "\r\n", - "Suppose we have input dataset $\\langle X,Y\\rangle$, where $X$ is a set of features, and $Y$ - corresponding labels. For regression problem, $y_i\\in\\mathbb{R}$, and for classification is is represented by a class number $y_i\\in\\{0,\\dots,n\\}$. \r\n", - "\r\n", - "Any machine learning model can be represented by function $f_\\theta(x)$, where $\\theta$ is a set of **parameters**. Our goal is to find such parameters $\\theta$ that our model fits the dataset in the best way. The criteria is defined by **loss function** $\\mathcal{L}$:\r\n", - "\r\n", - "$$\r\n", - "\\theta = \\mathrm{argmin}_\\theta \\mathcal{L}(f_\\theta(X),Y)\r\n", + "## Machine Learning Problem\n", + "\n", + "Suppose we have input dataset $\\langle X,Y\\rangle$, where $X$ is a set of features, and $Y$ - corresponding labels. For regression problem, $y_i\\in\\mathbb{R}$, and for classification it is represented by a class number $y_i\\in\\{0,\\dots,n\\}$. \n", + "\n", + "Any machine learning model can be represented by function $f_\\theta(x)$, where $\\theta$ is a set of **parameters**. Our goal is to find such parameters $\\theta$ that our model fits the dataset in the best way. The criteria is defined by **loss function** $\\mathcal{L}$, and we need to find optimal value\n", + "\n", + "$$\n", + "\\theta = \\mathrm{argmin}_\\theta \\mathcal{L}(f_\\theta(X),Y)\n", "$$" - ], + ] + }, + { + "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } - } - }, - { - "cell_type": "markdown", - "source": [], - "metadata": {} - }, - { - "cell_type": "markdown", + }, "source": [ - "Loss functions depend on the problem being solved.\r\n", - "\r\n", - "### Loss functions for regression\r\n", - "\r\n", + "Loss function depends on the problem being solved.\n", + "\n", + "### Loss functions for regression\n", + "\n", "For regression, we often use **abosolute error** $\\mathcal{L}_{abs}(\\theta) = \\sum_{i=1}^n |y_i - f_{\\theta}(x_i)|$, or **mean squared error**: $\\mathcal{L}_{sq}(\\theta) = \\sum_{i=1}^n (y_i - f_{\\theta}(x_i))^2$" - ], - "metadata": { - "slideshow": { - "slide_type": "slide" - } - } + ] }, { "cell_type": "code", - "execution_count": null, - "source": [ - "# helper function for plotting various loss functions\r\n", - "def plot_loss_functions(suptitle, functions, ylabels, xlabel):\r\n", - " fig, ax = plt.subplots(1,len(functions), figsize=(9, 3))\r\n", - " plt.subplots_adjust(bottom=0.2, wspace=0.4)\r\n", - " fig.suptitle(suptitle)\r\n", - " for i, fun in enumerate(functions):\r\n", - " ax[i].set_xlabel(xlabel)\r\n", - " if len(ylabels) > i:\r\n", - " ax[i].set_ylabel(ylabels[i])\r\n", - " ax[i].plot(x, fun)\r\n", - " plt.show()" - ], - "outputs": [], + "execution_count": 19, "metadata": { "slideshow": { "slide_type": "skip" } - } + }, + "outputs": [], + "source": [ + "# helper function for plotting various loss functions\n", + "def plot_loss_functions(suptitle, functions, ylabels, xlabel):\n", + " fig, ax = plt.subplots(1,len(functions), figsize=(9, 3))\n", + " plt.subplots_adjust(bottom=0.2, wspace=0.4)\n", + " fig.suptitle(suptitle)\n", + " for i, fun in enumerate(functions):\n", + " ax[i].set_xlabel(xlabel)\n", + " if len(ylabels) > i:\n", + " ax[i].set_ylabel(ylabels[i])\n", + " ax[i].plot(x, fun)\n", + " plt.show()" + ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 20, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [ + { + "data": { + "application/javascript": "/* Put everything inside the global mpl namespace */\n/* global mpl */\nwindow.mpl = {};\n\nmpl.get_websocket_type = function () {\n if (typeof WebSocket !== 'undefined') {\n return WebSocket;\n } else if (typeof MozWebSocket !== 'undefined') {\n return MozWebSocket;\n } else {\n alert(\n 'Your browser does not have WebSocket support. ' +\n 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n 'Firefox 4 and 5 are also supported but you ' +\n 'have to enable WebSockets in about:config.'\n );\n }\n};\n\nmpl.figure = function (figure_id, websocket, ondownload, parent_element) {\n this.id = figure_id;\n\n this.ws = websocket;\n\n this.supports_binary = this.ws.binaryType !== undefined;\n\n if (!this.supports_binary) {\n var warnings = document.getElementById('mpl-warnings');\n if (warnings) {\n warnings.style.display = 'block';\n warnings.textContent =\n 'This browser does not support binary websocket messages. ' +\n 'Performance may be slow.';\n }\n }\n\n this.imageObj = new Image();\n\n this.context = undefined;\n this.message = undefined;\n this.canvas = undefined;\n this.rubberband_canvas = undefined;\n this.rubberband_context = undefined;\n this.format_dropdown = undefined;\n\n this.image_mode = 'full';\n\n this.root = document.createElement('div');\n this.root.setAttribute('style', 'display: inline-block');\n this._root_extra_style(this.root);\n\n parent_element.appendChild(this.root);\n\n this._init_header(this);\n this._init_canvas(this);\n this._init_toolbar(this);\n\n var fig = this;\n\n this.waiting = false;\n\n this.ws.onopen = function () {\n fig.send_message('supports_binary', { value: fig.supports_binary });\n fig.send_message('send_image_mode', {});\n if (fig.ratio !== 1) {\n fig.send_message('set_dpi_ratio', { dpi_ratio: fig.ratio });\n }\n fig.send_message('refresh', {});\n };\n\n this.imageObj.onload = function () {\n if (fig.image_mode === 'full') {\n // Full images could contain transparency (where diff images\n // almost always do), so we need to clear the canvas so that\n // there is no ghosting.\n fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n }\n fig.context.drawImage(fig.imageObj, 0, 0);\n };\n\n this.imageObj.onunload = function () {\n fig.ws.close();\n };\n\n this.ws.onmessage = this._make_on_message_function(this);\n\n this.ondownload = ondownload;\n};\n\nmpl.figure.prototype._init_header = function () {\n var titlebar = document.createElement('div');\n titlebar.classList =\n 'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n var titletext = document.createElement('div');\n titletext.classList = 'ui-dialog-title';\n titletext.setAttribute(\n 'style',\n 'width: 100%; text-align: center; padding: 3px;'\n );\n titlebar.appendChild(titletext);\n this.root.appendChild(titlebar);\n this.header = titletext;\n};\n\nmpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._init_canvas = function () {\n var fig = this;\n\n var canvas_div = (this.canvas_div = document.createElement('div'));\n canvas_div.setAttribute(\n 'style',\n 'border: 1px solid #ddd;' +\n 'box-sizing: content-box;' +\n 'clear: both;' +\n 'min-height: 1px;' +\n 'min-width: 1px;' +\n 'outline: 0;' +\n 'overflow: hidden;' +\n 'position: relative;' +\n 'resize: both;'\n );\n\n function on_keyboard_event_closure(name) {\n return function (event) {\n return fig.key_event(event, name);\n };\n }\n\n canvas_div.addEventListener(\n 'keydown',\n on_keyboard_event_closure('key_press')\n );\n canvas_div.addEventListener(\n 'keyup',\n on_keyboard_event_closure('key_release')\n );\n\n this._canvas_extra_style(canvas_div);\n this.root.appendChild(canvas_div);\n\n var canvas = (this.canvas = document.createElement('canvas'));\n canvas.classList.add('mpl-canvas');\n canvas.setAttribute('style', 'box-sizing: content-box;');\n\n this.context = canvas.getContext('2d');\n\n var backingStore =\n this.context.backingStorePixelRatio ||\n this.context.webkitBackingStorePixelRatio ||\n this.context.mozBackingStorePixelRatio ||\n this.context.msBackingStorePixelRatio ||\n this.context.oBackingStorePixelRatio ||\n this.context.backingStorePixelRatio ||\n 1;\n\n this.ratio = (window.devicePixelRatio || 1) / backingStore;\n\n var rubberband_canvas = (this.rubberband_canvas = document.createElement(\n 'canvas'\n ));\n rubberband_canvas.setAttribute(\n 'style',\n 'box-sizing: content-box; position: absolute; left: 0; top: 0; z-index: 1;'\n );\n\n // Apply a ponyfill if ResizeObserver is not implemented by browser.\n if (this.ResizeObserver === undefined) {\n if (window.ResizeObserver !== undefined) {\n this.ResizeObserver = window.ResizeObserver;\n } else {\n var obs = _JSXTOOLS_RESIZE_OBSERVER({});\n this.ResizeObserver = obs.ResizeObserver;\n }\n }\n\n this.resizeObserverInstance = new this.ResizeObserver(function (entries) {\n var nentries = entries.length;\n for (var i = 0; i < nentries; i++) {\n var entry = entries[i];\n var width, height;\n if (entry.contentBoxSize) {\n if (entry.contentBoxSize instanceof Array) {\n // Chrome 84 implements new version of spec.\n width = entry.contentBoxSize[0].inlineSize;\n height = entry.contentBoxSize[0].blockSize;\n } else {\n // Firefox implements old version of spec.\n width = entry.contentBoxSize.inlineSize;\n height = entry.contentBoxSize.blockSize;\n }\n } else {\n // Chrome <84 implements even older version of spec.\n width = entry.contentRect.width;\n height = entry.contentRect.height;\n }\n\n // Keep the size of the canvas and rubber band canvas in sync with\n // the canvas container.\n if (entry.devicePixelContentBoxSize) {\n // Chrome 84 implements new version of spec.\n canvas.setAttribute(\n 'width',\n entry.devicePixelContentBoxSize[0].inlineSize\n );\n canvas.setAttribute(\n 'height',\n entry.devicePixelContentBoxSize[0].blockSize\n );\n } else {\n canvas.setAttribute('width', width * fig.ratio);\n canvas.setAttribute('height', height * fig.ratio);\n }\n canvas.setAttribute(\n 'style',\n 'width: ' + width + 'px; height: ' + height + 'px;'\n );\n\n rubberband_canvas.setAttribute('width', width);\n rubberband_canvas.setAttribute('height', height);\n\n // And update the size in Python. We ignore the initial 0/0 size\n // that occurs as the element is placed into the DOM, which should\n // otherwise not happen due to the minimum size styling.\n if (fig.ws.readyState == 1 && width != 0 && height != 0) {\n fig.request_resize(width, height);\n }\n }\n });\n this.resizeObserverInstance.observe(canvas_div);\n\n function on_mouse_event_closure(name) {\n return function (event) {\n return fig.mouse_event(event, name);\n };\n }\n\n rubberband_canvas.addEventListener(\n 'mousedown',\n on_mouse_event_closure('button_press')\n );\n rubberband_canvas.addEventListener(\n 'mouseup',\n on_mouse_event_closure('button_release')\n );\n rubberband_canvas.addEventListener(\n 'dblclick',\n on_mouse_event_closure('dblclick')\n );\n // Throttle sequential mouse events to 1 every 20ms.\n rubberband_canvas.addEventListener(\n 'mousemove',\n on_mouse_event_closure('motion_notify')\n );\n\n rubberband_canvas.addEventListener(\n 'mouseenter',\n on_mouse_event_closure('figure_enter')\n );\n rubberband_canvas.addEventListener(\n 'mouseleave',\n on_mouse_event_closure('figure_leave')\n );\n\n canvas_div.addEventListener('wheel', function (event) {\n if (event.deltaY < 0) {\n event.step = 1;\n } else {\n event.step = -1;\n }\n on_mouse_event_closure('scroll')(event);\n });\n\n canvas_div.appendChild(canvas);\n canvas_div.appendChild(rubberband_canvas);\n\n this.rubberband_context = rubberband_canvas.getContext('2d');\n this.rubberband_context.strokeStyle = '#000000';\n\n this._resize_canvas = function (width, height, forward) {\n if (forward) {\n canvas_div.style.width = width + 'px';\n canvas_div.style.height = height + 'px';\n }\n };\n\n // Disable right mouse context menu.\n this.rubberband_canvas.addEventListener('contextmenu', function (_e) {\n event.preventDefault();\n return false;\n });\n\n function set_focus() {\n canvas.focus();\n canvas_div.focus();\n }\n\n window.setTimeout(set_focus, 100);\n};\n\nmpl.figure.prototype._init_toolbar = function () {\n var fig = this;\n\n var toolbar = document.createElement('div');\n toolbar.classList = 'mpl-toolbar';\n this.root.appendChild(toolbar);\n\n function on_click_closure(name) {\n return function (_event) {\n return fig.toolbar_button_onclick(name);\n };\n }\n\n function on_mouseover_closure(tooltip) {\n return function (event) {\n if (!event.currentTarget.disabled) {\n return fig.toolbar_button_onmouseover(tooltip);\n }\n };\n }\n\n fig.buttons = {};\n var buttonGroup = document.createElement('div');\n buttonGroup.classList = 'mpl-button-group';\n for (var toolbar_ind in mpl.toolbar_items) {\n var name = mpl.toolbar_items[toolbar_ind][0];\n var tooltip = mpl.toolbar_items[toolbar_ind][1];\n var image = mpl.toolbar_items[toolbar_ind][2];\n var method_name = mpl.toolbar_items[toolbar_ind][3];\n\n if (!name) {\n /* Instead of a spacer, we start a new button group. */\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n buttonGroup = document.createElement('div');\n buttonGroup.classList = 'mpl-button-group';\n continue;\n }\n\n var button = (fig.buttons[name] = document.createElement('button'));\n button.classList = 'mpl-widget';\n button.setAttribute('role', 'button');\n button.setAttribute('aria-disabled', 'false');\n button.addEventListener('click', on_click_closure(method_name));\n button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n\n var icon_img = document.createElement('img');\n icon_img.src = '_images/' + image + '.png';\n icon_img.srcset = '_images/' + image + '_large.png 2x';\n icon_img.alt = tooltip;\n button.appendChild(icon_img);\n\n buttonGroup.appendChild(button);\n }\n\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n\n var fmt_picker = document.createElement('select');\n fmt_picker.classList = 'mpl-widget';\n toolbar.appendChild(fmt_picker);\n this.format_dropdown = fmt_picker;\n\n for (var ind in mpl.extensions) {\n var fmt = mpl.extensions[ind];\n var option = document.createElement('option');\n option.selected = fmt === mpl.default_extension;\n option.innerHTML = fmt;\n fmt_picker.appendChild(option);\n }\n\n var status_bar = document.createElement('span');\n status_bar.classList = 'mpl-message';\n toolbar.appendChild(status_bar);\n this.message = status_bar;\n};\n\nmpl.figure.prototype.request_resize = function (x_pixels, y_pixels) {\n // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n // which will in turn request a refresh of the image.\n this.send_message('resize', { width: x_pixels, height: y_pixels });\n};\n\nmpl.figure.prototype.send_message = function (type, properties) {\n properties['type'] = type;\n properties['figure_id'] = this.id;\n this.ws.send(JSON.stringify(properties));\n};\n\nmpl.figure.prototype.send_draw_message = function () {\n if (!this.waiting) {\n this.waiting = true;\n this.ws.send(JSON.stringify({ type: 'draw', figure_id: this.id }));\n }\n};\n\nmpl.figure.prototype.handle_save = function (fig, _msg) {\n var format_dropdown = fig.format_dropdown;\n var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n fig.ondownload(fig, format);\n};\n\nmpl.figure.prototype.handle_resize = function (fig, msg) {\n var size = msg['size'];\n if (size[0] !== fig.canvas.width || size[1] !== fig.canvas.height) {\n fig._resize_canvas(size[0], size[1], msg['forward']);\n fig.send_message('refresh', {});\n }\n};\n\nmpl.figure.prototype.handle_rubberband = function (fig, msg) {\n var x0 = msg['x0'] / fig.ratio;\n var y0 = (fig.canvas.height - msg['y0']) / fig.ratio;\n var x1 = msg['x1'] / fig.ratio;\n var y1 = (fig.canvas.height - msg['y1']) / fig.ratio;\n x0 = Math.floor(x0) + 0.5;\n y0 = Math.floor(y0) + 0.5;\n x1 = Math.floor(x1) + 0.5;\n y1 = Math.floor(y1) + 0.5;\n var min_x = Math.min(x0, x1);\n var min_y = Math.min(y0, y1);\n var width = Math.abs(x1 - x0);\n var height = Math.abs(y1 - y0);\n\n fig.rubberband_context.clearRect(\n 0,\n 0,\n fig.canvas.width / fig.ratio,\n fig.canvas.height / fig.ratio\n );\n\n fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n};\n\nmpl.figure.prototype.handle_figure_label = function (fig, msg) {\n // Updates the figure title.\n fig.header.textContent = msg['label'];\n};\n\nmpl.figure.prototype.handle_cursor = function (fig, msg) {\n var cursor = msg['cursor'];\n switch (cursor) {\n case 0:\n cursor = 'pointer';\n break;\n case 1:\n cursor = 'default';\n break;\n case 2:\n cursor = 'crosshair';\n break;\n case 3:\n cursor = 'move';\n break;\n }\n fig.rubberband_canvas.style.cursor = cursor;\n};\n\nmpl.figure.prototype.handle_message = function (fig, msg) {\n fig.message.textContent = msg['message'];\n};\n\nmpl.figure.prototype.handle_draw = function (fig, _msg) {\n // Request the server to send over a new figure.\n fig.send_draw_message();\n};\n\nmpl.figure.prototype.handle_image_mode = function (fig, msg) {\n fig.image_mode = msg['mode'];\n};\n\nmpl.figure.prototype.handle_history_buttons = function (fig, msg) {\n for (var key in msg) {\n if (!(key in fig.buttons)) {\n continue;\n }\n fig.buttons[key].disabled = !msg[key];\n fig.buttons[key].setAttribute('aria-disabled', !msg[key]);\n }\n};\n\nmpl.figure.prototype.handle_navigate_mode = function (fig, msg) {\n if (msg['mode'] === 'PAN') {\n fig.buttons['Pan'].classList.add('active');\n fig.buttons['Zoom'].classList.remove('active');\n } else if (msg['mode'] === 'ZOOM') {\n fig.buttons['Pan'].classList.remove('active');\n fig.buttons['Zoom'].classList.add('active');\n } else {\n fig.buttons['Pan'].classList.remove('active');\n fig.buttons['Zoom'].classList.remove('active');\n }\n};\n\nmpl.figure.prototype.updated_canvas_event = function () {\n // Called whenever the canvas gets updated.\n this.send_message('ack', {});\n};\n\n// A function to construct a web socket function for onmessage handling.\n// Called in the figure constructor.\nmpl.figure.prototype._make_on_message_function = function (fig) {\n return function socket_on_message(evt) {\n if (evt.data instanceof Blob) {\n var img = evt.data;\n if (img.type !== 'image/png') {\n /* FIXME: We get \"Resource interpreted as Image but\n * transferred with MIME type text/plain:\" errors on\n * Chrome. But how to set the MIME type? It doesn't seem\n * to be part of the websocket stream */\n img.type = 'image/png';\n }\n\n /* Free the memory for the previous frames */\n if (fig.imageObj.src) {\n (window.URL || window.webkitURL).revokeObjectURL(\n fig.imageObj.src\n );\n }\n\n fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n img\n );\n fig.updated_canvas_event();\n fig.waiting = false;\n return;\n } else if (\n typeof evt.data === 'string' &&\n evt.data.slice(0, 21) === 'data:image/png;base64'\n ) {\n fig.imageObj.src = evt.data;\n fig.updated_canvas_event();\n fig.waiting = false;\n return;\n }\n\n var msg = JSON.parse(evt.data);\n var msg_type = msg['type'];\n\n // Call the \"handle_{type}\" callback, which takes\n // the figure and JSON message as its only arguments.\n try {\n var callback = fig['handle_' + msg_type];\n } catch (e) {\n console.log(\n \"No handler for the '\" + msg_type + \"' message type: \",\n msg\n );\n return;\n }\n\n if (callback) {\n try {\n // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n callback(fig, msg);\n } catch (e) {\n console.log(\n \"Exception inside the 'handler_\" + msg_type + \"' callback:\",\n e,\n e.stack,\n msg\n );\n }\n }\n };\n};\n\n// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\nmpl.findpos = function (e) {\n //this section is from http://www.quirksmode.org/js/events_properties.html\n var targ;\n if (!e) {\n e = window.event;\n }\n if (e.target) {\n targ = e.target;\n } else if (e.srcElement) {\n targ = e.srcElement;\n }\n if (targ.nodeType === 3) {\n // defeat Safari bug\n targ = targ.parentNode;\n }\n\n // pageX,Y are the mouse positions relative to the document\n var boundingRect = targ.getBoundingClientRect();\n var x = e.pageX - (boundingRect.left + document.body.scrollLeft);\n var y = e.pageY - (boundingRect.top + document.body.scrollTop);\n\n return { x: x, y: y };\n};\n\n/*\n * return a copy of an object with only non-object keys\n * we need this to avoid circular references\n * http://stackoverflow.com/a/24161582/3208463\n */\nfunction simpleKeys(original) {\n return Object.keys(original).reduce(function (obj, key) {\n if (typeof original[key] !== 'object') {\n obj[key] = original[key];\n }\n return obj;\n }, {});\n}\n\nmpl.figure.prototype.mouse_event = function (event, name) {\n var canvas_pos = mpl.findpos(event);\n\n if (name === 'button_press') {\n this.canvas.focus();\n this.canvas_div.focus();\n }\n\n var x = canvas_pos.x * this.ratio;\n var y = canvas_pos.y * this.ratio;\n\n this.send_message(name, {\n x: x,\n y: y,\n button: event.button,\n step: event.step,\n guiEvent: simpleKeys(event),\n });\n\n /* This prevents the web browser from automatically changing to\n * the text insertion cursor when the button is pressed. We want\n * to control all of the cursor setting manually through the\n * 'cursor' event from matplotlib */\n event.preventDefault();\n return false;\n};\n\nmpl.figure.prototype._key_event_extra = function (_event, _name) {\n // Handle any extra behaviour associated with a key event\n};\n\nmpl.figure.prototype.key_event = function (event, name) {\n // Prevent repeat events\n if (name === 'key_press') {\n if (event.key === this._key) {\n return;\n } else {\n this._key = event.key;\n }\n }\n if (name === 'key_release') {\n this._key = null;\n }\n\n var value = '';\n if (event.ctrlKey && event.key !== 'Control') {\n value += 'ctrl+';\n }\n else if (event.altKey && event.key !== 'Alt') {\n value += 'alt+';\n }\n else if (event.shiftKey && event.key !== 'Shift') {\n value += 'shift+';\n }\n\n value += 'k' + event.key;\n\n this._key_event_extra(event, name);\n\n this.send_message(name, { key: value, guiEvent: simpleKeys(event) });\n return false;\n};\n\nmpl.figure.prototype.toolbar_button_onclick = function (name) {\n if (name === 'download') {\n this.handle_save(this, null);\n } else {\n this.send_message('toolbar_button', { name: name });\n }\n};\n\nmpl.figure.prototype.toolbar_button_onmouseover = function (tooltip) {\n this.message.textContent = tooltip;\n};\n\n///////////////// REMAINING CONTENT GENERATED BY embed_js.py /////////////////\n// prettier-ignore\nvar _JSXTOOLS_RESIZE_OBSERVER=function(A){var t,i=new WeakMap,n=new WeakMap,a=new WeakMap,r=new WeakMap,o=new Set;function s(e){if(!(this instanceof s))throw new TypeError(\"Constructor requires 'new' operator\");i.set(this,e)}function h(){throw new TypeError(\"Function is not a constructor\")}function c(e,t,i,n){e=0 in arguments?Number(arguments[0]):0,t=1 in arguments?Number(arguments[1]):0,i=2 in arguments?Number(arguments[2]):0,n=3 in arguments?Number(arguments[3]):0,this.right=(this.x=this.left=e)+(this.width=i),this.bottom=(this.y=this.top=t)+(this.height=n),Object.freeze(this)}function d(){t=requestAnimationFrame(d);var s=new WeakMap,p=new Set;o.forEach((function(t){r.get(t).forEach((function(i){var r=t instanceof window.SVGElement,o=a.get(t),d=r?0:parseFloat(o.paddingTop),f=r?0:parseFloat(o.paddingRight),l=r?0:parseFloat(o.paddingBottom),u=r?0:parseFloat(o.paddingLeft),g=r?0:parseFloat(o.borderTopWidth),m=r?0:parseFloat(o.borderRightWidth),w=r?0:parseFloat(o.borderBottomWidth),b=u+f,F=d+l,v=(r?0:parseFloat(o.borderLeftWidth))+m,W=g+w,y=r?0:t.offsetHeight-W-t.clientHeight,E=r?0:t.offsetWidth-v-t.clientWidth,R=b+v,z=F+W,M=r?t.width:parseFloat(o.width)-R-E,O=r?t.height:parseFloat(o.height)-z-y;if(n.has(t)){var k=n.get(t);if(k[0]===M&&k[1]===O)return}n.set(t,[M,O]);var S=Object.create(h.prototype);S.target=t,S.contentRect=new c(u,d,M,O),s.has(i)||(s.set(i,[]),p.add(i)),s.get(i).push(S)}))})),p.forEach((function(e){i.get(e).call(e,s.get(e),e)}))}return s.prototype.observe=function(i){if(i instanceof window.Element){r.has(i)||(r.set(i,new Set),o.add(i),a.set(i,window.getComputedStyle(i)));var n=r.get(i);n.has(this)||n.add(this),cancelAnimationFrame(t),t=requestAnimationFrame(d)}},s.prototype.unobserve=function(i){if(i instanceof window.Element&&r.has(i)){var n=r.get(i);n.has(this)&&(n.delete(this),n.size||(r.delete(i),o.delete(i))),n.size||r.delete(i),o.size||cancelAnimationFrame(t)}},A.DOMRectReadOnly=c,A.ResizeObserver=s,A.ResizeObserverEntry=h,A}; // eslint-disable-line\nmpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Left button pans, Right button zooms\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n\nmpl.extensions = [\"eps\", \"jpeg\", \"pgf\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\"];\n\nmpl.default_extension = \"png\";/* global mpl */\n\nvar comm_websocket_adapter = function (comm) {\n // Create a \"websocket\"-like object which calls the given IPython comm\n // object with the appropriate methods. Currently this is a non binary\n // socket, so there is still some room for performance tuning.\n var ws = {};\n\n ws.binaryType = comm.kernel.ws.binaryType;\n ws.readyState = comm.kernel.ws.readyState;\n function updateReadyState(_event) {\n if (comm.kernel.ws) {\n ws.readyState = comm.kernel.ws.readyState;\n } else {\n ws.readyState = 3; // Closed state.\n }\n }\n comm.kernel.ws.addEventListener('open', updateReadyState);\n comm.kernel.ws.addEventListener('close', updateReadyState);\n comm.kernel.ws.addEventListener('error', updateReadyState);\n\n ws.close = function () {\n comm.close();\n };\n ws.send = function (m) {\n //console.log('sending', m);\n comm.send(m);\n };\n // Register the callback with on_msg.\n comm.on_msg(function (msg) {\n //console.log('receiving', msg['content']['data'], msg);\n var data = msg['content']['data'];\n if (data['blob'] !== undefined) {\n data = {\n data: new Blob(msg['buffers'], { type: data['blob'] }),\n };\n }\n // Pass the mpl event to the overridden (by mpl) onmessage function.\n ws.onmessage(data);\n });\n return ws;\n};\n\nmpl.mpl_figure_comm = function (comm, msg) {\n // This is the function which gets called when the mpl process\n // starts-up an IPython Comm through the \"matplotlib\" channel.\n\n var id = msg.content.data.id;\n // Get hold of the div created by the display call when the Comm\n // socket was opened in Python.\n var element = document.getElementById(id);\n var ws_proxy = comm_websocket_adapter(comm);\n\n function ondownload(figure, _format) {\n window.open(figure.canvas.toDataURL());\n }\n\n var fig = new mpl.figure(id, ws_proxy, ondownload, element);\n\n // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n // web socket which is closed, not our websocket->open comm proxy.\n ws_proxy.onopen();\n\n fig.parent_element = element;\n fig.cell_info = mpl.find_output_cell(\"
\");\n if (!fig.cell_info) {\n console.error('Failed to find cell for figure', id, fig);\n return;\n }\n fig.cell_info[0].output_area.element.on(\n 'cleared',\n { fig: fig },\n fig._remove_fig_handler\n );\n};\n\nmpl.figure.prototype.handle_close = function (fig, msg) {\n var width = fig.canvas.width / fig.ratio;\n fig.cell_info[0].output_area.element.off(\n 'cleared',\n fig._remove_fig_handler\n );\n fig.resizeObserverInstance.unobserve(fig.canvas_div);\n\n // Update the output cell to use the data from the current canvas.\n fig.push_to_output();\n var dataURL = fig.canvas.toDataURL();\n // Re-enable the keyboard manager in IPython - without this line, in FF,\n // the notebook keyboard shortcuts fail.\n IPython.keyboard_manager.enable();\n fig.parent_element.innerHTML =\n '';\n fig.close_ws(fig, msg);\n};\n\nmpl.figure.prototype.close_ws = function (fig, msg) {\n fig.send_message('closing', msg);\n // fig.ws.close()\n};\n\nmpl.figure.prototype.push_to_output = function (_remove_interactive) {\n // Turn the data on the canvas into data in the output cell.\n var width = this.canvas.width / this.ratio;\n var dataURL = this.canvas.toDataURL();\n this.cell_info[1]['text/html'] =\n '';\n};\n\nmpl.figure.prototype.updated_canvas_event = function () {\n // Tell IPython that the notebook contents must change.\n IPython.notebook.set_dirty(true);\n this.send_message('ack', {});\n var fig = this;\n // Wait a second, then push the new image to the DOM so\n // that it is saved nicely (might be nice to debounce this).\n setTimeout(function () {\n fig.push_to_output();\n }, 1000);\n};\n\nmpl.figure.prototype._init_toolbar = function () {\n var fig = this;\n\n var toolbar = document.createElement('div');\n toolbar.classList = 'btn-toolbar';\n this.root.appendChild(toolbar);\n\n function on_click_closure(name) {\n return function (_event) {\n return fig.toolbar_button_onclick(name);\n };\n }\n\n function on_mouseover_closure(tooltip) {\n return function (event) {\n if (!event.currentTarget.disabled) {\n return fig.toolbar_button_onmouseover(tooltip);\n }\n };\n }\n\n fig.buttons = {};\n var buttonGroup = document.createElement('div');\n buttonGroup.classList = 'btn-group';\n var button;\n for (var toolbar_ind in mpl.toolbar_items) {\n var name = mpl.toolbar_items[toolbar_ind][0];\n var tooltip = mpl.toolbar_items[toolbar_ind][1];\n var image = mpl.toolbar_items[toolbar_ind][2];\n var method_name = mpl.toolbar_items[toolbar_ind][3];\n\n if (!name) {\n /* Instead of a spacer, we start a new button group. */\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n buttonGroup = document.createElement('div');\n buttonGroup.classList = 'btn-group';\n continue;\n }\n\n button = fig.buttons[name] = document.createElement('button');\n button.classList = 'btn btn-default';\n button.href = '#';\n button.title = name;\n button.innerHTML = '';\n button.addEventListener('click', on_click_closure(method_name));\n button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n buttonGroup.appendChild(button);\n }\n\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n\n // Add the status bar.\n var status_bar = document.createElement('span');\n status_bar.classList = 'mpl-message pull-right';\n toolbar.appendChild(status_bar);\n this.message = status_bar;\n\n // Add the close button to the window.\n var buttongrp = document.createElement('div');\n buttongrp.classList = 'btn-group inline pull-right';\n button = document.createElement('button');\n button.classList = 'btn btn-mini btn-primary';\n button.href = '#';\n button.title = 'Stop Interaction';\n button.innerHTML = '';\n button.addEventListener('click', function (_evt) {\n fig.handle_close(fig, {});\n });\n button.addEventListener(\n 'mouseover',\n on_mouseover_closure('Stop Interaction')\n );\n buttongrp.appendChild(button);\n var titlebar = this.root.querySelector('.ui-dialog-titlebar');\n titlebar.insertBefore(buttongrp, titlebar.firstChild);\n};\n\nmpl.figure.prototype._remove_fig_handler = function (event) {\n var fig = event.data.fig;\n if (event.target !== this) {\n // Ignore bubbled events from children.\n return;\n }\n fig.close_ws(fig, {});\n};\n\nmpl.figure.prototype._root_extra_style = function (el) {\n el.style.boxSizing = 'content-box'; // override notebook setting of border-box.\n};\n\nmpl.figure.prototype._canvas_extra_style = function (el) {\n // this is important to make the div 'focusable\n el.setAttribute('tabindex', 0);\n // reach out to IPython and tell the keyboard manager to turn it's self\n // off when our div gets focus\n\n // location in version 3\n if (IPython.notebook.keyboard_manager) {\n IPython.notebook.keyboard_manager.register_events(el);\n } else {\n // location in version 2\n IPython.keyboard_manager.register_events(el);\n }\n};\n\nmpl.figure.prototype._key_event_extra = function (event, _name) {\n var manager = IPython.notebook.keyboard_manager;\n if (!manager) {\n manager = IPython.keyboard_manager;\n }\n\n // Check for shift+enter\n if (event.shiftKey && event.which === 13) {\n this.canvas_div.blur();\n // select the cell after this one\n var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n IPython.notebook.select(index + 1);\n }\n};\n\nmpl.figure.prototype.handle_save = function (fig, _msg) {\n fig.ondownload(fig, null);\n};\n\nmpl.find_output_cell = function (html_output) {\n // Return the cell and output element which can be found *uniquely* in the notebook.\n // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n // IPython event is triggered only after the cells have been serialised, which for\n // our purposes (turning an active figure into a static one), is too late.\n var cells = IPython.notebook.get_cells();\n var ncells = cells.length;\n for (var i = 0; i < ncells; i++) {\n var cell = cells[i];\n if (cell.cell_type === 'code') {\n for (var j = 0; j < cell.output_area.outputs.length; j++) {\n var data = cell.output_area.outputs[j];\n if (data.data) {\n // IPython >= 3 moved mimebundle to data attribute of output\n data = data.data;\n }\n if (data['text/html'] === html_output) {\n return [cell, data, j];\n }\n }\n }\n }\n};\n\n// Register the function which deals with the matplotlib target/channel.\n// The kernel may be null if the page has been refreshed.\nif (IPython.notebook.kernel !== null) {\n IPython.notebook.kernel.comm_manager.register_target(\n 'matplotlib',\n mpl.mpl_figure_comm\n );\n}\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ - "x = np.linspace(-2, 2, 101)\r\n", - "plot_loss_functions(\r\n", - " suptitle = 'Common loss functions for regression',\r\n", - " functions = [np.abs(x), np.power(x, 2)],\r\n", - " ylabels = ['$\\mathcal{L}_{abs}}$ (absolute loss)',\r\n", - " '$\\mathcal{L}_{sq}$ (squared loss)'],\r\n", + "x = np.linspace(-2, 2, 101)\n", + "plot_loss_functions(\n", + " suptitle = 'Common loss functions for regression',\n", + " functions = [np.abs(x), np.power(x, 2)],\n", + " ylabels = ['$\\mathcal{L}_{abs}}$ (absolute loss)',\n", + " '$\\mathcal{L}_{sq}$ (squared loss)'],\n", " xlabel = '$y - f(x_i)$')" - ], - "outputs": [], + ] + }, + { + "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } - } - }, - { - "cell_type": "markdown", + }, "source": [ - "### Loss functions for classification\r\n", - "\r\n", - "Let's consider binary classification for a moment. In this case we have two classes, numbered 0 and 1. The output of the network $f_\\theta(x_i)\\in [0,1]$ essentially defines the probability of choosing the class 1.\r\n", - "\r\n", - "**0-1 loss**\r\n", - "\r\n", - "0-1 loss is the same as calculating accuracy of the model - we compute the number of correct classifications:\r\n", - "\r\n", - "$$\\mathcal{L}_{0-1} = \\sum_{i=1}^n l_i \\quad l_i = \\begin{cases}\r\n", - " 0 & (f(x_i)<0.5 \\land y_i=0) \\lor (f(x_i)<0.5 \\land y_i=1) \\\\\r\n", - " 1 & \\mathrm{ otherwise}\r\n", - " \\end{cases} \\\\\r\n", - "$$\r\n", - "\r\n", - "However, accuracy itself does not show how far are we from the right classification. It could be that we missed the correct class just by a little bit, and that is in a way \"better\" (in a sense that we need to correct weights much less) than missing significantly. Thus, more often logistic loss is used, which takes this into account.\r\n", - "\r\n", - "**Logistic Loss**\r\n", - "\r\n", + "### Loss functions for classification\n", + "\n", + "Let's consider binary classification for a moment. In this case we have two classes, numbered 0 and 1. The output of the network $f_\\theta(x_i)\\in [0,1]$ essentially defines the probability of choosing the class 1.\n", + "\n", + "**0-1 loss**\n", + "\n", + "0-1 loss is the same as calculating accuracy of the model - we compute the number of correct classifications:\n", + "\n", + "$$\\mathcal{L}_{0-1} = \\sum_{i=1}^n l_i \\quad l_i = \\begin{cases}\n", + " 0 & (f(x_i)<0.5 \\land y_i=0) \\lor (f(x_i)<0.5 \\land y_i=1) \\\\\n", + " 1 & \\mathrm{ otherwise}\n", + " \\end{cases} \\\\\n", + "$$\n", + "\n", + "However, accuracy itself does not show how far are we from the right classification. It could be that we missed the correct class just by a little bit, and that is in a way \"better\" (in a sense that we need to correct weights much less) than missing significantly. Thus, more often logistic loss is used, which takes this into account.\n", + "\n", + "**Logistic Loss**\n", + "\n", "$$\\mathcal{L}_{log} = \\sum_{i=1}^n -y\\log(f_{\\theta}(x_i)) - (1-y)\\log(1-f_\\theta(x_i))$$" - ], - "metadata": { - "slideshow": { - "slide_type": "slide" - } - } + ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 21, + "metadata": {}, + "outputs": [], "source": [ - "x = np.linspace(0,1,100)\r\n", - "def zero_one(d):\r\n", - " if d < 0.5:\r\n", - " return 0\r\n", - " return 1\r\n", - "zero_one_v = np.vectorize(zero_one)\r\n", - "\r\n", - "def logistic_loss(fx):\r\n", - " # assumes y == 1\r\n", + "x = np.linspace(0,1,100)\n", + "def zero_one(d):\n", + " if d < 0.5:\n", + " return 0\n", + " return 1\n", + "zero_one_v = np.vectorize(zero_one)\n", + "\n", + "def logistic_loss(fx):\n", + " # assumes y == 1\n", " return -np.log(fx)" - ], - "outputs": [], - "metadata": {} + ] }, { "cell_type": "code", - "execution_count": null, - "source": [ - "plot_loss_functions(suptitle = 'Common loss functions for classification (class=1)',\r\n", - " functions = [zero_one_v(x), logistic_loss(x)],\r\n", - " ylabels = ['$\\mathcal{L}_{0-1}}$ (0-1 loss)',\r\n", - " '$\\mathcal{L}_{log}$ (logistic loss)'],\r\n", - " xlabel = '$p$')\r\n" - ], - "outputs": [], + "execution_count": 22, "metadata": { "slideshow": { "slide_type": "slide" } - } + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\dmitryso\\AppData\\Local\\Temp/ipykernel_55820/331859503.py:10: RuntimeWarning: divide by zero encountered in log\n", + " return -np.log(fx)\n" + ] + }, + { + "data": { + "application/javascript": "/* Put everything inside the global mpl namespace */\n/* global mpl */\nwindow.mpl = {};\n\nmpl.get_websocket_type = function () {\n if (typeof WebSocket !== 'undefined') {\n return WebSocket;\n } else if (typeof MozWebSocket !== 'undefined') {\n return MozWebSocket;\n } else {\n alert(\n 'Your browser does not have WebSocket support. ' +\n 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n 'Firefox 4 and 5 are also supported but you ' +\n 'have to enable WebSockets in about:config.'\n );\n }\n};\n\nmpl.figure = function (figure_id, websocket, ondownload, parent_element) {\n this.id = figure_id;\n\n this.ws = websocket;\n\n this.supports_binary = this.ws.binaryType !== undefined;\n\n if (!this.supports_binary) {\n var warnings = document.getElementById('mpl-warnings');\n if (warnings) {\n warnings.style.display = 'block';\n warnings.textContent =\n 'This browser does not support binary websocket messages. ' +\n 'Performance may be slow.';\n }\n }\n\n this.imageObj = new Image();\n\n this.context = undefined;\n this.message = undefined;\n this.canvas = undefined;\n this.rubberband_canvas = undefined;\n this.rubberband_context = undefined;\n this.format_dropdown = undefined;\n\n this.image_mode = 'full';\n\n this.root = document.createElement('div');\n this.root.setAttribute('style', 'display: inline-block');\n this._root_extra_style(this.root);\n\n parent_element.appendChild(this.root);\n\n this._init_header(this);\n this._init_canvas(this);\n this._init_toolbar(this);\n\n var fig = this;\n\n this.waiting = false;\n\n this.ws.onopen = function () {\n fig.send_message('supports_binary', { value: fig.supports_binary });\n fig.send_message('send_image_mode', {});\n if (fig.ratio !== 1) {\n fig.send_message('set_dpi_ratio', { dpi_ratio: fig.ratio });\n }\n fig.send_message('refresh', {});\n };\n\n this.imageObj.onload = function () {\n if (fig.image_mode === 'full') {\n // Full images could contain transparency (where diff images\n // almost always do), so we need to clear the canvas so that\n // there is no ghosting.\n fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n }\n fig.context.drawImage(fig.imageObj, 0, 0);\n };\n\n this.imageObj.onunload = function () {\n fig.ws.close();\n };\n\n this.ws.onmessage = this._make_on_message_function(this);\n\n this.ondownload = ondownload;\n};\n\nmpl.figure.prototype._init_header = function () {\n var titlebar = document.createElement('div');\n titlebar.classList =\n 'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n var titletext = document.createElement('div');\n titletext.classList = 'ui-dialog-title';\n titletext.setAttribute(\n 'style',\n 'width: 100%; text-align: center; padding: 3px;'\n );\n titlebar.appendChild(titletext);\n this.root.appendChild(titlebar);\n this.header = titletext;\n};\n\nmpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._init_canvas = function () {\n var fig = this;\n\n var canvas_div = (this.canvas_div = document.createElement('div'));\n canvas_div.setAttribute(\n 'style',\n 'border: 1px solid #ddd;' +\n 'box-sizing: content-box;' +\n 'clear: both;' +\n 'min-height: 1px;' +\n 'min-width: 1px;' +\n 'outline: 0;' +\n 'overflow: hidden;' +\n 'position: relative;' +\n 'resize: both;'\n );\n\n function on_keyboard_event_closure(name) {\n return function (event) {\n return fig.key_event(event, name);\n };\n }\n\n canvas_div.addEventListener(\n 'keydown',\n on_keyboard_event_closure('key_press')\n );\n canvas_div.addEventListener(\n 'keyup',\n on_keyboard_event_closure('key_release')\n );\n\n this._canvas_extra_style(canvas_div);\n this.root.appendChild(canvas_div);\n\n var canvas = (this.canvas = document.createElement('canvas'));\n canvas.classList.add('mpl-canvas');\n canvas.setAttribute('style', 'box-sizing: content-box;');\n\n this.context = canvas.getContext('2d');\n\n var backingStore =\n this.context.backingStorePixelRatio ||\n this.context.webkitBackingStorePixelRatio ||\n this.context.mozBackingStorePixelRatio ||\n this.context.msBackingStorePixelRatio ||\n this.context.oBackingStorePixelRatio ||\n this.context.backingStorePixelRatio ||\n 1;\n\n this.ratio = (window.devicePixelRatio || 1) / backingStore;\n\n var rubberband_canvas = (this.rubberband_canvas = document.createElement(\n 'canvas'\n ));\n rubberband_canvas.setAttribute(\n 'style',\n 'box-sizing: content-box; position: absolute; left: 0; top: 0; z-index: 1;'\n );\n\n // Apply a ponyfill if ResizeObserver is not implemented by browser.\n if (this.ResizeObserver === undefined) {\n if (window.ResizeObserver !== undefined) {\n this.ResizeObserver = window.ResizeObserver;\n } else {\n var obs = _JSXTOOLS_RESIZE_OBSERVER({});\n this.ResizeObserver = obs.ResizeObserver;\n }\n }\n\n this.resizeObserverInstance = new this.ResizeObserver(function (entries) {\n var nentries = entries.length;\n for (var i = 0; i < nentries; i++) {\n var entry = entries[i];\n var width, height;\n if (entry.contentBoxSize) {\n if (entry.contentBoxSize instanceof Array) {\n // Chrome 84 implements new version of spec.\n width = entry.contentBoxSize[0].inlineSize;\n height = entry.contentBoxSize[0].blockSize;\n } else {\n // Firefox implements old version of spec.\n width = entry.contentBoxSize.inlineSize;\n height = entry.contentBoxSize.blockSize;\n }\n } else {\n // Chrome <84 implements even older version of spec.\n width = entry.contentRect.width;\n height = entry.contentRect.height;\n }\n\n // Keep the size of the canvas and rubber band canvas in sync with\n // the canvas container.\n if (entry.devicePixelContentBoxSize) {\n // Chrome 84 implements new version of spec.\n canvas.setAttribute(\n 'width',\n entry.devicePixelContentBoxSize[0].inlineSize\n );\n canvas.setAttribute(\n 'height',\n entry.devicePixelContentBoxSize[0].blockSize\n );\n } else {\n canvas.setAttribute('width', width * fig.ratio);\n canvas.setAttribute('height', height * fig.ratio);\n }\n canvas.setAttribute(\n 'style',\n 'width: ' + width + 'px; height: ' + height + 'px;'\n );\n\n rubberband_canvas.setAttribute('width', width);\n rubberband_canvas.setAttribute('height', height);\n\n // And update the size in Python. We ignore the initial 0/0 size\n // that occurs as the element is placed into the DOM, which should\n // otherwise not happen due to the minimum size styling.\n if (fig.ws.readyState == 1 && width != 0 && height != 0) {\n fig.request_resize(width, height);\n }\n }\n });\n this.resizeObserverInstance.observe(canvas_div);\n\n function on_mouse_event_closure(name) {\n return function (event) {\n return fig.mouse_event(event, name);\n };\n }\n\n rubberband_canvas.addEventListener(\n 'mousedown',\n on_mouse_event_closure('button_press')\n );\n rubberband_canvas.addEventListener(\n 'mouseup',\n on_mouse_event_closure('button_release')\n );\n rubberband_canvas.addEventListener(\n 'dblclick',\n on_mouse_event_closure('dblclick')\n );\n // Throttle sequential mouse events to 1 every 20ms.\n rubberband_canvas.addEventListener(\n 'mousemove',\n on_mouse_event_closure('motion_notify')\n );\n\n rubberband_canvas.addEventListener(\n 'mouseenter',\n on_mouse_event_closure('figure_enter')\n );\n rubberband_canvas.addEventListener(\n 'mouseleave',\n on_mouse_event_closure('figure_leave')\n );\n\n canvas_div.addEventListener('wheel', function (event) {\n if (event.deltaY < 0) {\n event.step = 1;\n } else {\n event.step = -1;\n }\n on_mouse_event_closure('scroll')(event);\n });\n\n canvas_div.appendChild(canvas);\n canvas_div.appendChild(rubberband_canvas);\n\n this.rubberband_context = rubberband_canvas.getContext('2d');\n this.rubberband_context.strokeStyle = '#000000';\n\n this._resize_canvas = function (width, height, forward) {\n if (forward) {\n canvas_div.style.width = width + 'px';\n canvas_div.style.height = height + 'px';\n }\n };\n\n // Disable right mouse context menu.\n this.rubberband_canvas.addEventListener('contextmenu', function (_e) {\n event.preventDefault();\n return false;\n });\n\n function set_focus() {\n canvas.focus();\n canvas_div.focus();\n }\n\n window.setTimeout(set_focus, 100);\n};\n\nmpl.figure.prototype._init_toolbar = function () {\n var fig = this;\n\n var toolbar = document.createElement('div');\n toolbar.classList = 'mpl-toolbar';\n this.root.appendChild(toolbar);\n\n function on_click_closure(name) {\n return function (_event) {\n return fig.toolbar_button_onclick(name);\n };\n }\n\n function on_mouseover_closure(tooltip) {\n return function (event) {\n if (!event.currentTarget.disabled) {\n return fig.toolbar_button_onmouseover(tooltip);\n }\n };\n }\n\n fig.buttons = {};\n var buttonGroup = document.createElement('div');\n buttonGroup.classList = 'mpl-button-group';\n for (var toolbar_ind in mpl.toolbar_items) {\n var name = mpl.toolbar_items[toolbar_ind][0];\n var tooltip = mpl.toolbar_items[toolbar_ind][1];\n var image = mpl.toolbar_items[toolbar_ind][2];\n var method_name = mpl.toolbar_items[toolbar_ind][3];\n\n if (!name) {\n /* Instead of a spacer, we start a new button group. */\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n buttonGroup = document.createElement('div');\n buttonGroup.classList = 'mpl-button-group';\n continue;\n }\n\n var button = (fig.buttons[name] = document.createElement('button'));\n button.classList = 'mpl-widget';\n button.setAttribute('role', 'button');\n button.setAttribute('aria-disabled', 'false');\n button.addEventListener('click', on_click_closure(method_name));\n button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n\n var icon_img = document.createElement('img');\n icon_img.src = '_images/' + image + '.png';\n icon_img.srcset = '_images/' + image + '_large.png 2x';\n icon_img.alt = tooltip;\n button.appendChild(icon_img);\n\n buttonGroup.appendChild(button);\n }\n\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n\n var fmt_picker = document.createElement('select');\n fmt_picker.classList = 'mpl-widget';\n toolbar.appendChild(fmt_picker);\n this.format_dropdown = fmt_picker;\n\n for (var ind in mpl.extensions) {\n var fmt = mpl.extensions[ind];\n var option = document.createElement('option');\n option.selected = fmt === mpl.default_extension;\n option.innerHTML = fmt;\n fmt_picker.appendChild(option);\n }\n\n var status_bar = document.createElement('span');\n status_bar.classList = 'mpl-message';\n toolbar.appendChild(status_bar);\n this.message = status_bar;\n};\n\nmpl.figure.prototype.request_resize = function (x_pixels, y_pixels) {\n // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n // which will in turn request a refresh of the image.\n this.send_message('resize', { width: x_pixels, height: y_pixels });\n};\n\nmpl.figure.prototype.send_message = function (type, properties) {\n properties['type'] = type;\n properties['figure_id'] = this.id;\n this.ws.send(JSON.stringify(properties));\n};\n\nmpl.figure.prototype.send_draw_message = function () {\n if (!this.waiting) {\n this.waiting = true;\n this.ws.send(JSON.stringify({ type: 'draw', figure_id: this.id }));\n }\n};\n\nmpl.figure.prototype.handle_save = function (fig, _msg) {\n var format_dropdown = fig.format_dropdown;\n var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n fig.ondownload(fig, format);\n};\n\nmpl.figure.prototype.handle_resize = function (fig, msg) {\n var size = msg['size'];\n if (size[0] !== fig.canvas.width || size[1] !== fig.canvas.height) {\n fig._resize_canvas(size[0], size[1], msg['forward']);\n fig.send_message('refresh', {});\n }\n};\n\nmpl.figure.prototype.handle_rubberband = function (fig, msg) {\n var x0 = msg['x0'] / fig.ratio;\n var y0 = (fig.canvas.height - msg['y0']) / fig.ratio;\n var x1 = msg['x1'] / fig.ratio;\n var y1 = (fig.canvas.height - msg['y1']) / fig.ratio;\n x0 = Math.floor(x0) + 0.5;\n y0 = Math.floor(y0) + 0.5;\n x1 = Math.floor(x1) + 0.5;\n y1 = Math.floor(y1) + 0.5;\n var min_x = Math.min(x0, x1);\n var min_y = Math.min(y0, y1);\n var width = Math.abs(x1 - x0);\n var height = Math.abs(y1 - y0);\n\n fig.rubberband_context.clearRect(\n 0,\n 0,\n fig.canvas.width / fig.ratio,\n fig.canvas.height / fig.ratio\n );\n\n fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n};\n\nmpl.figure.prototype.handle_figure_label = function (fig, msg) {\n // Updates the figure title.\n fig.header.textContent = msg['label'];\n};\n\nmpl.figure.prototype.handle_cursor = function (fig, msg) {\n var cursor = msg['cursor'];\n switch (cursor) {\n case 0:\n cursor = 'pointer';\n break;\n case 1:\n cursor = 'default';\n break;\n case 2:\n cursor = 'crosshair';\n break;\n case 3:\n cursor = 'move';\n break;\n }\n fig.rubberband_canvas.style.cursor = cursor;\n};\n\nmpl.figure.prototype.handle_message = function (fig, msg) {\n fig.message.textContent = msg['message'];\n};\n\nmpl.figure.prototype.handle_draw = function (fig, _msg) {\n // Request the server to send over a new figure.\n fig.send_draw_message();\n};\n\nmpl.figure.prototype.handle_image_mode = function (fig, msg) {\n fig.image_mode = msg['mode'];\n};\n\nmpl.figure.prototype.handle_history_buttons = function (fig, msg) {\n for (var key in msg) {\n if (!(key in fig.buttons)) {\n continue;\n }\n fig.buttons[key].disabled = !msg[key];\n fig.buttons[key].setAttribute('aria-disabled', !msg[key]);\n }\n};\n\nmpl.figure.prototype.handle_navigate_mode = function (fig, msg) {\n if (msg['mode'] === 'PAN') {\n fig.buttons['Pan'].classList.add('active');\n fig.buttons['Zoom'].classList.remove('active');\n } else if (msg['mode'] === 'ZOOM') {\n fig.buttons['Pan'].classList.remove('active');\n fig.buttons['Zoom'].classList.add('active');\n } else {\n fig.buttons['Pan'].classList.remove('active');\n fig.buttons['Zoom'].classList.remove('active');\n }\n};\n\nmpl.figure.prototype.updated_canvas_event = function () {\n // Called whenever the canvas gets updated.\n this.send_message('ack', {});\n};\n\n// A function to construct a web socket function for onmessage handling.\n// Called in the figure constructor.\nmpl.figure.prototype._make_on_message_function = function (fig) {\n return function socket_on_message(evt) {\n if (evt.data instanceof Blob) {\n var img = evt.data;\n if (img.type !== 'image/png') {\n /* FIXME: We get \"Resource interpreted as Image but\n * transferred with MIME type text/plain:\" errors on\n * Chrome. But how to set the MIME type? It doesn't seem\n * to be part of the websocket stream */\n img.type = 'image/png';\n }\n\n /* Free the memory for the previous frames */\n if (fig.imageObj.src) {\n (window.URL || window.webkitURL).revokeObjectURL(\n fig.imageObj.src\n );\n }\n\n fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n img\n );\n fig.updated_canvas_event();\n fig.waiting = false;\n return;\n } else if (\n typeof evt.data === 'string' &&\n evt.data.slice(0, 21) === 'data:image/png;base64'\n ) {\n fig.imageObj.src = evt.data;\n fig.updated_canvas_event();\n fig.waiting = false;\n return;\n }\n\n var msg = JSON.parse(evt.data);\n var msg_type = msg['type'];\n\n // Call the \"handle_{type}\" callback, which takes\n // the figure and JSON message as its only arguments.\n try {\n var callback = fig['handle_' + msg_type];\n } catch (e) {\n console.log(\n \"No handler for the '\" + msg_type + \"' message type: \",\n msg\n );\n return;\n }\n\n if (callback) {\n try {\n // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n callback(fig, msg);\n } catch (e) {\n console.log(\n \"Exception inside the 'handler_\" + msg_type + \"' callback:\",\n e,\n e.stack,\n msg\n );\n }\n }\n };\n};\n\n// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\nmpl.findpos = function (e) {\n //this section is from http://www.quirksmode.org/js/events_properties.html\n var targ;\n if (!e) {\n e = window.event;\n }\n if (e.target) {\n targ = e.target;\n } else if (e.srcElement) {\n targ = e.srcElement;\n }\n if (targ.nodeType === 3) {\n // defeat Safari bug\n targ = targ.parentNode;\n }\n\n // pageX,Y are the mouse positions relative to the document\n var boundingRect = targ.getBoundingClientRect();\n var x = e.pageX - (boundingRect.left + document.body.scrollLeft);\n var y = e.pageY - (boundingRect.top + document.body.scrollTop);\n\n return { x: x, y: y };\n};\n\n/*\n * return a copy of an object with only non-object keys\n * we need this to avoid circular references\n * http://stackoverflow.com/a/24161582/3208463\n */\nfunction simpleKeys(original) {\n return Object.keys(original).reduce(function (obj, key) {\n if (typeof original[key] !== 'object') {\n obj[key] = original[key];\n }\n return obj;\n }, {});\n}\n\nmpl.figure.prototype.mouse_event = function (event, name) {\n var canvas_pos = mpl.findpos(event);\n\n if (name === 'button_press') {\n this.canvas.focus();\n this.canvas_div.focus();\n }\n\n var x = canvas_pos.x * this.ratio;\n var y = canvas_pos.y * this.ratio;\n\n this.send_message(name, {\n x: x,\n y: y,\n button: event.button,\n step: event.step,\n guiEvent: simpleKeys(event),\n });\n\n /* This prevents the web browser from automatically changing to\n * the text insertion cursor when the button is pressed. We want\n * to control all of the cursor setting manually through the\n * 'cursor' event from matplotlib */\n event.preventDefault();\n return false;\n};\n\nmpl.figure.prototype._key_event_extra = function (_event, _name) {\n // Handle any extra behaviour associated with a key event\n};\n\nmpl.figure.prototype.key_event = function (event, name) {\n // Prevent repeat events\n if (name === 'key_press') {\n if (event.key === this._key) {\n return;\n } else {\n this._key = event.key;\n }\n }\n if (name === 'key_release') {\n this._key = null;\n }\n\n var value = '';\n if (event.ctrlKey && event.key !== 'Control') {\n value += 'ctrl+';\n }\n else if (event.altKey && event.key !== 'Alt') {\n value += 'alt+';\n }\n else if (event.shiftKey && event.key !== 'Shift') {\n value += 'shift+';\n }\n\n value += 'k' + event.key;\n\n this._key_event_extra(event, name);\n\n this.send_message(name, { key: value, guiEvent: simpleKeys(event) });\n return false;\n};\n\nmpl.figure.prototype.toolbar_button_onclick = function (name) {\n if (name === 'download') {\n this.handle_save(this, null);\n } else {\n this.send_message('toolbar_button', { name: name });\n }\n};\n\nmpl.figure.prototype.toolbar_button_onmouseover = function (tooltip) {\n this.message.textContent = tooltip;\n};\n\n///////////////// REMAINING CONTENT GENERATED BY embed_js.py /////////////////\n// prettier-ignore\nvar _JSXTOOLS_RESIZE_OBSERVER=function(A){var t,i=new WeakMap,n=new WeakMap,a=new WeakMap,r=new WeakMap,o=new Set;function s(e){if(!(this instanceof s))throw new TypeError(\"Constructor requires 'new' operator\");i.set(this,e)}function h(){throw new TypeError(\"Function is not a constructor\")}function c(e,t,i,n){e=0 in arguments?Number(arguments[0]):0,t=1 in arguments?Number(arguments[1]):0,i=2 in arguments?Number(arguments[2]):0,n=3 in arguments?Number(arguments[3]):0,this.right=(this.x=this.left=e)+(this.width=i),this.bottom=(this.y=this.top=t)+(this.height=n),Object.freeze(this)}function d(){t=requestAnimationFrame(d);var s=new WeakMap,p=new Set;o.forEach((function(t){r.get(t).forEach((function(i){var r=t instanceof window.SVGElement,o=a.get(t),d=r?0:parseFloat(o.paddingTop),f=r?0:parseFloat(o.paddingRight),l=r?0:parseFloat(o.paddingBottom),u=r?0:parseFloat(o.paddingLeft),g=r?0:parseFloat(o.borderTopWidth),m=r?0:parseFloat(o.borderRightWidth),w=r?0:parseFloat(o.borderBottomWidth),b=u+f,F=d+l,v=(r?0:parseFloat(o.borderLeftWidth))+m,W=g+w,y=r?0:t.offsetHeight-W-t.clientHeight,E=r?0:t.offsetWidth-v-t.clientWidth,R=b+v,z=F+W,M=r?t.width:parseFloat(o.width)-R-E,O=r?t.height:parseFloat(o.height)-z-y;if(n.has(t)){var k=n.get(t);if(k[0]===M&&k[1]===O)return}n.set(t,[M,O]);var S=Object.create(h.prototype);S.target=t,S.contentRect=new c(u,d,M,O),s.has(i)||(s.set(i,[]),p.add(i)),s.get(i).push(S)}))})),p.forEach((function(e){i.get(e).call(e,s.get(e),e)}))}return s.prototype.observe=function(i){if(i instanceof window.Element){r.has(i)||(r.set(i,new Set),o.add(i),a.set(i,window.getComputedStyle(i)));var n=r.get(i);n.has(this)||n.add(this),cancelAnimationFrame(t),t=requestAnimationFrame(d)}},s.prototype.unobserve=function(i){if(i instanceof window.Element&&r.has(i)){var n=r.get(i);n.has(this)&&(n.delete(this),n.size||(r.delete(i),o.delete(i))),n.size||r.delete(i),o.size||cancelAnimationFrame(t)}},A.DOMRectReadOnly=c,A.ResizeObserver=s,A.ResizeObserverEntry=h,A}; // eslint-disable-line\nmpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Left button pans, Right button zooms\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n\nmpl.extensions = [\"eps\", \"jpeg\", \"pgf\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\"];\n\nmpl.default_extension = \"png\";/* global mpl */\n\nvar comm_websocket_adapter = function (comm) {\n // Create a \"websocket\"-like object which calls the given IPython comm\n // object with the appropriate methods. Currently this is a non binary\n // socket, so there is still some room for performance tuning.\n var ws = {};\n\n ws.binaryType = comm.kernel.ws.binaryType;\n ws.readyState = comm.kernel.ws.readyState;\n function updateReadyState(_event) {\n if (comm.kernel.ws) {\n ws.readyState = comm.kernel.ws.readyState;\n } else {\n ws.readyState = 3; // Closed state.\n }\n }\n comm.kernel.ws.addEventListener('open', updateReadyState);\n comm.kernel.ws.addEventListener('close', updateReadyState);\n comm.kernel.ws.addEventListener('error', updateReadyState);\n\n ws.close = function () {\n comm.close();\n };\n ws.send = function (m) {\n //console.log('sending', m);\n comm.send(m);\n };\n // Register the callback with on_msg.\n comm.on_msg(function (msg) {\n //console.log('receiving', msg['content']['data'], msg);\n var data = msg['content']['data'];\n if (data['blob'] !== undefined) {\n data = {\n data: new Blob(msg['buffers'], { type: data['blob'] }),\n };\n }\n // Pass the mpl event to the overridden (by mpl) onmessage function.\n ws.onmessage(data);\n });\n return ws;\n};\n\nmpl.mpl_figure_comm = function (comm, msg) {\n // This is the function which gets called when the mpl process\n // starts-up an IPython Comm through the \"matplotlib\" channel.\n\n var id = msg.content.data.id;\n // Get hold of the div created by the display call when the Comm\n // socket was opened in Python.\n var element = document.getElementById(id);\n var ws_proxy = comm_websocket_adapter(comm);\n\n function ondownload(figure, _format) {\n window.open(figure.canvas.toDataURL());\n }\n\n var fig = new mpl.figure(id, ws_proxy, ondownload, element);\n\n // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n // web socket which is closed, not our websocket->open comm proxy.\n ws_proxy.onopen();\n\n fig.parent_element = element;\n fig.cell_info = mpl.find_output_cell(\"
\");\n if (!fig.cell_info) {\n console.error('Failed to find cell for figure', id, fig);\n return;\n }\n fig.cell_info[0].output_area.element.on(\n 'cleared',\n { fig: fig },\n fig._remove_fig_handler\n );\n};\n\nmpl.figure.prototype.handle_close = function (fig, msg) {\n var width = fig.canvas.width / fig.ratio;\n fig.cell_info[0].output_area.element.off(\n 'cleared',\n fig._remove_fig_handler\n );\n fig.resizeObserverInstance.unobserve(fig.canvas_div);\n\n // Update the output cell to use the data from the current canvas.\n fig.push_to_output();\n var dataURL = fig.canvas.toDataURL();\n // Re-enable the keyboard manager in IPython - without this line, in FF,\n // the notebook keyboard shortcuts fail.\n IPython.keyboard_manager.enable();\n fig.parent_element.innerHTML =\n '';\n fig.close_ws(fig, msg);\n};\n\nmpl.figure.prototype.close_ws = function (fig, msg) {\n fig.send_message('closing', msg);\n // fig.ws.close()\n};\n\nmpl.figure.prototype.push_to_output = function (_remove_interactive) {\n // Turn the data on the canvas into data in the output cell.\n var width = this.canvas.width / this.ratio;\n var dataURL = this.canvas.toDataURL();\n this.cell_info[1]['text/html'] =\n '';\n};\n\nmpl.figure.prototype.updated_canvas_event = function () {\n // Tell IPython that the notebook contents must change.\n IPython.notebook.set_dirty(true);\n this.send_message('ack', {});\n var fig = this;\n // Wait a second, then push the new image to the DOM so\n // that it is saved nicely (might be nice to debounce this).\n setTimeout(function () {\n fig.push_to_output();\n }, 1000);\n};\n\nmpl.figure.prototype._init_toolbar = function () {\n var fig = this;\n\n var toolbar = document.createElement('div');\n toolbar.classList = 'btn-toolbar';\n this.root.appendChild(toolbar);\n\n function on_click_closure(name) {\n return function (_event) {\n return fig.toolbar_button_onclick(name);\n };\n }\n\n function on_mouseover_closure(tooltip) {\n return function (event) {\n if (!event.currentTarget.disabled) {\n return fig.toolbar_button_onmouseover(tooltip);\n }\n };\n }\n\n fig.buttons = {};\n var buttonGroup = document.createElement('div');\n buttonGroup.classList = 'btn-group';\n var button;\n for (var toolbar_ind in mpl.toolbar_items) {\n var name = mpl.toolbar_items[toolbar_ind][0];\n var tooltip = mpl.toolbar_items[toolbar_ind][1];\n var image = mpl.toolbar_items[toolbar_ind][2];\n var method_name = mpl.toolbar_items[toolbar_ind][3];\n\n if (!name) {\n /* Instead of a spacer, we start a new button group. */\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n buttonGroup = document.createElement('div');\n buttonGroup.classList = 'btn-group';\n continue;\n }\n\n button = fig.buttons[name] = document.createElement('button');\n button.classList = 'btn btn-default';\n button.href = '#';\n button.title = name;\n button.innerHTML = '';\n button.addEventListener('click', on_click_closure(method_name));\n button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n buttonGroup.appendChild(button);\n }\n\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n\n // Add the status bar.\n var status_bar = document.createElement('span');\n status_bar.classList = 'mpl-message pull-right';\n toolbar.appendChild(status_bar);\n this.message = status_bar;\n\n // Add the close button to the window.\n var buttongrp = document.createElement('div');\n buttongrp.classList = 'btn-group inline pull-right';\n button = document.createElement('button');\n button.classList = 'btn btn-mini btn-primary';\n button.href = '#';\n button.title = 'Stop Interaction';\n button.innerHTML = '';\n button.addEventListener('click', function (_evt) {\n fig.handle_close(fig, {});\n });\n button.addEventListener(\n 'mouseover',\n on_mouseover_closure('Stop Interaction')\n );\n buttongrp.appendChild(button);\n var titlebar = this.root.querySelector('.ui-dialog-titlebar');\n titlebar.insertBefore(buttongrp, titlebar.firstChild);\n};\n\nmpl.figure.prototype._remove_fig_handler = function (event) {\n var fig = event.data.fig;\n if (event.target !== this) {\n // Ignore bubbled events from children.\n return;\n }\n fig.close_ws(fig, {});\n};\n\nmpl.figure.prototype._root_extra_style = function (el) {\n el.style.boxSizing = 'content-box'; // override notebook setting of border-box.\n};\n\nmpl.figure.prototype._canvas_extra_style = function (el) {\n // this is important to make the div 'focusable\n el.setAttribute('tabindex', 0);\n // reach out to IPython and tell the keyboard manager to turn it's self\n // off when our div gets focus\n\n // location in version 3\n if (IPython.notebook.keyboard_manager) {\n IPython.notebook.keyboard_manager.register_events(el);\n } else {\n // location in version 2\n IPython.keyboard_manager.register_events(el);\n }\n};\n\nmpl.figure.prototype._key_event_extra = function (event, _name) {\n var manager = IPython.notebook.keyboard_manager;\n if (!manager) {\n manager = IPython.keyboard_manager;\n }\n\n // Check for shift+enter\n if (event.shiftKey && event.which === 13) {\n this.canvas_div.blur();\n // select the cell after this one\n var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n IPython.notebook.select(index + 1);\n }\n};\n\nmpl.figure.prototype.handle_save = function (fig, _msg) {\n fig.ondownload(fig, null);\n};\n\nmpl.find_output_cell = function (html_output) {\n // Return the cell and output element which can be found *uniquely* in the notebook.\n // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n // IPython event is triggered only after the cells have been serialised, which for\n // our purposes (turning an active figure into a static one), is too late.\n var cells = IPython.notebook.get_cells();\n var ncells = cells.length;\n for (var i = 0; i < ncells; i++) {\n var cell = cells[i];\n if (cell.cell_type === 'code') {\n for (var j = 0; j < cell.output_area.outputs.length; j++) {\n var data = cell.output_area.outputs[j];\n if (data.data) {\n // IPython >= 3 moved mimebundle to data attribute of output\n data = data.data;\n }\n if (data['text/html'] === html_output) {\n return [cell, data, j];\n }\n }\n }\n }\n};\n\n// Register the function which deals with the matplotlib target/channel.\n// The kernel may be null if the page has been refreshed.\nif (IPython.notebook.kernel !== null) {\n IPython.notebook.kernel.comm_manager.register_target(\n 'matplotlib',\n mpl.mpl_figure_comm\n );\n}\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot_loss_functions(suptitle = 'Common loss functions for classification (class=1)',\n", + " functions = [zero_one_v(x), logistic_loss(x)],\n", + " ylabels = ['$\\mathcal{L}_{0-1}}$ (0-1 loss)',\n", + " '$\\mathcal{L}_{log}$ (logistic loss)'],\n", + " xlabel = '$p$')\n" + ] }, { "cell_type": "markdown", + "metadata": {}, "source": [ - "## Neural Network Architecture\r\n", - "\r\n", - "We have generated a dataset for binary classification problem. However, let's consider it as multi-class classification right from the start, so that we can then easily switch our code to multi-class classification. In this case, our one-layer perceptron will have the following architecture:\r\n", - "\r\n", - "\r\n", - "\r\n", - "Two outputs of the network correspond to two classes, and the class with highest value among two outputs corresponds to the right solution.\r\n", - "\r\n", - "The model is defined as\r\n", - "$$\r\n", - "f_\\theta(x) = W\\times x + b\r\n", - "$$\r\n", - "where $$\\theta = \\langle W,b\\rangle$$ are parameters.\r\n", - "\r\n", + "To understand logistic loss, consider two cases of the expected output:\n", + "* If we expect output to be 1 ($y=1$), then the loss is $-log f_\\theta(x_i)$. The loss is 0 is the network predicts 1 with probability 1, and grows larger when probability of 1 gets smaller.\n", + "* If we expect output to be 0 ($y=0$), the loss is $-log(1-f_\\theta(x_i))$. Here, $1-f_\\theta(x_i)$ is the probability of 0 which is predicted by the network, and the meaning of log-loss is the same as described in the previous case" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "## Neural Network Architecture\n", + "\n", + "We have generated a dataset for binary classification problem. However, let's consider it as multi-class classification right from the start, so that we can then easily switch our code to multi-class classification. In this case, our one-layer perceptron will have the following architecture:\n", + "\n", + "\n", + "\n", + "Two outputs of the network correspond to two classes, and the class with highest value among two outputs corresponds to the right solution.\n", + "\n", + "The model is defined as\n", + "$$\n", + "f_\\theta(x) = W\\times x + b\n", + "$$\n", + "where $$\\theta = \\langle W,b\\rangle$$ are parameters.\n", + "\n", "We will define this linear layer as a Python class with a `forward` function that performs the calculation. It receives input value $x$, and produces the output of the layer. Parameters `W` and `b` are stored within the layer class, and are initialized upon creation with random values and zeroes respectively." - ], - "metadata": { - "slideshow": { - "slide_type": "slide" - } - } + ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[ 1.77202116, -0.25384488],\n", + " [ 0.28370828, -0.39610552],\n", + " [-0.30097433, 0.30513182],\n", + " [-0.8120485 , 0.56079421],\n", + " [-1.23519653, 0.3394973 ]])" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "class Linear:\r\n", - " def __init__(self,nin,nout):\r\n", - " self.W = np.random.normal(0, 1.0/np.sqrt(nin), (nout, nin))\r\n", - " self.b = np.zeros((1,nout))\r\n", - " \r\n", - " def forward(self, x):\r\n", - " return np.dot(x, self.W.T) + self.b\r\n", - " \r\n", - "net = Linear(2,2)\r\n", + "class Linear:\n", + " def __init__(self,nin,nout):\n", + " self.W = np.random.normal(0, 1.0/np.sqrt(nin), (nout, nin))\n", + " self.b = np.zeros((1,nout))\n", + " \n", + " def forward(self, x):\n", + " return np.dot(x, self.W.T) + self.b\n", + " \n", + "net = Linear(2,2)\n", "net.forward(train_x[0:5])" - ], - "outputs": [], - "metadata": {} + ] }, { "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, "source": [ - "Because we use Numpy operations, we can pass a vector if input values to our network, and it will give us the vector of output values.\r\n", - "\r\n", - "## Softmax: Turning Outputs into Probabilities\r\n", - "\r\n", - "As you can see, our outputs are not probabilities - they can take any values. In order to convert them into probabilities, we need to normalize the values across all classes. This is done using **softmax** function: $$\\sigma(\\mathbf{z}_c) = \\frac{e^{z_c}}{\\sum_{j} e^{z_j}}, \\quad\\mathrm{for}\\quad c\\in 1 .. |C|$$\r\n", - "\r\n", - "\r\n", - "\r\n", - "> Output of the network $\\sigma(\\mathbf{z})$ can be interpreted as probability distribution on the set of classes $C$: $q = \\sigma(\\mathbf{z}_c) = \\hat{p}(c | x)$\r\n", - "\r\n", + "In many cases, it is more efficient to operate not on the one input value, but on the vector of input values. Because we use Numpy operations, we can pass a vector of input values to our network, and it will give us the vector of output values.\n", + "\n", + "## Softmax: Turning Outputs into Probabilities\n", + "\n", + "As you can see, our outputs are not probabilities - they can take any values. In order to convert them into probabilities, we need to normalize the values across all classes. This is done using **softmax** function: $$\\sigma(\\mathbf{z}_c) = \\frac{e^{z_c}}{\\sum_{j} e^{z_j}}, \\quad\\mathrm{for}\\quad c\\in 1 .. |C|$$\n", + "\n", + "\n", + "\n", + "> Output of the network $\\sigma(\\mathbf{z})$ can be interpreted as probability distribution on the set of classes $C$: $q = \\sigma(\\mathbf{z}_c) = \\hat{p}(c | x)$\n", + "\n", "We will define the `Softmax` layer in the same manner, as a class with `forward` function: " - ], - "metadata": { - "slideshow": { - "slide_type": "slide" - } - } + ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 24, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[0.88348621, 0.11651379],\n", + " [0.66369714, 0.33630286],\n", + " [0.35294795, 0.64705205],\n", + " [0.20216095, 0.79783905],\n", + " [0.17154828, 0.82845172],\n", + " [0.24279153, 0.75720847],\n", + " [0.18915732, 0.81084268],\n", + " [0.17282951, 0.82717049],\n", + " [0.13897531, 0.86102469],\n", + " [0.72746882, 0.27253118]])" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "class Softmax:\r\n", - " def forward(self,z):\r\n", - " zmax = z.max(axis=1,keepdims=True)\r\n", - " expz = np.exp(z-zmax)\r\n", - " Z = expz.sum(axis=1,keepdims=True)\r\n", - " return expz / Z\r\n", - "\r\n", - "softmax = Softmax()\r\n", + "class Softmax:\n", + " def forward(self,z):\n", + " zmax = z.max(axis=1,keepdims=True)\n", + " expz = np.exp(z-zmax)\n", + " Z = expz.sum(axis=1,keepdims=True)\n", + " return expz / Z\n", + "\n", + "softmax = Softmax()\n", "softmax.forward(net.forward(train_x[0:10]))" - ], - "outputs": [], - "metadata": {} + ] }, { "cell_type": "markdown", - "source": [ - "You can see that we are now getting probabilities as outputs, i.e. the sum of each output vector is exactly 1. \r\n", - "\r\n", - "In case we have more than 2 classes, softmax will normalize probabilities across all of them. Here is a diagram of network architecture that does MNIST digit classification:\r\n", - "\r\n", - "![MNIST Classifier](images/Cross-Entropy-Loss.PNG)\r\n" - ], "metadata": { "slideshow": { "slide_type": "slide" } - } + }, + "source": [ + "You can see that we are now getting probabilities as outputs, i.e. the sum of each output vector is exactly 1. \n", + "\n", + "In case we have more than 2 classes, softmax will normalize probabilities across all of them. Here is a diagram of network architecture that does MNIST digit classification:\n", + "\n", + "![MNIST Classifier](images/Cross-Entropy-Loss.PNG)\n" + ] }, { "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, "source": [ - "## Cross-Entropy Loss\r\n", - "\r\n", - "A loss function in classification is typically a logistic function, which can be generalized as **cross-entropy loss**. Cross-entropy loss is a function that can calculate similarity between two arbitrary probability distributions. You can find more detailed discussion about it [on Wikipedia](https://en.wikipedia.org/wiki/Cross_entropy).\r\n", - "\r\n", - "In our case, first distribution is the probabilistic output of our network, and the second one is so-called **one-hot** distribution, which specifies that a given class $c$ has corresponding probability 1 (all the rest being 0). In such a case cross-entropy loss can be calculated as $-\\log p_c$, where $c$ is the expected class, and $p_c$ is the corresponding probability of this class given by our neural network.\r\n", - "\r\n", + "## Cross-Entropy Loss\n", + "\n", + "A loss function in classification is typically a logistic function, which can be generalized as **cross-entropy loss**. Cross-entropy loss is a function that can calculate similarity between two arbitrary probability distributions. You can find more detailed discussion about it [on Wikipedia](https://en.wikipedia.org/wiki/Cross_entropy).\n", + "\n", + "In our case, first distribution is the probabilistic output of our network, and the second one is so-called **one-hot** distribution, which specifies that a given class $c$ has corresponding probability 1 (all the rest being 0). In such a case cross-entropy loss can be calculated as $-\\log p_c$, where $c$ is the expected class, and $p_c$ is the corresponding probability of this class given by our neural network.\n", + "\n", "> If the network return probability 1 for the expected class, cross-entropy loss would be 0. The closer the probability of the actual class is to 0, the higher is cross-entropy loss (and it can go up to infinity!)." - ], - "metadata": { - "slideshow": { - "slide_type": "slide" - } - } + ] }, { "cell_type": "code", - "execution_count": null, - "source": [ - "def plot_cross_ent():\r\n", - " p = np.linspace(0.01, 0.99, 101) # estimated probability p(y|x)\r\n", - " cross_ent_v = np.vectorize(cross_ent)\r\n", - " f3, ax = plt.subplots(1,1, figsize=(8, 3))\r\n", - " l1, = plt.plot(p, cross_ent_v(p, 1), 'r--')\r\n", - " l2, = plt.plot(p, cross_ent_v(p, 0), 'r-')\r\n", - " plt.legend([l1, l2], ['$y = 1$', '$y = 0$'], loc = 'upper center', ncol = 2)\r\n", - " plt.xlabel('$\\hat{p}(y|x)$', size=18)\r\n", - " plt.ylabel('$\\mathcal{L}_{CE}$', size=18)\r\n", - " plt.show()" - ], - "outputs": [], + "execution_count": 25, "metadata": { "slideshow": { "slide_type": "skip" } - } + }, + "outputs": [], + "source": [ + "def plot_cross_ent():\n", + " p = np.linspace(0.01, 0.99, 101) # estimated probability p(y|x)\n", + " cross_ent_v = np.vectorize(cross_ent)\n", + " f3, ax = plt.subplots(1,1, figsize=(8, 3))\n", + " l1, = plt.plot(p, cross_ent_v(p, 1), 'r--')\n", + " l2, = plt.plot(p, cross_ent_v(p, 0), 'r-')\n", + " plt.legend([l1, l2], ['$y = 1$', '$y = 0$'], loc = 'upper center', ncol = 2)\n", + " plt.xlabel('$\\hat{p}(y|x)$', size=18)\n", + " plt.ylabel('$\\mathcal{L}_{CE}$', size=18)\n", + " plt.show()" + ] }, { "cell_type": "code", - "execution_count": null, - "source": [ - "def cross_ent(prediction, ground_truth):\r\n", - " t = 1 if ground_truth > 0.5 else 0\r\n", - " return -t * np.log(prediction) - (1 - t) * np.log(1 - prediction)\r\n", - "plot_cross_ent()" - ], - "outputs": [], + "execution_count": 26, "metadata": { "scrolled": true, "slideshow": { "slide_type": "slide" } - } + }, + "outputs": [ + { + "data": { + "application/javascript": "/* Put everything inside the global mpl namespace */\n/* global mpl */\nwindow.mpl = {};\n\nmpl.get_websocket_type = function () {\n if (typeof WebSocket !== 'undefined') {\n return WebSocket;\n } else if (typeof MozWebSocket !== 'undefined') {\n return MozWebSocket;\n } else {\n alert(\n 'Your browser does not have WebSocket support. ' +\n 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n 'Firefox 4 and 5 are also supported but you ' +\n 'have to enable WebSockets in about:config.'\n );\n }\n};\n\nmpl.figure = function (figure_id, websocket, ondownload, parent_element) {\n this.id = figure_id;\n\n this.ws = websocket;\n\n this.supports_binary = this.ws.binaryType !== undefined;\n\n if (!this.supports_binary) {\n var warnings = document.getElementById('mpl-warnings');\n if (warnings) {\n warnings.style.display = 'block';\n warnings.textContent =\n 'This browser does not support binary websocket messages. ' +\n 'Performance may be slow.';\n }\n }\n\n this.imageObj = new Image();\n\n this.context = undefined;\n this.message = undefined;\n this.canvas = undefined;\n this.rubberband_canvas = undefined;\n this.rubberband_context = undefined;\n this.format_dropdown = undefined;\n\n this.image_mode = 'full';\n\n this.root = document.createElement('div');\n this.root.setAttribute('style', 'display: inline-block');\n this._root_extra_style(this.root);\n\n parent_element.appendChild(this.root);\n\n this._init_header(this);\n this._init_canvas(this);\n this._init_toolbar(this);\n\n var fig = this;\n\n this.waiting = false;\n\n this.ws.onopen = function () {\n fig.send_message('supports_binary', { value: fig.supports_binary });\n fig.send_message('send_image_mode', {});\n if (fig.ratio !== 1) {\n fig.send_message('set_dpi_ratio', { dpi_ratio: fig.ratio });\n }\n fig.send_message('refresh', {});\n };\n\n this.imageObj.onload = function () {\n if (fig.image_mode === 'full') {\n // Full images could contain transparency (where diff images\n // almost always do), so we need to clear the canvas so that\n // there is no ghosting.\n fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n }\n fig.context.drawImage(fig.imageObj, 0, 0);\n };\n\n this.imageObj.onunload = function () {\n fig.ws.close();\n };\n\n this.ws.onmessage = this._make_on_message_function(this);\n\n this.ondownload = ondownload;\n};\n\nmpl.figure.prototype._init_header = function () {\n var titlebar = document.createElement('div');\n titlebar.classList =\n 'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n var titletext = document.createElement('div');\n titletext.classList = 'ui-dialog-title';\n titletext.setAttribute(\n 'style',\n 'width: 100%; text-align: center; padding: 3px;'\n );\n titlebar.appendChild(titletext);\n this.root.appendChild(titlebar);\n this.header = titletext;\n};\n\nmpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._init_canvas = function () {\n var fig = this;\n\n var canvas_div = (this.canvas_div = document.createElement('div'));\n canvas_div.setAttribute(\n 'style',\n 'border: 1px solid #ddd;' +\n 'box-sizing: content-box;' +\n 'clear: both;' +\n 'min-height: 1px;' +\n 'min-width: 1px;' +\n 'outline: 0;' +\n 'overflow: hidden;' +\n 'position: relative;' +\n 'resize: both;'\n );\n\n function on_keyboard_event_closure(name) {\n return function (event) {\n return fig.key_event(event, name);\n };\n }\n\n canvas_div.addEventListener(\n 'keydown',\n on_keyboard_event_closure('key_press')\n );\n canvas_div.addEventListener(\n 'keyup',\n on_keyboard_event_closure('key_release')\n );\n\n this._canvas_extra_style(canvas_div);\n this.root.appendChild(canvas_div);\n\n var canvas = (this.canvas = document.createElement('canvas'));\n canvas.classList.add('mpl-canvas');\n canvas.setAttribute('style', 'box-sizing: content-box;');\n\n this.context = canvas.getContext('2d');\n\n var backingStore =\n this.context.backingStorePixelRatio ||\n this.context.webkitBackingStorePixelRatio ||\n this.context.mozBackingStorePixelRatio ||\n this.context.msBackingStorePixelRatio ||\n this.context.oBackingStorePixelRatio ||\n this.context.backingStorePixelRatio ||\n 1;\n\n this.ratio = (window.devicePixelRatio || 1) / backingStore;\n\n var rubberband_canvas = (this.rubberband_canvas = document.createElement(\n 'canvas'\n ));\n rubberband_canvas.setAttribute(\n 'style',\n 'box-sizing: content-box; position: absolute; left: 0; top: 0; z-index: 1;'\n );\n\n // Apply a ponyfill if ResizeObserver is not implemented by browser.\n if (this.ResizeObserver === undefined) {\n if (window.ResizeObserver !== undefined) {\n this.ResizeObserver = window.ResizeObserver;\n } else {\n var obs = _JSXTOOLS_RESIZE_OBSERVER({});\n this.ResizeObserver = obs.ResizeObserver;\n }\n }\n\n this.resizeObserverInstance = new this.ResizeObserver(function (entries) {\n var nentries = entries.length;\n for (var i = 0; i < nentries; i++) {\n var entry = entries[i];\n var width, height;\n if (entry.contentBoxSize) {\n if (entry.contentBoxSize instanceof Array) {\n // Chrome 84 implements new version of spec.\n width = entry.contentBoxSize[0].inlineSize;\n height = entry.contentBoxSize[0].blockSize;\n } else {\n // Firefox implements old version of spec.\n width = entry.contentBoxSize.inlineSize;\n height = entry.contentBoxSize.blockSize;\n }\n } else {\n // Chrome <84 implements even older version of spec.\n width = entry.contentRect.width;\n height = entry.contentRect.height;\n }\n\n // Keep the size of the canvas and rubber band canvas in sync with\n // the canvas container.\n if (entry.devicePixelContentBoxSize) {\n // Chrome 84 implements new version of spec.\n canvas.setAttribute(\n 'width',\n entry.devicePixelContentBoxSize[0].inlineSize\n );\n canvas.setAttribute(\n 'height',\n entry.devicePixelContentBoxSize[0].blockSize\n );\n } else {\n canvas.setAttribute('width', width * fig.ratio);\n canvas.setAttribute('height', height * fig.ratio);\n }\n canvas.setAttribute(\n 'style',\n 'width: ' + width + 'px; height: ' + height + 'px;'\n );\n\n rubberband_canvas.setAttribute('width', width);\n rubberband_canvas.setAttribute('height', height);\n\n // And update the size in Python. We ignore the initial 0/0 size\n // that occurs as the element is placed into the DOM, which should\n // otherwise not happen due to the minimum size styling.\n if (fig.ws.readyState == 1 && width != 0 && height != 0) {\n fig.request_resize(width, height);\n }\n }\n });\n this.resizeObserverInstance.observe(canvas_div);\n\n function on_mouse_event_closure(name) {\n return function (event) {\n return fig.mouse_event(event, name);\n };\n }\n\n rubberband_canvas.addEventListener(\n 'mousedown',\n on_mouse_event_closure('button_press')\n );\n rubberband_canvas.addEventListener(\n 'mouseup',\n on_mouse_event_closure('button_release')\n );\n rubberband_canvas.addEventListener(\n 'dblclick',\n on_mouse_event_closure('dblclick')\n );\n // Throttle sequential mouse events to 1 every 20ms.\n rubberband_canvas.addEventListener(\n 'mousemove',\n on_mouse_event_closure('motion_notify')\n );\n\n rubberband_canvas.addEventListener(\n 'mouseenter',\n on_mouse_event_closure('figure_enter')\n );\n rubberband_canvas.addEventListener(\n 'mouseleave',\n on_mouse_event_closure('figure_leave')\n );\n\n canvas_div.addEventListener('wheel', function (event) {\n if (event.deltaY < 0) {\n event.step = 1;\n } else {\n event.step = -1;\n }\n on_mouse_event_closure('scroll')(event);\n });\n\n canvas_div.appendChild(canvas);\n canvas_div.appendChild(rubberband_canvas);\n\n this.rubberband_context = rubberband_canvas.getContext('2d');\n this.rubberband_context.strokeStyle = '#000000';\n\n this._resize_canvas = function (width, height, forward) {\n if (forward) {\n canvas_div.style.width = width + 'px';\n canvas_div.style.height = height + 'px';\n }\n };\n\n // Disable right mouse context menu.\n this.rubberband_canvas.addEventListener('contextmenu', function (_e) {\n event.preventDefault();\n return false;\n });\n\n function set_focus() {\n canvas.focus();\n canvas_div.focus();\n }\n\n window.setTimeout(set_focus, 100);\n};\n\nmpl.figure.prototype._init_toolbar = function () {\n var fig = this;\n\n var toolbar = document.createElement('div');\n toolbar.classList = 'mpl-toolbar';\n this.root.appendChild(toolbar);\n\n function on_click_closure(name) {\n return function (_event) {\n return fig.toolbar_button_onclick(name);\n };\n }\n\n function on_mouseover_closure(tooltip) {\n return function (event) {\n if (!event.currentTarget.disabled) {\n return fig.toolbar_button_onmouseover(tooltip);\n }\n };\n }\n\n fig.buttons = {};\n var buttonGroup = document.createElement('div');\n buttonGroup.classList = 'mpl-button-group';\n for (var toolbar_ind in mpl.toolbar_items) {\n var name = mpl.toolbar_items[toolbar_ind][0];\n var tooltip = mpl.toolbar_items[toolbar_ind][1];\n var image = mpl.toolbar_items[toolbar_ind][2];\n var method_name = mpl.toolbar_items[toolbar_ind][3];\n\n if (!name) {\n /* Instead of a spacer, we start a new button group. */\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n buttonGroup = document.createElement('div');\n buttonGroup.classList = 'mpl-button-group';\n continue;\n }\n\n var button = (fig.buttons[name] = document.createElement('button'));\n button.classList = 'mpl-widget';\n button.setAttribute('role', 'button');\n button.setAttribute('aria-disabled', 'false');\n button.addEventListener('click', on_click_closure(method_name));\n button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n\n var icon_img = document.createElement('img');\n icon_img.src = '_images/' + image + '.png';\n icon_img.srcset = '_images/' + image + '_large.png 2x';\n icon_img.alt = tooltip;\n button.appendChild(icon_img);\n\n buttonGroup.appendChild(button);\n }\n\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n\n var fmt_picker = document.createElement('select');\n fmt_picker.classList = 'mpl-widget';\n toolbar.appendChild(fmt_picker);\n this.format_dropdown = fmt_picker;\n\n for (var ind in mpl.extensions) {\n var fmt = mpl.extensions[ind];\n var option = document.createElement('option');\n option.selected = fmt === mpl.default_extension;\n option.innerHTML = fmt;\n fmt_picker.appendChild(option);\n }\n\n var status_bar = document.createElement('span');\n status_bar.classList = 'mpl-message';\n toolbar.appendChild(status_bar);\n this.message = status_bar;\n};\n\nmpl.figure.prototype.request_resize = function (x_pixels, y_pixels) {\n // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n // which will in turn request a refresh of the image.\n this.send_message('resize', { width: x_pixels, height: y_pixels });\n};\n\nmpl.figure.prototype.send_message = function (type, properties) {\n properties['type'] = type;\n properties['figure_id'] = this.id;\n this.ws.send(JSON.stringify(properties));\n};\n\nmpl.figure.prototype.send_draw_message = function () {\n if (!this.waiting) {\n this.waiting = true;\n this.ws.send(JSON.stringify({ type: 'draw', figure_id: this.id }));\n }\n};\n\nmpl.figure.prototype.handle_save = function (fig, _msg) {\n var format_dropdown = fig.format_dropdown;\n var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n fig.ondownload(fig, format);\n};\n\nmpl.figure.prototype.handle_resize = function (fig, msg) {\n var size = msg['size'];\n if (size[0] !== fig.canvas.width || size[1] !== fig.canvas.height) {\n fig._resize_canvas(size[0], size[1], msg['forward']);\n fig.send_message('refresh', {});\n }\n};\n\nmpl.figure.prototype.handle_rubberband = function (fig, msg) {\n var x0 = msg['x0'] / fig.ratio;\n var y0 = (fig.canvas.height - msg['y0']) / fig.ratio;\n var x1 = msg['x1'] / fig.ratio;\n var y1 = (fig.canvas.height - msg['y1']) / fig.ratio;\n x0 = Math.floor(x0) + 0.5;\n y0 = Math.floor(y0) + 0.5;\n x1 = Math.floor(x1) + 0.5;\n y1 = Math.floor(y1) + 0.5;\n var min_x = Math.min(x0, x1);\n var min_y = Math.min(y0, y1);\n var width = Math.abs(x1 - x0);\n var height = Math.abs(y1 - y0);\n\n fig.rubberband_context.clearRect(\n 0,\n 0,\n fig.canvas.width / fig.ratio,\n fig.canvas.height / fig.ratio\n );\n\n fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n};\n\nmpl.figure.prototype.handle_figure_label = function (fig, msg) {\n // Updates the figure title.\n fig.header.textContent = msg['label'];\n};\n\nmpl.figure.prototype.handle_cursor = function (fig, msg) {\n var cursor = msg['cursor'];\n switch (cursor) {\n case 0:\n cursor = 'pointer';\n break;\n case 1:\n cursor = 'default';\n break;\n case 2:\n cursor = 'crosshair';\n break;\n case 3:\n cursor = 'move';\n break;\n }\n fig.rubberband_canvas.style.cursor = cursor;\n};\n\nmpl.figure.prototype.handle_message = function (fig, msg) {\n fig.message.textContent = msg['message'];\n};\n\nmpl.figure.prototype.handle_draw = function (fig, _msg) {\n // Request the server to send over a new figure.\n fig.send_draw_message();\n};\n\nmpl.figure.prototype.handle_image_mode = function (fig, msg) {\n fig.image_mode = msg['mode'];\n};\n\nmpl.figure.prototype.handle_history_buttons = function (fig, msg) {\n for (var key in msg) {\n if (!(key in fig.buttons)) {\n continue;\n }\n fig.buttons[key].disabled = !msg[key];\n fig.buttons[key].setAttribute('aria-disabled', !msg[key]);\n }\n};\n\nmpl.figure.prototype.handle_navigate_mode = function (fig, msg) {\n if (msg['mode'] === 'PAN') {\n fig.buttons['Pan'].classList.add('active');\n fig.buttons['Zoom'].classList.remove('active');\n } else if (msg['mode'] === 'ZOOM') {\n fig.buttons['Pan'].classList.remove('active');\n fig.buttons['Zoom'].classList.add('active');\n } else {\n fig.buttons['Pan'].classList.remove('active');\n fig.buttons['Zoom'].classList.remove('active');\n }\n};\n\nmpl.figure.prototype.updated_canvas_event = function () {\n // Called whenever the canvas gets updated.\n this.send_message('ack', {});\n};\n\n// A function to construct a web socket function for onmessage handling.\n// Called in the figure constructor.\nmpl.figure.prototype._make_on_message_function = function (fig) {\n return function socket_on_message(evt) {\n if (evt.data instanceof Blob) {\n var img = evt.data;\n if (img.type !== 'image/png') {\n /* FIXME: We get \"Resource interpreted as Image but\n * transferred with MIME type text/plain:\" errors on\n * Chrome. But how to set the MIME type? It doesn't seem\n * to be part of the websocket stream */\n img.type = 'image/png';\n }\n\n /* Free the memory for the previous frames */\n if (fig.imageObj.src) {\n (window.URL || window.webkitURL).revokeObjectURL(\n fig.imageObj.src\n );\n }\n\n fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n img\n );\n fig.updated_canvas_event();\n fig.waiting = false;\n return;\n } else if (\n typeof evt.data === 'string' &&\n evt.data.slice(0, 21) === 'data:image/png;base64'\n ) {\n fig.imageObj.src = evt.data;\n fig.updated_canvas_event();\n fig.waiting = false;\n return;\n }\n\n var msg = JSON.parse(evt.data);\n var msg_type = msg['type'];\n\n // Call the \"handle_{type}\" callback, which takes\n // the figure and JSON message as its only arguments.\n try {\n var callback = fig['handle_' + msg_type];\n } catch (e) {\n console.log(\n \"No handler for the '\" + msg_type + \"' message type: \",\n msg\n );\n return;\n }\n\n if (callback) {\n try {\n // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n callback(fig, msg);\n } catch (e) {\n console.log(\n \"Exception inside the 'handler_\" + msg_type + \"' callback:\",\n e,\n e.stack,\n msg\n );\n }\n }\n };\n};\n\n// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\nmpl.findpos = function (e) {\n //this section is from http://www.quirksmode.org/js/events_properties.html\n var targ;\n if (!e) {\n e = window.event;\n }\n if (e.target) {\n targ = e.target;\n } else if (e.srcElement) {\n targ = e.srcElement;\n }\n if (targ.nodeType === 3) {\n // defeat Safari bug\n targ = targ.parentNode;\n }\n\n // pageX,Y are the mouse positions relative to the document\n var boundingRect = targ.getBoundingClientRect();\n var x = e.pageX - (boundingRect.left + document.body.scrollLeft);\n var y = e.pageY - (boundingRect.top + document.body.scrollTop);\n\n return { x: x, y: y };\n};\n\n/*\n * return a copy of an object with only non-object keys\n * we need this to avoid circular references\n * http://stackoverflow.com/a/24161582/3208463\n */\nfunction simpleKeys(original) {\n return Object.keys(original).reduce(function (obj, key) {\n if (typeof original[key] !== 'object') {\n obj[key] = original[key];\n }\n return obj;\n }, {});\n}\n\nmpl.figure.prototype.mouse_event = function (event, name) {\n var canvas_pos = mpl.findpos(event);\n\n if (name === 'button_press') {\n this.canvas.focus();\n this.canvas_div.focus();\n }\n\n var x = canvas_pos.x * this.ratio;\n var y = canvas_pos.y * this.ratio;\n\n this.send_message(name, {\n x: x,\n y: y,\n button: event.button,\n step: event.step,\n guiEvent: simpleKeys(event),\n });\n\n /* This prevents the web browser from automatically changing to\n * the text insertion cursor when the button is pressed. We want\n * to control all of the cursor setting manually through the\n * 'cursor' event from matplotlib */\n event.preventDefault();\n return false;\n};\n\nmpl.figure.prototype._key_event_extra = function (_event, _name) {\n // Handle any extra behaviour associated with a key event\n};\n\nmpl.figure.prototype.key_event = function (event, name) {\n // Prevent repeat events\n if (name === 'key_press') {\n if (event.key === this._key) {\n return;\n } else {\n this._key = event.key;\n }\n }\n if (name === 'key_release') {\n this._key = null;\n }\n\n var value = '';\n if (event.ctrlKey && event.key !== 'Control') {\n value += 'ctrl+';\n }\n else if (event.altKey && event.key !== 'Alt') {\n value += 'alt+';\n }\n else if (event.shiftKey && event.key !== 'Shift') {\n value += 'shift+';\n }\n\n value += 'k' + event.key;\n\n this._key_event_extra(event, name);\n\n this.send_message(name, { key: value, guiEvent: simpleKeys(event) });\n return false;\n};\n\nmpl.figure.prototype.toolbar_button_onclick = function (name) {\n if (name === 'download') {\n this.handle_save(this, null);\n } else {\n this.send_message('toolbar_button', { name: name });\n }\n};\n\nmpl.figure.prototype.toolbar_button_onmouseover = function (tooltip) {\n this.message.textContent = tooltip;\n};\n\n///////////////// REMAINING CONTENT GENERATED BY embed_js.py /////////////////\n// prettier-ignore\nvar _JSXTOOLS_RESIZE_OBSERVER=function(A){var t,i=new WeakMap,n=new WeakMap,a=new WeakMap,r=new WeakMap,o=new Set;function s(e){if(!(this instanceof s))throw new TypeError(\"Constructor requires 'new' operator\");i.set(this,e)}function h(){throw new TypeError(\"Function is not a constructor\")}function c(e,t,i,n){e=0 in arguments?Number(arguments[0]):0,t=1 in arguments?Number(arguments[1]):0,i=2 in arguments?Number(arguments[2]):0,n=3 in arguments?Number(arguments[3]):0,this.right=(this.x=this.left=e)+(this.width=i),this.bottom=(this.y=this.top=t)+(this.height=n),Object.freeze(this)}function d(){t=requestAnimationFrame(d);var s=new WeakMap,p=new Set;o.forEach((function(t){r.get(t).forEach((function(i){var r=t instanceof window.SVGElement,o=a.get(t),d=r?0:parseFloat(o.paddingTop),f=r?0:parseFloat(o.paddingRight),l=r?0:parseFloat(o.paddingBottom),u=r?0:parseFloat(o.paddingLeft),g=r?0:parseFloat(o.borderTopWidth),m=r?0:parseFloat(o.borderRightWidth),w=r?0:parseFloat(o.borderBottomWidth),b=u+f,F=d+l,v=(r?0:parseFloat(o.borderLeftWidth))+m,W=g+w,y=r?0:t.offsetHeight-W-t.clientHeight,E=r?0:t.offsetWidth-v-t.clientWidth,R=b+v,z=F+W,M=r?t.width:parseFloat(o.width)-R-E,O=r?t.height:parseFloat(o.height)-z-y;if(n.has(t)){var k=n.get(t);if(k[0]===M&&k[1]===O)return}n.set(t,[M,O]);var S=Object.create(h.prototype);S.target=t,S.contentRect=new c(u,d,M,O),s.has(i)||(s.set(i,[]),p.add(i)),s.get(i).push(S)}))})),p.forEach((function(e){i.get(e).call(e,s.get(e),e)}))}return s.prototype.observe=function(i){if(i instanceof window.Element){r.has(i)||(r.set(i,new Set),o.add(i),a.set(i,window.getComputedStyle(i)));var n=r.get(i);n.has(this)||n.add(this),cancelAnimationFrame(t),t=requestAnimationFrame(d)}},s.prototype.unobserve=function(i){if(i instanceof window.Element&&r.has(i)){var n=r.get(i);n.has(this)&&(n.delete(this),n.size||(r.delete(i),o.delete(i))),n.size||r.delete(i),o.size||cancelAnimationFrame(t)}},A.DOMRectReadOnly=c,A.ResizeObserver=s,A.ResizeObserverEntry=h,A}; // eslint-disable-line\nmpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Left button pans, Right button zooms\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n\nmpl.extensions = [\"eps\", \"jpeg\", \"pgf\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\"];\n\nmpl.default_extension = \"png\";/* global mpl */\n\nvar comm_websocket_adapter = function (comm) {\n // Create a \"websocket\"-like object which calls the given IPython comm\n // object with the appropriate methods. Currently this is a non binary\n // socket, so there is still some room for performance tuning.\n var ws = {};\n\n ws.binaryType = comm.kernel.ws.binaryType;\n ws.readyState = comm.kernel.ws.readyState;\n function updateReadyState(_event) {\n if (comm.kernel.ws) {\n ws.readyState = comm.kernel.ws.readyState;\n } else {\n ws.readyState = 3; // Closed state.\n }\n }\n comm.kernel.ws.addEventListener('open', updateReadyState);\n comm.kernel.ws.addEventListener('close', updateReadyState);\n comm.kernel.ws.addEventListener('error', updateReadyState);\n\n ws.close = function () {\n comm.close();\n };\n ws.send = function (m) {\n //console.log('sending', m);\n comm.send(m);\n };\n // Register the callback with on_msg.\n comm.on_msg(function (msg) {\n //console.log('receiving', msg['content']['data'], msg);\n var data = msg['content']['data'];\n if (data['blob'] !== undefined) {\n data = {\n data: new Blob(msg['buffers'], { type: data['blob'] }),\n };\n }\n // Pass the mpl event to the overridden (by mpl) onmessage function.\n ws.onmessage(data);\n });\n return ws;\n};\n\nmpl.mpl_figure_comm = function (comm, msg) {\n // This is the function which gets called when the mpl process\n // starts-up an IPython Comm through the \"matplotlib\" channel.\n\n var id = msg.content.data.id;\n // Get hold of the div created by the display call when the Comm\n // socket was opened in Python.\n var element = document.getElementById(id);\n var ws_proxy = comm_websocket_adapter(comm);\n\n function ondownload(figure, _format) {\n window.open(figure.canvas.toDataURL());\n }\n\n var fig = new mpl.figure(id, ws_proxy, ondownload, element);\n\n // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n // web socket which is closed, not our websocket->open comm proxy.\n ws_proxy.onopen();\n\n fig.parent_element = element;\n fig.cell_info = mpl.find_output_cell(\"
\");\n if (!fig.cell_info) {\n console.error('Failed to find cell for figure', id, fig);\n return;\n }\n fig.cell_info[0].output_area.element.on(\n 'cleared',\n { fig: fig },\n fig._remove_fig_handler\n );\n};\n\nmpl.figure.prototype.handle_close = function (fig, msg) {\n var width = fig.canvas.width / fig.ratio;\n fig.cell_info[0].output_area.element.off(\n 'cleared',\n fig._remove_fig_handler\n );\n fig.resizeObserverInstance.unobserve(fig.canvas_div);\n\n // Update the output cell to use the data from the current canvas.\n fig.push_to_output();\n var dataURL = fig.canvas.toDataURL();\n // Re-enable the keyboard manager in IPython - without this line, in FF,\n // the notebook keyboard shortcuts fail.\n IPython.keyboard_manager.enable();\n fig.parent_element.innerHTML =\n '';\n fig.close_ws(fig, msg);\n};\n\nmpl.figure.prototype.close_ws = function (fig, msg) {\n fig.send_message('closing', msg);\n // fig.ws.close()\n};\n\nmpl.figure.prototype.push_to_output = function (_remove_interactive) {\n // Turn the data on the canvas into data in the output cell.\n var width = this.canvas.width / this.ratio;\n var dataURL = this.canvas.toDataURL();\n this.cell_info[1]['text/html'] =\n '';\n};\n\nmpl.figure.prototype.updated_canvas_event = function () {\n // Tell IPython that the notebook contents must change.\n IPython.notebook.set_dirty(true);\n this.send_message('ack', {});\n var fig = this;\n // Wait a second, then push the new image to the DOM so\n // that it is saved nicely (might be nice to debounce this).\n setTimeout(function () {\n fig.push_to_output();\n }, 1000);\n};\n\nmpl.figure.prototype._init_toolbar = function () {\n var fig = this;\n\n var toolbar = document.createElement('div');\n toolbar.classList = 'btn-toolbar';\n this.root.appendChild(toolbar);\n\n function on_click_closure(name) {\n return function (_event) {\n return fig.toolbar_button_onclick(name);\n };\n }\n\n function on_mouseover_closure(tooltip) {\n return function (event) {\n if (!event.currentTarget.disabled) {\n return fig.toolbar_button_onmouseover(tooltip);\n }\n };\n }\n\n fig.buttons = {};\n var buttonGroup = document.createElement('div');\n buttonGroup.classList = 'btn-group';\n var button;\n for (var toolbar_ind in mpl.toolbar_items) {\n var name = mpl.toolbar_items[toolbar_ind][0];\n var tooltip = mpl.toolbar_items[toolbar_ind][1];\n var image = mpl.toolbar_items[toolbar_ind][2];\n var method_name = mpl.toolbar_items[toolbar_ind][3];\n\n if (!name) {\n /* Instead of a spacer, we start a new button group. */\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n buttonGroup = document.createElement('div');\n buttonGroup.classList = 'btn-group';\n continue;\n }\n\n button = fig.buttons[name] = document.createElement('button');\n button.classList = 'btn btn-default';\n button.href = '#';\n button.title = name;\n button.innerHTML = '';\n button.addEventListener('click', on_click_closure(method_name));\n button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n buttonGroup.appendChild(button);\n }\n\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n\n // Add the status bar.\n var status_bar = document.createElement('span');\n status_bar.classList = 'mpl-message pull-right';\n toolbar.appendChild(status_bar);\n this.message = status_bar;\n\n // Add the close button to the window.\n var buttongrp = document.createElement('div');\n buttongrp.classList = 'btn-group inline pull-right';\n button = document.createElement('button');\n button.classList = 'btn btn-mini btn-primary';\n button.href = '#';\n button.title = 'Stop Interaction';\n button.innerHTML = '';\n button.addEventListener('click', function (_evt) {\n fig.handle_close(fig, {});\n });\n button.addEventListener(\n 'mouseover',\n on_mouseover_closure('Stop Interaction')\n );\n buttongrp.appendChild(button);\n var titlebar = this.root.querySelector('.ui-dialog-titlebar');\n titlebar.insertBefore(buttongrp, titlebar.firstChild);\n};\n\nmpl.figure.prototype._remove_fig_handler = function (event) {\n var fig = event.data.fig;\n if (event.target !== this) {\n // Ignore bubbled events from children.\n return;\n }\n fig.close_ws(fig, {});\n};\n\nmpl.figure.prototype._root_extra_style = function (el) {\n el.style.boxSizing = 'content-box'; // override notebook setting of border-box.\n};\n\nmpl.figure.prototype._canvas_extra_style = function (el) {\n // this is important to make the div 'focusable\n el.setAttribute('tabindex', 0);\n // reach out to IPython and tell the keyboard manager to turn it's self\n // off when our div gets focus\n\n // location in version 3\n if (IPython.notebook.keyboard_manager) {\n IPython.notebook.keyboard_manager.register_events(el);\n } else {\n // location in version 2\n IPython.keyboard_manager.register_events(el);\n }\n};\n\nmpl.figure.prototype._key_event_extra = function (event, _name) {\n var manager = IPython.notebook.keyboard_manager;\n if (!manager) {\n manager = IPython.keyboard_manager;\n }\n\n // Check for shift+enter\n if (event.shiftKey && event.which === 13) {\n this.canvas_div.blur();\n // select the cell after this one\n var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n IPython.notebook.select(index + 1);\n }\n};\n\nmpl.figure.prototype.handle_save = function (fig, _msg) {\n fig.ondownload(fig, null);\n};\n\nmpl.find_output_cell = function (html_output) {\n // Return the cell and output element which can be found *uniquely* in the notebook.\n // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n // IPython event is triggered only after the cells have been serialised, which for\n // our purposes (turning an active figure into a static one), is too late.\n var cells = IPython.notebook.get_cells();\n var ncells = cells.length;\n for (var i = 0; i < ncells; i++) {\n var cell = cells[i];\n if (cell.cell_type === 'code') {\n for (var j = 0; j < cell.output_area.outputs.length; j++) {\n var data = cell.output_area.outputs[j];\n if (data.data) {\n // IPython >= 3 moved mimebundle to data attribute of output\n data = data.data;\n }\n if (data['text/html'] === html_output) {\n return [cell, data, j];\n }\n }\n }\n }\n};\n\n// Register the function which deals with the matplotlib target/channel.\n// The kernel may be null if the page has been refreshed.\nif (IPython.notebook.kernel !== null) {\n IPython.notebook.kernel.comm_manager.register_target(\n 'matplotlib',\n mpl.mpl_figure_comm\n );\n}\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "def cross_ent(prediction, ground_truth):\n", + " t = 1 if ground_truth > 0.5 else 0\n", + " return -t * np.log(prediction) - (1 - t) * np.log(1 - prediction)\n", + "plot_cross_ent()" + ] }, { "cell_type": "markdown", + "metadata": {}, "source": [ "Cross-entropy loss will be defined again as a separate layer, but `forward` function will have two input values: output of the previous layers of the network `p`, and the expected class `y`:" - ], - "metadata": {} + ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 27, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "1.429664938969559" + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "class CrossEntropyLoss:\r\n", - " def forward(self,p,y):\r\n", - " self.p = p\r\n", - " self.y = y\r\n", - " p_of_y = p[np.arange(len(y)), y]\r\n", - " log_prob = np.log(p_of_y)\r\n", - " return -log_prob.mean() # average over all input samples\r\n", - "\r\n", - "cross_ent_loss = CrossEntropyLoss()\r\n", - "p = softmax.forward(net.forward(train_x[0:10]))\r\n", + "class CrossEntropyLoss:\n", + " def forward(self,p,y):\n", + " self.p = p\n", + " self.y = y\n", + " p_of_y = p[np.arange(len(y)), y]\n", + " log_prob = np.log(p_of_y)\n", + " return -log_prob.mean() # average over all input samples\n", + "\n", + "cross_ent_loss = CrossEntropyLoss()\n", + "p = softmax.forward(net.forward(train_x[0:10]))\n", "cross_ent_loss.forward(p,train_labels[0:10])" - ], - "outputs": [], - "metadata": {} + ] }, { "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, "source": [ - "> **IMPORTANT**: Loss function returns a number that shows how good (or bad) our network performs. It should return us one number for the whole dataset, or for the minibatch. Thus after calculating cross-entropy loss for each individual component of the input vector, we need to average (or add) all components together - which is done by the call to `.mean()`.\r\n", - "\r\n", - "## Computational Graph\r\n", - "\r\n", - "\r\n", - "\r\n", + "> **IMPORTANT**: Loss function returns a number that shows how good (or bad) our network performs. It should return us one number for the whole dataset, or for the part of the dataset (minibatch). Thus after calculating cross-entropy loss for each individual component of the input vector, we need to average (or add) all components together - which is done by the call to `.mean()`.\n", + "\n", + "## Computational Graph\n", + "\n", + "\n", + "\n", "Up to this moment, we have defined different classes for different layers of the network. Composition of those layers can be represented as **computational graph**. Now we can compute the loss for a given training dataset (or part of it) in the following manner:" - ], - "metadata": { - "slideshow": { - "slide_type": "slide" - } - } + ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 28, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1.429664938969559\n" + ] + } + ], "source": [ - "z = net.forward(train_x[0:10])\r\n", - "p = softmax.forward(z)\r\n", - "loss = cross_ent_loss.forward(p,train_labels[0:10])\r\n", + "z = net.forward(train_x[0:10])\n", + "p = softmax.forward(z)\n", + "loss = cross_ent_loss.forward(p,train_labels[0:10])\n", "print(loss)" - ], - "outputs": [], - "metadata": {} + ] }, { "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, "source": [ - "## Loss Minimization Problem and Network Training\r\n", - "\r\n", - "Once we have defined out network as $f_\\theta$, and given the loss function $\\mathcal{L}(Y,f_\\theta(X))$, we can consider $\\mathcal{L}$ as a function of $\\theta$ under our fixed training dataset: $\\mathcal{L}(\\theta) = \\mathcal{L}(Y,f_\\theta(X))$\r\n", - "\r\n", - "In this case, the network training would be a minimization problem of $\\mathcal{L}$ under argument $\\theta$:\r\n", - "$$\r\n", - "\\theta = \\mathrm{argmin}_{\\theta} \\mathcal{L}(Y,f_\\theta(X))\r\n", - "$$\r\n", - "\r\n", - "There is a well-known method of function optimization called **gradient descent**. The idea is that we can compute a derivative (in multi-dimensional case call **gradient**) of loss function with respect to parameters, and vary parameters in such a way that the error would decrease.\r\n", - "\r\n", - "Gradient descent works as follows:\r\n", - " * Initialize parameters by some random values $w^{(0)}$, $b^{(0)}$\r\n", - " * Repeat the following step many times:\r\n", - "\r\n", - " $$\\begin{align}\r\n", - " W^{(i+1)}&=W^{(i)}-\\eta\\frac{\\partial\\mathcal{L}}{\\partial W}\\\\\r\n", - " b^{(i+1)}&=b^{(i)}-\\eta\\frac{\\partial\\mathcal{L}}{\\partial b}\r\n", - " \\end{align}\r\n", - " $$\r\n", - "\r\n", - "During training, the optimization steps are supposed to be calculated considering the whole dataset (remember that loss is calculated as a sum/average through all training samples). However, in real life we take small portions of the dataset called **minibatches**, and calculate gradients based on a subset of data. Because subset is taken randomly each time, such method is called **stochastic gradient descent** (SGD).\r\n", + "## Loss Minimization Problem and Network Training\n", + "\n", + "Once we have defined out network as $f_\\theta$, and given the loss function $\\mathcal{L}(Y,f_\\theta(X))$, we can consider $\\mathcal{L}$ as a function of $\\theta$ under our fixed training dataset: $\\mathcal{L}(\\theta) = \\mathcal{L}(Y,f_\\theta(X))$\n", + "\n", + "In this case, the network training would be a minimization problem of $\\mathcal{L}$ under argument $\\theta$:\n", + "$$\n", + "\\theta = \\mathrm{argmin}_{\\theta} \\mathcal{L}(Y,f_\\theta(X))\n", + "$$\n", + "\n", + "There is a well-known method of function optimization called **gradient descent**. The idea is that we can compute a derivative (in multi-dimensional case call **gradient**) of loss function with respect to parameters, and vary parameters in such a way that the error would decrease.\n", + "\n", + "Gradient descent works as follows:\n", + " * Initialize parameters by some random values $w^{(0)}$, $b^{(0)}$\n", + " * Repeat the following step many times:\n", + "\n", + " $$\\begin{align}\n", + " W^{(i+1)}&=W^{(i)}-\\eta\\frac{\\partial\\mathcal{L}}{\\partial W}\\\\\n", + " b^{(i+1)}&=b^{(i)}-\\eta\\frac{\\partial\\mathcal{L}}{\\partial b}\n", + " \\end{align}\n", + " $$\n", + "\n", + "During training, the optimization steps are supposed to be calculated considering the whole dataset (remember that loss is calculated as a sum/average through all training samples). However, in real life we take small portions of the dataset called **minibatches**, and calculate gradients based on a subset of data. Because subset is taken randomly each time, such method is called **stochastic gradient descent** (SGD).\n", " " - ], + ] + }, + { + "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } - } - }, - { - "cell_type": "markdown", + }, "source": [ - "## Backward Propagation\r\n", - "\r\n", - "\r\n", - "\r\n", - "$$\\def\\L{\\mathcal{L}}\\def\\zz#1#2{\\frac{\\partial#1}{\\partial#2}}\r\n", - "\\begin{align}\r\n", - "\\zz{\\L}{W} =& \\zz{\\L}{p}\\zz{p}{z}\\zz{z}{W}\\cr\r\n", - "\\zz{\\L}{b} =& \\zz{\\L}{p}\\zz{p}{z}\\zz{z}{b}\r\n", - "\\end{align}\r\n", + "## Backward Propagation\n", + "\n", + "\n", + "\n", + "$$\\def\\L{\\mathcal{L}}\\def\\zz#1#2{\\frac{\\partial#1}{\\partial#2}}\n", + "\\begin{align}\n", + "\\zz{\\L}{W} =& \\zz{\\L}{p}\\zz{p}{z}\\zz{z}{W}\\cr\n", + "\\zz{\\L}{b} =& \\zz{\\L}{p}\\zz{p}{z}\\zz{z}{b}\n", + "\\end{align}\n", "$$" - ], + ] + }, + { + "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } - } - }, - { - "cell_type": "markdown", + }, "source": [ - "To compute $\\partial\\mathcal{L}/\\partial W$ we can use the **chaining rule** for computing derivatives of a composite function, as you can see in the formulae above. It corresponds to the following idea:\r\n", - "\r\n", - "* Suppose under given input we have obtanes loss $\\Delta\\mathcal{L}$\r\n", - "* To minimize it, we would have to adjust softmax output $p$ by value $\\Delta p = (\\partial\\mathcal{L}/\\partial p)\\Delta\\mathcal{L}$ \r\n", - "* This corresponds to the changes to node $z$ by $\\Delta z = (\\partial\\mathcal{p}/\\partial z)\\Delta p$\r\n", - "* To minimize this error, we need to adjust parameters accordingly: $\\Delta W = (\\partial\\mathcal{z}/\\partial W)\\Delta z$ (and the same for $b$)\r\n", - "\r\n", - "\r\n", - "\r\n", - "This process starts distributing the loss error from the output of the network back to its parameters. Thus the process is called **back propagation**.\r\n", - "\r\n", - "One pass of the network training consists of two parts:\r\n", - "* **Forward pass**, when we calculate the value of loss function for a given input minibatch\r\n", + "To compute $\\partial\\mathcal{L}/\\partial W$ we can use the **chaining rule** for computing derivatives of a composite function, as you can see in the formulae above. It corresponds to the following idea:\n", + "\n", + "* Suppose under given input we have obtanes loss $\\Delta\\mathcal{L}$\n", + "* To minimize it, we would have to adjust softmax output $p$ by value $\\Delta p = (\\partial\\mathcal{L}/\\partial p)\\Delta\\mathcal{L}$ \n", + "* This corresponds to the changes to node $z$ by $\\Delta z = (\\partial\\mathcal{p}/\\partial z)\\Delta p$\n", + "* To minimize this error, we need to adjust parameters accordingly: $\\Delta W = (\\partial\\mathcal{z}/\\partial W)\\Delta z$ (and the same for $b$)\n", + "\n", + "\n", + "\n", + "This process starts distributing the loss error from the output of the network back to its parameters. Thus the process is called **back propagation**.\n", + "\n", + "One pass of the network training consists of two parts:\n", + "* **Forward pass**, when we calculate the value of loss function for a given input minibatch\n", "* **Backward pass**, when we try to minimize this error by distributing it back to the model parameters through the computational graph." - ], - "metadata": { - "slideshow": { - "slide_type": "slide" - } - } + ] }, { "cell_type": "markdown", + "metadata": {}, "source": [ - "### Implementation of Back Propagation\r\n", - "\r\n", - "* Let's add `backward` function to each of our nodes that will compute the derivative and propagate the error during the backward pass.\r\n", - "* We also need to implement parameter updates according to the procedure described above\r\n", - "\r\n", - "We need to compute derivatives for each layer manually, for example for linear layer $z = x\\times W+b$:\r\n", - "$$\\begin{align}\r\n", - "\\frac{\\partial z}{\\partial W} &= x \\\\\r\n", - "\\frac{\\partial z}{\\partial b} &= 1 \\\\\r\n", - "\\end{align}$$\r\n", - "\r\n", - "If we need to compensate for the error $\\Delta z$ at the output of the layer, we need to update the weights accordingly:\r\n", - "$$\\begin{align}\r\n", - "\\Delta x &= \\Delta z \\times W \\\\\r\n", - "\\Delta W &= \\frac{\\partial z}{\\partial W} \\Delta z = \\Delta z \\times x \\\\\r\n", - "\\Delta b &= \\frac{\\partial z}{\\partial b} \\Delta z = \\Delta z \\\\\r\n", - "\\end{align}$$\r\n", - "\r\n", + "### Implementation of Back Propagation\n", + "\n", + "* Let's add `backward` function to each of our nodes that will compute the derivative and propagate the error during the backward pass.\n", + "* We also need to implement parameter updates according to the procedure described above\n", + "\n", + "We need to compute derivatives for each layer manually, for example for linear layer $z = x\\times W+b$:\n", + "$$\\begin{align}\n", + "\\frac{\\partial z}{\\partial W} &= x \\\\\n", + "\\frac{\\partial z}{\\partial b} &= 1 \\\\\n", + "\\end{align}$$\n", + "\n", + "If we need to compensate for the error $\\Delta z$ at the output of the layer, we need to update the weights accordingly:\n", + "$$\\begin{align}\n", + "\\Delta x &= \\Delta z \\times W \\\\\n", + "\\Delta W &= \\frac{\\partial z}{\\partial W} \\Delta z = \\Delta z \\times x \\\\\n", + "\\Delta b &= \\frac{\\partial z}{\\partial b} \\Delta z = \\Delta z \\\\\n", + "\\end{align}$$\n", + "\n", "**IMPORTANT:** Calculations are done not for each training sample independently, but rather for a whole **minibatch**. Required parameter updates $\\Delta W$ and $\\Delta b$ are computed across the whole minibatch, and the respective vectors have dimensions: $x\\in\\mathbb{R}^{\\mathrm{minibatch}\\, \\times\\, \\mathrm{nclass}}$" - ], - "metadata": {} + ] }, { "cell_type": "code", - "execution_count": null, - "source": [ - "class Linear:\r\n", - " def __init__(self,nin,nout):\r\n", - " self.W = np.random.normal(0, 1.0/np.sqrt(nin), (nout, nin))\r\n", - " self.b = np.zeros((1,nout))\r\n", - " self.dW = np.zeros_like(self.W)\r\n", - " self.db = np.zeros_like(self.b)\r\n", - " \r\n", - " def forward(self, x):\r\n", - " self.x=x\r\n", - " return np.dot(x, self.W.T) + self.b\r\n", - " \r\n", - " def backward(self, dz):\r\n", - " dx = np.dot(dz, self.W)\r\n", - " dW = np.dot(dz.T, self.x)\r\n", - " db = dz.sum(axis=0)\r\n", - " self.dW = dW\r\n", - " self.db = db\r\n", - " return dx\r\n", - " \r\n", - " def update(self,lr):\r\n", - " self.W -= lr*self.dW\r\n", - " self.b -= lr*self.db" - ], + "execution_count": 29, + "metadata": {}, "outputs": [], - "metadata": {} + "source": [ + "class Linear:\n", + " def __init__(self,nin,nout):\n", + " self.W = np.random.normal(0, 1.0/np.sqrt(nin), (nout, nin))\n", + " self.b = np.zeros((1,nout))\n", + " self.dW = np.zeros_like(self.W)\n", + " self.db = np.zeros_like(self.b)\n", + " \n", + " def forward(self, x):\n", + " self.x=x\n", + " return np.dot(x, self.W.T) + self.b\n", + " \n", + " def backward(self, dz):\n", + " dx = np.dot(dz, self.W)\n", + " dW = np.dot(dz.T, self.x)\n", + " db = dz.sum(axis=0)\n", + " self.dW = dW\n", + " self.db = db\n", + " return dx\n", + " \n", + " def update(self,lr):\n", + " self.W -= lr*self.dW\n", + " self.b -= lr*self.db" + ] }, { "cell_type": "markdown", + "metadata": {}, "source": [ "In the same manner we can define `backward` function for the rest of our layers:" - ], - "metadata": {} + ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 30, + "metadata": {}, + "outputs": [], "source": [ - "class Softmax:\r\n", - " def forward(self,z):\r\n", - " self.z = z\r\n", - " zmax = z.max(axis=1,keepdims=True)\r\n", - " expz = np.exp(z-zmax)\r\n", - " Z = expz.sum(axis=1,keepdims=True)\r\n", - " return expz / Z\r\n", - " def backward(self,dp):\r\n", - " p = self.forward(self.z)\r\n", - " pdp = p * dp\r\n", - " return pdp - p * pdp.sum(axis=1, keepdims=True)\r\n", - " \r\n", - "class CrossEntropyLoss:\r\n", - " def forward(self,p,y):\r\n", - " self.p = p\r\n", - " self.y = y\r\n", - " p_of_y = p[np.arange(len(y)), y]\r\n", - " log_prob = np.log(p_of_y)\r\n", - " return -log_prob.mean()\r\n", - " def backward(self,loss):\r\n", - " dlog_softmax = np.zeros_like(self.p)\r\n", - " dlog_softmax[np.arange(len(self.y)), self.y] -= 1.0/len(self.y)\r\n", + "class Softmax:\n", + " def forward(self,z):\n", + " self.z = z\n", + " zmax = z.max(axis=1,keepdims=True)\n", + " expz = np.exp(z-zmax)\n", + " Z = expz.sum(axis=1,keepdims=True)\n", + " return expz / Z\n", + " def backward(self,dp):\n", + " p = self.forward(self.z)\n", + " pdp = p * dp\n", + " return pdp - p * pdp.sum(axis=1, keepdims=True)\n", + " \n", + "class CrossEntropyLoss:\n", + " def forward(self,p,y):\n", + " self.p = p\n", + " self.y = y\n", + " p_of_y = p[np.arange(len(y)), y]\n", + " log_prob = np.log(p_of_y)\n", + " return -log_prob.mean()\n", + " def backward(self,loss):\n", + " dlog_softmax = np.zeros_like(self.p)\n", + " dlog_softmax[np.arange(len(self.y)), self.y] -= 1.0/len(self.y)\n", " return dlog_softmax / self.p" - ], - "outputs": [], - "metadata": {} + ] }, { "cell_type": "markdown", + "metadata": {}, "source": [ - "## Training the Model\r\n", - "\r\n", + "## Training the Model\n", + "\n", "Now we are ready to write the **training loop**, which will go through our dataset, and perform the optimization minibatch by minibatch.One complete pass through the dataset is often called **an epoch**:" - ], - "metadata": {} + ] }, { "cell_type": "code", - "execution_count": null, - "source": [ - "lin = Linear(2,2)\r\n", - "softmax = Softmax()\r\n", - "cross_ent_loss = CrossEntropyLoss()\r\n", - "\r\n", - "learning_rate = 0.1\r\n", - "\r\n", - "pred = np.argmax(lin.forward(train_x),axis=1)\r\n", - "acc = (pred==train_labels).mean()\r\n", - "print(\"Initial accuracy: \",acc)\r\n", - "\r\n", - "batch_size=4\r\n", - "for i in range(0,len(train_x),batch_size):\r\n", - " xb = train_x[i:i+batch_size]\r\n", - " yb = train_labels[i:i+batch_size]\r\n", - " \r\n", - " # forward pass\r\n", - " z = lin.forward(xb)\r\n", - " p = softmax.forward(z)\r\n", - " loss = cross_ent_loss.forward(p,yb)\r\n", - " \r\n", - " # backward pass\r\n", - " dp = cross_ent_loss.backward(loss)\r\n", - " dz = softmax.backward(dp)\r\n", - " dx = lin.backward(dz)\r\n", - " lin.update(learning_rate)\r\n", - " \r\n", - "pred = np.argmax(lin.forward(train_x),axis=1)\r\n", - "acc = (pred==train_labels).mean()\r\n", - "print(\"Final accuracy: \",acc)\r\n", - " " + "execution_count": 31, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Initial accuracy: 0.725\n", + "Final accuracy: 0.825\n" + ] + } ], - "outputs": [], - "metadata": {} + "source": [ + "lin = Linear(2,2)\n", + "softmax = Softmax()\n", + "cross_ent_loss = CrossEntropyLoss()\n", + "\n", + "learning_rate = 0.1\n", + "\n", + "pred = np.argmax(lin.forward(train_x),axis=1)\n", + "acc = (pred==train_labels).mean()\n", + "print(\"Initial accuracy: \",acc)\n", + "\n", + "batch_size=4\n", + "for i in range(0,len(train_x),batch_size):\n", + " xb = train_x[i:i+batch_size]\n", + " yb = train_labels[i:i+batch_size]\n", + " \n", + " # forward pass\n", + " z = lin.forward(xb)\n", + " p = softmax.forward(z)\n", + " loss = cross_ent_loss.forward(p,yb)\n", + " \n", + " # backward pass\n", + " dp = cross_ent_loss.backward(loss)\n", + " dz = softmax.backward(dp)\n", + " dx = lin.backward(dz)\n", + " lin.update(learning_rate)\n", + " \n", + "pred = np.argmax(lin.forward(train_x),axis=1)\n", + "acc = (pred==train_labels).mean()\n", + "print(\"Final accuracy: \",acc)\n", + " " + ] }, { "cell_type": "markdown", + "metadata": {}, "source": [ - "Nice to see how we can increase accuracy of the model from about 50% to around 80% in one epoch.\r\n", - "\r\n", - "## Network Class\r\n", - "\r\n", + "Nice to see how we can increase accuracy of the model from about 50% to around 80% in one epoch.\n", + "\n", + "## Network Class\n", + "\n", "Since in many cases neural network is just a composition of layers, we can build a class that will allow us to stack layers together and make forward and backward passes through them without explicitly programming that logic. We will store the list of layers inside the `Net` class, and use `add()` function to add new layers:" - ], - "metadata": {} + ] }, { "cell_type": "code", - "execution_count": null, - "source": [ - "class Net:\r\n", - " def __init__(self):\r\n", - " self.layers = []\r\n", - " \r\n", - " def add(self,l):\r\n", - " self.layers.append(l)\r\n", - " \r\n", - " def forward(self,x):\r\n", - " for l in self.layers:\r\n", - " x = l.forward(x)\r\n", - " return x\r\n", - " \r\n", - " def backward(self,z):\r\n", - " for l in self.layers[::-1]:\r\n", - " z = l.backward(z)\r\n", - " return z\r\n", - " \r\n", - " def update(self,lr):\r\n", - " for l in self.layers:\r\n", - " if 'update' in l.__dir__():\r\n", - " l.update(lr)" - ], - "outputs": [], + "execution_count": 32, "metadata": { "scrolled": true, "slideshow": { "slide_type": "skip" } - } + }, + "outputs": [], + "source": [ + "class Net:\n", + " def __init__(self):\n", + " self.layers = []\n", + " \n", + " def add(self,l):\n", + " self.layers.append(l)\n", + " \n", + " def forward(self,x):\n", + " for l in self.layers:\n", + " x = l.forward(x)\n", + " return x\n", + " \n", + " def backward(self,z):\n", + " for l in self.layers[::-1]:\n", + " z = l.backward(z)\n", + " return z\n", + " \n", + " def update(self,lr):\n", + " for l in self.layers:\n", + " if 'update' in l.__dir__():\n", + " l.update(lr)" + ] }, { "cell_type": "markdown", + "metadata": {}, "source": [ "With this `Net` class our model definition and training becomes more neat:" - ], - "metadata": {} + ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 33, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Initial loss=0.6212072429381601, accuracy=0.6875: \n", + "Final loss=0.44369925927417986, accuracy=0.8: \n", + "Test loss=0.4767711377257787, accuracy=0.85: \n" + ] + } + ], "source": [ - "net = Net()\r\n", - "net.add(Linear(2,2))\r\n", - "net.add(Softmax())\r\n", - "loss = CrossEntropyLoss()\r\n", - "\r\n", - "def get_loss_acc(x,y,loss=CrossEntropyLoss()):\r\n", - " p = net.forward(x)\r\n", - " l = loss.forward(p,y)\r\n", - " pred = np.argmax(p,axis=1)\r\n", - " acc = (pred==y).mean()\r\n", - " return l,acc\r\n", - "\r\n", - "print(\"Initial loss={}, accuracy={}: \".format(*get_loss_acc(train_x,train_labels)))\r\n", - "\r\n", - "def train_epoch(net, train_x, train_labels, loss=CrossEntropyLoss(), batch_size=4, lr=0.1):\r\n", - " for i in range(0,len(train_x),batch_size):\r\n", - " xb = train_x[i:i+batch_size]\r\n", - " yb = train_labels[i:i+batch_size]\r\n", - "\r\n", - " p = net.forward(xb)\r\n", - " l = loss.forward(p,yb)\r\n", - " dp = loss.backward(l)\r\n", - " dx = net.backward(dp)\r\n", - " net.update(lr)\r\n", - " \r\n", - "train_epoch(net,train_x,train_labels)\r\n", - " \r\n", - "print(\"Final loss={}, accuracy={}: \".format(*get_loss_acc(train_x,train_labels)))\r\n", + "net = Net()\n", + "net.add(Linear(2,2))\n", + "net.add(Softmax())\n", + "loss = CrossEntropyLoss()\n", + "\n", + "def get_loss_acc(x,y,loss=CrossEntropyLoss()):\n", + " p = net.forward(x)\n", + " l = loss.forward(p,y)\n", + " pred = np.argmax(p,axis=1)\n", + " acc = (pred==y).mean()\n", + " return l,acc\n", + "\n", + "print(\"Initial loss={}, accuracy={}: \".format(*get_loss_acc(train_x,train_labels)))\n", + "\n", + "def train_epoch(net, train_x, train_labels, loss=CrossEntropyLoss(), batch_size=4, lr=0.1):\n", + " for i in range(0,len(train_x),batch_size):\n", + " xb = train_x[i:i+batch_size]\n", + " yb = train_labels[i:i+batch_size]\n", + "\n", + " p = net.forward(xb)\n", + " l = loss.forward(p,yb)\n", + " dp = loss.backward(l)\n", + " dx = net.backward(dp)\n", + " net.update(lr)\n", + " \n", + "train_epoch(net,train_x,train_labels)\n", + " \n", + "print(\"Final loss={}, accuracy={}: \".format(*get_loss_acc(train_x,train_labels)))\n", "print(\"Test loss={}, accuracy={}: \".format(*get_loss_acc(test_x,test_labels)))" - ], - "outputs": [], - "metadata": {} + ] }, { "cell_type": "markdown", + "metadata": {}, "source": [ - "## Plotting the Training Process\r\n", - "\r\n", - "It would be nice to see visually how the network is being trained! We will define a `train_and_plot` function for that. To visualize the state of the network we will use level map, i.e. we will represent different values of the network output using different colors.\r\n", - "\r\n", + "## Plotting the Training Process\n", + "\n", + "It would be nice to see visually how the network is being trained! We will define a `train_and_plot` function for that. To visualize the state of the network we will use level map, i.e. we will represent different values of the network output using different colors.\n", + "\n", "> Do not worry if you do not understand some of the plotting code below - it is more important to understand the underlying neural network concepts." - ], - "metadata": {} + ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 34, + "metadata": { + "slideshow": { + "slide_type": "skip" + } + }, + "outputs": [], "source": [ - "def train_and_plot(n_epoch, net, loss=CrossEntropyLoss(), batch_size=4, lr=0.1):\r\n", - " fig, ax = plt.subplots(2, 1)\r\n", - " ax[0].set_xlim(0, n_epoch + 1)\r\n", - " ax[0].set_ylim(0,1)\r\n", - "\r\n", - " train_acc = np.empty((n_epoch, 3))\r\n", - " train_acc[:] = np.NAN\r\n", - " valid_acc = np.empty((n_epoch, 3))\r\n", - " valid_acc[:] = np.NAN\r\n", - "\r\n", - " for epoch in range(1, n_epoch + 1):\r\n", - "\r\n", - " train_epoch(net,train_x,train_labels,loss,batch_size,lr)\r\n", - " tloss, taccuracy = get_loss_acc(train_x,train_labels,loss)\r\n", - " train_acc[epoch-1, :] = [epoch, tloss, taccuracy]\r\n", - " vloss, vaccuracy = get_loss_acc(test_x,test_labels,loss)\r\n", - " valid_acc[epoch-1, :] = [epoch, vloss, vaccuracy]\r\n", - " \r\n", - " ax[0].set_ylim(0, max(max(train_acc[:, 2]), max(valid_acc[:, 2])) * 1.1)\r\n", - "\r\n", - " plot_training_progress(train_acc[:, 0], (train_acc[:, 2],\r\n", - " valid_acc[:, 2]), fig, ax[0])\r\n", - " plot_decision_boundary(net, fig, ax[1])\r\n", - " fig.canvas.draw()\r\n", - " fig.canvas.flush_events()\r\n", - "\r\n", + "def train_and_plot(n_epoch, net, loss=CrossEntropyLoss(), batch_size=4, lr=0.1):\n", + " fig, ax = plt.subplots(2, 1)\n", + " ax[0].set_xlim(0, n_epoch + 1)\n", + " ax[0].set_ylim(0,1)\n", + "\n", + " train_acc = np.empty((n_epoch, 3))\n", + " train_acc[:] = np.NAN\n", + " valid_acc = np.empty((n_epoch, 3))\n", + " valid_acc[:] = np.NAN\n", + "\n", + " for epoch in range(1, n_epoch + 1):\n", + "\n", + " train_epoch(net,train_x,train_labels,loss,batch_size,lr)\n", + " tloss, taccuracy = get_loss_acc(train_x,train_labels,loss)\n", + " train_acc[epoch-1, :] = [epoch, tloss, taccuracy]\n", + " vloss, vaccuracy = get_loss_acc(test_x,test_labels,loss)\n", + " valid_acc[epoch-1, :] = [epoch, vloss, vaccuracy]\n", + " \n", + " ax[0].set_ylim(0, max(max(train_acc[:, 2]), max(valid_acc[:, 2])) * 1.1)\n", + "\n", + " plot_training_progress(train_acc[:, 0], (train_acc[:, 2],\n", + " valid_acc[:, 2]), fig, ax[0])\n", + " plot_decision_boundary(net, fig, ax[1])\n", + " fig.canvas.draw()\n", + " fig.canvas.flush_events()\n", + "\n", " return train_acc, valid_acc" - ], - "outputs": [], + ] + }, + { + "cell_type": "code", + "execution_count": 35, "metadata": { "slideshow": { "slide_type": "skip" } - } - }, - { - "cell_type": "code", - "execution_count": null, + }, + "outputs": [], "source": [ - "import matplotlib.cm as cm\r\n", - "\r\n", - "def plot_decision_boundary(net, fig, ax):\r\n", - " draw_colorbar = True\r\n", - " # remove previous plot\r\n", - " while ax.collections:\r\n", - " ax.collections.pop()\r\n", - " draw_colorbar = False\r\n", - "\r\n", - " # generate countour grid\r\n", - " x_min, x_max = train_x[:, 0].min() - 1, train_x[:, 0].max() + 1\r\n", - " y_min, y_max = train_x[:, 1].min() - 1, train_x[:, 1].max() + 1\r\n", - " xx, yy = np.meshgrid(np.arange(x_min, x_max, 0.1),\r\n", - " np.arange(y_min, y_max, 0.1))\r\n", - " grid_points = np.c_[xx.ravel().astype('float32'), yy.ravel().astype('float32')]\r\n", - " n_classes = max(train_labels)+1\r\n", - " while train_x.shape[1] > grid_points.shape[1]:\r\n", - " # pad dimensions (plot only the first two)\r\n", - " grid_points = np.c_[grid_points,\r\n", - " np.empty(len(xx.ravel())).astype('float32')]\r\n", - " grid_points[:, -1].fill(train_x[:, grid_points.shape[1]-1].mean())\r\n", - "\r\n", - " # evaluate predictions\r\n", - " prediction = np.array(net.forward(grid_points))\r\n", - " # for two classes: prediction difference\r\n", - " if (n_classes == 2):\r\n", - " Z = np.array([0.5+(p[0]-p[1])/2.0 for p in prediction]).reshape(xx.shape)\r\n", - " else:\r\n", - " Z = np.array([p.argsort()[-1]/float(n_classes-1) for p in prediction]).reshape(xx.shape)\r\n", - " \r\n", - " # draw contour\r\n", - " levels = np.linspace(0, 1, 40)\r\n", - " cs = ax.contourf(xx, yy, Z, alpha=0.4, levels = levels)\r\n", - " if draw_colorbar:\r\n", - " fig.colorbar(cs, ax=ax, ticks = [0, 0.5, 1])\r\n", - " c_map = [cm.jet(x) for x in np.linspace(0.0, 1.0, n_classes) ]\r\n", - " colors = [c_map[l] for l in train_labels]\r\n", + "import matplotlib.cm as cm\n", + "\n", + "def plot_decision_boundary(net, fig, ax):\n", + " draw_colorbar = True\n", + " # remove previous plot\n", + " while ax.collections:\n", + " ax.collections.pop()\n", + " draw_colorbar = False\n", + "\n", + " # generate countour grid\n", + " x_min, x_max = train_x[:, 0].min() - 1, train_x[:, 0].max() + 1\n", + " y_min, y_max = train_x[:, 1].min() - 1, train_x[:, 1].max() + 1\n", + " xx, yy = np.meshgrid(np.arange(x_min, x_max, 0.1),\n", + " np.arange(y_min, y_max, 0.1))\n", + " grid_points = np.c_[xx.ravel().astype('float32'), yy.ravel().astype('float32')]\n", + " n_classes = max(train_labels)+1\n", + " while train_x.shape[1] > grid_points.shape[1]:\n", + " # pad dimensions (plot only the first two)\n", + " grid_points = np.c_[grid_points,\n", + " np.empty(len(xx.ravel())).astype('float32')]\n", + " grid_points[:, -1].fill(train_x[:, grid_points.shape[1]-1].mean())\n", + "\n", + " # evaluate predictions\n", + " prediction = np.array(net.forward(grid_points))\n", + " # for two classes: prediction difference\n", + " if (n_classes == 2):\n", + " Z = np.array([0.5+(p[0]-p[1])/2.0 for p in prediction]).reshape(xx.shape)\n", + " else:\n", + " Z = np.array([p.argsort()[-1]/float(n_classes-1) for p in prediction]).reshape(xx.shape)\n", + " \n", + " # draw contour\n", + " levels = np.linspace(0, 1, 40)\n", + " cs = ax.contourf(xx, yy, Z, alpha=0.4, levels = levels)\n", + " if draw_colorbar:\n", + " fig.colorbar(cs, ax=ax, ticks = [0, 0.5, 1])\n", + " c_map = [cm.jet(x) for x in np.linspace(0.0, 1.0, n_classes) ]\n", + " colors = [c_map[l] for l in train_labels]\n", " ax.scatter(train_x[:, 0], train_x[:, 1], marker='o', c=colors, s=60, alpha = 0.5)" - ], - "outputs": [], + ] + }, + { + "cell_type": "code", + "execution_count": 36, "metadata": { "slideshow": { "slide_type": "skip" } - } - }, - { - "cell_type": "code", - "execution_count": null, + }, + "outputs": [], "source": [ - "def plot_training_progress(x, y_data, fig, ax):\r\n", - " styles = ['k--', 'g-']\r\n", - " # remove previous plot\r\n", - " while ax.lines:\r\n", - " ax.lines.pop()\r\n", - " # draw updated lines\r\n", - " for i in range(len(y_data)):\r\n", - " ax.plot(x, y_data[i], styles[i])\r\n", - " ax.legend(ax.lines, ['training accuracy', 'validation accuracy'],\r\n", + "def plot_training_progress(x, y_data, fig, ax):\n", + " styles = ['k--', 'g-']\n", + " # remove previous plot\n", + " while ax.lines:\n", + " ax.lines.pop()\n", + " # draw updated lines\n", + " for i in range(len(y_data)):\n", + " ax.plot(x, y_data[i], styles[i])\n", + " ax.legend(ax.lines, ['training accuracy', 'validation accuracy'],\n", " loc='upper center', ncol = 2)" - ], - "outputs": [], - "metadata": { - "slideshow": { - "slide_type": "skip" - } - } + ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 37, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [ + { + "data": { + "application/javascript": "/* Put everything inside the global mpl namespace */\n/* global mpl */\nwindow.mpl = {};\n\nmpl.get_websocket_type = function () {\n if (typeof WebSocket !== 'undefined') {\n return WebSocket;\n } else if (typeof MozWebSocket !== 'undefined') {\n return MozWebSocket;\n } else {\n alert(\n 'Your browser does not have WebSocket support. ' +\n 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n 'Firefox 4 and 5 are also supported but you ' +\n 'have to enable WebSockets in about:config.'\n );\n }\n};\n\nmpl.figure = function (figure_id, websocket, ondownload, parent_element) {\n this.id = figure_id;\n\n this.ws = websocket;\n\n this.supports_binary = this.ws.binaryType !== undefined;\n\n if (!this.supports_binary) {\n var warnings = document.getElementById('mpl-warnings');\n if (warnings) {\n warnings.style.display = 'block';\n warnings.textContent =\n 'This browser does not support binary websocket messages. ' +\n 'Performance may be slow.';\n }\n }\n\n this.imageObj = new Image();\n\n this.context = undefined;\n this.message = undefined;\n this.canvas = undefined;\n this.rubberband_canvas = undefined;\n this.rubberband_context = undefined;\n this.format_dropdown = undefined;\n\n this.image_mode = 'full';\n\n this.root = document.createElement('div');\n this.root.setAttribute('style', 'display: inline-block');\n this._root_extra_style(this.root);\n\n parent_element.appendChild(this.root);\n\n this._init_header(this);\n this._init_canvas(this);\n this._init_toolbar(this);\n\n var fig = this;\n\n this.waiting = false;\n\n this.ws.onopen = function () {\n fig.send_message('supports_binary', { value: fig.supports_binary });\n fig.send_message('send_image_mode', {});\n if (fig.ratio !== 1) {\n fig.send_message('set_dpi_ratio', { dpi_ratio: fig.ratio });\n }\n fig.send_message('refresh', {});\n };\n\n this.imageObj.onload = function () {\n if (fig.image_mode === 'full') {\n // Full images could contain transparency (where diff images\n // almost always do), so we need to clear the canvas so that\n // there is no ghosting.\n fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n }\n fig.context.drawImage(fig.imageObj, 0, 0);\n };\n\n this.imageObj.onunload = function () {\n fig.ws.close();\n };\n\n this.ws.onmessage = this._make_on_message_function(this);\n\n this.ondownload = ondownload;\n};\n\nmpl.figure.prototype._init_header = function () {\n var titlebar = document.createElement('div');\n titlebar.classList =\n 'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n var titletext = document.createElement('div');\n titletext.classList = 'ui-dialog-title';\n titletext.setAttribute(\n 'style',\n 'width: 100%; text-align: center; padding: 3px;'\n );\n titlebar.appendChild(titletext);\n this.root.appendChild(titlebar);\n this.header = titletext;\n};\n\nmpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._init_canvas = function () {\n var fig = this;\n\n var canvas_div = (this.canvas_div = document.createElement('div'));\n canvas_div.setAttribute(\n 'style',\n 'border: 1px solid #ddd;' +\n 'box-sizing: content-box;' +\n 'clear: both;' +\n 'min-height: 1px;' +\n 'min-width: 1px;' +\n 'outline: 0;' +\n 'overflow: hidden;' +\n 'position: relative;' +\n 'resize: both;'\n );\n\n function on_keyboard_event_closure(name) {\n return function (event) {\n return fig.key_event(event, name);\n };\n }\n\n canvas_div.addEventListener(\n 'keydown',\n on_keyboard_event_closure('key_press')\n );\n canvas_div.addEventListener(\n 'keyup',\n on_keyboard_event_closure('key_release')\n );\n\n this._canvas_extra_style(canvas_div);\n this.root.appendChild(canvas_div);\n\n var canvas = (this.canvas = document.createElement('canvas'));\n canvas.classList.add('mpl-canvas');\n canvas.setAttribute('style', 'box-sizing: content-box;');\n\n this.context = canvas.getContext('2d');\n\n var backingStore =\n this.context.backingStorePixelRatio ||\n this.context.webkitBackingStorePixelRatio ||\n this.context.mozBackingStorePixelRatio ||\n this.context.msBackingStorePixelRatio ||\n this.context.oBackingStorePixelRatio ||\n this.context.backingStorePixelRatio ||\n 1;\n\n this.ratio = (window.devicePixelRatio || 1) / backingStore;\n\n var rubberband_canvas = (this.rubberband_canvas = document.createElement(\n 'canvas'\n ));\n rubberband_canvas.setAttribute(\n 'style',\n 'box-sizing: content-box; position: absolute; left: 0; top: 0; z-index: 1;'\n );\n\n // Apply a ponyfill if ResizeObserver is not implemented by browser.\n if (this.ResizeObserver === undefined) {\n if (window.ResizeObserver !== undefined) {\n this.ResizeObserver = window.ResizeObserver;\n } else {\n var obs = _JSXTOOLS_RESIZE_OBSERVER({});\n this.ResizeObserver = obs.ResizeObserver;\n }\n }\n\n this.resizeObserverInstance = new this.ResizeObserver(function (entries) {\n var nentries = entries.length;\n for (var i = 0; i < nentries; i++) {\n var entry = entries[i];\n var width, height;\n if (entry.contentBoxSize) {\n if (entry.contentBoxSize instanceof Array) {\n // Chrome 84 implements new version of spec.\n width = entry.contentBoxSize[0].inlineSize;\n height = entry.contentBoxSize[0].blockSize;\n } else {\n // Firefox implements old version of spec.\n width = entry.contentBoxSize.inlineSize;\n height = entry.contentBoxSize.blockSize;\n }\n } else {\n // Chrome <84 implements even older version of spec.\n width = entry.contentRect.width;\n height = entry.contentRect.height;\n }\n\n // Keep the size of the canvas and rubber band canvas in sync with\n // the canvas container.\n if (entry.devicePixelContentBoxSize) {\n // Chrome 84 implements new version of spec.\n canvas.setAttribute(\n 'width',\n entry.devicePixelContentBoxSize[0].inlineSize\n );\n canvas.setAttribute(\n 'height',\n entry.devicePixelContentBoxSize[0].blockSize\n );\n } else {\n canvas.setAttribute('width', width * fig.ratio);\n canvas.setAttribute('height', height * fig.ratio);\n }\n canvas.setAttribute(\n 'style',\n 'width: ' + width + 'px; height: ' + height + 'px;'\n );\n\n rubberband_canvas.setAttribute('width', width);\n rubberband_canvas.setAttribute('height', height);\n\n // And update the size in Python. We ignore the initial 0/0 size\n // that occurs as the element is placed into the DOM, which should\n // otherwise not happen due to the minimum size styling.\n if (fig.ws.readyState == 1 && width != 0 && height != 0) {\n fig.request_resize(width, height);\n }\n }\n });\n this.resizeObserverInstance.observe(canvas_div);\n\n function on_mouse_event_closure(name) {\n return function (event) {\n return fig.mouse_event(event, name);\n };\n }\n\n rubberband_canvas.addEventListener(\n 'mousedown',\n on_mouse_event_closure('button_press')\n );\n rubberband_canvas.addEventListener(\n 'mouseup',\n on_mouse_event_closure('button_release')\n );\n rubberband_canvas.addEventListener(\n 'dblclick',\n on_mouse_event_closure('dblclick')\n );\n // Throttle sequential mouse events to 1 every 20ms.\n rubberband_canvas.addEventListener(\n 'mousemove',\n on_mouse_event_closure('motion_notify')\n );\n\n rubberband_canvas.addEventListener(\n 'mouseenter',\n on_mouse_event_closure('figure_enter')\n );\n rubberband_canvas.addEventListener(\n 'mouseleave',\n on_mouse_event_closure('figure_leave')\n );\n\n canvas_div.addEventListener('wheel', function (event) {\n if (event.deltaY < 0) {\n event.step = 1;\n } else {\n event.step = -1;\n }\n on_mouse_event_closure('scroll')(event);\n });\n\n canvas_div.appendChild(canvas);\n canvas_div.appendChild(rubberband_canvas);\n\n this.rubberband_context = rubberband_canvas.getContext('2d');\n this.rubberband_context.strokeStyle = '#000000';\n\n this._resize_canvas = function (width, height, forward) {\n if (forward) {\n canvas_div.style.width = width + 'px';\n canvas_div.style.height = height + 'px';\n }\n };\n\n // Disable right mouse context menu.\n this.rubberband_canvas.addEventListener('contextmenu', function (_e) {\n event.preventDefault();\n return false;\n });\n\n function set_focus() {\n canvas.focus();\n canvas_div.focus();\n }\n\n window.setTimeout(set_focus, 100);\n};\n\nmpl.figure.prototype._init_toolbar = function () {\n var fig = this;\n\n var toolbar = document.createElement('div');\n toolbar.classList = 'mpl-toolbar';\n this.root.appendChild(toolbar);\n\n function on_click_closure(name) {\n return function (_event) {\n return fig.toolbar_button_onclick(name);\n };\n }\n\n function on_mouseover_closure(tooltip) {\n return function (event) {\n if (!event.currentTarget.disabled) {\n return fig.toolbar_button_onmouseover(tooltip);\n }\n };\n }\n\n fig.buttons = {};\n var buttonGroup = document.createElement('div');\n buttonGroup.classList = 'mpl-button-group';\n for (var toolbar_ind in mpl.toolbar_items) {\n var name = mpl.toolbar_items[toolbar_ind][0];\n var tooltip = mpl.toolbar_items[toolbar_ind][1];\n var image = mpl.toolbar_items[toolbar_ind][2];\n var method_name = mpl.toolbar_items[toolbar_ind][3];\n\n if (!name) {\n /* Instead of a spacer, we start a new button group. */\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n buttonGroup = document.createElement('div');\n buttonGroup.classList = 'mpl-button-group';\n continue;\n }\n\n var button = (fig.buttons[name] = document.createElement('button'));\n button.classList = 'mpl-widget';\n button.setAttribute('role', 'button');\n button.setAttribute('aria-disabled', 'false');\n button.addEventListener('click', on_click_closure(method_name));\n button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n\n var icon_img = document.createElement('img');\n icon_img.src = '_images/' + image + '.png';\n icon_img.srcset = '_images/' + image + '_large.png 2x';\n icon_img.alt = tooltip;\n button.appendChild(icon_img);\n\n buttonGroup.appendChild(button);\n }\n\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n\n var fmt_picker = document.createElement('select');\n fmt_picker.classList = 'mpl-widget';\n toolbar.appendChild(fmt_picker);\n this.format_dropdown = fmt_picker;\n\n for (var ind in mpl.extensions) {\n var fmt = mpl.extensions[ind];\n var option = document.createElement('option');\n option.selected = fmt === mpl.default_extension;\n option.innerHTML = fmt;\n fmt_picker.appendChild(option);\n }\n\n var status_bar = document.createElement('span');\n status_bar.classList = 'mpl-message';\n toolbar.appendChild(status_bar);\n this.message = status_bar;\n};\n\nmpl.figure.prototype.request_resize = function (x_pixels, y_pixels) {\n // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n // which will in turn request a refresh of the image.\n this.send_message('resize', { width: x_pixels, height: y_pixels });\n};\n\nmpl.figure.prototype.send_message = function (type, properties) {\n properties['type'] = type;\n properties['figure_id'] = this.id;\n this.ws.send(JSON.stringify(properties));\n};\n\nmpl.figure.prototype.send_draw_message = function () {\n if (!this.waiting) {\n this.waiting = true;\n this.ws.send(JSON.stringify({ type: 'draw', figure_id: this.id }));\n }\n};\n\nmpl.figure.prototype.handle_save = function (fig, _msg) {\n var format_dropdown = fig.format_dropdown;\n var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n fig.ondownload(fig, format);\n};\n\nmpl.figure.prototype.handle_resize = function (fig, msg) {\n var size = msg['size'];\n if (size[0] !== fig.canvas.width || size[1] !== fig.canvas.height) {\n fig._resize_canvas(size[0], size[1], msg['forward']);\n fig.send_message('refresh', {});\n }\n};\n\nmpl.figure.prototype.handle_rubberband = function (fig, msg) {\n var x0 = msg['x0'] / fig.ratio;\n var y0 = (fig.canvas.height - msg['y0']) / fig.ratio;\n var x1 = msg['x1'] / fig.ratio;\n var y1 = (fig.canvas.height - msg['y1']) / fig.ratio;\n x0 = Math.floor(x0) + 0.5;\n y0 = Math.floor(y0) + 0.5;\n x1 = Math.floor(x1) + 0.5;\n y1 = Math.floor(y1) + 0.5;\n var min_x = Math.min(x0, x1);\n var min_y = Math.min(y0, y1);\n var width = Math.abs(x1 - x0);\n var height = Math.abs(y1 - y0);\n\n fig.rubberband_context.clearRect(\n 0,\n 0,\n fig.canvas.width / fig.ratio,\n fig.canvas.height / fig.ratio\n );\n\n fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n};\n\nmpl.figure.prototype.handle_figure_label = function (fig, msg) {\n // Updates the figure title.\n fig.header.textContent = msg['label'];\n};\n\nmpl.figure.prototype.handle_cursor = function (fig, msg) {\n var cursor = msg['cursor'];\n switch (cursor) {\n case 0:\n cursor = 'pointer';\n break;\n case 1:\n cursor = 'default';\n break;\n case 2:\n cursor = 'crosshair';\n break;\n case 3:\n cursor = 'move';\n break;\n }\n fig.rubberband_canvas.style.cursor = cursor;\n};\n\nmpl.figure.prototype.handle_message = function (fig, msg) {\n fig.message.textContent = msg['message'];\n};\n\nmpl.figure.prototype.handle_draw = function (fig, _msg) {\n // Request the server to send over a new figure.\n fig.send_draw_message();\n};\n\nmpl.figure.prototype.handle_image_mode = function (fig, msg) {\n fig.image_mode = msg['mode'];\n};\n\nmpl.figure.prototype.handle_history_buttons = function (fig, msg) {\n for (var key in msg) {\n if (!(key in fig.buttons)) {\n continue;\n }\n fig.buttons[key].disabled = !msg[key];\n fig.buttons[key].setAttribute('aria-disabled', !msg[key]);\n }\n};\n\nmpl.figure.prototype.handle_navigate_mode = function (fig, msg) {\n if (msg['mode'] === 'PAN') {\n fig.buttons['Pan'].classList.add('active');\n fig.buttons['Zoom'].classList.remove('active');\n } else if (msg['mode'] === 'ZOOM') {\n fig.buttons['Pan'].classList.remove('active');\n fig.buttons['Zoom'].classList.add('active');\n } else {\n fig.buttons['Pan'].classList.remove('active');\n fig.buttons['Zoom'].classList.remove('active');\n }\n};\n\nmpl.figure.prototype.updated_canvas_event = function () {\n // Called whenever the canvas gets updated.\n this.send_message('ack', {});\n};\n\n// A function to construct a web socket function for onmessage handling.\n// Called in the figure constructor.\nmpl.figure.prototype._make_on_message_function = function (fig) {\n return function socket_on_message(evt) {\n if (evt.data instanceof Blob) {\n var img = evt.data;\n if (img.type !== 'image/png') {\n /* FIXME: We get \"Resource interpreted as Image but\n * transferred with MIME type text/plain:\" errors on\n * Chrome. But how to set the MIME type? It doesn't seem\n * to be part of the websocket stream */\n img.type = 'image/png';\n }\n\n /* Free the memory for the previous frames */\n if (fig.imageObj.src) {\n (window.URL || window.webkitURL).revokeObjectURL(\n fig.imageObj.src\n );\n }\n\n fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n img\n );\n fig.updated_canvas_event();\n fig.waiting = false;\n return;\n } else if (\n typeof evt.data === 'string' &&\n evt.data.slice(0, 21) === 'data:image/png;base64'\n ) {\n fig.imageObj.src = evt.data;\n fig.updated_canvas_event();\n fig.waiting = false;\n return;\n }\n\n var msg = JSON.parse(evt.data);\n var msg_type = msg['type'];\n\n // Call the \"handle_{type}\" callback, which takes\n // the figure and JSON message as its only arguments.\n try {\n var callback = fig['handle_' + msg_type];\n } catch (e) {\n console.log(\n \"No handler for the '\" + msg_type + \"' message type: \",\n msg\n );\n return;\n }\n\n if (callback) {\n try {\n // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n callback(fig, msg);\n } catch (e) {\n console.log(\n \"Exception inside the 'handler_\" + msg_type + \"' callback:\",\n e,\n e.stack,\n msg\n );\n }\n }\n };\n};\n\n// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\nmpl.findpos = function (e) {\n //this section is from http://www.quirksmode.org/js/events_properties.html\n var targ;\n if (!e) {\n e = window.event;\n }\n if (e.target) {\n targ = e.target;\n } else if (e.srcElement) {\n targ = e.srcElement;\n }\n if (targ.nodeType === 3) {\n // defeat Safari bug\n targ = targ.parentNode;\n }\n\n // pageX,Y are the mouse positions relative to the document\n var boundingRect = targ.getBoundingClientRect();\n var x = e.pageX - (boundingRect.left + document.body.scrollLeft);\n var y = e.pageY - (boundingRect.top + document.body.scrollTop);\n\n return { x: x, y: y };\n};\n\n/*\n * return a copy of an object with only non-object keys\n * we need this to avoid circular references\n * http://stackoverflow.com/a/24161582/3208463\n */\nfunction simpleKeys(original) {\n return Object.keys(original).reduce(function (obj, key) {\n if (typeof original[key] !== 'object') {\n obj[key] = original[key];\n }\n return obj;\n }, {});\n}\n\nmpl.figure.prototype.mouse_event = function (event, name) {\n var canvas_pos = mpl.findpos(event);\n\n if (name === 'button_press') {\n this.canvas.focus();\n this.canvas_div.focus();\n }\n\n var x = canvas_pos.x * this.ratio;\n var y = canvas_pos.y * this.ratio;\n\n this.send_message(name, {\n x: x,\n y: y,\n button: event.button,\n step: event.step,\n guiEvent: simpleKeys(event),\n });\n\n /* This prevents the web browser from automatically changing to\n * the text insertion cursor when the button is pressed. We want\n * to control all of the cursor setting manually through the\n * 'cursor' event from matplotlib */\n event.preventDefault();\n return false;\n};\n\nmpl.figure.prototype._key_event_extra = function (_event, _name) {\n // Handle any extra behaviour associated with a key event\n};\n\nmpl.figure.prototype.key_event = function (event, name) {\n // Prevent repeat events\n if (name === 'key_press') {\n if (event.key === this._key) {\n return;\n } else {\n this._key = event.key;\n }\n }\n if (name === 'key_release') {\n this._key = null;\n }\n\n var value = '';\n if (event.ctrlKey && event.key !== 'Control') {\n value += 'ctrl+';\n }\n else if (event.altKey && event.key !== 'Alt') {\n value += 'alt+';\n }\n else if (event.shiftKey && event.key !== 'Shift') {\n value += 'shift+';\n }\n\n value += 'k' + event.key;\n\n this._key_event_extra(event, name);\n\n this.send_message(name, { key: value, guiEvent: simpleKeys(event) });\n return false;\n};\n\nmpl.figure.prototype.toolbar_button_onclick = function (name) {\n if (name === 'download') {\n this.handle_save(this, null);\n } else {\n this.send_message('toolbar_button', { name: name });\n }\n};\n\nmpl.figure.prototype.toolbar_button_onmouseover = function (tooltip) {\n this.message.textContent = tooltip;\n};\n\n///////////////// REMAINING CONTENT GENERATED BY embed_js.py /////////////////\n// prettier-ignore\nvar _JSXTOOLS_RESIZE_OBSERVER=function(A){var t,i=new WeakMap,n=new WeakMap,a=new WeakMap,r=new WeakMap,o=new Set;function s(e){if(!(this instanceof s))throw new TypeError(\"Constructor requires 'new' operator\");i.set(this,e)}function h(){throw new TypeError(\"Function is not a constructor\")}function c(e,t,i,n){e=0 in arguments?Number(arguments[0]):0,t=1 in arguments?Number(arguments[1]):0,i=2 in arguments?Number(arguments[2]):0,n=3 in arguments?Number(arguments[3]):0,this.right=(this.x=this.left=e)+(this.width=i),this.bottom=(this.y=this.top=t)+(this.height=n),Object.freeze(this)}function d(){t=requestAnimationFrame(d);var s=new WeakMap,p=new Set;o.forEach((function(t){r.get(t).forEach((function(i){var r=t instanceof window.SVGElement,o=a.get(t),d=r?0:parseFloat(o.paddingTop),f=r?0:parseFloat(o.paddingRight),l=r?0:parseFloat(o.paddingBottom),u=r?0:parseFloat(o.paddingLeft),g=r?0:parseFloat(o.borderTopWidth),m=r?0:parseFloat(o.borderRightWidth),w=r?0:parseFloat(o.borderBottomWidth),b=u+f,F=d+l,v=(r?0:parseFloat(o.borderLeftWidth))+m,W=g+w,y=r?0:t.offsetHeight-W-t.clientHeight,E=r?0:t.offsetWidth-v-t.clientWidth,R=b+v,z=F+W,M=r?t.width:parseFloat(o.width)-R-E,O=r?t.height:parseFloat(o.height)-z-y;if(n.has(t)){var k=n.get(t);if(k[0]===M&&k[1]===O)return}n.set(t,[M,O]);var S=Object.create(h.prototype);S.target=t,S.contentRect=new c(u,d,M,O),s.has(i)||(s.set(i,[]),p.add(i)),s.get(i).push(S)}))})),p.forEach((function(e){i.get(e).call(e,s.get(e),e)}))}return s.prototype.observe=function(i){if(i instanceof window.Element){r.has(i)||(r.set(i,new Set),o.add(i),a.set(i,window.getComputedStyle(i)));var n=r.get(i);n.has(this)||n.add(this),cancelAnimationFrame(t),t=requestAnimationFrame(d)}},s.prototype.unobserve=function(i){if(i instanceof window.Element&&r.has(i)){var n=r.get(i);n.has(this)&&(n.delete(this),n.size||(r.delete(i),o.delete(i))),n.size||r.delete(i),o.size||cancelAnimationFrame(t)}},A.DOMRectReadOnly=c,A.ResizeObserver=s,A.ResizeObserverEntry=h,A}; // eslint-disable-line\nmpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Left button pans, Right button zooms\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n\nmpl.extensions = [\"eps\", \"jpeg\", \"pgf\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\"];\n\nmpl.default_extension = \"png\";/* global mpl */\n\nvar comm_websocket_adapter = function (comm) {\n // Create a \"websocket\"-like object which calls the given IPython comm\n // object with the appropriate methods. Currently this is a non binary\n // socket, so there is still some room for performance tuning.\n var ws = {};\n\n ws.binaryType = comm.kernel.ws.binaryType;\n ws.readyState = comm.kernel.ws.readyState;\n function updateReadyState(_event) {\n if (comm.kernel.ws) {\n ws.readyState = comm.kernel.ws.readyState;\n } else {\n ws.readyState = 3; // Closed state.\n }\n }\n comm.kernel.ws.addEventListener('open', updateReadyState);\n comm.kernel.ws.addEventListener('close', updateReadyState);\n comm.kernel.ws.addEventListener('error', updateReadyState);\n\n ws.close = function () {\n comm.close();\n };\n ws.send = function (m) {\n //console.log('sending', m);\n comm.send(m);\n };\n // Register the callback with on_msg.\n comm.on_msg(function (msg) {\n //console.log('receiving', msg['content']['data'], msg);\n var data = msg['content']['data'];\n if (data['blob'] !== undefined) {\n data = {\n data: new Blob(msg['buffers'], { type: data['blob'] }),\n };\n }\n // Pass the mpl event to the overridden (by mpl) onmessage function.\n ws.onmessage(data);\n });\n return ws;\n};\n\nmpl.mpl_figure_comm = function (comm, msg) {\n // This is the function which gets called when the mpl process\n // starts-up an IPython Comm through the \"matplotlib\" channel.\n\n var id = msg.content.data.id;\n // Get hold of the div created by the display call when the Comm\n // socket was opened in Python.\n var element = document.getElementById(id);\n var ws_proxy = comm_websocket_adapter(comm);\n\n function ondownload(figure, _format) {\n window.open(figure.canvas.toDataURL());\n }\n\n var fig = new mpl.figure(id, ws_proxy, ondownload, element);\n\n // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n // web socket which is closed, not our websocket->open comm proxy.\n ws_proxy.onopen();\n\n fig.parent_element = element;\n fig.cell_info = mpl.find_output_cell(\"
\");\n if (!fig.cell_info) {\n console.error('Failed to find cell for figure', id, fig);\n return;\n }\n fig.cell_info[0].output_area.element.on(\n 'cleared',\n { fig: fig },\n fig._remove_fig_handler\n );\n};\n\nmpl.figure.prototype.handle_close = function (fig, msg) {\n var width = fig.canvas.width / fig.ratio;\n fig.cell_info[0].output_area.element.off(\n 'cleared',\n fig._remove_fig_handler\n );\n fig.resizeObserverInstance.unobserve(fig.canvas_div);\n\n // Update the output cell to use the data from the current canvas.\n fig.push_to_output();\n var dataURL = fig.canvas.toDataURL();\n // Re-enable the keyboard manager in IPython - without this line, in FF,\n // the notebook keyboard shortcuts fail.\n IPython.keyboard_manager.enable();\n fig.parent_element.innerHTML =\n '';\n fig.close_ws(fig, msg);\n};\n\nmpl.figure.prototype.close_ws = function (fig, msg) {\n fig.send_message('closing', msg);\n // fig.ws.close()\n};\n\nmpl.figure.prototype.push_to_output = function (_remove_interactive) {\n // Turn the data on the canvas into data in the output cell.\n var width = this.canvas.width / this.ratio;\n var dataURL = this.canvas.toDataURL();\n this.cell_info[1]['text/html'] =\n '';\n};\n\nmpl.figure.prototype.updated_canvas_event = function () {\n // Tell IPython that the notebook contents must change.\n IPython.notebook.set_dirty(true);\n this.send_message('ack', {});\n var fig = this;\n // Wait a second, then push the new image to the DOM so\n // that it is saved nicely (might be nice to debounce this).\n setTimeout(function () {\n fig.push_to_output();\n }, 1000);\n};\n\nmpl.figure.prototype._init_toolbar = function () {\n var fig = this;\n\n var toolbar = document.createElement('div');\n toolbar.classList = 'btn-toolbar';\n this.root.appendChild(toolbar);\n\n function on_click_closure(name) {\n return function (_event) {\n return fig.toolbar_button_onclick(name);\n };\n }\n\n function on_mouseover_closure(tooltip) {\n return function (event) {\n if (!event.currentTarget.disabled) {\n return fig.toolbar_button_onmouseover(tooltip);\n }\n };\n }\n\n fig.buttons = {};\n var buttonGroup = document.createElement('div');\n buttonGroup.classList = 'btn-group';\n var button;\n for (var toolbar_ind in mpl.toolbar_items) {\n var name = mpl.toolbar_items[toolbar_ind][0];\n var tooltip = mpl.toolbar_items[toolbar_ind][1];\n var image = mpl.toolbar_items[toolbar_ind][2];\n var method_name = mpl.toolbar_items[toolbar_ind][3];\n\n if (!name) {\n /* Instead of a spacer, we start a new button group. */\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n buttonGroup = document.createElement('div');\n buttonGroup.classList = 'btn-group';\n continue;\n }\n\n button = fig.buttons[name] = document.createElement('button');\n button.classList = 'btn btn-default';\n button.href = '#';\n button.title = name;\n button.innerHTML = '';\n button.addEventListener('click', on_click_closure(method_name));\n button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n buttonGroup.appendChild(button);\n }\n\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n\n // Add the status bar.\n var status_bar = document.createElement('span');\n status_bar.classList = 'mpl-message pull-right';\n toolbar.appendChild(status_bar);\n this.message = status_bar;\n\n // Add the close button to the window.\n var buttongrp = document.createElement('div');\n buttongrp.classList = 'btn-group inline pull-right';\n button = document.createElement('button');\n button.classList = 'btn btn-mini btn-primary';\n button.href = '#';\n button.title = 'Stop Interaction';\n button.innerHTML = '';\n button.addEventListener('click', function (_evt) {\n fig.handle_close(fig, {});\n });\n button.addEventListener(\n 'mouseover',\n on_mouseover_closure('Stop Interaction')\n );\n buttongrp.appendChild(button);\n var titlebar = this.root.querySelector('.ui-dialog-titlebar');\n titlebar.insertBefore(buttongrp, titlebar.firstChild);\n};\n\nmpl.figure.prototype._remove_fig_handler = function (event) {\n var fig = event.data.fig;\n if (event.target !== this) {\n // Ignore bubbled events from children.\n return;\n }\n fig.close_ws(fig, {});\n};\n\nmpl.figure.prototype._root_extra_style = function (el) {\n el.style.boxSizing = 'content-box'; // override notebook setting of border-box.\n};\n\nmpl.figure.prototype._canvas_extra_style = function (el) {\n // this is important to make the div 'focusable\n el.setAttribute('tabindex', 0);\n // reach out to IPython and tell the keyboard manager to turn it's self\n // off when our div gets focus\n\n // location in version 3\n if (IPython.notebook.keyboard_manager) {\n IPython.notebook.keyboard_manager.register_events(el);\n } else {\n // location in version 2\n IPython.keyboard_manager.register_events(el);\n }\n};\n\nmpl.figure.prototype._key_event_extra = function (event, _name) {\n var manager = IPython.notebook.keyboard_manager;\n if (!manager) {\n manager = IPython.keyboard_manager;\n }\n\n // Check for shift+enter\n if (event.shiftKey && event.which === 13) {\n this.canvas_div.blur();\n // select the cell after this one\n var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n IPython.notebook.select(index + 1);\n }\n};\n\nmpl.figure.prototype.handle_save = function (fig, _msg) {\n fig.ondownload(fig, null);\n};\n\nmpl.find_output_cell = function (html_output) {\n // Return the cell and output element which can be found *uniquely* in the notebook.\n // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n // IPython event is triggered only after the cells have been serialised, which for\n // our purposes (turning an active figure into a static one), is too late.\n var cells = IPython.notebook.get_cells();\n var ncells = cells.length;\n for (var i = 0; i < ncells; i++) {\n var cell = cells[i];\n if (cell.cell_type === 'code') {\n for (var j = 0; j < cell.output_area.outputs.length; j++) {\n var data = cell.output_area.outputs[j];\n if (data.data) {\n // IPython >= 3 moved mimebundle to data attribute of output\n data = data.data;\n }\n if (data['text/html'] === html_output) {\n return [cell, data, j];\n }\n }\n }\n }\n};\n\n// Register the function which deals with the matplotlib target/channel.\n// The kernel may be null if the page has been refreshed.\nif (IPython.notebook.kernel !== null) {\n IPython.notebook.kernel.comm_manager.register_target(\n 'matplotlib',\n mpl.mpl_figure_comm\n );\n}\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ - "%matplotlib nbagg \r\n", - "net = Net()\r\n", - "net.add(Linear(2,2))\r\n", - "net.add(Softmax())\r\n", - "\r\n", + "%matplotlib nbagg \n", + "net = Net()\n", + "net.add(Linear(2,2))\n", + "net.add(Softmax())\n", + "\n", "res = train_and_plot(30,net,lr=0.005)" - ], - "outputs": [], + ] + }, + { + "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } - } - }, - { - "cell_type": "markdown", + }, "source": [ - "After running the cell above you should be able to see interactively how the boundary between classes change during training. Note that we have chosen very small learning rate so that we can see how the process happens.\r\n", - "\r\n", - "## Multi-Layered Models\r\n", - "\r\n", - "The network above has been constructed from several layers, but we still had only one `Linear` layer, which does the actual classification. What happens if we decide to add several such layers?\r\n", - "\r\n", + "After running the cell above you should be able to see interactively how the boundary between classes change during training. Note that we have chosen very small learning rate so that we can see how the process happens.\n", + "\n", + "## Multi-Layered Models\n", + "\n", + "The network above has been constructed from several layers, but we still had only one `Linear` layer, which does the actual classification. What happens if we decide to add several such layers?\n", + "\n", "Surprisingly, our code will work! Very important thing to note, however, is that in between linear layers we need to have a non-linear **activation function**, such as `tanh`. Without such non-linearity, several linear layers would have the same expressive power as just one layers - because composition of linear functions is also linear!" - ], - "metadata": { - "slideshow": { - "slide_type": "slide" - } - } + ] }, { "cell_type": "code", - "execution_count": null, - "source": [ - "class Tanh:\r\n", - " def forward(self,x):\r\n", - " y = np.tanh(x)\r\n", - " self.y = y\r\n", - " return y\r\n", - " def backward(self,dy):\r\n", - " return (1.0-self.y**2)*dy" - ], + "execution_count": 38, + "metadata": {}, "outputs": [], - "metadata": {} + "source": [ + "class Tanh:\n", + " def forward(self,x):\n", + " y = np.tanh(x)\n", + " self.y = y\n", + " return y\n", + " def backward(self,dy):\n", + " return (1.0-self.y**2)*dy" + ] }, { "cell_type": "markdown", + "metadata": {}, "source": [ - " Adding several layers make sense, because unlike one-layer network, multi-layered model will be able to accuratley classify sets that are not linearly separable. I.e., a model with several layers will be **reacher**.\r\n", - "\r\n", - "> It can be demonstrated that with sufficient number of neurons a two-layered model is capable to classifying any convex set of data points, and three-layered network can classify virtually any set.\r\n", - "\r\n", - "Mathematically, multi-layered perceptron would be represented by a more complex function $f_\\theta$ that can be computed in several steps:\r\n", - "* $z_1 = W_1\\times x+b_1$\r\n", - "* $z_2 = W_2\\times\\alpha(z_1)+b_2$\r\n", - "* $f = \\sigma(z_2)$\r\n", - "\r\n", - "Here, $\\alpha$ is a **non-linear activation function**, $\\sigma$ is a softmax function, and $\\theta=\\langle W_1,b_1,W_2,b_2\\rangle$ are parameters.\r\n", - "\r\n", - "The gradient descent algorithm would remain the same, but it would be more difficult to calculate gradients. Given the\r\n", - " chain differentiation rule, we can calculate derivatives as:\r\n", - "\r\n", - "$$\\begin{align}\r\n", - "\\frac{\\partial\\mathcal{L}}{\\partial W_2} &= \\color{red}{\\frac{\\partial\\mathcal{L}}{\\partial\\sigma}\\frac{\\partial\\sigma}{\\partial z_2}}\\color{black}{\\frac{\\partial z_2}{\\partial W_2}} \\\\\r\n", - "\\frac{\\partial\\mathcal{L}}{\\partial W_1} &= \\color{red}{\\frac{\\partial\\mathcal{L}}{\\partial\\sigma}\\frac{\\partial\\sigma}{\\partial z_2}}\\color{black}{\\frac{\\partial z_2}{\\partial\\alpha}\\frac{\\partial\\alpha}{\\partial z_1}\\frac{\\partial z_1}{\\partial W_1}}\r\n", - "\\end{align}\r\n", - "$$\r\n", - "\r\n", - "Note that the beginning of all those expressions is still the same, and thus we can continue back propagation beyond one linear layers to adjust further weights up the computational graph.\r\n", - "\r\n", + " Adding several layers make sense, because unlike one-layer network, multi-layered model will be able to accuratley classify sets that are not linearly separable. I.e., a model with several layers will be **reacher**.\n", + "\n", + "> It can be demonstrated that with sufficient number of neurons a two-layered model is capable to classifying any convex set of data points, and three-layered network can classify virtually any set.\n", + "\n", + "Mathematically, multi-layered perceptron would be represented by a more complex function $f_\\theta$ that can be computed in several steps:\n", + "* $z_1 = W_1\\times x+b_1$\n", + "* $z_2 = W_2\\times\\alpha(z_1)+b_2$\n", + "* $f = \\sigma(z_2)$\n", + "\n", + "Here, $\\alpha$ is a **non-linear activation function**, $\\sigma$ is a softmax function, and $\\theta=\\langle W_1,b_1,W_2,b_2\\rangle$ are parameters.\n", + "\n", + "The gradient descent algorithm would remain the same, but it would be more difficult to calculate gradients. Given the\n", + " chain differentiation rule, we can calculate derivatives as:\n", + "\n", + "$$\\begin{align}\n", + "\\frac{\\partial\\mathcal{L}}{\\partial W_2} &= \\color{red}{\\frac{\\partial\\mathcal{L}}{\\partial\\sigma}\\frac{\\partial\\sigma}{\\partial z_2}}\\color{black}{\\frac{\\partial z_2}{\\partial W_2}} \\\\\n", + "\\frac{\\partial\\mathcal{L}}{\\partial W_1} &= \\color{red}{\\frac{\\partial\\mathcal{L}}{\\partial\\sigma}\\frac{\\partial\\sigma}{\\partial z_2}}\\color{black}{\\frac{\\partial z_2}{\\partial\\alpha}\\frac{\\partial\\alpha}{\\partial z_1}\\frac{\\partial z_1}{\\partial W_1}}\n", + "\\end{align}\n", + "$$\n", + "\n", + "Note that the beginning of all those expressions is still the same, and thus we can continue back propagation beyond one linear layers to adjust further weights up the computational graph.\n", + "\n", "Let's now experiment with two-layered network:" - ], - "metadata": {} + ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 39, + "metadata": {}, + "outputs": [], "source": [ - "net = Net()\r\n", - "net.add(Linear(2,10))\r\n", - "net.add(Tanh())\r\n", - "net.add(Linear(10,2))\r\n", - "net.add(Softmax())\r\n", + "net = Net()\n", + "net.add(Linear(2,10))\n", + "net.add(Tanh())\n", + "net.add(Linear(10,2))\n", + "net.add(Softmax())\n", "loss = CrossEntropyLoss()" - ], - "outputs": [], - "metadata": {} + ] }, { "cell_type": "code", - "execution_count": null, - "source": [ - "res = train_and_plot(30,net,lr=0.01)" - ], - "outputs": [], + "execution_count": 40, "metadata": { "scrolled": false, "slideshow": { "slide_type": "slide" } - } + }, + "outputs": [ + { + "data": { + "application/javascript": "/* Put everything inside the global mpl namespace */\n/* global mpl */\nwindow.mpl = {};\n\nmpl.get_websocket_type = function () {\n if (typeof WebSocket !== 'undefined') {\n return WebSocket;\n } else if (typeof MozWebSocket !== 'undefined') {\n return MozWebSocket;\n } else {\n alert(\n 'Your browser does not have WebSocket support. ' +\n 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n 'Firefox 4 and 5 are also supported but you ' +\n 'have to enable WebSockets in about:config.'\n );\n }\n};\n\nmpl.figure = function (figure_id, websocket, ondownload, parent_element) {\n this.id = figure_id;\n\n this.ws = websocket;\n\n this.supports_binary = this.ws.binaryType !== undefined;\n\n if (!this.supports_binary) {\n var warnings = document.getElementById('mpl-warnings');\n if (warnings) {\n warnings.style.display = 'block';\n warnings.textContent =\n 'This browser does not support binary websocket messages. ' +\n 'Performance may be slow.';\n }\n }\n\n this.imageObj = new Image();\n\n this.context = undefined;\n this.message = undefined;\n this.canvas = undefined;\n this.rubberband_canvas = undefined;\n this.rubberband_context = undefined;\n this.format_dropdown = undefined;\n\n this.image_mode = 'full';\n\n this.root = document.createElement('div');\n this.root.setAttribute('style', 'display: inline-block');\n this._root_extra_style(this.root);\n\n parent_element.appendChild(this.root);\n\n this._init_header(this);\n this._init_canvas(this);\n this._init_toolbar(this);\n\n var fig = this;\n\n this.waiting = false;\n\n this.ws.onopen = function () {\n fig.send_message('supports_binary', { value: fig.supports_binary });\n fig.send_message('send_image_mode', {});\n if (fig.ratio !== 1) {\n fig.send_message('set_dpi_ratio', { dpi_ratio: fig.ratio });\n }\n fig.send_message('refresh', {});\n };\n\n this.imageObj.onload = function () {\n if (fig.image_mode === 'full') {\n // Full images could contain transparency (where diff images\n // almost always do), so we need to clear the canvas so that\n // there is no ghosting.\n fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n }\n fig.context.drawImage(fig.imageObj, 0, 0);\n };\n\n this.imageObj.onunload = function () {\n fig.ws.close();\n };\n\n this.ws.onmessage = this._make_on_message_function(this);\n\n this.ondownload = ondownload;\n};\n\nmpl.figure.prototype._init_header = function () {\n var titlebar = document.createElement('div');\n titlebar.classList =\n 'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n var titletext = document.createElement('div');\n titletext.classList = 'ui-dialog-title';\n titletext.setAttribute(\n 'style',\n 'width: 100%; text-align: center; padding: 3px;'\n );\n titlebar.appendChild(titletext);\n this.root.appendChild(titlebar);\n this.header = titletext;\n};\n\nmpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._init_canvas = function () {\n var fig = this;\n\n var canvas_div = (this.canvas_div = document.createElement('div'));\n canvas_div.setAttribute(\n 'style',\n 'border: 1px solid #ddd;' +\n 'box-sizing: content-box;' +\n 'clear: both;' +\n 'min-height: 1px;' +\n 'min-width: 1px;' +\n 'outline: 0;' +\n 'overflow: hidden;' +\n 'position: relative;' +\n 'resize: both;'\n );\n\n function on_keyboard_event_closure(name) {\n return function (event) {\n return fig.key_event(event, name);\n };\n }\n\n canvas_div.addEventListener(\n 'keydown',\n on_keyboard_event_closure('key_press')\n );\n canvas_div.addEventListener(\n 'keyup',\n on_keyboard_event_closure('key_release')\n );\n\n this._canvas_extra_style(canvas_div);\n this.root.appendChild(canvas_div);\n\n var canvas = (this.canvas = document.createElement('canvas'));\n canvas.classList.add('mpl-canvas');\n canvas.setAttribute('style', 'box-sizing: content-box;');\n\n this.context = canvas.getContext('2d');\n\n var backingStore =\n this.context.backingStorePixelRatio ||\n this.context.webkitBackingStorePixelRatio ||\n this.context.mozBackingStorePixelRatio ||\n this.context.msBackingStorePixelRatio ||\n this.context.oBackingStorePixelRatio ||\n this.context.backingStorePixelRatio ||\n 1;\n\n this.ratio = (window.devicePixelRatio || 1) / backingStore;\n\n var rubberband_canvas = (this.rubberband_canvas = document.createElement(\n 'canvas'\n ));\n rubberband_canvas.setAttribute(\n 'style',\n 'box-sizing: content-box; position: absolute; left: 0; top: 0; z-index: 1;'\n );\n\n // Apply a ponyfill if ResizeObserver is not implemented by browser.\n if (this.ResizeObserver === undefined) {\n if (window.ResizeObserver !== undefined) {\n this.ResizeObserver = window.ResizeObserver;\n } else {\n var obs = _JSXTOOLS_RESIZE_OBSERVER({});\n this.ResizeObserver = obs.ResizeObserver;\n }\n }\n\n this.resizeObserverInstance = new this.ResizeObserver(function (entries) {\n var nentries = entries.length;\n for (var i = 0; i < nentries; i++) {\n var entry = entries[i];\n var width, height;\n if (entry.contentBoxSize) {\n if (entry.contentBoxSize instanceof Array) {\n // Chrome 84 implements new version of spec.\n width = entry.contentBoxSize[0].inlineSize;\n height = entry.contentBoxSize[0].blockSize;\n } else {\n // Firefox implements old version of spec.\n width = entry.contentBoxSize.inlineSize;\n height = entry.contentBoxSize.blockSize;\n }\n } else {\n // Chrome <84 implements even older version of spec.\n width = entry.contentRect.width;\n height = entry.contentRect.height;\n }\n\n // Keep the size of the canvas and rubber band canvas in sync with\n // the canvas container.\n if (entry.devicePixelContentBoxSize) {\n // Chrome 84 implements new version of spec.\n canvas.setAttribute(\n 'width',\n entry.devicePixelContentBoxSize[0].inlineSize\n );\n canvas.setAttribute(\n 'height',\n entry.devicePixelContentBoxSize[0].blockSize\n );\n } else {\n canvas.setAttribute('width', width * fig.ratio);\n canvas.setAttribute('height', height * fig.ratio);\n }\n canvas.setAttribute(\n 'style',\n 'width: ' + width + 'px; height: ' + height + 'px;'\n );\n\n rubberband_canvas.setAttribute('width', width);\n rubberband_canvas.setAttribute('height', height);\n\n // And update the size in Python. We ignore the initial 0/0 size\n // that occurs as the element is placed into the DOM, which should\n // otherwise not happen due to the minimum size styling.\n if (fig.ws.readyState == 1 && width != 0 && height != 0) {\n fig.request_resize(width, height);\n }\n }\n });\n this.resizeObserverInstance.observe(canvas_div);\n\n function on_mouse_event_closure(name) {\n return function (event) {\n return fig.mouse_event(event, name);\n };\n }\n\n rubberband_canvas.addEventListener(\n 'mousedown',\n on_mouse_event_closure('button_press')\n );\n rubberband_canvas.addEventListener(\n 'mouseup',\n on_mouse_event_closure('button_release')\n );\n rubberband_canvas.addEventListener(\n 'dblclick',\n on_mouse_event_closure('dblclick')\n );\n // Throttle sequential mouse events to 1 every 20ms.\n rubberband_canvas.addEventListener(\n 'mousemove',\n on_mouse_event_closure('motion_notify')\n );\n\n rubberband_canvas.addEventListener(\n 'mouseenter',\n on_mouse_event_closure('figure_enter')\n );\n rubberband_canvas.addEventListener(\n 'mouseleave',\n on_mouse_event_closure('figure_leave')\n );\n\n canvas_div.addEventListener('wheel', function (event) {\n if (event.deltaY < 0) {\n event.step = 1;\n } else {\n event.step = -1;\n }\n on_mouse_event_closure('scroll')(event);\n });\n\n canvas_div.appendChild(canvas);\n canvas_div.appendChild(rubberband_canvas);\n\n this.rubberband_context = rubberband_canvas.getContext('2d');\n this.rubberband_context.strokeStyle = '#000000';\n\n this._resize_canvas = function (width, height, forward) {\n if (forward) {\n canvas_div.style.width = width + 'px';\n canvas_div.style.height = height + 'px';\n }\n };\n\n // Disable right mouse context menu.\n this.rubberband_canvas.addEventListener('contextmenu', function (_e) {\n event.preventDefault();\n return false;\n });\n\n function set_focus() {\n canvas.focus();\n canvas_div.focus();\n }\n\n window.setTimeout(set_focus, 100);\n};\n\nmpl.figure.prototype._init_toolbar = function () {\n var fig = this;\n\n var toolbar = document.createElement('div');\n toolbar.classList = 'mpl-toolbar';\n this.root.appendChild(toolbar);\n\n function on_click_closure(name) {\n return function (_event) {\n return fig.toolbar_button_onclick(name);\n };\n }\n\n function on_mouseover_closure(tooltip) {\n return function (event) {\n if (!event.currentTarget.disabled) {\n return fig.toolbar_button_onmouseover(tooltip);\n }\n };\n }\n\n fig.buttons = {};\n var buttonGroup = document.createElement('div');\n buttonGroup.classList = 'mpl-button-group';\n for (var toolbar_ind in mpl.toolbar_items) {\n var name = mpl.toolbar_items[toolbar_ind][0];\n var tooltip = mpl.toolbar_items[toolbar_ind][1];\n var image = mpl.toolbar_items[toolbar_ind][2];\n var method_name = mpl.toolbar_items[toolbar_ind][3];\n\n if (!name) {\n /* Instead of a spacer, we start a new button group. */\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n buttonGroup = document.createElement('div');\n buttonGroup.classList = 'mpl-button-group';\n continue;\n }\n\n var button = (fig.buttons[name] = document.createElement('button'));\n button.classList = 'mpl-widget';\n button.setAttribute('role', 'button');\n button.setAttribute('aria-disabled', 'false');\n button.addEventListener('click', on_click_closure(method_name));\n button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n\n var icon_img = document.createElement('img');\n icon_img.src = '_images/' + image + '.png';\n icon_img.srcset = '_images/' + image + '_large.png 2x';\n icon_img.alt = tooltip;\n button.appendChild(icon_img);\n\n buttonGroup.appendChild(button);\n }\n\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n\n var fmt_picker = document.createElement('select');\n fmt_picker.classList = 'mpl-widget';\n toolbar.appendChild(fmt_picker);\n this.format_dropdown = fmt_picker;\n\n for (var ind in mpl.extensions) {\n var fmt = mpl.extensions[ind];\n var option = document.createElement('option');\n option.selected = fmt === mpl.default_extension;\n option.innerHTML = fmt;\n fmt_picker.appendChild(option);\n }\n\n var status_bar = document.createElement('span');\n status_bar.classList = 'mpl-message';\n toolbar.appendChild(status_bar);\n this.message = status_bar;\n};\n\nmpl.figure.prototype.request_resize = function (x_pixels, y_pixels) {\n // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n // which will in turn request a refresh of the image.\n this.send_message('resize', { width: x_pixels, height: y_pixels });\n};\n\nmpl.figure.prototype.send_message = function (type, properties) {\n properties['type'] = type;\n properties['figure_id'] = this.id;\n this.ws.send(JSON.stringify(properties));\n};\n\nmpl.figure.prototype.send_draw_message = function () {\n if (!this.waiting) {\n this.waiting = true;\n this.ws.send(JSON.stringify({ type: 'draw', figure_id: this.id }));\n }\n};\n\nmpl.figure.prototype.handle_save = function (fig, _msg) {\n var format_dropdown = fig.format_dropdown;\n var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n fig.ondownload(fig, format);\n};\n\nmpl.figure.prototype.handle_resize = function (fig, msg) {\n var size = msg['size'];\n if (size[0] !== fig.canvas.width || size[1] !== fig.canvas.height) {\n fig._resize_canvas(size[0], size[1], msg['forward']);\n fig.send_message('refresh', {});\n }\n};\n\nmpl.figure.prototype.handle_rubberband = function (fig, msg) {\n var x0 = msg['x0'] / fig.ratio;\n var y0 = (fig.canvas.height - msg['y0']) / fig.ratio;\n var x1 = msg['x1'] / fig.ratio;\n var y1 = (fig.canvas.height - msg['y1']) / fig.ratio;\n x0 = Math.floor(x0) + 0.5;\n y0 = Math.floor(y0) + 0.5;\n x1 = Math.floor(x1) + 0.5;\n y1 = Math.floor(y1) + 0.5;\n var min_x = Math.min(x0, x1);\n var min_y = Math.min(y0, y1);\n var width = Math.abs(x1 - x0);\n var height = Math.abs(y1 - y0);\n\n fig.rubberband_context.clearRect(\n 0,\n 0,\n fig.canvas.width / fig.ratio,\n fig.canvas.height / fig.ratio\n );\n\n fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n};\n\nmpl.figure.prototype.handle_figure_label = function (fig, msg) {\n // Updates the figure title.\n fig.header.textContent = msg['label'];\n};\n\nmpl.figure.prototype.handle_cursor = function (fig, msg) {\n var cursor = msg['cursor'];\n switch (cursor) {\n case 0:\n cursor = 'pointer';\n break;\n case 1:\n cursor = 'default';\n break;\n case 2:\n cursor = 'crosshair';\n break;\n case 3:\n cursor = 'move';\n break;\n }\n fig.rubberband_canvas.style.cursor = cursor;\n};\n\nmpl.figure.prototype.handle_message = function (fig, msg) {\n fig.message.textContent = msg['message'];\n};\n\nmpl.figure.prototype.handle_draw = function (fig, _msg) {\n // Request the server to send over a new figure.\n fig.send_draw_message();\n};\n\nmpl.figure.prototype.handle_image_mode = function (fig, msg) {\n fig.image_mode = msg['mode'];\n};\n\nmpl.figure.prototype.handle_history_buttons = function (fig, msg) {\n for (var key in msg) {\n if (!(key in fig.buttons)) {\n continue;\n }\n fig.buttons[key].disabled = !msg[key];\n fig.buttons[key].setAttribute('aria-disabled', !msg[key]);\n }\n};\n\nmpl.figure.prototype.handle_navigate_mode = function (fig, msg) {\n if (msg['mode'] === 'PAN') {\n fig.buttons['Pan'].classList.add('active');\n fig.buttons['Zoom'].classList.remove('active');\n } else if (msg['mode'] === 'ZOOM') {\n fig.buttons['Pan'].classList.remove('active');\n fig.buttons['Zoom'].classList.add('active');\n } else {\n fig.buttons['Pan'].classList.remove('active');\n fig.buttons['Zoom'].classList.remove('active');\n }\n};\n\nmpl.figure.prototype.updated_canvas_event = function () {\n // Called whenever the canvas gets updated.\n this.send_message('ack', {});\n};\n\n// A function to construct a web socket function for onmessage handling.\n// Called in the figure constructor.\nmpl.figure.prototype._make_on_message_function = function (fig) {\n return function socket_on_message(evt) {\n if (evt.data instanceof Blob) {\n var img = evt.data;\n if (img.type !== 'image/png') {\n /* FIXME: We get \"Resource interpreted as Image but\n * transferred with MIME type text/plain:\" errors on\n * Chrome. But how to set the MIME type? It doesn't seem\n * to be part of the websocket stream */\n img.type = 'image/png';\n }\n\n /* Free the memory for the previous frames */\n if (fig.imageObj.src) {\n (window.URL || window.webkitURL).revokeObjectURL(\n fig.imageObj.src\n );\n }\n\n fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n img\n );\n fig.updated_canvas_event();\n fig.waiting = false;\n return;\n } else if (\n typeof evt.data === 'string' &&\n evt.data.slice(0, 21) === 'data:image/png;base64'\n ) {\n fig.imageObj.src = evt.data;\n fig.updated_canvas_event();\n fig.waiting = false;\n return;\n }\n\n var msg = JSON.parse(evt.data);\n var msg_type = msg['type'];\n\n // Call the \"handle_{type}\" callback, which takes\n // the figure and JSON message as its only arguments.\n try {\n var callback = fig['handle_' + msg_type];\n } catch (e) {\n console.log(\n \"No handler for the '\" + msg_type + \"' message type: \",\n msg\n );\n return;\n }\n\n if (callback) {\n try {\n // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n callback(fig, msg);\n } catch (e) {\n console.log(\n \"Exception inside the 'handler_\" + msg_type + \"' callback:\",\n e,\n e.stack,\n msg\n );\n }\n }\n };\n};\n\n// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\nmpl.findpos = function (e) {\n //this section is from http://www.quirksmode.org/js/events_properties.html\n var targ;\n if (!e) {\n e = window.event;\n }\n if (e.target) {\n targ = e.target;\n } else if (e.srcElement) {\n targ = e.srcElement;\n }\n if (targ.nodeType === 3) {\n // defeat Safari bug\n targ = targ.parentNode;\n }\n\n // pageX,Y are the mouse positions relative to the document\n var boundingRect = targ.getBoundingClientRect();\n var x = e.pageX - (boundingRect.left + document.body.scrollLeft);\n var y = e.pageY - (boundingRect.top + document.body.scrollTop);\n\n return { x: x, y: y };\n};\n\n/*\n * return a copy of an object with only non-object keys\n * we need this to avoid circular references\n * http://stackoverflow.com/a/24161582/3208463\n */\nfunction simpleKeys(original) {\n return Object.keys(original).reduce(function (obj, key) {\n if (typeof original[key] !== 'object') {\n obj[key] = original[key];\n }\n return obj;\n }, {});\n}\n\nmpl.figure.prototype.mouse_event = function (event, name) {\n var canvas_pos = mpl.findpos(event);\n\n if (name === 'button_press') {\n this.canvas.focus();\n this.canvas_div.focus();\n }\n\n var x = canvas_pos.x * this.ratio;\n var y = canvas_pos.y * this.ratio;\n\n this.send_message(name, {\n x: x,\n y: y,\n button: event.button,\n step: event.step,\n guiEvent: simpleKeys(event),\n });\n\n /* This prevents the web browser from automatically changing to\n * the text insertion cursor when the button is pressed. We want\n * to control all of the cursor setting manually through the\n * 'cursor' event from matplotlib */\n event.preventDefault();\n return false;\n};\n\nmpl.figure.prototype._key_event_extra = function (_event, _name) {\n // Handle any extra behaviour associated with a key event\n};\n\nmpl.figure.prototype.key_event = function (event, name) {\n // Prevent repeat events\n if (name === 'key_press') {\n if (event.key === this._key) {\n return;\n } else {\n this._key = event.key;\n }\n }\n if (name === 'key_release') {\n this._key = null;\n }\n\n var value = '';\n if (event.ctrlKey && event.key !== 'Control') {\n value += 'ctrl+';\n }\n else if (event.altKey && event.key !== 'Alt') {\n value += 'alt+';\n }\n else if (event.shiftKey && event.key !== 'Shift') {\n value += 'shift+';\n }\n\n value += 'k' + event.key;\n\n this._key_event_extra(event, name);\n\n this.send_message(name, { key: value, guiEvent: simpleKeys(event) });\n return false;\n};\n\nmpl.figure.prototype.toolbar_button_onclick = function (name) {\n if (name === 'download') {\n this.handle_save(this, null);\n } else {\n this.send_message('toolbar_button', { name: name });\n }\n};\n\nmpl.figure.prototype.toolbar_button_onmouseover = function (tooltip) {\n this.message.textContent = tooltip;\n};\n\n///////////////// REMAINING CONTENT GENERATED BY embed_js.py /////////////////\n// prettier-ignore\nvar _JSXTOOLS_RESIZE_OBSERVER=function(A){var t,i=new WeakMap,n=new WeakMap,a=new WeakMap,r=new WeakMap,o=new Set;function s(e){if(!(this instanceof s))throw new TypeError(\"Constructor requires 'new' operator\");i.set(this,e)}function h(){throw new TypeError(\"Function is not a constructor\")}function c(e,t,i,n){e=0 in arguments?Number(arguments[0]):0,t=1 in arguments?Number(arguments[1]):0,i=2 in arguments?Number(arguments[2]):0,n=3 in arguments?Number(arguments[3]):0,this.right=(this.x=this.left=e)+(this.width=i),this.bottom=(this.y=this.top=t)+(this.height=n),Object.freeze(this)}function d(){t=requestAnimationFrame(d);var s=new WeakMap,p=new Set;o.forEach((function(t){r.get(t).forEach((function(i){var r=t instanceof window.SVGElement,o=a.get(t),d=r?0:parseFloat(o.paddingTop),f=r?0:parseFloat(o.paddingRight),l=r?0:parseFloat(o.paddingBottom),u=r?0:parseFloat(o.paddingLeft),g=r?0:parseFloat(o.borderTopWidth),m=r?0:parseFloat(o.borderRightWidth),w=r?0:parseFloat(o.borderBottomWidth),b=u+f,F=d+l,v=(r?0:parseFloat(o.borderLeftWidth))+m,W=g+w,y=r?0:t.offsetHeight-W-t.clientHeight,E=r?0:t.offsetWidth-v-t.clientWidth,R=b+v,z=F+W,M=r?t.width:parseFloat(o.width)-R-E,O=r?t.height:parseFloat(o.height)-z-y;if(n.has(t)){var k=n.get(t);if(k[0]===M&&k[1]===O)return}n.set(t,[M,O]);var S=Object.create(h.prototype);S.target=t,S.contentRect=new c(u,d,M,O),s.has(i)||(s.set(i,[]),p.add(i)),s.get(i).push(S)}))})),p.forEach((function(e){i.get(e).call(e,s.get(e),e)}))}return s.prototype.observe=function(i){if(i instanceof window.Element){r.has(i)||(r.set(i,new Set),o.add(i),a.set(i,window.getComputedStyle(i)));var n=r.get(i);n.has(this)||n.add(this),cancelAnimationFrame(t),t=requestAnimationFrame(d)}},s.prototype.unobserve=function(i){if(i instanceof window.Element&&r.has(i)){var n=r.get(i);n.has(this)&&(n.delete(this),n.size||(r.delete(i),o.delete(i))),n.size||r.delete(i),o.size||cancelAnimationFrame(t)}},A.DOMRectReadOnly=c,A.ResizeObserver=s,A.ResizeObserverEntry=h,A}; // eslint-disable-line\nmpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Left button pans, Right button zooms\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n\nmpl.extensions = [\"eps\", \"jpeg\", \"pgf\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\"];\n\nmpl.default_extension = \"png\";/* global mpl */\n\nvar comm_websocket_adapter = function (comm) {\n // Create a \"websocket\"-like object which calls the given IPython comm\n // object with the appropriate methods. Currently this is a non binary\n // socket, so there is still some room for performance tuning.\n var ws = {};\n\n ws.binaryType = comm.kernel.ws.binaryType;\n ws.readyState = comm.kernel.ws.readyState;\n function updateReadyState(_event) {\n if (comm.kernel.ws) {\n ws.readyState = comm.kernel.ws.readyState;\n } else {\n ws.readyState = 3; // Closed state.\n }\n }\n comm.kernel.ws.addEventListener('open', updateReadyState);\n comm.kernel.ws.addEventListener('close', updateReadyState);\n comm.kernel.ws.addEventListener('error', updateReadyState);\n\n ws.close = function () {\n comm.close();\n };\n ws.send = function (m) {\n //console.log('sending', m);\n comm.send(m);\n };\n // Register the callback with on_msg.\n comm.on_msg(function (msg) {\n //console.log('receiving', msg['content']['data'], msg);\n var data = msg['content']['data'];\n if (data['blob'] !== undefined) {\n data = {\n data: new Blob(msg['buffers'], { type: data['blob'] }),\n };\n }\n // Pass the mpl event to the overridden (by mpl) onmessage function.\n ws.onmessage(data);\n });\n return ws;\n};\n\nmpl.mpl_figure_comm = function (comm, msg) {\n // This is the function which gets called when the mpl process\n // starts-up an IPython Comm through the \"matplotlib\" channel.\n\n var id = msg.content.data.id;\n // Get hold of the div created by the display call when the Comm\n // socket was opened in Python.\n var element = document.getElementById(id);\n var ws_proxy = comm_websocket_adapter(comm);\n\n function ondownload(figure, _format) {\n window.open(figure.canvas.toDataURL());\n }\n\n var fig = new mpl.figure(id, ws_proxy, ondownload, element);\n\n // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n // web socket which is closed, not our websocket->open comm proxy.\n ws_proxy.onopen();\n\n fig.parent_element = element;\n fig.cell_info = mpl.find_output_cell(\"
\");\n if (!fig.cell_info) {\n console.error('Failed to find cell for figure', id, fig);\n return;\n }\n fig.cell_info[0].output_area.element.on(\n 'cleared',\n { fig: fig },\n fig._remove_fig_handler\n );\n};\n\nmpl.figure.prototype.handle_close = function (fig, msg) {\n var width = fig.canvas.width / fig.ratio;\n fig.cell_info[0].output_area.element.off(\n 'cleared',\n fig._remove_fig_handler\n );\n fig.resizeObserverInstance.unobserve(fig.canvas_div);\n\n // Update the output cell to use the data from the current canvas.\n fig.push_to_output();\n var dataURL = fig.canvas.toDataURL();\n // Re-enable the keyboard manager in IPython - without this line, in FF,\n // the notebook keyboard shortcuts fail.\n IPython.keyboard_manager.enable();\n fig.parent_element.innerHTML =\n '';\n fig.close_ws(fig, msg);\n};\n\nmpl.figure.prototype.close_ws = function (fig, msg) {\n fig.send_message('closing', msg);\n // fig.ws.close()\n};\n\nmpl.figure.prototype.push_to_output = function (_remove_interactive) {\n // Turn the data on the canvas into data in the output cell.\n var width = this.canvas.width / this.ratio;\n var dataURL = this.canvas.toDataURL();\n this.cell_info[1]['text/html'] =\n '';\n};\n\nmpl.figure.prototype.updated_canvas_event = function () {\n // Tell IPython that the notebook contents must change.\n IPython.notebook.set_dirty(true);\n this.send_message('ack', {});\n var fig = this;\n // Wait a second, then push the new image to the DOM so\n // that it is saved nicely (might be nice to debounce this).\n setTimeout(function () {\n fig.push_to_output();\n }, 1000);\n};\n\nmpl.figure.prototype._init_toolbar = function () {\n var fig = this;\n\n var toolbar = document.createElement('div');\n toolbar.classList = 'btn-toolbar';\n this.root.appendChild(toolbar);\n\n function on_click_closure(name) {\n return function (_event) {\n return fig.toolbar_button_onclick(name);\n };\n }\n\n function on_mouseover_closure(tooltip) {\n return function (event) {\n if (!event.currentTarget.disabled) {\n return fig.toolbar_button_onmouseover(tooltip);\n }\n };\n }\n\n fig.buttons = {};\n var buttonGroup = document.createElement('div');\n buttonGroup.classList = 'btn-group';\n var button;\n for (var toolbar_ind in mpl.toolbar_items) {\n var name = mpl.toolbar_items[toolbar_ind][0];\n var tooltip = mpl.toolbar_items[toolbar_ind][1];\n var image = mpl.toolbar_items[toolbar_ind][2];\n var method_name = mpl.toolbar_items[toolbar_ind][3];\n\n if (!name) {\n /* Instead of a spacer, we start a new button group. */\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n buttonGroup = document.createElement('div');\n buttonGroup.classList = 'btn-group';\n continue;\n }\n\n button = fig.buttons[name] = document.createElement('button');\n button.classList = 'btn btn-default';\n button.href = '#';\n button.title = name;\n button.innerHTML = '';\n button.addEventListener('click', on_click_closure(method_name));\n button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n buttonGroup.appendChild(button);\n }\n\n if (buttonGroup.hasChildNodes()) {\n toolbar.appendChild(buttonGroup);\n }\n\n // Add the status bar.\n var status_bar = document.createElement('span');\n status_bar.classList = 'mpl-message pull-right';\n toolbar.appendChild(status_bar);\n this.message = status_bar;\n\n // Add the close button to the window.\n var buttongrp = document.createElement('div');\n buttongrp.classList = 'btn-group inline pull-right';\n button = document.createElement('button');\n button.classList = 'btn btn-mini btn-primary';\n button.href = '#';\n button.title = 'Stop Interaction';\n button.innerHTML = '';\n button.addEventListener('click', function (_evt) {\n fig.handle_close(fig, {});\n });\n button.addEventListener(\n 'mouseover',\n on_mouseover_closure('Stop Interaction')\n );\n buttongrp.appendChild(button);\n var titlebar = this.root.querySelector('.ui-dialog-titlebar');\n titlebar.insertBefore(buttongrp, titlebar.firstChild);\n};\n\nmpl.figure.prototype._remove_fig_handler = function (event) {\n var fig = event.data.fig;\n if (event.target !== this) {\n // Ignore bubbled events from children.\n return;\n }\n fig.close_ws(fig, {});\n};\n\nmpl.figure.prototype._root_extra_style = function (el) {\n el.style.boxSizing = 'content-box'; // override notebook setting of border-box.\n};\n\nmpl.figure.prototype._canvas_extra_style = function (el) {\n // this is important to make the div 'focusable\n el.setAttribute('tabindex', 0);\n // reach out to IPython and tell the keyboard manager to turn it's self\n // off when our div gets focus\n\n // location in version 3\n if (IPython.notebook.keyboard_manager) {\n IPython.notebook.keyboard_manager.register_events(el);\n } else {\n // location in version 2\n IPython.keyboard_manager.register_events(el);\n }\n};\n\nmpl.figure.prototype._key_event_extra = function (event, _name) {\n var manager = IPython.notebook.keyboard_manager;\n if (!manager) {\n manager = IPython.keyboard_manager;\n }\n\n // Check for shift+enter\n if (event.shiftKey && event.which === 13) {\n this.canvas_div.blur();\n // select the cell after this one\n var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n IPython.notebook.select(index + 1);\n }\n};\n\nmpl.figure.prototype.handle_save = function (fig, _msg) {\n fig.ondownload(fig, null);\n};\n\nmpl.find_output_cell = function (html_output) {\n // Return the cell and output element which can be found *uniquely* in the notebook.\n // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n // IPython event is triggered only after the cells have been serialised, which for\n // our purposes (turning an active figure into a static one), is too late.\n var cells = IPython.notebook.get_cells();\n var ncells = cells.length;\n for (var i = 0; i < ncells; i++) {\n var cell = cells[i];\n if (cell.cell_type === 'code') {\n for (var j = 0; j < cell.output_area.outputs.length; j++) {\n var data = cell.output_area.outputs[j];\n if (data.data) {\n // IPython >= 3 moved mimebundle to data attribute of output\n data = data.data;\n }\n if (data['text/html'] === html_output) {\n return [cell, data, j];\n }\n }\n }\n }\n};\n\n// Register the function which deals with the matplotlib target/channel.\n// The kernel may be null if the page has been refreshed.\nif (IPython.notebook.kernel !== null) {\n IPython.notebook.kernel.comm_manager.register_target(\n 'matplotlib',\n mpl.mpl_figure_comm\n );\n}\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "res = train_and_plot(30,net,lr=0.01)" + ] }, { "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, "source": [ - "## Why Not Always Use Multi-Layered Model?\r\n", - "\r\n", - "We have seen that multi-layered model is more *powerful* and *expressive*, than one-layered one. You may be wondering why don't we always use many-layered model. The answer to this question is **overfitting**.\r\n", - "\r\n", - "We will deal with this term more in a later sections, but the idea is the following: **the more powerful the model is, the better it can approximate training data, and the more data it needs to properly generalize** for the new data it has not seen before.\r\n", - "\r\n", - "**A linear model:**\r\n", - "* We are likely to get high training loss - so-called **underfitting**, when the model does not have enough power to correctly separate all data. \r\n", - "* Valiadation loss and training loss are more or less the same. The model is likely to generalize well to test data.\r\n", - "\r\n", - "**Complex multi-layered model**\r\n", - "* Low training loss - the model can approximate training data well, because it has enough expressive power.\r\n", - "* Validation loss can be much higher than training loss and can start to increase during training - this is because the model \"memorizes\" training points, and loses the \"overall picture\"\r\n", - "\r\n", - "![Overfitting](images/overfit.png)\r\n", - "\r\n", + "## Why Not Always Use Multi-Layered Model?\n", + "\n", + "We have seen that multi-layered model is more *powerful* and *expressive*, than one-layered one. You may be wondering why don't we always use many-layered model. The answer to this question is **overfitting**.\n", + "\n", + "We will deal with this term more in a later sections, but the idea is the following: **the more powerful the model is, the better it can approximate training data, and the more data it needs to properly generalize** for the new data it has not seen before.\n", + "\n", + "**A linear model:**\n", + "* We are likely to get high training loss - so-called **underfitting**, when the model does not have enough power to correctly separate all data. \n", + "* Valiadation loss and training loss are more or less the same. The model is likely to generalize well to test data.\n", + "\n", + "**Complex multi-layered model**\n", + "* Low training loss - the model can approximate training data well, because it has enough expressive power.\n", + "* Validation loss can be much higher than training loss and can start to increase during training - this is because the model \"memorizes\" training points, and loses the \"overall picture\"\n", + "\n", + "![Overfitting](images/overfit.png)\n", + "\n", "> On this picture, `x` stands for training data, `o` - validation data. Left - linear model (one-layer), it approximates the nature of the data pretty well. Right - overfitted model, the model perfectly well approximates training data, but stops making sense with any other data (validation error is very high)" - ], + ] + }, + { + "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } - } - }, - { - "cell_type": "markdown", + }, "source": [ - "## Takeaways\r\n", - "\r\n", - "* Simple models (fewer layers, fewer neurons) with low number of parameters (\"low capacity\") are less likely to overfit\r\n", - "* More complex models (more layers, more neurons on each layer, high capacity) are likely to overfit. We need to monitor validation error to make sure it does not start to rise with further training\r\n", - "* More complex models need more data to train on.\r\n", - "* You can solve overfitting problem by either:\r\n", - " - simplifying your model\r\n", - " - increasing the amount of training data\r\n", - "* **Bias-variance trade-off** is a term that shows that you need to get the compromise\r\n", - " - between power of the model and amount of data,\r\n", - " - between overfittig and underfitting\r\n", + "## Takeaways\n", + "\n", + "* Simple models (fewer layers, fewer neurons) with low number of parameters (\"low capacity\") are less likely to overfit\n", + "* More complex models (more layers, more neurons on each layer, high capacity) are likely to overfit. We need to monitor validation error to make sure it does not start to rise with further training\n", + "* More complex models need more data to train on.\n", + "* You can solve overfitting problem by either:\n", + " - simplifying your model\n", + " - increasing the amount of training data\n", + "* **Bias-variance trade-off** is a term that shows that you need to get the compromise\n", + " - between power of the model and amount of data,\n", + " - between overfittig and underfitting\n", "* There is not single recipe on how many layers of parameters you need - the best way is to experiment" - ], - "metadata": { - "slideshow": { - "slide_type": "slide" - } - } + ] }, { "cell_type": "markdown", + "metadata": {}, "source": [ - "## Credits\r\n", - "\r\n", + "## Credits\n", + "\n", "This notebook is a part of [AI for Beginners Curricula](http://github.com/microsoft/ai-for-beginners), and has been prepared by [Dmitry Soshnikov](http://soshnikov.com). It is inspired by Neural Network Workshop at Microsoft Research Cambridge. Some code and illustrative materials are taken from presentations by [Katja Hoffmann](https://www.microsoft.com/en-us/research/people/kahofman/), [Matthew Johnson](https://www.microsoft.com/en-us/research/people/matjoh/) and [Ryoto Tomioka](https://www.microsoft.com/en-us/research/people/ryoto/), and from [NeuroWorkshop](http://github.com/shwars/NeuroWorkshop) repository." - ], - "metadata": {} + ] } ], "metadata": { "celltoolbar": "Slideshow", + "interpreter": { + "hash": "86193a1ab0ba47eac1c69c1756090baa3b420b3eea7d4aafab8b85f8b312f0c5" + }, "kernelspec": { - "name": "python3", - "display_name": "Python 3.8.8 64-bit ('base': conda)" + "display_name": "Python 3.9.5 64-bit ('base': conda)", + "name": "python3" }, "language_info": { "codemirror_mode": { @@ -1104,15 +1323,12 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.8" + "version": "3.9.5" }, "livereveal": { "start_slideshow_at": "selected" - }, - "interpreter": { - "hash": "86193a1ab0ba47eac1c69c1756090baa3b420b3eea7d4aafab8b85f8b312f0c5" } }, "nbformat": 4, "nbformat_minor": 1 -} \ No newline at end of file +} diff --git a/3-NeuralNetworks/04-OwnFramework/README.md b/3-NeuralNetworks/04-OwnFramework/README.md index de092520..18db044d 100644 --- a/3-NeuralNetworks/04-OwnFramework/README.md +++ b/3-NeuralNetworks/04-OwnFramework/README.md @@ -14,12 +14,12 @@ We will also develop our own modular framework in Python that will allows us to Let's start with formalizing the Machine Learning problem. Suppose we have a training dataset **X** with labels **Y**, and we need to build a model *f* that will make most accurate predictions. The quality of predictions is measured by **Loss function** ℒ. The following loss functions are often used: -* For regression problem, when we need to predict a number, we can use **absolute error** ∑i|f(x(i))-y(i)|, or **squared error** ∑i(f(x(i))-y(i))2 +* For regression problem, when we need to predict a number, we can use **absolute error** ∑i|f(x(i))-y(i)|, or **squared error** ∑i(f(x(i))-y(i))2 * For classification, we use **0-1 loss** (which is essentially the same as **accuracy** of the model), or **logistic loss**. For one-level perceptron, function *f* was defined as a linear function *f(x)=wx+b* (here *w* is the weight matrix, *x* is the vector if input features, and *b* is bias vector). For different neural network architectures, this function can take more complex form. -> In the case of classification, it is often desirable to get probabilities of corresponding classes as network output. To convert arbitrary numbers to probabilities (eg. to normalize the output), we often use **softmax** function σ, for the function *f* becomes *f(x)=σ(wx+b)* +> In the case of classification, it is often desirable to get probabilities of corresponding classes as network output. To convert arbitrary numbers to probabilities (eg. to normalize the output), we often use **softmax** function σ, and the function *f* becomes *f(x)=σ(wx+b)* In the definition of *f* above, *w* and *b* are called **parameters** θ=⟨*w,b*⟩. Given the dataset ⟨**X**,**Y**⟩, we can compute an overall error on the whole dataset as a function of parameters θ. @@ -43,7 +43,7 @@ One-layer network, as we have seen above, is capable of classifying linearly sep * z2=w2α(z1)+b2 * f = σ(z2) -Here, α is a **non-linear activation function**, σ is a softmax function, and θ=<*w1,b1,w2,b2*> are parameters. +Here, α is a **non-linear activation function**, σ is a softmax function, and parameters θ=<*w1,b1,w2,b2*>. The gradient descent algorithm would remain the same, but it would be more difficult to calculate gradients. Given the chain differentiation rule, we can calculate derivatives as: @@ -51,9 +51,11 @@ The gradient descent algorithm would remain the same, but it would be more diffi * ∂ℒ/∂w2 = (∂ℒ/∂σ)(∂σ/∂z2)(∂z2/∂w2) * ∂ℒ/∂w1 = (∂ℒ/∂σ)(∂σ/∂z2)(∂z2/∂α)(∂α/∂z1)(∂z1/∂w1) -Note that the beginning of all those expressions are the same, and thus we can effectively calculate derivatives starting from the loss function and going "backwards" through the computational graph. Thus the method of training multi-layered perceptron is called **back propagation**. +Note that the left-most part of all those expressions is the same, and thus we can effectively calculate derivatives starting from the loss function and going "backwards" through the computational graph. Thus the method of training multi-layered perceptron is called **back propagation**. -> We will cover back prop in much more detail in our notebook example. + + +We will cover back prop in much more detail in our notebook example. ## [Proceed to Notebook](OwnFramework.ipynb) In the accompanying notebook, we will implement our own framework for building and training multi-layered perceptrons. You will be able to see in detail how modern neural networks operate. Proceed to [OwnFramework](OwnFramework.ipynb) notebook. diff --git a/3-NeuralNetworks/05-Frameworks/IntroKerasTF.ipynb b/3-NeuralNetworks/05-Frameworks/IntroKerasTF.ipynb index f172f8e1..588d8652 100644 --- a/3-NeuralNetworks/05-Frameworks/IntroKerasTF.ipynb +++ b/3-NeuralNetworks/05-Frameworks/IntroKerasTF.ipynb @@ -691,7 +691,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 96, "metadata": { "id": "j0OTPkGpwHl7", "scrolled": false, @@ -703,7 +703,7 @@ "\n", "n = 100\n", "X, Y = make_classification(n_samples = n, n_features=2,\n", - " n_redundant=0, n_informative=2, flip_y=0.2,class_sep=1)\n", + " n_redundant=0, n_informative=2, flip_y=0.1,class_sep=1)\n", "X = X.astype(np.float32)\n", "Y = Y.astype(np.int32)\n", "\n", @@ -714,7 +714,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 97, "metadata": { "id": "c-_BjSHPwHl8", "scrolled": false, @@ -743,7 +743,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 98, "metadata": { "colab": { "base_uri": "https://localhost:8080/", @@ -765,7 +765,7 @@ }, { "data": { - "image/png": "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", + "image/png": "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", "text/plain": [ "
" ] @@ -780,6 +780,28 @@ "plot_dataset(train_x, train_labels)" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Normalizing Data\n", + "\n", + "Before training, it is common to bring our input features to the standard range of [0,1] (or [-1,1]). The exact reasons for that we will discuss later in the course, but in short the reason is the following. We want to avoid values that flow through our network getting too big or too small, and we normally agree to keep all values in the small range close to 0. Thus we initialize the weights with small random numbers, and we keep signals in the same range.\n", + "\n", + "When normalizing data, we need to subtract min value and divide by range. We compute min value and range using training data, and then normalize test/validation dataset using the same min/range values from the training set. This is because in real life we will only know the training set, and not all incoming new values that the network would be asked to predict. Occasionally, the new value may fall out of the [0,1] range, but that's not crucial. " + ] + }, + { + "cell_type": "code", + "execution_count": 99, + "metadata": {}, + "outputs": [], + "source": [ + "train_x_norm = train_x-np.min(train_x) / (np.max(train_x)-np.min(train_x))\n", + "valid_x_norm = valid_x-np.min(train_x) / (np.max(train_x)-np.min(train_x))\n", + "test_x_norm = test_x-np.min(train_x) / (np.max(train_x)-np.min(train_x))" + ] + }, { "cell_type": "markdown", "metadata": { @@ -801,7 +823,7 @@ }, { "cell_type": "code", - "execution_count": 57, + "execution_count": 112, "metadata": { "id": "kdDxWeCqwHl8", "trusted": true @@ -818,7 +840,7 @@ " with tf.GradientTape() as tape:\n", " z = tf.matmul(x, W) + b\n", " loss = tf.reduce_mean(tf.nn.sigmoid_cross_entropy_with_logits(labels=y,logits=z))\n", - " dloss_dw, dloss_db = tape.gradient(loss, [W, b])\n", + " dloss_dw, dloss_db = tape.gradient(loss, [W, b])\n", " W.assign_sub(learning_rate * dloss_dw)\n", " b.assign_sub(learning_rate * dloss_db)\n", " return loss" @@ -835,7 +857,7 @@ }, { "cell_type": "code", - "execution_count": 58, + "execution_count": 113, "metadata": { "colab": { "base_uri": "https://localhost:8080/" @@ -849,30 +871,25 @@ "name": "stdout", "output_type": "stream", "text": [ - "Epoch 0: last batch loss = 0.8960\n", - "Epoch 1: last batch loss = 0.7991\n", - "Epoch 2: last batch loss = 0.8121\n", - "Epoch 3: last batch loss = 0.9656\n", - "Epoch 4: last batch loss = 0.7388\n", - "Epoch 5: last batch loss = 1.0532\n", - "Epoch 6: last batch loss = 0.7494\n", - "Epoch 7: last batch loss = 0.8559\n", - "Epoch 8: last batch loss = 0.8226\n", - "Epoch 9: last batch loss = 0.7524\n", - "Epoch 10: last batch loss = 0.9427\n", - "Epoch 11: last batch loss = 0.6479\n", - "Epoch 12: last batch loss = 0.7756\n", - "Epoch 13: last batch loss = 0.7771\n", - "Epoch 14: last batch loss = 0.7996\n" + "Epoch 0: last batch loss = 1.4609\n", + "Epoch 1: last batch loss = 1.4618\n", + "Epoch 2: last batch loss = 1.2848\n", + "Epoch 3: last batch loss = 0.6062\n", + "Epoch 4: last batch loss = 0.3228\n", + "Epoch 5: last batch loss = 0.3865\n", + "Epoch 6: last batch loss = 0.3459\n", + "Epoch 7: last batch loss = 0.4791\n", + "Epoch 8: last batch loss = 0.9512\n", + "Epoch 9: last batch loss = 0.3132\n" ] } ], "source": [ "# Create a tf.data.Dataset object for easy batched iteration\n", - "dataset = tf.data.Dataset.from_tensor_slices((train_x, train_labels.astype(np.float32)))\n", - "dataset = dataset.shuffle(128).batch(16)\n", + "dataset = tf.data.Dataset.from_tensor_slices((train_x_norm.astype(np.float32), train_labels.astype(np.float32)))\n", + "dataset = dataset.shuffle(128).batch(4)\n", "\n", - "for epoch in range(15):\n", + "for epoch in range(10):\n", " for step, (x, y) in enumerate(dataset):\n", " loss = train_on_batch(x, tf.expand_dims(y,1))\n", " print('Epoch %d: last batch loss = %.4f' % (epoch, float(loss)))" @@ -889,7 +906,7 @@ }, { "cell_type": "code", - "execution_count": 49, + "execution_count": 114, "metadata": { "colab": { "base_uri": "https://localhost:8080/", @@ -910,7 +927,7 @@ }, { "data": { - "image/png": "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", + "image/png": "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", "text/plain": [ "
" ] @@ -934,7 +951,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 65, "metadata": { "colab": { "base_uri": "https://localhost:8080/", @@ -947,16 +964,16 @@ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 23, + "execution_count": 65, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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", + "image/png": "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", "text/plain": [ "
" ] @@ -983,7 +1000,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 66, "metadata": { "colab": { "base_uri": "https://localhost:8080/" @@ -998,7 +1015,7 @@ "" ] }, - "execution_count": 24, + "execution_count": 66, "metadata": {}, "output_type": "execute_result" } @@ -1032,7 +1049,7 @@ }, { "cell_type": "code", - "execution_count": 52, + "execution_count": 70, "metadata": { "colab": { "base_uri": "https://localhost:8080/" @@ -1045,54 +1062,32 @@ "name": "stdout", "output_type": "stream", "text": [ - "Epoch 0: last batch loss = 1.4725, acc = 1.0000\n", - "Epoch 1: last batch loss = 5.4883, acc = 0.6667\n", - "Epoch 2: last batch loss = 3.4839, acc = 0.8333\n", - "Epoch 3: last batch loss = 6.0828, acc = 0.6667\n", - "Epoch 4: last batch loss = 7.4671, acc = 0.3333\n", - "Epoch 5: last batch loss = 4.8935, acc = 0.8333\n", - "Epoch 6: last batch loss = 4.5684, acc = 0.8333\n", - "Epoch 7: last batch loss = 4.8099, acc = 0.6667\n", - "Epoch 8: last batch loss = 6.8351, acc = 0.5000\n", - "Epoch 9: last batch loss = 4.1826, acc = 0.8333\n", - "Epoch 10: last batch loss = 4.8398, acc = 0.8333\n", - "Epoch 11: last batch loss = 5.0882, acc = 0.8333\n", - "Epoch 12: last batch loss = 3.6824, acc = 1.0000\n", - "Epoch 13: last batch loss = 2.9054, acc = 1.0000\n", - "Epoch 14: last batch loss = 3.8756, acc = 1.0000\n", - "Epoch 15: last batch loss = 5.0647, acc = 1.0000\n", - "Epoch 16: last batch loss = 3.7667, acc = 1.0000\n", - "Epoch 17: last batch loss = 2.2130, acc = 1.0000\n", - "Epoch 18: last batch loss = 3.9063, acc = 0.8333\n", - "Epoch 19: last batch loss = 5.5129, acc = 0.6667\n", - "Epoch 20: last batch loss = 6.1930, acc = 0.6667\n", - "Epoch 21: last batch loss = 5.8449, acc = 0.6667\n", - "Epoch 22: last batch loss = 2.4126, acc = 1.0000\n", - "Epoch 23: last batch loss = 2.6007, acc = 0.8333\n", - "Epoch 24: last batch loss = 2.1278, acc = 0.8333\n", - "Epoch 25: last batch loss = 2.1106, acc = 1.0000\n", - "Epoch 26: last batch loss = 5.0858, acc = 0.5000\n", - "Epoch 27: last batch loss = 5.0222, acc = 0.6667\n", - "Epoch 28: last batch loss = 5.5569, acc = 0.6667\n", - "Epoch 29: last batch loss = 6.2620, acc = 0.6667\n", - "Epoch 30: last batch loss = 2.6355, acc = 0.8333\n", - "Epoch 31: last batch loss = 3.6728, acc = 0.8333\n", - "Epoch 32: last batch loss = 4.3967, acc = 0.6667\n", - "Epoch 33: last batch loss = 4.1097, acc = 0.8333\n", - "Epoch 34: last batch loss = 0.6812, acc = 1.0000\n", - "Epoch 35: last batch loss = 4.7926, acc = 0.6667\n", - "Epoch 36: last batch loss = 3.1601, acc = 0.8333\n", - "Epoch 37: last batch loss = 1.8902, acc = 1.0000\n", - "Epoch 38: last batch loss = 7.0491, acc = 0.5000\n", - "Epoch 39: last batch loss = 1.2064, acc = 1.0000\n" + "Epoch 0: last batch loss = 9.8168, acc = 0.1667\n", + "Epoch 1: last batch loss = 9.3657, acc = 0.1667\n", + "Epoch 2: last batch loss = 4.4084, acc = 0.8333\n", + "Epoch 3: last batch loss = 6.0470, acc = 0.8333\n", + "Epoch 4: last batch loss = 9.8649, acc = 0.3333\n", + "Epoch 5: last batch loss = 6.8309, acc = 0.5000\n", + "Epoch 6: last batch loss = 4.8908, acc = 0.8333\n", + "Epoch 7: last batch loss = 11.3577, acc = 0.1667\n", + "Epoch 8: last batch loss = 9.0503, acc = 0.5000\n", + "Epoch 9: last batch loss = 5.9413, acc = 0.6667\n", + "Epoch 10: last batch loss = 4.5841, acc = 0.6667\n", + "Epoch 11: last batch loss = 5.6880, acc = 0.8333\n", + "Epoch 12: last batch loss = 6.4425, acc = 0.6667\n", + "Epoch 13: last batch loss = 7.7689, acc = 0.6667\n", + "Epoch 14: last batch loss = 8.0344, acc = 0.5000\n", + "Epoch 15: last batch loss = 6.3421, acc = 0.6667\n", + "Epoch 16: last batch loss = 5.5468, acc = 0.8333\n", + "Epoch 17: last batch loss = 5.4036, acc = 0.5000\n", + "Epoch 18: last batch loss = 9.8040, acc = 0.1667\n", + "Epoch 19: last batch loss = 5.6883, acc = 0.6667\n" ] } ], "source": [ "optimizer = tf.keras.optimizers.Adam(0.01)\n", "\n", - "learning_rate = 0.05\n", - "\n", "W = tf.Variable(tf.random.normal(shape=(2,1)))\n", "b = tf.Variable(tf.zeros(shape=(1,),dtype=tf.float32))\n", "\n", @@ -1108,7 +1103,7 @@ " optimizer.apply_gradients(zip(grads,vars))\n", " return loss,acc\n", "\n", - "for epoch in range(40):\n", + "for epoch in range(20):\n", " for step, (x, y) in enumerate(dataset):\n", " loss,acc = train_on_batch(tf.reshape(x,(-1,2)), tf.reshape(y,(-1,1)))\n", " print('Epoch %d: last batch loss = %.4f, acc = %.4f' % (epoch, float(loss),acc))" @@ -1219,8 +1214,6 @@ "z = tf.keras.layers.Dense(1,kernel_initializer='glorot_uniform',activation='sigmoid')(inputs)\n", "model = tf.keras.models.Model(inputs,z)\n", "\n", - "train_x_norm = train_x-np.min(train_x) / (np.max(train_x)-np.min(train_x))\n", - "\n", "model.compile(tf.keras.optimizers.Adam(0.1),'binary_crossentropy',['accuracy'])\n", "model.summary()\n", "h = model.fit(train_x_norm,train_labels,batch_size=8,epochs=15)" @@ -1351,10 +1344,6 @@ "model.add(tf.keras.layers.Dense(5,activation='sigmoid',input_shape=(2,)))\n", "model.add(tf.keras.layers.Dense(1,activation='sigmoid'))\n", "\n", - "test_x_norm = test_x-np.min(train_x) / (np.max(train_x)-np.min(train_x))\n", - "# This is not an error: we use min/man on training data when normalizing our test data\n", - "# Because we want to use the same normalization during both training and testing\n", - "\n", "model.compile(tf.keras.optimizers.Adam(0.1),'binary_crossentropy',['accuracy'])\n", "model.summary()\n", "model.fit(train_x_norm,train_labels,validation_data=(test_x_norm,test_labels),batch_size=8,epochs=15)" diff --git a/3-NeuralNetworks/05-Frameworks/IntroPyTorch.ipynb b/3-NeuralNetworks/05-Frameworks/IntroPyTorch.ipynb index 9ffddec2..5a3918b8 100644 --- a/3-NeuralNetworks/05-Frameworks/IntroPyTorch.ipynb +++ b/3-NeuralNetworks/05-Frameworks/IntroPyTorch.ipynb @@ -52,7 +52,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 41, "metadata": { "colab": { "base_uri": "https://localhost:8080/", @@ -69,7 +69,7 @@ "'1.8.2'" ] }, - "execution_count": 1, + "execution_count": 41, "metadata": {}, "output_type": "execute_result" } @@ -108,7 +108,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 42, "metadata": { "colab": { "base_uri": "https://localhost:8080/" @@ -124,16 +124,16 @@ "text": [ "tensor([[1, 2],\n", " [3, 4]])\n", - "tensor([[-0.7488, 0.5776, 0.0520],\n", - " [-0.5258, -1.6104, 0.4226],\n", - " [ 2.0568, 0.4692, 0.5858],\n", - " [-1.2225, -1.6223, -0.3628],\n", - " [-2.7874, 1.0577, 0.9720],\n", - " [-1.6521, 1.4820, -1.1416],\n", - " [-1.0172, -0.3259, -1.4338],\n", - " [-0.7763, -1.1454, -0.5500],\n", - " [-2.1639, -0.2575, -0.8015],\n", - " [-0.1890, -0.7774, -0.2899]])\n" + "tensor([[ 0.5323, -0.2154, 0.7426],\n", + " [ 1.1795, 1.3732, 1.3171],\n", + " [ 0.8288, -0.6264, -0.7545],\n", + " [-1.5020, 1.7313, 0.1916],\n", + " [ 1.2507, 1.5185, 0.5336],\n", + " [-0.0771, 0.2244, -1.0394],\n", + " [ 0.4770, 2.1839, 0.5404],\n", + " [-0.4145, 1.4427, -1.6582],\n", + " [-0.6721, -0.2278, 1.9838],\n", + " [ 0.4876, 0.8315, 1.1669]])\n" ] } ], @@ -155,7 +155,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 43, "metadata": { "colab": { "base_uri": "https://localhost:8080/" @@ -169,16 +169,16 @@ "output_type": "stream", "text": [ "tensor([[ 0.0000, 0.0000, 0.0000],\n", - " [ 0.2230, -2.1880, 0.3706],\n", - " [ 2.8056, -0.1084, 0.5339],\n", - " [-0.4737, -2.1999, -0.4148],\n", - " [-2.0386, 0.4801, 0.9200],\n", - " [-0.9033, 0.9044, -1.1936],\n", - " [-0.2685, -0.9035, -1.4857],\n", - " [-0.0275, -1.7230, -0.6019],\n", - " [-1.4151, -0.8351, -0.8535],\n", - " [ 0.5598, -1.3550, -0.3418]])\n", - "[0.47294793 1.7817812 1.0533323 ]\n" + " [ 0.6471, 1.5885, 0.5746],\n", + " [ 0.2964, -0.4110, -1.4971],\n", + " [-2.0343, 1.9467, -0.5510],\n", + " [ 0.7183, 1.7339, -0.2089],\n", + " [-0.6094, 0.4398, -1.7820],\n", + " [-0.0553, 2.3993, -0.2021],\n", + " [-0.9468, 1.6581, -2.4007],\n", + " [-1.2044, -0.0124, 1.2413],\n", + " [-0.0447, 1.0469, 0.4244]])\n", + "[1.7028859 0.8062281 2.1013143]\n" ] } ], @@ -200,7 +200,7 @@ }, { "cell_type": "code", - "execution_count": 171, + "execution_count": 44, "metadata": { "colab": { "base_uri": "https://localhost:8080/" @@ -236,7 +236,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 45, "metadata": { "colab": { "base_uri": "https://localhost:8080/" @@ -249,7 +249,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "tensor([-9.0260, -2.1524, -2.5472])\n" + "tensor([2.0901, 8.2359, 3.0239])\n" ] } ], @@ -272,7 +272,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 46, "metadata": { "colab": { "base_uri": "https://localhost:8080/" @@ -284,10 +284,10 @@ { "data": { "text/plain": [ - "tensor([-9.0260, -2.1524, -2.5472])" + "tensor([2.0901, 8.2359, 3.0239])" ] }, - "execution_count": 5, + "execution_count": 46, "metadata": {}, "output_type": "execute_result" } @@ -318,7 +318,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 47, "metadata": { "colab": { "base_uri": "https://localhost:8080/" @@ -332,8 +332,8 @@ "name": "stdout", "output_type": "stream", "text": [ - "tensor([[-0.2004, -0.0751],\n", - " [-0.2429, 0.1520]])\n" + "tensor([[-0.1491, 0.2151],\n", + " [-0.0360, 0.0569]])\n" ] } ], @@ -358,7 +358,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 48, "metadata": { "colab": { "base_uri": "https://localhost:8080/" @@ -371,10 +371,10 @@ "name": "stdout", "output_type": "stream", "text": [ - "tensor([[-0.6012, -0.2252],\n", - " [-0.7286, 0.4559]])\n", - "tensor([[-0.2004, -0.0751],\n", - " [-0.2429, 0.1520]])\n" + "tensor([[-0.4472, 0.6452],\n", + " [-0.1080, 0.1708]])\n", + "tensor([[-0.1491, 0.2151],\n", + " [-0.0360, 0.0569]])\n" ] } ], @@ -399,7 +399,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 49, "metadata": { "colab": { "base_uri": "https://localhost:8080/" @@ -412,7 +412,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "tensor(1.3326, grad_fn=)\n" + "tensor(1.2078, grad_fn=)\n" ] } ], @@ -448,7 +448,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 50, "metadata": { "colab": { "base_uri": "https://localhost:8080/" @@ -461,8 +461,8 @@ "name": "stdout", "output_type": "stream", "text": [ - "tensor([[-1.0020, -0.0751],\n", - " [-0.2429, 0.7599]])\n" + "tensor([[-0.7453, 0.2151],\n", + " [-0.0360, 0.2847]])\n" ] } ], @@ -500,7 +500,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 51, "metadata": { "id": "nDw5mV9KEeOa" }, @@ -522,7 +522,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 52, "metadata": { "colab": { "base_uri": "https://localhost:8080/" @@ -576,7 +576,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 53, "metadata": { "id": "j723455WwHl7", "trusted": true @@ -592,7 +592,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 54, "metadata": { "colab": { "base_uri": "https://localhost:8080/", @@ -605,10 +605,10 @@ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 14, + "execution_count": 54, "metadata": {}, "output_type": "execute_result" }, @@ -650,7 +650,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 55, "metadata": { "id": "QxhI4GlB6aiH" }, @@ -689,7 +689,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 56, "metadata": { "id": "-991PErM7fJU" }, @@ -717,7 +717,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 57, "metadata": { "id": "nOuu0qpx-wAp" }, @@ -731,7 +731,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 58, "metadata": { "colab": { "base_uri": "https://localhost:8080/" @@ -774,7 +774,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 59, "metadata": { "colab": { "base_uri": "https://localhost:8080/" @@ -789,7 +789,7 @@ "(tensor([1.8617], requires_grad=True), tensor([1.0711], requires_grad=True))" ] }, - "execution_count": 19, + "execution_count": 59, "metadata": {}, "output_type": "execute_result" } @@ -800,7 +800,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 60, "metadata": { "colab": { "base_uri": "https://localhost:8080/", @@ -813,10 +813,10 @@ { "data": { "text/plain": [ - "[]" + "[]" ] }, - "execution_count": 20, + "execution_count": 60, "metadata": {}, "output_type": "execute_result" }, @@ -854,7 +854,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 61, "metadata": { "colab": { "base_uri": "https://localhost:8080/" @@ -929,7 +929,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 62, "metadata": { "id": "j0OTPkGpwHl7", "scrolled": false, @@ -952,7 +952,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 63, "metadata": { "id": "c-_BjSHPwHl8", "scrolled": false, @@ -981,7 +981,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 64, "metadata": { "colab": { "base_uri": "https://localhost:8080/", @@ -1035,7 +1035,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 75, "metadata": { "id": "J1KaixW-cMWJ" }, @@ -1079,7 +1079,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 66, "metadata": { "id": "kdDxWeCqwHl8", "trusted": true @@ -1110,7 +1110,7 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 71, "metadata": { "colab": { "base_uri": "https://localhost:8080/" @@ -1142,7 +1142,7 @@ " tensor([1., 1., 0., 0., 0., 0., 1., 0., 0., 1., 0., 1., 0., 0., 0., 0.])]" ] }, - "execution_count": 26, + "execution_count": 71, "metadata": {}, "output_type": "execute_result" } @@ -1166,7 +1166,7 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 78, "metadata": { "colab": { "base_uri": "https://localhost:8080/" @@ -1179,21 +1179,21 @@ "name": "stdout", "output_type": "stream", "text": [ - "Epoch 0: last batch loss = 0.6423\n", - "Epoch 1: last batch loss = 0.6035\n", - "Epoch 2: last batch loss = 0.5813\n", - "Epoch 3: last batch loss = 0.5680\n", - "Epoch 4: last batch loss = 0.5597\n", - "Epoch 5: last batch loss = 0.5544\n", - "Epoch 6: last batch loss = 0.5510\n", - "Epoch 7: last batch loss = 0.5487\n", - "Epoch 8: last batch loss = 0.5472\n", - "Epoch 9: last batch loss = 0.5462\n", - "Epoch 10: last batch loss = 0.5455\n", - "Epoch 11: last batch loss = 0.5450\n", - "Epoch 12: last batch loss = 0.5447\n", - "Epoch 13: last batch loss = 0.5445\n", - "Epoch 14: last batch loss = 0.5443\n" + "Epoch 0: last batch loss = 0.6491\n", + "Epoch 1: last batch loss = 0.6064\n", + "Epoch 2: last batch loss = 0.5822\n", + "Epoch 3: last batch loss = 0.5679\n", + "Epoch 4: last batch loss = 0.5592\n", + "Epoch 5: last batch loss = 0.5537\n", + "Epoch 6: last batch loss = 0.5501\n", + "Epoch 7: last batch loss = 0.5478\n", + "Epoch 8: last batch loss = 0.5463\n", + "Epoch 9: last batch loss = 0.5454\n", + "Epoch 10: last batch loss = 0.5447\n", + "Epoch 11: last batch loss = 0.5443\n", + "Epoch 12: last batch loss = 0.5441\n", + "Epoch 13: last batch loss = 0.5439\n", + "Epoch 14: last batch loss = 0.5438\n" ] } ], @@ -1213,7 +1213,7 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 79, "metadata": { "colab": { "base_uri": "https://localhost:8080/" @@ -1226,8 +1226,8 @@ "name": "stdout", "output_type": "stream", "text": [ - "tensor([[1.0583],\n", - " [0.4454]], requires_grad=True) tensor([0.], requires_grad=True)\n" + "tensor([[1.0522],\n", + " [0.4444]], requires_grad=True) tensor([0.], requires_grad=True)\n" ] } ], @@ -1246,7 +1246,7 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 80, "metadata": { "colab": { "base_uri": "https://localhost:8080/", @@ -1267,7 +1267,7 @@ }, { "data": { - "image/png": "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", + "image/png": "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", "text/plain": [ "
" ] @@ -1293,7 +1293,7 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 81, "metadata": { "colab": { "base_uri": "https://localhost:8080/" @@ -1308,7 +1308,7 @@ "tensor(0.8667)" ] }, - "execution_count": 32, + "execution_count": 81, "metadata": {}, "output_type": "execute_result" } @@ -1357,7 +1357,7 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 82, "metadata": { "colab": { "base_uri": "https://localhost:8080/" @@ -1371,8 +1371,8 @@ "output_type": "stream", "text": [ "[Parameter containing:\n", - "tensor([[-0.6290, 0.2565]], requires_grad=True), Parameter containing:\n", - "tensor([-0.6059], requires_grad=True)]\n" + "tensor([[0.6870, 0.1273]], requires_grad=True), Parameter containing:\n", + "tensor([0.6904], requires_grad=True)]\n" ] } ], @@ -1395,7 +1395,7 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 83, "metadata": { "id": "B4AxyrFMozh0" }, @@ -1415,7 +1415,7 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": 84, "metadata": { "colab": { "base_uri": "https://localhost:8080/" @@ -1428,16 +1428,16 @@ "name": "stdout", "output_type": "stream", "text": [ - "Epoch 0: last batch loss = 0.65546053647995, val acc = 0.20000000298023224\n", - "Epoch 1: last batch loss = 0.6187976002693176, val acc = 0.3333333432674408\n", - "Epoch 2: last batch loss = 0.5907494425773621, val acc = 0.3333333432674408\n", - "Epoch 3: last batch loss = 0.5694093108177185, val acc = 0.4000000059604645\n", - "Epoch 4: last batch loss = 0.5532841086387634, val acc = 0.46666666865348816\n", - "Epoch 5: last batch loss = 0.5412127375602722, val acc = 0.46666666865348816\n", - "Epoch 6: last batch loss = 0.5322896838188171, val acc = 0.46666666865348816\n", - "Epoch 7: last batch loss = 0.5258066058158875, val acc = 0.46666666865348816\n", - "Epoch 8: last batch loss = 0.5212085843086243, val acc = 0.6000000238418579\n", - "Epoch 9: last batch loss = 0.5180616974830627, val acc = 0.6000000238418579\n" + "Epoch 0: last batch loss = 0.6965743899345398, val acc = 0.7333333492279053\n", + "Epoch 1: last batch loss = 0.6784186959266663, val acc = 0.7333333492279053\n", + "Epoch 2: last batch loss = 0.6634390354156494, val acc = 0.800000011920929\n", + "Epoch 3: last batch loss = 0.6509400010108948, val acc = 0.800000011920929\n", + "Epoch 4: last batch loss = 0.6404023170471191, val acc = 0.800000011920929\n", + "Epoch 5: last batch loss = 0.6314342617988586, val acc = 0.800000011920929\n", + "Epoch 6: last batch loss = 0.6237367391586304, val acc = 0.800000011920929\n", + "Epoch 7: last batch loss = 0.6170788407325745, val acc = 0.800000011920929\n", + "Epoch 8: last batch loss = 0.6112800240516663, val acc = 0.800000011920929\n", + "Epoch 9: last batch loss = 0.6061977744102478, val acc = 0.800000011920929\n" ] } ], @@ -1469,7 +1469,7 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": 85, "metadata": { "colab": { "base_uri": "https://localhost:8080/" @@ -1482,16 +1482,16 @@ "name": "stdout", "output_type": "stream", "text": [ - "Epoch 0: last batch loss = 0.717000424861908, val acc = 0.800000011920929\n", - "Epoch 1: last batch loss = 0.6802961826324463, val acc = 0.800000011920929\n", - "Epoch 2: last batch loss = 0.6523239016532898, val acc = 0.800000011920929\n", - "Epoch 3: last batch loss = 0.6305356621742249, val acc = 0.8666666746139526\n", - "Epoch 4: last batch loss = 0.6132137775421143, val acc = 0.8666666746139526\n", - "Epoch 5: last batch loss = 0.5993289947509766, val acc = 0.8666666746139526\n", - "Epoch 6: last batch loss = 0.5882464051246643, val acc = 0.8666666746139526\n", - "Epoch 7: last batch loss = 0.5795158743858337, val acc = 0.8666666746139526\n", - "Epoch 8: last batch loss = 0.5727649331092834, val acc = 0.8666666746139526\n", - "Epoch 9: last batch loss = 0.5676581263542175, val acc = 0.8666666746139526\n" + "Epoch 0: last batch loss = 0.5223885774612427, val acc = 0.6000000238418579\n", + "Epoch 1: last batch loss = 0.5124126076698303, val acc = 0.6000000238418579\n", + "Epoch 2: last batch loss = 0.5077585577964783, val acc = 0.6666666865348816\n", + "Epoch 3: last batch loss = 0.5082311034202576, val acc = 0.800000011920929\n", + "Epoch 4: last batch loss = 0.5123199224472046, val acc = 0.7333333492279053\n", + "Epoch 5: last batch loss = 0.5183590054512024, val acc = 0.7333333492279053\n", + "Epoch 6: last batch loss = 0.5249963402748108, val acc = 0.7333333492279053\n", + "Epoch 7: last batch loss = 0.5313336253166199, val acc = 0.7333333492279053\n", + "Epoch 8: last batch loss = 0.5368850827217102, val acc = 0.7333333492279053\n", + "Epoch 9: last batch loss = 0.5414646863937378, val acc = 0.7333333492279053\n" ] } ], @@ -1526,7 +1526,7 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": 86, "metadata": { "colab": { "base_uri": "https://localhost:8080/" @@ -1563,7 +1563,7 @@ }, { "cell_type": "code", - "execution_count": 38, + "execution_count": 87, "metadata": { "colab": { "base_uri": "https://localhost:8080/" @@ -1576,16 +1576,16 @@ "name": "stdout", "output_type": "stream", "text": [ - "Epoch 0: last batch loss = 0.6754228472709656, val acc = 0.6000000238418579\n", - "Epoch 1: last batch loss = 0.639519453048706, val acc = 0.7333333492279053\n", - "Epoch 2: last batch loss = 0.606279194355011, val acc = 0.800000011920929\n", - "Epoch 3: last batch loss = 0.5834296345710754, val acc = 0.7333333492279053\n", - "Epoch 4: last batch loss = 0.5749474763870239, val acc = 0.7333333492279053\n", - "Epoch 5: last batch loss = 0.5772255063056946, val acc = 0.7333333492279053\n", - "Epoch 6: last batch loss = 0.5822412967681885, val acc = 0.7333333492279053\n", - "Epoch 7: last batch loss = 0.582870364189148, val acc = 0.7333333492279053\n", - "Epoch 8: last batch loss = 0.5753149390220642, val acc = 0.800000011920929\n", - "Epoch 9: last batch loss = 0.5589768886566162, val acc = 0.800000011920929\n" + "Epoch 0: last batch loss = 0.695976734161377, val acc = 0.6000000238418579\n", + "Epoch 1: last batch loss = 0.6832109093666077, val acc = 0.9333333373069763\n", + "Epoch 2: last batch loss = 0.6536983847618103, val acc = 0.800000011920929\n", + "Epoch 3: last batch loss = 0.6187950372695923, val acc = 0.7333333492279053\n", + "Epoch 4: last batch loss = 0.588731586933136, val acc = 0.8666666746139526\n", + "Epoch 5: last batch loss = 0.5675249099731445, val acc = 0.8666666746139526\n", + "Epoch 6: last batch loss = 0.5546941757202148, val acc = 0.8666666746139526\n", + "Epoch 7: last batch loss = 0.5478418469429016, val acc = 0.8666666746139526\n", + "Epoch 8: last batch loss = 0.5438018441200256, val acc = 0.9333333373069763\n", + "Epoch 9: last batch loss = 0.5394334197044373, val acc = 0.9333333373069763\n" ] } ], @@ -1606,7 +1606,7 @@ }, { "cell_type": "code", - "execution_count": 39, + "execution_count": 88, "metadata": { "colab": { "base_uri": "https://localhost:8080/" @@ -1647,7 +1647,7 @@ }, { "cell_type": "code", - "execution_count": 40, + "execution_count": 89, "metadata": { "colab": { "base_uri": "https://localhost:8080/" @@ -1660,16 +1660,16 @@ "name": "stdout", "output_type": "stream", "text": [ - "Epoch 0: last batch loss = 0.7940112948417664, val acc = 0.20000000298023224\n", - "Epoch 1: last batch loss = 0.7393167614936829, val acc = 0.20000000298023224\n", - "Epoch 2: last batch loss = 0.693408727645874, val acc = 0.13333334028720856\n", - "Epoch 3: last batch loss = 0.6558710336685181, val acc = 0.13333334028720856\n", - "Epoch 4: last batch loss = 0.6256343722343445, val acc = 0.2666666805744171\n", - "Epoch 5: last batch loss = 0.6012560129165649, val acc = 0.3333333432674408\n", - "Epoch 6: last batch loss = 0.5820637345314026, val acc = 0.3333333432674408\n", - "Epoch 7: last batch loss = 0.5663362145423889, val acc = 0.3333333432674408\n", - "Epoch 8: last batch loss = 0.5532793998718262, val acc = 0.3333333432674408\n", - "Epoch 9: last batch loss = 0.541694700717926, val acc = 0.4000000059604645\n" + "Epoch 0: last batch loss = 0.5920814275741577, val acc = 0.8666666746139526\n", + "Epoch 1: last batch loss = 0.5768700242042542, val acc = 0.8666666746139526\n", + "Epoch 2: last batch loss = 0.5623482465744019, val acc = 0.8666666746139526\n", + "Epoch 3: last batch loss = 0.547980785369873, val acc = 0.8666666746139526\n", + "Epoch 4: last batch loss = 0.5350895524024963, val acc = 0.8666666746139526\n", + "Epoch 5: last batch loss = 0.5235971808433533, val acc = 0.8666666746139526\n", + "Epoch 6: last batch loss = 0.5140454173088074, val acc = 0.8666666746139526\n", + "Epoch 7: last batch loss = 0.5063431859016418, val acc = 0.9333333373069763\n", + "Epoch 8: last batch loss = 0.5004293322563171, val acc = 0.9333333373069763\n", + "Epoch 9: last batch loss = 0.4957129955291748, val acc = 0.9333333373069763\n" ] } ], diff --git a/3-NeuralNetworks/05-Frameworks/README.md b/3-NeuralNetworks/05-Frameworks/README.md new file mode 100644 index 00000000..0fb50286 --- /dev/null +++ b/3-NeuralNetworks/05-Frameworks/README.md @@ -0,0 +1,37 @@ +# Neural Network Frameworks + +As we have learnt already, to be able to train neural networks efficiently we need to do two things: + +* To operate on tensors, eg. to multiply, add, and compute some functions such as sigmoid or softmax +* To compute gradients of all expressions, in order to perform gradient descent optimization + +While `numpy` library can do the first part, we need some mechanism to compute gradients. In [our framework](../04-OwnFramework/OwnFramework.ipynb) that we have developed in the previous section we had to manually program all derivative functions inside the `backward` method, which does back propagation. Ideally, a framework should give us the opportunity to compute gradients of *any expression* that we can define. + +Another important thing is to be able to perform computations on GPU, or any other specialized compute units, such as [TPU](https://en.wikipedia.org/wiki/Tensor_Processing_Unit). Deep neural network training requires *a lot* of computations, and to be able to parallelize those computations on GPUs is very important. + +Currently, there are two most popular neural frameworks: [Tensorflow](http://tensorflow.org), and [PyTorch](https://pytorch.org/). Both provide low-level API to operate with tensors on both CPU and GPU. On top of the low-level API, there is also higher-level API, called [Keras](https://keras.io/) and [PyTorch Lightning](https://pytorchlightning.ai/) correspondingly. + +Low-Level API | [TensorFlow](http://tensorflow.org) | [PyTorch](https://pytorch.org/) +--------------|-------------------------------------|-------------------------------- +High-level API| [Keras](https://keras.io/) | [PyTorch Lightning](https://pytorchlightning.ai/) + +**Low-level APIs** in both frameworks allow you to build so-called **computational graph**. This graph defines how to compute the output (usually the loss function) with given input parameters, and can be pushed for computation on GPU, if it is available. There are functions to differentiate this computational graph and compute gradients, which can then be used for optimizing model parameters. + +**High-level APIs** pretty much consider neural network as a **sequence of layers**, and make constructing most of the neural networks much easier. Training the model usually requires preparing the data and then calling `fit` function to do the job. + +High-level API allows you to construct typical neural networks very fast, without worrying about lots of details. At the same time, low-level API offer much more control over training process, and thus they are used a lot in research, when you are dealing with new neural network architectures. + +It is also important to understand that you can use both APIs together, eg. you can develop your own network layer architecture using low-level API, and then use it inside the larger network constructed and trained with high-level API. Or you can define a network using high-level API as a sequence of layers, and then use your own low-level training loop to perform optimization. Both APIs use the same basic underlying concepts, and they are designed to work well together. + +## Learning + +In this course, we offer most of the content both for PyTorch and Tensorflow. You can chose your preferred framework and only go through the corresponding notebooks. If you are not sure which framework to chose - read some discussions on the internet regarding **PyTorch vs. Tensorflow**. You can also have a look at both frameworks to get better understanding. + +Where possible, we will use High-Level APIs for simplicity. However, we believe it is important to understand how neural networks work from the ground up, thus in the beginning we start by working with low-level API and tensors. However, if you want to get going fast and do not want to spend a lot of time on details, you can skip those, and go straight into high-level API notebooks. + +## Continue into Notebooks + +Low-Level API | [TensorFlow+Keras Notebook](IntroKerasTF.ipynb) | [PyTorch](IntroPyTorch.ipynb) +--------------|-------------------------------------|-------------------------------- +High-level API| [Keras](IntroKeras.ipynb) | *PyTorch Lightning* + diff --git a/4-ComputerVision/07-ConvNets/ConfNetsTF.ipynb b/4-ComputerVision/07-ConvNets/ConfNetsTF.ipynb new file mode 100644 index 00000000..4f3976a2 --- /dev/null +++ b/4-ComputerVision/07-ConvNets/ConfNetsTF.ipynb @@ -0,0 +1,673 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Convolutional neural networks\n", + "\n", + "We have seen before that neural networks are quite good at dealing with images, and even one-layer perceptron is able to recognize handwritten digits from MNIST dataset with reasonable accuracy. However, MNIST dataset is very special, and all digits are centered inside the image, which makes the task simpler.\n", + "\n", + "In real life, we want to be able to recognize objects on the picture regardless of their exact location in the image. Computer vision is different from generic classification, because when we are trying to find a certain object in the picture, we are scanning the image looking for some specific **patterns** and their combinations. For example, when looking for a cat, we first may look for horizontal lines, which can form whiskers, and then certain combination of whiskers can tell us that it is actually a picture of a cat. Relative position and presence of certain patterns is important, and not their exact position on the image. \n", + "\n", + "To extract patterns, we will use the notion of **convolutional filters**. But first, let us load all dependencies and functions that we have defined in the previous units. We will also import `tfcv` helper library that contain some useful functions that we do not want to define inside this notebook to keep the code short and clean. " + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "import tensorflow as tf\n", + "from tensorflow import keras\n", + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "from tfcv import *" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In this example, we will focus on the MNIST dataset that we have seen before, and on image classification. We will start by loading the dataset using Keras built-in functions." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "(x_train,y_train),(x_test,y_test) = keras.datasets.mnist.load_data()\n", + "x_train = x_train.astype(np.float32) / 255.0\n", + "x_test = x_test.astype(np.float32) / 255.0" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Convolutional filters\n", + "\n", + "Convolutional filters are small windows that run over each pixel of the image and compute weighted average of the neighboring pixels.\n", + "\n", + "\n", + "\n", + "They are defined by matrices of weight coefficients. Let's see the examples of applying two different convolutional filters over our MNIST handwritten digits:" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plot_convolution(x_train[:5],[[-1.,0.,1.],[-1.,0.,1.],[-1.,0.,1.]],'Vertical edge filter')\n", + "plot_convolution(x_train[:5],[[-1.,-1.,-1.],[0.,0.,0.],[1.,1.,1.]],'Horizontal edge filter')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "First filter is called a **vertical edge filter**, and it is defined by the following matrix:\n", + "$$\n", + "\\left(\n", + " \\begin{matrix}\n", + " -1 & 0 & 1 \\cr\n", + " -1 & 0 & 1 \\cr\n", + " -1 & 0 & 1 \\cr\n", + " \\end{matrix}\n", + "\\right)\n", + "$$\n", + "When this filter goes over relatively uniform pixel field, all values add up to 0. However, when it encounters a vertical edge in the image, high spike value is generated. That's why in the images above you can see vertical edges represented by high and low values, while horizontal edges are averaged out.\n", + "\n", + "An opposite thing happens when we apply horizontal edge filter - horizontal lines are amplified, and vertical are averaged out.\n", + "\n", + "In classical computer vision, multiple filters were applied to the image to generate features, which then were used by machine learning algorithm to build a classifier. Those filters are in fact similar to neural structures that are available in the vision system of some animals.\n", + "\n", + "\n", + "\n", + "However, in deep learning we construct networks that **learn** best convolutional filters to solve classification problem. To do that, we introduce **convolutional layers**." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Covolutional layers\n", + "\n", + "To make the weights of convolutional layer trainable, we need somehow to reduce the process of applying convolutional filter window to the image to the matrix operations, which can then be subject to backward propagation training. To do this, we use a clever matrix transformation, which we call **im2col**.\n", + "\n", + "Suppose we have a small image $\\mathbf{x}$, with the following pixels:\n", + "\n", + "$$\n", + "\\mathbf{x} = \\left(\n", + " \\begin{array}{ccccc}\n", + " a & b & c & d & e \\\\\n", + " f & g & h & i & j \\\\\n", + " k & l & m & n & o \\\\\n", + " p & q & r & s & t \\\\\n", + " u & v & w & x & y \\\\\n", + " \\end{array}\n", + " \\right)\n", + "$$\n", + "\n", + "And we want to apply two conv filters, with the following weights:\n", + "$$\n", + "W^{(i)} = \\left(\\begin{array}{ccc}\n", + " w^{(i)}_{00} & w^{(i)}_{01} & w^{(i)}_{02} \\\\\n", + " w^{(i)}_{10} & w^{(i)}_{11} & w^{(i)}_{12} \\\\\n", + " w^{(i)}_{20} & w^{(i)}_{21} & w^{(i)}_{22} \\\\\n", + " \\end{array}\\right) \n", + "$$\n", + "\n", + "When applying the convolution, the first pixel of the result would be obtained by element-wise multiplication of \n", + "$\\left(\\begin{array}{ccc}\n", + " a & b & c \\\\\n", + " f & g & h \\\\\n", + " k & l & m \\\\\n", + "\\end{array}\\right)$ and $W^{(i)}$, the second element - by multiplying by $\\left(\\begin{array}{ccc}\n", + " b & c & d \\\\\n", + " g & h & i \\\\\n", + " l & m & n \\\\\n", + "\\end{array}\\right)$ by $W^{(i)}$, and so on.\n", + "\n", + "To formalize this process, let's extract all $3\\times3$ fragments of the original image $x$ into the following matrix:\n", + "\n", + "$$\n", + "\\mathrm{im2col}(x) = \\left[\n", + " \\begin{array}{cccccc}\n", + " a & b & \\ldots & g & \\ldots & m \\\\\n", + " b & c & \\ldots & h & \\ldots & n \\\\\n", + " c & d & \\ldots & i & \\ldots & o \\\\\n", + " f & g & \\ldots & l & \\ldots & r \\\\\n", + " g & h & \\ldots & m & \\ldots & s \\\\\n", + " h & i & \\ldots & n & \\ldots & t \\\\\n", + " k & l & \\ldots & q & \\ldots & w \\\\\n", + " l & m & \\ldots & r & \\ldots & x \\\\\n", + " m & n & \\ldots & s & \\ldots & y \\\\\n", + " \\end{array}\n", + " \\right]\n", + "$$\n", + "\n", + "Each column of this matrix corresponds to each $3\\times3$ subregion of the original image. Now, to get the result of the convolution, we just need to multiply this matrix by the matrix or weights\n", + "$$\n", + "\\mathbf{W} = \\left[\n", + " \\begin{array}{cccccccc}\n", + " w^{(0)}_{00} & w^{(0)}_{01} & w^{(0)}_{02} & w^{(0)}_{10} & w^{(0)}_{11} & \\ldots & w^{(0)}_{21} & w^{(0)}_{22} \\\\\n", + " w^{(1)}_{00} & w^{(1)}_{01} & w^{(1)}_{02} & w^{(1)}_{10} & w^{(1)}_{11} & \\ldots & w^{(1)}_{21} & w^{(1)}_{22} \\\\\n", + " \\end{array}\n", + " \\right]\n", + "$$\n", + "(each row of this matrix contains weights of $i$-th filter, flattened into one row)\n", + "\n", + "So the application of a convolution filter to the original image can be replaced by matrix multiplication, which we already know how to handle using back prop:\n", + "$$\n", + "C(x) = W\\times\\mathbf{im2col}(x)\n", + "$$\n", + "\n", + "Convolutional layers are defined using `Conv2d` class. We need to specify the following:\n", + "* `filters` - number of filters to use. We will use 9 different filters, which will give the network plenty of opportunities to explore which filters work best for our scenario.\n", + "* `kernel_size` is the size of the sliding window. Usually 3x3 or 5x5 filters are used.\n", + "\n", + "Simplest CNN will contain one convolutional layer. Given the input size 28x28, after applying nine 5x5 filters we will end up with a tensor of 24x24x9. The spatial dimension is smaller, because there are only 24 positions where a sliding interval of length 5 can fit into 28 pixels).\n", + "\n", + "After convolution, we flatten 24x24x9 tensor into one vector of size 5184, and then add linear layer, to produce 10 classes. We also use `relu` activation function in between layers. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Model: \"sequential\"\n", + "_________________________________________________________________\n", + "Layer (type) Output Shape Param # \n", + "=================================================================\n", + "conv2d (Conv2D) (None, 24, 24, 9) 234 \n", + "_________________________________________________________________\n", + "flatten (Flatten) (None, 5184) 0 \n", + "_________________________________________________________________\n", + "dense (Dense) (None, 10) 51850 \n", + "=================================================================\n", + "Total params: 52,084\n", + "Trainable params: 52,084\n", + "Non-trainable params: 0\n", + "_________________________________________________________________\n" + ] + } + ], + "source": [ + "model = keras.models.Sequential([\n", + " keras.layers.Conv2D(filters=9, kernel_size=(5,5), input_shape=(28,28,1),activation='relu'),\n", + " keras.layers.Flatten(),\n", + " keras.layers.Dense(10)\n", + "])\n", + "\n", + "model.compile(loss=keras.losses.SparseCategoricalCrossentropy(from_logits=True),metrics=['acc'])\n", + "\n", + "model.summary()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You can see that this network contains around 50k trainable parameters, compared to around 80k in fully-connected multi-layered networks. This allows us to achieve good results even on smaller datasets, because convolutional networks generalize much better.\n", + "\n", + "> **Note**: In most of the practical cases, we want to apply convolutional layers to color images. Thus, `Conv2D` layer expects the input to be of the shape $W\\times H\\times C$, where $W$ and $H$ are width and height of the image, and $C$ is the number of color channels. For grayscale images, we need the same shape with $C=1$.\n", + "\n", + "We need to reshape our data before starting training:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1/5\n", + "1875/1875 [==============================] - 6s 3ms/step - loss: 0.0315 - acc: 0.9903 - val_loss: 0.0358 - val_acc: 0.9894\n", + "Epoch 2/5\n", + "1875/1875 [==============================] - 6s 3ms/step - loss: 0.0282 - acc: 0.9909 - val_loss: 0.0343 - val_acc: 0.9891\n", + "Epoch 3/5\n", + "1875/1875 [==============================] - 6s 3ms/step - loss: 0.0267 - acc: 0.9920 - val_loss: 0.0379 - val_acc: 0.9891\n", + "Epoch 4/5\n", + "1875/1875 [==============================] - 6s 3ms/step - loss: 0.0253 - acc: 0.9924 - val_loss: 0.0309 - val_acc: 0.9918\n", + "Epoch 5/5\n", + "1875/1875 [==============================] - 6s 3ms/step - loss: 0.0239 - acc: 0.9930 - val_loss: 0.0341 - val_acc: 0.9896\n" + ] + } + ], + "source": [ + "x_train_c = np.expand_dims(x_train,3)\n", + "x_test_c = np.expand_dims(x_test,3)\n", + "hist = model.fit(x_train_c,y_train,validation_data=(x_test_c,y_test),epochs=5)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plot_results(hist)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As you can see, we are able to achieve higher accuracy, and much faster (in terms of number of epochs), compared to the fully-connected networks from previous unit. However, the training itself requires more resources, and may be slower on non-GPU computers.\n", + "\n", + "## Visualizing Convolutional Layers\n", + "\n", + "We can also visualize the weights of our trained convolutional layers, to try and make some more sense of what is going on:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig,ax = plt.subplots(1,9)\n", + "l = model.layers[0].weights[0]\n", + "for i in range(9):\n", + " ax[i].imshow(l[...,0,i])\n", + " ax[i].axis('off')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You can see that some of those filters look like they can recognize some oblique strokes, while others look pretty random. \n", + "\n", + "> **Task**: Train the same network with 3x3 filters and visualize them. Do you see more familiar patterns?\n", + "\n", + "## Multi-layered CNNs and pooling layers\n", + "\n", + "First convolutional layers looks for primitive patterns, such as horizontal or vertical lines, but we can apply further convolutional layers on top of them to look for higher-level patterns, such as primitive shapes. Then more convolutional layers can combine those shapes into some parts of the picture, up to the final object that we are trying to classify. \n", + "\n", + "When doing so, we may also apply one trick: reducing the spatial size of the image. Once we have detected there is a horizontal stoke within sliding 3x3 window, it is not so important at which exact pixel it occurred. Thus we can \"scale down\" the size of the image, which is done using one of the **pooling layers**:\n", + "\n", + " * **Average Pooling** takes a sliding window (for example, 2x2 pixels) and computes an average of values within the window\n", + " * **Max Pooling** replaces the window with the maximum value. The idea behind max pooling is to detect a presence of a certain pattern within the sliding window.\n", + "\n", + "Thus, in a typical CNN there would be several convolutional layers, with pooling layers in between them to decrease dimensions of the image. We would also increase the number of filters, because as patterns become more advanced - there are more possible interesting combinations that we need to be looking for.\n", + "\n", + "![An image showing several convolutional layers with pooling layers.](./images/cnn-pyramid.png)\n", + "\n", + "Because of decreasing spatial dimensions and increasing feature/filters dimensions, this architecture is also called **pyramid architecture**. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Model: \"sequential_1\"\n", + "_________________________________________________________________\n", + "Layer (type) Output Shape Param # \n", + "=================================================================\n", + "conv2d_1 (Conv2D) (None, 24, 24, 10) 260 \n", + "_________________________________________________________________\n", + "max_pooling2d (MaxPooling2D) (None, 12, 12, 10) 0 \n", + "_________________________________________________________________\n", + "conv2d_2 (Conv2D) (None, 8, 8, 20) 5020 \n", + "_________________________________________________________________\n", + "max_pooling2d_1 (MaxPooling2 (None, 4, 4, 20) 0 \n", + "_________________________________________________________________\n", + "flatten_1 (Flatten) (None, 320) 0 \n", + "_________________________________________________________________\n", + "dense_1 (Dense) (None, 10) 3210 \n", + "=================================================================\n", + "Total params: 8,490\n", + "Trainable params: 8,490\n", + "Non-trainable params: 0\n", + "_________________________________________________________________\n" + ] + } + ], + "source": [ + "model = keras.models.Sequential([\n", + " keras.layers.Conv2D(filters=10, kernel_size=(5,5), input_shape=(28,28,1),activation='relu'),\n", + " keras.layers.MaxPooling2D(),\n", + " keras.layers.Conv2D(filters=20, kernel_size=(5,5), activation='relu'),\n", + " keras.layers.MaxPooling2D(), \n", + " keras.layers.Flatten(),\n", + " keras.layers.Dense(10)\n", + "])\n", + "\n", + "model.compile(loss=keras.losses.SparseCategoricalCrossentropy(from_logits=True),metrics=['acc'])\n", + "\n", + "model.summary()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Notice that the number of trainable parameters (~8.5K) is dramatically smaller than in previous cases. This happens because convolutional layers in general have few parameters, and dimensionality of the image before applying final dense layer is significantly reduced. Small number of parameters have positive impact on our models, because it helps to prevent overfitting even on smaller dataset sizes." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1/5\n", + "1875/1875 [==============================] - 6s 3ms/step - loss: 0.0723 - acc: 0.9780 - val_loss: 0.0423 - val_acc: 0.9861\n", + "Epoch 2/5\n", + "1875/1875 [==============================] - 6s 3ms/step - loss: 0.0523 - acc: 0.9842 - val_loss: 0.0425 - val_acc: 0.9866\n", + "Epoch 3/5\n", + "1875/1875 [==============================] - 6s 3ms/step - loss: 0.0448 - acc: 0.9868 - val_loss: 0.0403 - val_acc: 0.9865\n", + "Epoch 4/5\n", + "1875/1875 [==============================] - 6s 3ms/step - loss: 0.0383 - acc: 0.9886 - val_loss: 0.0323 - val_acc: 0.9888\n", + "Epoch 5/5\n", + "1875/1875 [==============================] - 6s 3ms/step - loss: 0.0338 - acc: 0.9895 - val_loss: 0.0331 - val_acc: 0.9896\n" + ] + } + ], + "source": [ + "hist = model.fit(x_train_c,y_train,validation_data=(x_test_c,y_test),epochs=5)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plot_results(hist)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "What you should probably observe is that we are able to achieve higher accuracy than with just one layer, and much faster in terms of number of epochs - just with 1 or 2 epochs. It means that sophisticated network architecture needs much fewer data to figure out what is going on, and to extract generic patterns from our images. However, training also takes longer, and requires a GPU.\n", + "\n", + "## Playing with real images from the CIFAR-10 dataset\n", + "\n", + "While our handwritten digit recognition problem may seem like a toy problem, we are now ready to do something more serious. Let's explore more advanced dataset of pictures of different objects, called [CIFAR-10](https://www.cs.toronto.edu/~kriz/cifar.html). It contains 60k 32x32 images, divided into 10 classes. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "(x_train,y_train),(x_test,y_test) = keras.datasets.cifar10.load_data()\n", + "x_train = x_train.astype(np.float32) / 255.0\n", + "x_test = x_test.astype(np.float32) / 255.0\n", + "classes = ('plane', 'car', 'bird', 'cat',\n", + " 'deer', 'dog', 'frog', 'horse', 'ship', 'truck')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "display_dataset(x_train,y_train,classes=classes)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "A well-known architecture for CIFAR-10 is called [LeNet](https://en.wikipedia.org/wiki/LeNet), and has been proposed by *Yann LeCun*. It follows the same principles as we have outlined above, the main difference being 3 input color channels instead of 1. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Model: \"sequential_3\"\n", + "_________________________________________________________________\n", + "Layer (type) Output Shape Param # \n", + "=================================================================\n", + "conv2d_8 (Conv2D) (None, 28, 28, 6) 456 \n", + "_________________________________________________________________\n", + "max_pooling2d_6 (MaxPooling2 (None, 14, 14, 6) 0 \n", + "_________________________________________________________________\n", + "conv2d_9 (Conv2D) (None, 10, 10, 16) 2416 \n", + "_________________________________________________________________\n", + "max_pooling2d_7 (MaxPooling2 (None, 5, 5, 16) 0 \n", + "_________________________________________________________________\n", + "flatten_3 (Flatten) (None, 400) 0 \n", + "_________________________________________________________________\n", + "dense_9 (Dense) (None, 120) 48120 \n", + "_________________________________________________________________\n", + "dense_10 (Dense) (None, 84) 10164 \n", + "_________________________________________________________________\n", + "dense_11 (Dense) (None, 10) 850 \n", + "=================================================================\n", + "Total params: 62,006\n", + "Trainable params: 62,006\n", + "Non-trainable params: 0\n", + "_________________________________________________________________\n" + ] + } + ], + "source": [ + "model = keras.models.Sequential([\n", + " keras.layers.Conv2D(filters = 6, kernel_size = 5, strides = 1, activation = 'relu', input_shape = (32,32,3)),\n", + " keras.layers.MaxPooling2D(pool_size = 2, strides = 2),\n", + " keras.layers.Conv2D(filters = 16, kernel_size = 5, strides = 1, activation = 'relu'),\n", + " keras.layers.MaxPooling2D(pool_size = 2, strides = 2),\n", + " keras.layers.Flatten(),\n", + " keras.layers.Dense(120, activation = 'relu'),\n", + " keras.layers.Dense(84, activation = 'relu'),\n", + " keras.layers.Dense(10, activation = 'softmax')])\n", + "\n", + "model.summary()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Training this network properly will take significant amount of time, and should preferably be done on GPU-enabled compute." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1/10\n", + "1563/1563 [==============================] - 6s 4ms/step - loss: 1.6205 - acc: 0.4033 - val_loss: 1.4287 - val_acc: 0.4743\n", + "Epoch 2/10\n", + "1563/1563 [==============================] - 6s 4ms/step - loss: 1.3435 - acc: 0.5154 - val_loss: 1.2804 - val_acc: 0.5412\n", + "Epoch 3/10\n", + "1563/1563 [==============================] - 5s 3ms/step - loss: 1.2225 - acc: 0.5645 - val_loss: 1.2164 - val_acc: 0.5600\n", + "Epoch 4/10\n", + "1563/1563 [==============================] - 5s 4ms/step - loss: 1.1360 - acc: 0.5957 - val_loss: 1.1918 - val_acc: 0.5768\n", + "Epoch 5/10\n", + "1563/1563 [==============================] - 5s 3ms/step - loss: 1.0776 - acc: 0.6178 - val_loss: 1.1451 - val_acc: 0.5906\n", + "Epoch 6/10\n", + "1563/1563 [==============================] - 5s 4ms/step - loss: 1.0228 - acc: 0.6370 - val_loss: 1.1178 - val_acc: 0.6098\n", + "Epoch 7/10\n", + "1563/1563 [==============================] - 5s 4ms/step - loss: 0.9769 - acc: 0.6544 - val_loss: 1.0793 - val_acc: 0.6202\n", + "Epoch 8/10\n", + "1563/1563 [==============================] - 5s 3ms/step - loss: 0.9340 - acc: 0.6711 - val_loss: 1.0783 - val_acc: 0.6271\n", + "Epoch 9/10\n", + "1563/1563 [==============================] - 5s 4ms/step - loss: 0.8983 - acc: 0.6824 - val_loss: 1.0952 - val_acc: 0.6203\n", + "Epoch 10/10\n", + "1563/1563 [==============================] - 6s 4ms/step - loss: 0.8648 - acc: 0.6939 - val_loss: 1.1103 - val_acc: 0.6217\n" + ] + } + ], + "source": [ + "model.compile(optimizer = 'adam', loss = 'sparse_categorical_crossentropy', metrics = ['acc'])\n", + "hist = model.fit(x_train,y_train,validation_data=(x_test,y_test),epochs=10)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plot_results(hist)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The accuracy that we have been able to achieve with few epochs of training does not seem too great. However, remember that bling guessing would only give us 10% accuracy, and that our problem is actually significantly more difficult than MNIST digit classification. Getting above 50% accuracy in such a short training time seems like a good accomplishment.\n", + "\n", + "## Takeaways\n", + "\n", + "In this unit, we have learned the main concept behind computer vision neural networks - convolutional networks. Real-life architectures that power image classification, object detection, and even image generation networks are all based on CNNs, just with more layers and some additional training tricks." + ] + } + ], + "metadata": { + "interpreter": { + "hash": "0cb620c6d4b9f7a635928804c26cf22403d89d98d79684e4529119355ee6d5a5" + }, + "kernelspec": { + "display_name": "Python 3.8.12 64-bit (conda)", + "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.8.12" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/4-ComputerVision/07-ConvNets/ConvNetsPyTorch.ipynb b/4-ComputerVision/07-ConvNets/ConvNetsPyTorch.ipynb new file mode 100644 index 00000000..697f8e8e --- /dev/null +++ b/4-ComputerVision/07-ConvNets/ConvNetsPyTorch.ipynb @@ -0,0 +1,568 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Convolutional neural networks\n", + "\n", + "In the previous unit we have learned how to define a multi-layered neural network using class definition, but those networks were generic, and not specialized for computer vision tasks. In this unit we will learn about **Convolutional Neural Networks (CNNs)**, which are specifically designed for computer vision.\n", + "\n", + "Computer vision is different from generic classification, because when we are trying to find a certain object in the picture, we are scanning the image looking for some specific **patterns** and their combinations. For example, when looking for a cat, we first may look for horizontal lines, which can form whiskers, and then certain combination of whiskers can tell us that it is actually a picture of a cat. Relative position and presence of certain patterns is important, and not their exact position on the image. \n", + "\n", + "To extract patterns, we will use the notion of **convolutional filters**. But first, let us load all dependencies and functions that we have defined in the previous units." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import torch\n", + "import torch.nn as nn\n", + "import torchvision\n", + "import matplotlib.pyplot as plt\n", + "from torchinfo import summary\n", + "import numpy as np\n", + "\n", + "from pytorchcv import load_mnist, train, plot_results, plot_convolution, display_dataset\n", + "load_mnist(batch_size=128)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Convolutional filters\n", + "\n", + "Convolutional filters are small windows that run over each pixel of the image and compute weighted average of the neighboring pixels.\n", + "\n", + "\n", + "\n", + "They are defined by matrices of weight coefficients. Let's see the examples of applying two different convolutional filters over our MNIST handwritten digits:" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plot_convolution(torch.tensor([[-1.,0.,1.],[-1.,0.,1.],[-1.,0.,1.]]),'Vertical edge filter')\n", + "plot_convolution(torch.tensor([[-1.,-1.,-1.],[0.,0.,0.],[1.,1.,1.]]),'Horizontal edge filter')\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "First filter is called a **vertical edge filter**, and it is defined by the following matrix:\n", + "$$\n", + "\\left(\n", + " \\begin{matrix}\n", + " -1 & 0 & 1 \\cr\n", + " -1 & 0 & 1 \\cr\n", + " -1 & 0 & 1 \\cr\n", + " \\end{matrix}\n", + "\\right)\n", + "$$\n", + "When this filter goes over relatively uniform pixel field, all values add up to 0. However, when it encounters a vertical edge in the image, high spike value is generated. That's why in the images above you can see vertical edges represented by high and low values, while horizontal edges are averaged out.\n", + "\n", + "An opposite thing happens when we apply horizontal edge filter - horizontal lines are amplified, and vertical are averaged out.\n", + "\n", + "In classical computer vision, multiple filters were applied to the image to generate features, which then were used by machine learning algorithm to build a classifier. However, in deep learning we construct networks that **learn** best convolutional filters to solve classification problem.\n", + "\n", + "To do that, we introduce **convolutional layers**." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Covolutional layers\n", + "\n", + "Convolutional layers are defined using `nn.Conv2d` construction. We need to specify the following:\n", + "* `in_channels` - number of input channels. In our case we are dealing with a grayscale image, thus number of input channels is 1.\n", + "* `out_channels` - number of filters to use. We will use 9 different filters, which will give the network plenty of opportunities to explore which filters work best for our scenario.\n", + "* `kernel_size` is the size of the sliding window. Usually 3x3 or 5x5 filters are used.\n", + "\n", + "Simplest CNN will contain one convolutional layer. Given the input size 28x28, after applying nine 5x5 filters we will end up with a tensor of 9x24x24 (the spatial size is smaller, because there are only 24 positions where a sliding interval of length 5 can fit into 28 pixels).\n", + "\n", + "After convolution, we flatten 9x24x24 tensor into one vector of size 5184, and then add linear layer, to produce 10 classes. We also use `relu` activation function in between layers. " + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "==========================================================================================\n", + "Layer (type:depth-idx) Output Shape Param #\n", + "==========================================================================================\n", + "├─Conv2d: 1-1 [1, 9, 24, 24] 234\n", + "├─Flatten: 1-2 [1, 5184] --\n", + "├─Linear: 1-3 [1, 10] 51,850\n", + "==========================================================================================\n", + "Total params: 52,084\n", + "Trainable params: 52,084\n", + "Non-trainable params: 0\n", + "Total mult-adds (M): 0.18\n", + "==========================================================================================\n", + "Input size (MB): 0.00\n", + "Forward/backward pass size (MB): 0.04\n", + "Params size (MB): 0.21\n", + "Estimated Total Size (MB): 0.25\n", + "==========================================================================================" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "class OneConv(nn.Module):\n", + " def __init__(self):\n", + " super(OneConv, self).__init__()\n", + " self.conv = nn.Conv2d(in_channels=1,out_channels=9,kernel_size=(5,5))\n", + " self.flatten = nn.Flatten()\n", + " self.fc = nn.Linear(5184,10)\n", + "\n", + " def forward(self, x):\n", + " x = nn.functional.relu(self.conv(x))\n", + " x = self.flatten(x)\n", + " x = nn.functional.log_softmax(self.fc(x),dim=1)\n", + " return x\n", + "\n", + "net = OneConv()\n", + "\n", + "summary(net,input_size=(1,1,28,28))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You can see that this network contains around 50k trainable parameters, compared to around 80k in fully-connected multi-layered networks. This allows us to achieve good results even on smaller datasets, because convolutional networks generalize much better." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 0, Train acc=0.947, Val acc=0.969, Train loss=0.001, Val loss=0.001\n", + "Epoch 1, Train acc=0.979, Val acc=0.975, Train loss=0.001, Val loss=0.001\n", + "Epoch 2, Train acc=0.985, Val acc=0.977, Train loss=0.000, Val loss=0.001\n", + "Epoch 3, Train acc=0.988, Val acc=0.975, Train loss=0.000, Val loss=0.001\n", + "Epoch 4, Train acc=0.988, Val acc=0.976, Train loss=0.000, Val loss=0.001\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "hist = train(net,train_loader,test_loader,epochs=5)\n", + "plot_results(hist)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As you can see, we are able to achieve higher accuracy, and much faster, compared to the fully-connected networks from previous unit.\n", + "\n", + "We can also visualize the weights of our trained convolutional layers, to try and make some more sense of what is going on:" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig,ax = plt.subplots(1,9)\n", + "with torch.no_grad():\n", + " p = next(net.conv.parameters())\n", + " for i,x in enumerate(p):\n", + " ax[i].imshow(x.detach().cpu()[0,...])\n", + " ax[i].axis('off')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You can see that some of those filters look like they can recognize some oblique strokes, while others look pretty random. \n", + "\n", + "## Multi-layered CNNs and pooling layers\n", + "\n", + "First convolutional layers looks for primitive patterns, such as horizontal or vertical lines, but we can apply further convolutional layers on top of them to look for higher-level patterns, such as primitive shapes. Then more convolutional layers can combine those shapes into some parts of the picture, up to the final object that we are trying to classify. \n", + "\n", + "When doing so, we may also apply one trick: reducing the spatial size of the image. Once we have detected there is a horizontal stoke within sliding 3x3 window, it is not so important at which exact pixel it occurred. Thus we can \"scale down\" the size of the image, which is done using one of the **pooling layers**:\n", + "\n", + " * **Average Pooling** takes a sliding window (for example, 2x2 pixels) and computes an average of values within the window\n", + " * **Max Pooling** replaces the window with the maximum value. The idea behind max pooling is to detect a presence of a certain pattern within the sliding window.\n", + "\n", + "Thus, in a typical CNN there would be several convolutional layers, with pooling layers in between them to decrease dimensions of the image. We would also increase the number of filters, because as patterns become more advanced - there are more possible interesting combinations that we need to be looking for.\n", + "\n", + "![An image showing several convolutional layers with pooling layers.](./images/cnn-pyramid.png)\n", + "\n", + "Because of decreasing spatial dimensions and increasing feature/filters dimensions, this architecture is also called **pyramid architecture**. " + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "==========================================================================================\n", + "Layer (type:depth-idx) Output Shape Param #\n", + "==========================================================================================\n", + "├─Conv2d: 1-1 [1, 10, 24, 24] 260\n", + "├─MaxPool2d: 1-2 [1, 10, 12, 12] --\n", + "├─Conv2d: 1-3 [1, 20, 8, 8] 5,020\n", + "├─MaxPool2d: 1-4 [1, 20, 4, 4] --\n", + "├─Linear: 1-5 [1, 10] 3,210\n", + "==========================================================================================\n", + "Total params: 8,490\n", + "Trainable params: 8,490\n", + "Non-trainable params: 0\n", + "Total mult-adds (M): 0.47\n", + "==========================================================================================\n", + "Input size (MB): 0.00\n", + "Forward/backward pass size (MB): 0.06\n", + "Params size (MB): 0.03\n", + "Estimated Total Size (MB): 0.09\n", + "==========================================================================================" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "class MultiLayerCNN(nn.Module):\n", + " def __init__(self):\n", + " super(MultiLayerCNN, self).__init__()\n", + " self.conv1 = nn.Conv2d(1, 10, 5)\n", + " self.pool = nn.MaxPool2d(2, 2)\n", + " self.conv2 = nn.Conv2d(10, 20, 5)\n", + " self.fc = nn.Linear(320,10)\n", + "\n", + " def forward(self, x):\n", + " x = self.pool(nn.functional.relu(self.conv1(x)))\n", + " x = self.pool(nn.functional.relu(self.conv2(x)))\n", + " x = x.view(-1, 320)\n", + " x = nn.functional.log_softmax(self.fc(x),dim=1)\n", + " return x\n", + "\n", + "net = MultiLayerCNN()\n", + "summary(net,input_size=(1,1,28,28))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Note a few things about this definition:\n", + "* Instead of using `Flatten` layer, we are flattening the tensor inside `forward` function using `view` function. Since flattening layer does not have trainable weights, it is not essential that we create a separate layer instance within our class\n", + "* We use just one instance of pooling layer in our model, also because it does not contain any trainable parameters, and this one instance can be effectively reused\n", + "* The number of trainable parameters (~8.5K) is dramatically smaller than in previous cases. This happens because convolutional layers in general have few parameters, and dimensionality of the image before applying final dense layer is significantly reduced. Small number of parameters have positive impact on our models, because it helps to prevent overfitting even on smaller dataset sizes." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 0, Train acc=0.952, Val acc=0.977, Train loss=0.001, Val loss=0.001\n", + "Epoch 1, Train acc=0.982, Val acc=0.983, Train loss=0.000, Val loss=0.000\n", + "Epoch 2, Train acc=0.986, Val acc=0.983, Train loss=0.000, Val loss=0.000\n", + "Epoch 3, Train acc=0.986, Val acc=0.978, Train loss=0.000, Val loss=0.001\n", + "Epoch 4, Train acc=0.987, Val acc=0.981, Train loss=0.000, Val loss=0.000\n" + ] + } + ], + "source": [ + "hist = train(net,train_loader,test_loader,epochs=5)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "What you should probably observe is that we are able to achieve higher accuracy than with just one layer, and much faster - just with 1 or 2 epochs. It means that sophisticated network architecture needs much fewer data to figure out what is going on, and to extract generic patterns from our images.\n", + "\n", + "## Playing with real images from the CIFAR-10 dataset\n", + "\n", + "While our handwritten digit recognition problem may seem like a toy problem, we are now ready to do something more serious. Let's explore more advanced dataset of pictures of different objects, called [CIFAR-10](https://www.cs.toronto.edu/~kriz/cifar.html). It contains 60k 32x32 images, divided into 10 classes. " + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Downloading https://www.cs.toronto.edu/~kriz/cifar-10-python.tar.gz to ./data/cifar-10-python.tar.gz\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "77b339f50a6b48e98e5db22e0ddd7eb6", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "HBox(children=(FloatProgress(value=1.0, bar_style='info', max=1.0), HTML(value='')))" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Extracting ./data/cifar-10-python.tar.gz to ./data\n", + "Files already downloaded and verified\n" + ] + } + ], + "source": [ + "transform = torchvision.transforms.Compose(\n", + " [torchvision.transforms.ToTensor(),\n", + " torchvision.transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))])\n", + "\n", + "trainset = torchvision.datasets.CIFAR10(root='./data', train=True, download=True, transform=transform)\n", + "trainloader = torch.utils.data.DataLoader(trainset, batch_size=14, shuffle=True)\n", + "testset = torchvision.datasets.CIFAR10(root='./data', train=False, download=True, transform=transform)\n", + "testloader = torch.utils.data.DataLoader(testset, batch_size=14, shuffle=False)\n", + "classes = ('plane', 'car', 'bird', 'cat',\n", + " 'deer', 'dog', 'frog', 'horse', 'ship', 'truck')" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "display_dataset(trainset,classes=classes)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "A well-known architecture for CIFAR-10 is called [LeNet](https://en.wikipedia.org/wiki/LeNet), and has been proposed by *Yann LeCun*. It follows the same principles as we have outlined above, the main difference being 3 input color channels instead of 1. \n", + "\n", + "We also do one more simplification to this model - we do not use `log_softmax` as output activation function, and just return the output of last fully-connected layer. In this case we can just use `CrossEntropyLoss` loss function to optimize the model." + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "==========================================================================================\n", + "Layer (type:depth-idx) Output Shape Param #\n", + "==========================================================================================\n", + "├─Conv2d: 1-1 [1, 6, 28, 28] 456\n", + "├─MaxPool2d: 1-2 [1, 6, 14, 14] --\n", + "├─Conv2d: 1-3 [1, 16, 10, 10] 2,416\n", + "├─MaxPool2d: 1-4 [1, 16, 5, 5] --\n", + "├─Conv2d: 1-5 [1, 120, 1, 1] 48,120\n", + "├─Flatten: 1-6 [1, 120] --\n", + "├─Linear: 1-7 [1, 64] 7,744\n", + "├─Linear: 1-8 [1, 10] 650\n", + "==========================================================================================\n", + "Total params: 59,386\n", + "Trainable params: 59,386\n", + "Non-trainable params: 0\n", + "Total mult-adds (M): 0.65\n", + "==========================================================================================\n", + "Input size (MB): 0.01\n", + "Forward/backward pass size (MB): 0.05\n", + "Params size (MB): 0.24\n", + "Estimated Total Size (MB): 0.30\n", + "==========================================================================================" + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "class LeNet(nn.Module):\n", + " def __init__(self):\n", + " super(LeNet, self).__init__()\n", + " self.conv1 = nn.Conv2d(3, 6, 5)\n", + " self.pool = nn.MaxPool2d(2)\n", + " self.conv2 = nn.Conv2d(6, 16, 5)\n", + " self.conv3 = nn.Conv2d(16,120,5)\n", + " self.flat = nn.Flatten()\n", + " self.fc1 = nn.Linear(120,64)\n", + " self.fc2 = nn.Linear(64,10)\n", + "\n", + " def forward(self, x):\n", + " x = self.pool(nn.functional.relu(self.conv1(x)))\n", + " x = self.pool(nn.functional.relu(self.conv2(x)))\n", + " x = nn.functional.relu(self.conv3(x))\n", + " x = self.flat(x)\n", + " x = nn.functional.relu(self.fc1(x))\n", + " x = self.fc2(x)\n", + " return x\n", + "\n", + "net = LeNet()\n", + "\n", + "summary(net,input_size=(1,3,32,32))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Training this network properly will take significant amount of time, and should preferably be done on GPU-enabled compute." + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 0, Train acc=0.261, Val acc=0.388, Train loss=0.143, Val loss=0.121\n", + "Epoch 1, Train acc=0.437, Val acc=0.491, Train loss=0.110, Val loss=0.101\n", + "Epoch 2, Train acc=0.508, Val acc=0.522, Train loss=0.097, Val loss=0.094\n" + ] + } + ], + "source": [ + "opt = torch.optim.SGD(net.parameters(),lr=0.001,momentum=0.9)\n", + "hist = train(net, trainloader, testloader, epochs=3, optimizer=opt, loss_fn=nn.CrossEntropyLoss())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The accuracy that we have been able to achieve with 3 epochs of training does not seem great. However, remember that blind guessing would only give us 10% accuracy, and that our problem is actually significantly more difficult than MNIST digit classification. Getting above 50% accuracy in such a short training time seems like a good accomplishment.\n", + "\n", + "## Takeaways\n", + "\n", + "In this unit, we have learned the main concept behind computer vision neural networks - convolutional networks. Real-life architectures that power image classification, object detection, and even image generation networks are all based on CNNs, just with more layers and some additional training tricks." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "py37_pytorch", + "language": "python", + "name": "conda-env-py37_pytorch-py" + }, + "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" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} \ No newline at end of file diff --git a/4-ComputerVision/07-ConvNets/README.md b/4-ComputerVision/07-ConvNets/README.md new file mode 100644 index 00000000..31f2ceba --- /dev/null +++ b/4-ComputerVision/07-ConvNets/README.md @@ -0,0 +1,32 @@ +# Convolutional Neural Networks + +We have seen before that neural networks are quite good at dealing with images, and even one-layer perceptron is able to recognize handwritten digits from MNIST dataset with reasonable accuracy. However, MNIST dataset is very special, and all digits are centered inside the image, which makes the task simpler. + +In real life, we want to be able to recognize objects on the picture regardless of their exact location in the image. Computer vision is different from generic classification, because when we are trying to find a certain object in the picture, we are scanning the image looking for some specific **patterns** and their combinations. For example, when looking for a cat, we first may look for horizontal lines, which can form whiskers, and then certain combination of whiskers can tell us that it is actually a picture of a cat. Relative position and presence of certain patterns is important, and not their exact position on the image. + +To extract patterns, we will use the notion of **convolutional filters**. As you know, an image is represented by a 2D-matrix, or 3D-tensor with color depth. Applying a filter means that we take relatively small **filter kernel** matrix, and for each pixel in the original image we compute the weighted average with neighboring points. We can view this like a small window sliding over the whole image, and averaging out all pixels according to the weights in the filter kernel matrix. + +![Vertical Edge Filter](images/filter-vert.png) | ![Horizontal Edge Filter](images/filter-horiz.png) +----|---- + +For example, if we apply 3x3 vertical edge and horizontal edge filters to the MNIST digits, we can get highlights (e.g. high values) where there are vertical and horizontal edges in our original image. Thus those two filters can be used to "look for" edges. Similarly, we can design different filters to look for other low-level patterns: + + + +However, while we can design the filters to extract some patterns manually, we can also design the network in such a way that it will learn the patterns automatically. It is one of the main ideas behind the CNN. + +## Main ideas behind CNN + +The way CNNs work is based on the following important ideas: +* Convolutional filters can extract patterns +* We can design the network in such a way that filters are trained automatically +* We can use the same approach to find patterns in high-level features, not only in the original image. Thus CNN feature extraction work on a hierarchy of features, starting from low-level pixel combinations, up to higher level combination of picture parts. + +![Hierarchical Feature Extraction](images/FeatureExtractionCNN.png) + +## Continue in Notebook + +Let's continue exploring how convolutional neural networks work, and how we can achieve trainable filters, in corresponding notebooks: + +* [Convolutional Neural Networks - PyTorch](ConvNetsPyTorch.ipynb) +* [Convolutional Neural Networks - Tensorflow](ConvNetsTF.ipynb) diff --git a/4-ComputerVision/07-ConvNets/images/FeatureExtractionCNN.png b/4-ComputerVision/07-ConvNets/images/FeatureExtractionCNN.png new file mode 100644 index 0000000000000000000000000000000000000000..df8c813c196a0058d197b4f29175899cafe3ddd8 GIT binary patch literal 84807 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
#I09f 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 O0000TC;k~ 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
u z*jQWRY@(WrAesRBjUYD{xGvH$JoPMEp^Xl)?gDv9DdHA%<$mE6=|I__%{7Sy)(- za_EG+d<0P?k$->@lNjkN(y4s!6$_(}N<-1k;U^90{?B-W>;|IK>(US#vD-2yhSaVU zNR6*UKRdJF06jsBoS?a`L>wVwF;S7aa6?z4G<6G;+CQX}OXZDJntWDxmTA?(GSxSf z(*@k|$ERqwsKj@(ZU(;JRfHj{w!Gc!xx{4=YN^u+5Q{g;37k z9p4s~TRL}j!7ZZqq_3-YSH)Xy0U=__Ii%2W^%}p=&96L|HVarsT_`_;?~taL-pI0G_~wteKCOPJ z3E*w&1^=KiVdGwXX`gtIm|hkZZUS}LK<3!9g2l$<5iH67?4M1{(+m)ntDX&eyMiWp z8(aaqyqcoBu7#gM_3Mlnc^lJYKKE=Xq>uT)_+j0r$s77WnwAtci^GU_x|*J%%sm;S?u$-~@NKNF(rfIJ{{o;(M!7^F*M zr)>K1kblN%#a-W%4;Sf!-D4b*1>(bewf7By_A|#Is}++2?cX&sO$~AxUZi#>`^OxK zc`w{<hEpi80lelUYZag2%KfBi7tG3y6d8l>5ggVUEF!mM24aPI5~a!3UuQRd zO7@yNxoQE~ZxP!_PDb#Jz0O`W2o{5%%J8kK=*O%(8X)l3#>!O(Cs)A>HwI_p>!QtB zdpR`DUbgdZORs;pE&Hc<@9=|&T>%giuw1cpQ&LVIXtHxS5+mcPvs-VNm}6egi7^PH zi{hAmEY5X)@e&BSZW4VNdM;>Iy}4wXG)!J9@T85{U%c%5Qx_VSR8^18GqdJA;Oc?V zExL>1>7!SJ*O{>^=MMaA&pQyek_-RGd;DF-uYjKVf3j;0Mfun26g<|mzc|WD{;tpH z)36aQ?5l(xYO-09BX$1B_~7dcMgIy)nW9yV+kyLcnxiS&S){1`NLEY>6rinl2XEJ= zz|@F8SN1nRkpxKxQ?Oj1S!{L(Pjfvu_|Wz3?cK2&T2?R`-k z&48w<5ZU6SKj!9ehzs`i)aS*_kA$-deFq4vQ*|5-aHW>#j)bDR03LQ~@C4AjWvONV z`|DsD4O#nqXWG=DZPr*N-$oULc-IfHT&xF2YN52{ne(dC&s&pf_m*pX_nQW6Twez`e;Y|a=?@$zv@t0; zObj+Z1qA6-OPaG0 zNVKHaNz2xJ!o)n}yRHDOd!$HM?Hp!Jx?gcero1TABVX3Ep@Ch#v%DL(l6xSj^%vQJ z0eA9sg9&vc&%}$!!j+cU^K-QMm5No5H)?!q+dK*Uvx5-Ivqfi3;eY9DKjW(29OFeL zz=KJ8*2K3dYGQEUYSDA|tE^kf5 zm1Q+D4z0ImdRBcy{tY!1Nvk%Le*V9{?Qpvz9$agM-6_u?aoB4m?$}Z)u)K3|VtG(M zYn8HmQqT-x#QLYCz7gtHoD#ICs=+cq>bxbbrg4_ZCXHj`Dr&HgE#a8e?-cxUV{phc z6+DWCM)E{Qi>+|X$lvazqB?Ta&B+^B47&dl_28w$Cl^MFN-iM4Qcby*og@v5d^J zq)`8e>9N`s?LV!?zY@PdpFIR)3bZL|Mv!=4IK7i*D4{_WPl0Ce^e88pVzhaVhS-X? zysgq9>@J*w0KCgASjH}&3hyY?4w9^x|IrqKf4h)93EHa*yO5@g24{l8U0}NbnTFoA zSnfJc1V$9t1HQyfL`8cqG@E^n8nd0Wbz)xsIh^satNZGx?l-ADv?;Hs@5)$Z(RF^% zc!&FOjk)^#viOFCt%iPQiaAT{jPDg>^Q>{;SKR}nHa|-iA}pl_NI^5}PNKECP({wP zLO#|pLgn5}y&&))ikykfm>&avr7)oMAR@8xa=y+KZV@eg4R4YqsOfhbs*pzAzTL;7 zYj#hXopks(1Q(*agkxU35&U2JA_2lhKtWF}8Wb6dD{OYNWrmZ&Nvv%v7+CEdk=Mzr z@dtM|w+FwbFQ~TXcYk{F>9nn(?c(Gz{u9L*+L9;O_r)2M`HesN{vibPHyZrA%Oo8A zd^n&0JC$7mW^c9#4dX2Bt~ph2qPg1^7D{%QM#oOr(cWfPu-vGkM6k?AfEZu+9emhG znLj?x7bsj`pSo9hMbf=Tr$vqd>Taa(5@@BSk3na@4c)Vx=K zGmXMonZTmB;!hQV@QX(+H~~JZ&hc*vkF^5_On^1_IxFlheB>;4N}`yh7kKnnP;Wk) zr4lFGD!Bou?3U;l@fQi&XxpR05qFN^UB6^=&9b{4!uJSn_Mo({6}s879g3=k!_LOT zT`Z3B?1^}J9YQk~pTQQrkS4n{&^ZqwnjJN`gWW9nD)B&b^!RV1h_H~n09_ly zWNTQ=g=YF_0qBEJ?YZ)riU!?8@onG7k^>STV*LOk3b{3CNI)A6zNz2g66p0FGv)-v zh2UM$hh~poUZwS*ZyKH7yJ%&HuHtIJfcMLIUn1m)lG}B99fGCr;>Pte31b{^`&ai# z$p;wQV}D4sb*_j_a2*?C#e$Eo(jVK(zYdDK2R@vD3kMFTGJ=UWBFTm8t+aG`rf&8o z#_aO;yf9jq%~{2j?fKl7yhPgi`Nd1xDMmF7Gj~tD-3G<_d&a_WDl+|R6-fhhwuLcm zse=bWh5esa+zWlP{QgG*AefZ1Q-a0e1+;x=6|mhis*b09R<@7MKATcb%Xt!?Q4YI# z5A}*#j)BSuoC3asz;eJrB2&gEdh)!11;k^QWQDV+Aje#O<}4&9kB2G4UiG{?OW(#l zP9jM*ZjE=K9$@svhUpx2TxI?Z=iQj@5gAM6|8$((V(z0dh$~8}emf^@CJFDtA5hs7 zzv0TH8!=5v6O?BL*brxM*$g7S_EFz+mQNb=-do9A+UAiRJ&g339V|Qzm8o<-ovio% z=w>F%3SAXH^)#s5_KQ|ZHdi0@_Gf#k%(j;oyj*q5EJ8VPv%if0(1b%Ji6veb@k#b@ zLj}gYJHco#Wos}>eZ zPBxzDKu?%lFrS7@djXVH1CQQPa4=MTnLBB@s?reRllr7Wr%D-RvSk#oy$P_IMT$R^ z{Wov^^9I8hnEPsWDOSaodp;7gkGkZbYGT4ViuuY1slBdmN-`$(`O{Z`5tP!HMRKcI zW6_7QYNV|+ZlxVCVR$#rARz3zNq9*{wixbma#)t3#V6yG91dN*TD;e}3 zH~-)N{~0$xr9&+7pIJJdAU7LNt_7}MKJiBgrj zV6_0a7t{R|SrAKjCxk$5NP7I@obkD0jSa(g>P=e{0}rHtg*I|sn;<#ZM6HeBZ3f$N zNG3P-buB6euAh}1Nh+J6joy+ok|%rbd^z+A=$uOTN;dvoW-Ma@h&Rer41Ua0_8F48 zn2Ix_@1`*}nay&!uD-!wZUm2Mj!e}lvtWFd;#WJ%md~N) zPoG-h`rp=cB@s!q9;>B1=ya*>HW&{*+6n99I2Ep>mZ9vZ1muB3tt_i@i{M*?~&$4J^t)FY6DiKjnp$G`A73gt9?2OveAST+(r zDy{xxa4U?of@8SEkE#2qEf(H(6eC_Qca?C3Gf+fg95zU_DHJhERfc`FnT5~Q$A1`8 zg}Rpg{y}U41W}E;Lv4^yDV_?;b215y$@4A6yON&+5l3^?9Twc=KeiYHc=-*oHJKB~ z^^=Ver}a+;*tpi)Pc?jCU$w%aWG3^Ky~#f59aDMPDf=!}`_+$I&0{^&txSuNvw~V8 z%@zCSHM~XeafERw=Hpl9XIJ-Gw(rF&cGdZ~Z)2&WW|k43#X$A6Ya_3NoH$=YeIUzQ%O(F_=kDb-MjR2Dr&*gc9n4 zFWdN37_Oyiimq1X%v}H&3Ud&)KXnp~qcOo^y-Z)duH-ig+zHD6T=RA7$`Uo!`*2nU z^16{1Gjt$FlFVic8=5!SdhcX+Ucko5&oSBKh?&$^?wlti|KDhstu#w}Fmc zLY8Pj5loofYnK30mUs zgnxkKsz93eFwIA{QvoDhF%rhxL|1acVe}=6_$;wBnB#m8-Ja!mk&3DHA)?0O^euri z>XHH-u|MN)Ey|kq8A||&5ufO7SX(`w%nRKKr+H^qDfWm$+ULkVMM5od>LT96f133! zvEEkX`$~9(nhv;~Ca<@tzIfy_Hk_#n^eEZ~PswJO9$$oX) zv8K*dV@|Adk{fS;bY!qwl}+X1h-5@etH-T?K<1XiRK$K!1vo| zJQo`*Os>S5dRa-rDp;PIQtlGda{-rU>P^v~6h_vqUAuYH_?@BwRU{5=kzm#q(UYbz z_Vmq+{763X_DGaEsv^X3Pkg#=p;{0%I0&d~=G7YFMy*Mhloo3x@Ofx`jsr3EyiT@& zDsRc8QB5JX$oyYhO^HR_#^gc5XtOd##k-|gq0BVJ2)U!OFz8r7cnne{;KiZSex<)!*_N-bgci$PO9VWQ(is z-*4Jf>tadITPbqL*!0%LD6Mma3=S?&uDFc#hjKQl1q-J8=#2ZZg*R#&W%`mrIWTc7^nv?OKP=(% z5F=Fz{cSgcv8Nh@nP>#1S#{J(jamed|F1Ig^B+p_fbRx;-zNPZpa84x z#HZu12?RZ%TSBwR8$S6sbEj0t<39SjH0Mg6*EYM=EbqnZ$X@`q4*^*a$MAGpzj7#t z7aYowC%Lf6we}R%rM_%CE0&z!$H{@oVowuxg4-Gm{}cNj1p+2={Iuzt+_sbe`YL!i z4>Jvlo;T9@@nNjKT4?^Vb1VGg;if@coW&5M2Tl)+vIwC7kcw7v?bBK#-AIsVyk6VuPP5Brk>y&b19`OUu?{@I6M0uIr)C@G%DjKs14F1Is8l9yW)!y-OwRZ z|4y$Jt#?1R>VJ!G7pF<(zsNP^{85Oo-0xQ@6ii#T-c@caTwT{yX1XR=xZzU#85nvG z`1U}srQ-_%WEEUlr*|Nj7D3b?Op^MtOvTq|`ZSJRG(fGdDjnLv7HSAVZ5)1r58llI z?z7SW1w4-$kUpOgyiMj4)C>>fxp|W*;VjBg*QQ(vauBrVt|emdvj4?{pAeUrZV zV>%?w1T=SoniswoC_`6k`dowwHSCv+S|=KDPv&Lu|MVi`@ujg-&!uDH>6GRN0aKhd z@#yq-I{y)nJ0zeQcf6p+>=ea#DwS6`7PrGs+V4TaJRv;LkdS7yu4C9{Kozl^^blJL){Xu4*tf zdRJ4bIDe8O;Q6d}ubCxq0DS2N2uJwFyn(4VVbz~*{Z^!BnW^*&4SSBTc*~|E&w@so2MbHdq=r&<3gV<$Y{-um2 z`0Dz}g%fK+C+6;dGcx6{*QMUWpytMVze8hK-i9Z@`|Jxas^f&zmhnHh)HHjhKKwGT z$h)MFaN-rfcfqQ(k;B$2! z@|fe(WP^{!#bZvXOm1)2KHOiX`LVk&iUH&k#wad0A~BvzioSAaq+hJB>v!+SuE_1r zJ=&oGkzw@qA!H=mL4EpN`IGgyw~8B{Gxc2Ue1-1x}?P$Q~gaR-s zseU#fLAg$*bcIY|Qp`opacQ~)a_ULx>w;?OR5+5WW6me;6#Ppk9{-yfF(J|i<`${x z>3oVBzXdbkwM2+s*<-2b&tS52tl2yE033t&ViXvnR-Ms(Hb|D%6sBm2q7mtm&zpwV zY!mU)zCG?XzWPU=Z{F!YX2v|FIpBV~zNi8mfvz;6U&b$b^=st7#@_X#Q%bDkM|66X zzyF6F$)S}Qsv%57JmP8C?!R&HqIhzQ)8>3}O!3>>I!Z(wrwpZZHbPRwKBnN=QhbOX zQ_``s4PC{A01bPn!kL;&qhI>)KH}%P%WnA_au9QNd@gB^9V#% z?81abxG@nzjaCSvI-ynZZEd8F^@uZy9oxs4=%p!4Gb*4}*2HpxCR^g7_Hvd_-A6Rg z=H#_k9KzIteXKjF+DylsuYy*(=td8JPFY`aK*;vTdLuhbk?+L4dQ)ZMve}%sJg85& zIULWrNJ@B+w%Zt=qwC8OhGrKy3XPwe3I9M70&gG-lAadT*c#b$aOFPqA!O1HR;KMUQt|JR;v`QCPAnX_qgEuja(P`9i#G74<@ z>7sAupR1tMqGbB^lw7WJM}hW=&-U|57UGCTIUX1jU!>jtvGo;DP4?~oFeV`lN~cH( zl1eu!0uq9Bg9r#n_vliIiIhkxB}#WQKtOT`NcV)%9fJY;-=NR?f8Xc)&biOdb{MI>6-hfhbNIJt;oW)W`l`O60E=&6WUSU?~prJ~HoBW57;OU)tSxaAd-T$ZDx`%_-cKs+#0YfUJx5mS z6c7aqO$t=zVh##6!#^IwJe$X09@DId;~0|4bh1du_G~k#S5p&85xvm;e1sC6VQDnY znh^{M-{%Q<{DSQYmIot&L?5M7XUi0=O9K{0v=T9#n#ecoAUW7CZ+BQpudOHAssp2; zW95o*4C!Wg*CpbwuML$5I_1l521@f0N8lXsOmQDml8A~t5_8ifnV)*x8Q+le=PW?S zyoKqA3-Z0yIf#C|25=@(a6siJQoO}DsQxfX!g=!Q*K(O3`^FPTjpL6R;j_>?!pwgO zqaaRwad94{iOn2OcrZmf++ns)kM4=fgEoQ!cL_~bF6->0x15C*-`fN_MQ}~hx&^n_={4v`(97|M?LG&Ma z`o~=Tb8jphu_Ozg`2|`0ffwU6qt}hV8$t%hq8oR|GfET9IccA_Zn=d7HQl}PPrz{D zhe7r-A;h$3p|R^z(?7@GAU87EBr&-!m9Xw@Cf~D=ta$&c{iM`r>qhB)Vd~{SY32W) zJ}JEqj=zWM2FXxQ)3fDff-k5$JssU-r=0JMJfdH$9)C`@^`?%rYdhRrF67$JzHmGf zH+ZZQegLb~Yi_`~5|8chCTN>0;L&)`@?xZd=GrP~vuWV>S(|#d_#mO|?PEC2KcSc) zY_nQPAXVmyw9Ht*uuTB}3D~oWV$3aNnB>Vm{la55aP&_-f<1!AY|tP{ybqt!Iar|g zf*ov6AENsqK>1BNk)@k}QNikzn zmwWtn^9-(^bO-Zh`3I)FAp4J(%^V*{ zxo`H(&IrH@kZ-7Yg38*FShx@JwA^SPPr>k8K-c`$eB*bRe;pYO-F_VlF*k?SQ;H}8JNAWCQV$q{_LB|y+3o$H> zR1->wB-70dDtuc*zMV(*AxC6eMf?=%zs`@V>XVxz`+&lKJX~EnB8S%~>j{3lisnen zGrO~j9ZrcS&jQkg47@HrI==vpU%Z5P_2VcgTwmY*W$e{;ZBnKNKGi$NJjln~KgtE~3Do(TCJ(+Lslmbay_BZcXuc@$Xcq zOV{~+E0+CPwzU;%074`ZWYt(Gj#z2e-fTF0?zbUQJ!iX5)@s)ssG!fR_32^A1I&uc4POHt$5NW!b@o@NEw->(u0KtK-M2G_E&qEboWrn=+kuE{b~s(n-0t+k6=fFr#lh}Rkr`}pBp3-tbUl!aSuS!10=xBK6stpMx!I{_^Rd?*wU%5lHNUWCvc2woV`)*mwUd~j zk;CRs1vbQZL3Mk}(miJ!ZB|h0&96GI_SM2l0uH}@J3mZCeTn+uw4I4uy=Uc(#Un0@`F4+t}*K%e=G!_w6(2Z zt)h(zyGxegEB=Sp0ZMf2RZ~mN^UOL5Cifyqjq6H1Uf0J{=I)|^hASO51UA=g2&bN5 zD2I&AGRU28Ul;_h|K=wgUniJGz~_drJ3U{3jxL^ze_h}BPw6h8udkvp0R0@4-n#km zdmt75JEtprs61Q) zp0nB=wtj4a59ph%POs*&9XAZ|f!xx_mWh#(B0`ZuegXt&y;~iO5gefGtaN4)wE0JG zlF-mh0={`M(FMX>E`=Yf{aSe9zilag2it6G;`bQ;P7 zkKcGQj_ot3n!NIRrPJkhw$tn*`=JH7T&^VvD^5JR&>p=`GGz5OVc5w4dbFfJvL8@> z={2|&J~Xp~-Ri3d4^PBn)-W@gj0g6EmfuG@EJ_ppoyjGCi7-ud(~TpuxiY0I2O> z+RdA}Mz74-mMJbKN=Cz?!-(!oLmNv!3^h3rqrNVAS@}(xO{RVu_GYfQ~YLuMal&Q8- zjJgB_t$_M)>G^FKneKxl;&|oD#~Hv1pr)kU#CSZI8uGG&t$sLOZJ+6kp>JPk6qaqk zo>DhkxXU#L@U z4cFlzO#u^iITU-~+GsF}%%!+ArfJ;+G^ew7Zhps67aNkM0XWJe;)FI#)3o7)sfXwq z!+P!Aj|pz=ZDMI`;u?LAuQYZR(3qr4F|~h~_fmo`VSBlpuCUnJTl_i2p}WE3l&O7P z@oM7PcS<|79)%{i|#TlBlo)yKz2x9!vM>^<^RDzWJDT8=uZCW!H8k)5V_xI&J{itp% z^XsDjnT*NYpTf9kI-L3>)6f3R#;_l*DRP>_jv!fePX?HH7N2q939J3thhM6Z0!4Gl z&{Ctt4bEJ3iehT-#oa_uL`5BbV-bZwg1_4M=Zh9z#?`wxkP`UKB>W4K8sS@=Ph~fw zkK)hQ(7R7_C8hZV8W%NdwdbOK{hwt*_&AFFL7RN(TREdkEuUnP2%K&@l(g2Z>SAvn zmt2>;_WV?qjm`u0e5OU=vJ)-Pumk5NCLhBV93WfZ@2&919r_^&+k{6(DLgNoR&ohW zIG$2BFup)Bg=hd@^mXX|VD9?8P`fHIS=f`2*g0^P8LqY_>-mD5oB*f24Xf1(=*Wa% zC5_1FZC=1pV2(SY5x}H_pH_>y8umv7i!{$Q%CD20<3izi7?HInD_$QkF>HXmRhr8o zXNh}cRJpco2vBv3^NmvPTVbJgGSXy z^?8!k1rUyahQciGAe>MEs0Z3<;&_~xD&2g%i95-dU%ey_1jv3lvZvWk6S-#mS0Tqg z{O$_LCWM39DMaW-e~nvuUYBZO@FN*#F&|5b8sv;sKB#$`wQUVL!g6>yPQCFYxBn`l zXRb@+tTxGM&b%xU(jN!2ayS65S#&wD8%II>+hx>b;RFYvP2zx20wWU)YIzva6+4Z6 zAA>*`Te2wvJYpNncsX)0AtL7zLVax`lv!HjQ>z9?+cp0Aq9V@SCwHKq{HbO^szuLMIZsTQ)$yjQC2`J8(Ov#hgmZ zT(GiuijBwLDs=Cj_10q1#AYd`f0 z2(%P!+ePTezDMS1%&tVD)B-E#llp5-Y6@oABiJYByUoRJ znsAsut5bv3hH6vF-VsTvJ`HYVsZ<_ko#xpAx5j1;<^4s)`b|^*o#z)`_9VRl`Dz5ryq1-A|tEo=a2LYN=QrTf)+p45fQ3E`C|o`5srw&g0cgh`fc_lWVn{jAv^ z&oeuARFlz4y6?JtVQ|!4?UTj1jpKuRQjCzYU!(kD!>UGGAL}c9lp^tZ>I3B-H>d31 z9D;Pfg?V1Jc1`g*OAu*{1)fdbkl5Gf?8aGj_>|6_;Y=}Q?h50qh2+lqZ-H?9fH~N; z>it`d^XiyIdP1XJmz=%YGPif^*xzQ}n;!Po0lny&%(2)45ic64oATlRBiENR|6I=V zqpHpiY4M{J%8zti)I)^^WfKf%Rtj(U@LQR{shgV$X6KU~-2MJx+G5|69+onZc433} zJ@)Q7hoIgOgSvnkjtx2R)LCgz`sQN^`j@Cn003yf7&quRuVTX7rqk!cI<1IrvGTv% zkOKHbJFr{ksd!G)Rz>}jjLs!~x5LrS%MVzXcl^bh4|el0a~tUd2`{XDkW<04aYYmL zt6ObykHFMq1`Z=Eue;K0N4}7!*S?_b>b88pOHHLZgYmM|VPzKu z_cEUUFk+-xfr)HC*V~%bV;tlS5J(P3EThCd@qRw- ziuIAvD;%zL@$0ee@|H2{WZh&u5(`*nfi5+!C@~iz!$|Gc3bOA~Z36MIT7T)eUK%?} z5b!Kfi9yBw8*84i38Kj+w>yH}Qf_cwkAjiJc~03uqqw5#^|74O4+6NIYy&mNw0ZZ2 z@5X1cWA9GrF2|Duli>$TV4Gyi7M5G(Ko%6`4mjO6$L~ye{hYS3eP5$&@a(iDhxFUV zQuzifZarD1hQH;&m~aYL)}?bKhH4JLJdB< zL2&tC83buLNnmd`HSs5tTl+!lQzlwemI2yhsTdymt1kfG`Ezy1&EI3Z4gXna!aDea zKW9AOomL=!qw!59+CbE;c!d9&X{?#j@thufD$aV5U0E*BE!lPP6z$hc#9!!}l+e;E zM3aQ!9Q7<4h)Ul%`Zl*&9)sV^M|{wdi@L9;e2(#h4h5FfHM9P`t!)sN8O6iPNid(s zUx_HYzR`B8zBLV>EOo1UXw1r-ar}jm&Kh2@ZJ&})!NGRkmeYFm0Q~#u*{VG*QRbzL|C~NH=8CLx#DRpZtbyTJUvP!qCTAI-u+%C?$4+O!0zeOpC|i=;&XU=ZmD50 zx6<*ByyS$iEPh{52-NH`dhg9fNit-?t)5|Ff_8cr69%)q4NLt-kYFkQ+mfQ0!Pe4c z!BPU5>s+X`ej6IU*Ks2-Rk7aF?2G+|Ucy$YZS4L%F|*g7I3J%F!|Gz)GOgZ($>IO^ zb&v^r^ATi5oMeMTHPe?nOh2c|iFx;xs%f53QCumbfH`3iv8N!%PEX#+l(_YNPpV_8 z)1dajJPY=Fr4`x@AKw9V($LjtKD-A`mdXD{E~W`1L*6IvMN^LgS!@&%l294$w{x=|6Ogyn;^b!G zfZul$`+UZv%lMQYQq)JsJ-3gpi}NsTbXa>@g|?Z<3&&`Tig>FpBXSKSbAh(*f9?{2 z4;1LIzN6&;CsAO}V5v)(%m}FW9P=Q66EymTb^M!{k=nBP<;3##_>zmPvlg*3;HruD z9Ay2HBR+W2r$z<*UKwuU@(xQf6z)?Hae7wk*q1gS~YJm>t-ctOIss%_BrNHlphmBJm5y0fbEZMWx>0@b| z#{VB^JrC2eh-7j$r0o373$kKLOIKcU52VrOZd7{J@w%G!^7_ry#t;N|Jf5$R zSfR|}RHjzVq7d~1!)JM{u{EBT;_rBQ=egG%Fsz2wXJBGC)J+0qIi^0?PMZyy)8{5D zpQN#TNri`X?6qVm#{Bo%hrt#(ve0|N?zpKrfxJuBbYR~y*o*RPqig;*(v})w1dL+j zhX`u6~KD)CI7%~Z33VeA~KOPu}BMaKd=UVu=?zBlCx!GztvXIn=` z#XRuUCGkxd?2K&CH$($|*!OXt$2Y*gY}sRe-s%qe4CPY#>h9J3SO>{~bj|+Y zyu6_Llr(&z{kW&2>T65Ci(YA%istAfVciSq!Md(4EC16tpR$f=!f0&&`(AibJq;cI&djT<2wEjPVV{?UDaIv5zXcA_r0?ds|v-?V*Z_jB;&hdF^Y$%1!xP=D70l*EP3@RegATZi8{( zz@#N;FGlOI4SD5NAD09Kvzrx{RoUf+WtGXlqS9b5o2L%y<>SN=XOo&#{E+K2q^%WKLa3cMjZa)vI zjLjsHH8&2pe&a|F{JfOyHL2tK?1*n+bCgd`W)^JPx8-QfNEWjF9@AYRZ2`W6E)GNl z?BlixLvHgI)#W+IEYQ7}TeeVfOSfx!Q?;bmR&(!mmDwumNn&$0BjahQ(Ejw91|1s|lH=oHC%=c%XNCpj|V6DJX0xRlHlQDE5)Q=L0WgRyS| z-Er3nd*;7!XjBZ>ruXMn9eysmJ#td_~h3DF3jlH9B#JS)Vj{R5VGW6A7 zmQk25-0Y#2rJ}NFdfH=In5^ox?u!wc@H;$iP^-3i+9EuH0&{0lLv+)4t)Ei6jf7jx zS786IXv*OqKw*J{gNj3YxpdRe?PQ7-k6d@?L4#IE+oK%3L#d#-Jmm#;W*kmm5(!n# zYi5w=RL$Tvya@FRg&%i6mO&<5N)nKKA9;+wV&7k3qAfYi@f2C#IR|&^%ywKk zioAu`%r|L_M256DNrnY@STF37_~Q7CTZdlQ2Y1g^{O*w=5PF{j|97$fi0=zEIrxW~ ze&2UQWS7FvI+zHM?fOM!>r05^$l~YAlY&gHt)1Dd1(Fd%su?#OBcsru@vrDUB<3SM6Pt#5Ak37BTrxCmf)Zsv;C%R za8R67@b3*6;op1+(#bZIv4sJ5xK0>}W@n0~gRjX)XfGNroB)fn~xyuBn>O zJ=FqXb_9Q&t0cfjN^*+-s|d`ZEP&a2l9eH@XfB6;kMY^VEGkR;Cj(RU)B95r z_(3dv9!Xmbm!yTxSE?&WdgfXYfsSldKbj!NQ%DTzT$dhX8Pnz{p|uKl)@d7x z(_^!F`Jw51zOxW1>aK2aH{RD?ec430j2>y6NF?L&_)}6-Tt9U#76t ziT-rP$r`rb!LA_6+t%!eU4wCPzpCi^KHDWYP;mywyN_%8pA3LXw^b)Bw!dkCj$S3o zd|sdTC|6ZDpoLA1W!^QZdaN;y{o!m@rs6T2HIfm;s>zmxLC!I^$oOmMaH`C49r7_u zLn>ZJbr=P5`9E;vkDpPNorwMH*;tkiYa&&q-FCL~C+8s*+#qskInY{t-Fg1@?|T17 z(`0FY-Ae+RBQ7Mlk58ww(an(jp=sn?HhOQ$nysILC2Prcl}&5toT78NgEv4t3g_hX zzF8-L_WEJqNt7eWu-#6IChqphero{znY>=Lq)E)N-<__KgX`P@EXDFiJZ0^3PRh(W z4I15xgr{MhlXw0_UoTgWh6Uui^CCrwU+WQ7eAipekWFMUWR2TP4BDViX-K@N8v=aJMe@W_G zWxcbBjxOqy2Evpvw)tZ?LQbj>O}?U(5dcOQbQ{^Jif@+wE>M(;UAGGrGb0`RcIVFu zB~f9|mPeh2z82kcB|lX6vr?hF+iY^0<*t7kR9s?~U?TJx4!tX3;CbivxJw!C&hEn5 zmjt=K$G|gUkq_QKd1R9Boa08^qSTW*Y~awLz*D@7vcg}q5*&N6_cAbe<9toh&Z4A8 zL+?albv+lnQs8Yr?_D=u(` z80)(*u@28Y!QRyhMrQ7nowrK29&=0T$8ALxj%1}%}w>Ke9 zpPkl7r7K@**F+oLvHBd1D3jtl$qN_sXNoq->vl7(v`~_c9qtMQPS|>x+$;nKdYp_E z7fnKAVsseBQ=o`QdPim9*t>4;Y#_@VG1k08x;<-MkLG}d1&EX&h!=GW6%zi~EOC~< z$+Rcd(a1VZ)$m34IV5y|hVz&B(61=ehCySQQKnC$a>_&hDXQJN--C)Q;On5%zzZ6K z^T13_McD3C&c=_{&wNz6th`|B8WO7KF4BH-o0x1~>`9W-hG%vm=QKExVgoLOq(tak z;IOLBBflI>R-FOM*&Vxo?+7Shh6W@>FuzZV%Jr%1)EQdX^>brqt6*h`6@7C!L5E|O z5)MmD2Fy;2Ph{{%YS+z<((WuBqlvhq7JWDnCoyw^mo!Iz5$x{hTS0afeUPXXvZm4! zQ=V7~+uP0s?;rfG`RTEZI2b{pqIL+*KUZ$)ElPxEzOiT9+|ov8CNn+_3=GV=1Qv4{ z{1psY%XZr9i(|8_H+;zyj~P~lu|tmeTF&;Y=|yq9GM~b`ci7n2dim;pzqcO0n%2vi zy$!1Gvg(o?eb{8yMXmnV{$uyn0` zg4UGm)|H~W36LhWhg^ri2OJGK(Q+NE$!DBj>HFUV2@QdBEC|G`h{lqWB%*qI8;1!y zT$!i_NClZeXohJeTDy<~TRnbJ$~7qxD%_2EWY*)o7fJ?y<~ZwCsfO%CoLznb+N1d{ zivZ#kH#TI-WAnCvRRN)-0VBKhQ!utblz~2~L%ekU7C^iO%)##c&8EjqHY=59%LkN+ zFFpa5KNAhU!ZICf%a?c0(uK=|WWJpnUKLxjRyF%_XmZoyiBB=}u?hjI!Khw1ll(K; z|62ETY(Z8HThpC&&0faHt;e{59G=CC;`mXd*S1g*_|uZ=r?oej>CTMIoVf%Q7jk)| zGRZ3=-&fB?l=+w{vRzJ35EL&^CV-x|jk*}BOi+lZ51YenAq(~x-rM|kPOObeJbTYo ztc^<1*X&Na)T`_dW6r(Der^=Ea1dQsGnMR?1zfVtO!o+)CE8 z8q=Kr#8;S=`uJ+c+*6SgHIMK7hV+ORDLPe-Nh~<_YQpJQ+pn8l%4P5O)=#F4ju3NF zB9^yXn$GEMM3#A+KO1$Ml2{>DHJ}Brl-XEKF$!B-4>BSoxqv*IHGkucd#_R6-NR#& zWc5s{%ur&by^S7Z^N0aAXH0EjrOv~EOO^v0VsTDUr?g>JZ)aZnc#^w2e6i|6f8~f` zE&YMNV%XdtS?D)i!xIxvZ-l#C_9Lo8w}sbQo{Lo1`wL16mPD$>YuKc#vNOw>b8H_= z|NLr!{*c70*L{s3xpGE?1V%}iMJdZB!{|WDBV64EdhmpsFjPH>qVaf2>jOfM&HMdK zv3K#uH>Cn=&$#)`d`jG#Mxt^O3aM25wLL#Pxth{RGN4D$3+{l_mbk6a`y0L!w93!` z_RbeT3;B?btA|j*E8+Ri%?EE_kLFiI-Gfiaa{BAnlRZx)S!Cdz8$Pv`CS0g>C1Mp| z1o13!`jtt{Gq*!K3`65{&gOQ9xIr(r-^t|I^l0>|tKJjAura?YFAhdN$q?;5yxybR zh9L`(pt_mK(G=PIQP`du%m#?bU1smgf;KC1{*qi9=OJVwpp^DzxnxEzEd`T?^g6;>D#S1S@V?*Y^ewcWG5L z)*TyFqZtP{B-3B`tw97N#PTkpzsG=>M|hj<{mpp;@vk881bpl@s<^s~AUL>Ry+Mi}!w~M6vu*o2E5q*gDxc$~CIv%T#Vdj^u%lOVqz< zm-!ZfbLQ-TO%Q38o^0DR^WkFpZUEyc9XI?DegO3zcxqva_I)`$RWlV8$!T5q0mfq|fwG?T@W`v1BsTn1@a)l6zzdZH6;Ud9#o53#6L`LC(P7>t+6tCOVyJP`xf?u z)C}@H6Wj^`CsW!uYwXd6rqT>x#U?T_GMaS0@_@>m+E&pso^&z!6|O0ndFCk2K<{mK zH$?BMEYT3WON~uH>KzF?Iiz^fCyN8eDeNu%ng-Z_NwsCiTkC53(L#eqj7fX#B$6A- zNxnU_Q6gzL)fxQABM1q;dwLNR?qif$Qq-GYet4ALnfWqpv)#&4LI} zMG6W9@QFce*rcczycd<oYD%XMBIc~TBcBng@~Iujk19lL z9v?$2uLQV4o`CVC{Nob<2Q=Hln5Ei#OmSiwer3DHBgs*T&3Mv%ujf9d=d})^K4o`y zTgV%g%vr3^bz|%K&+ZAz+B4WH8ik+&bR~HIx(F&+oo!RgZ-ifB^=FnW`tCKcvM)HL z_z{Z68ncJ5jPBE5o>udq>!uxhUo;}!Yql~i4HqgAUy^w+*NfpKD zJW%~gz>tKO%5yVmPxnrms#ujTIYX1!7yZYc(Furs`ge(i4A1?5e~ECje{w~=EWrm1 znoTb1$4wZ6{DCUiSf=M~=fVp7=xbk&AA70%TS*XxVjb^;-^8d8aJ2KoEa~nI@nWCJ zqYS+32xJ&R8}p8HWQ5^dQ@r;B14Mc0Hg3QoWmj$&pvhr1ragqO45_a^^l&^YT4`5!u>PX=y$ly0+qY36JY%p)W` zAv7UNDi|IA1J`tlRn}GQwV27@2FNfWkpR&%OVls#t=}o}NYk(?-RNGypGg=u-rxq5 z>fZr5;-i+osOh}DG>9dzK`m6FBRFMwJ?KUU|5$JOa{FmbAm-v_zVsgWkWtJzt9)ZbX?6`u7VpSMNd{^p%fzgw zowTn&kf)e-EbiCUsPj!%rvaImG_&`^O0U@1;Mef1inv|K;bY1)CCTN_%x+I34yOl_ ztz|fpbz=Tlg22-~kjvD|v;&37SY>>3QBP<#>$$}*L*pXlZ`SilkC~~4w|=E^P*o@X zJ4s2l&M67EQ@me6LQr#5F0T-}+Pz@_v0i>ftRBmaWomm&Hdbv>=QeUP+IVtWEd25q zB40JB_ne+6u;>8{h5v@<<)ol3xYN(`b2EEgs@61q_75BRIi`J|pXU&OESq9nzN3qT zc3#-ixsy7V2sx3NJKm-cDTk5mb!(V1Fj;yxUduP+JI zQvL-EgS&}uQXkaazt*3x&Q|7ZvJZ2ew%7zrM_J48zZCS!LYD$b9j8kL80KPLeidF~ z|Lv5p^=lvDXYIA(vxi`mkTzRF&3HdeIkzlK@l8%Ryx!yUSb*8j?A@zAPWM-;g?3`;viPRYPm0 zID5w%{on5T7~OQrdwXe_n1H~fl(0xE`bhDp2Mq)=X*Y+g+)E(!TiHl=dHot3Rg=q6 z{MU5|^qu@NFKNC@bbPY$nQ@gg*zX=MToYx#vspUDTofR}6fApOvXqE&jX&`Tu=DH%=%D7)hH_a+eUmqsb}jtH3~RD zw)-RJsOG05A0d8>Fbe6-)?>+@GI?}H$31mE4tf9_!l4tfCWNDj)CF-$mS zn*%N)u32b0#AW)D=>b&1~m6&(=@k zH?G9wlOsXpIgg-W4nQsRNI0p=hMbF;LOY~%D_EiKr%iRUn?Pazz*N#ES4I8wD1*3C zf>f}Nj7;o=&l<4CK4TL@Q1O|uO(`bHqr|Q?1W)gDKDFdE6sd2DW3g2yR9w9Yc+7~^pTQ@erS_Pr10$}N6nq@ zt(DrRGOM241Dp)%x!I}{8NV&6PI?gL-aWU;y__7?u%L_W zxdQE_kNe0Wwp?RMe3mWGyItMqceuycHqPmgcgrO`i0ceR{zPH^qmBhyz|CJ)clnKP zOY8b__{`K`ig_ig{f$M2$gpMc-fY9|e^BN+B^JjQC+|Uig-PYfzq%y*1glLSkL|C( zgG}EU?Cw8VJx_86@5X=chZ_VC6VCov<3gzI;*x}0>tL%N@GlMSPU+N^eb)~A1dTw2 z7Pp*VWggsFHRWDUmF@>F9b?%Ct@% zk&F8A!>>%hE(BlpP6xm5*MvIqQ5h*Ew?=h0$k#jnge%{|J}q30k}xso)$~`z_RoMY z?}2^mVnIj(vh2nTFBUpS6OGADZbe3OUH)Tl5*qgmPcC_HeY`zE=CyQ`Ewq06oQrMq z#8JFD;0>)%^YFOPOi5k7a4|GrYGCz1W9kZiG(q4%a{P$lc5KMEL>c9t)aX-IDSm-2 z7D9E-5LOo^m;GREDo*OwsAFYPl}(72tD%Byn)MF=i!15kg{YktIsFS|jx&nTK}JA! z4j^a(*ykmg#lwg|%+e6C7FCL?bd7UA?2|f6*|4!F{!Yb`M8|#RF40UpwYyJ#Y5v>a zY(QonM?`2*%9A_2UZIH_NOHUzcR^-uK|vU<|KNM--pMV37Qz;sAt_mlT^9?V>O0{! z`~kAj!BxyFcq+oPp4?IK_-)hwmn-xVsh*g_y>G&YQOZ=I^Yk#hQa$(u!K@KcOBn-O z053$p(0(!SmHs4O5cK|wGsg;&x70diILyt0y!I3l*CrN~6v;1S@kiWBnS2QCAhv}? zmX5SQb8(yw(YJre|8-C^jOw8>5OU?E0+G1h+WAK9f;OF0&sXygK;}y_w>rGW`TbZp zsdqitd!RuY+pUrlXkX4(<58N1{z>IAdswNImfy@!;-DcO>^J`N=g*e|=jdZStMXwc z$911cx9E{iv*A#|LDO)nZH{F#!y#Qym>VO4!S%8IW=Zdt{Ju@)hM1{_Su2ZlnS(*a zZ%6t)D(iy&XTNEC{Y{+KJ^z?#Hwab?Q5NZ<@=O@Dw^pH9#FCQw-XkUR(!?g$A{cV5 z#8fjSMYRODKD$kRcAMZm4;sOSh*isQb<|avyk+}#Olos~i)HqWQ}!DCeYrPOoPY@u zns9PSdT>>%F)=kLEw%79C~nHI z(c8Ta@>ak8l@h6X?;gK;E2gc25^g3Xn|{l~oE@(7IFmDnZN5J zqZm+Ry(j!XT;MM+$fCrSRx+C@;9CO55kqF~BFxV|$9-t46M>r)|_R2{C?pM(W0Ot)3;0S`u{Sw|9qqZ0}bK1^aH;ef&ww_0&e16Qz;d~usk!}$%I$m9ubt|MCa1dsoWa9OK% zK*GeKh>MK5(Zhp>Kto}`BaJf`jDz6~9vSR(R&yzQu4%dG5J}xn=`dWT?Hd$r=ZSTJQ=#%nFtFflbB(GMV z=vHI><*ed#l(#W*-+6WvX|=v*T7>qXYZ-GH;=7!g(}!|n`K0z6bMH-AtX;@kP2KK7 z@E4!U!iP5Y~Ur~*vHgd;#0_pZ zsO2`JP6NMXZsls_%0nGtijbehapl6t?;(h$0l)R=A9sz88flMIYc93aWuDJDT$c^f z3Q>1>Pw{M;)WT(%xSlE?pE=Z~?=KJi!$z-OeK>I(K&`>-*g9S$il-3qGT*)k~6$sgigd+vqjq#^|$VvUTq;XC@h| z$v4$^>P;xUhCqZ*{G~PxgHdqGy~BN55ym1MMyim;1kt1*ig?Jqz0CFWF#36oZ_L^x zWGdR1e?z@-mw^2PZa@I#jn=n0Xx8bG(grHRe zM)sJuFQL~qkQeqpUHOlU|9xX#ieEZvzFk}H z83YlvkiG$biz04f>aow&F9}O(BMj>eZ#b|?r&Fmb&(jutn#Q>{{3M-h?3>>5{fR2Fc*O z@_G0IDOx`}UN#t$lZ~igDQM-sfb#$Jg{n7bW=C?V7TG8h-B4Fo!2hV0%Atf#p zxUoH!JknCl(h$a7m?sjSF=(FWadWmQN3y@R&PP@Zcdw@q4|zSVi!DlaWt7(!=tJVm z&rmCGKSjHZ9OGV5_5YS{V#>jD5y@@GgbOe30ERHM8&#WmuSwG5Oy0v}-s(FqAB;~x z`CnFx3K`=5F?~OXVEgkqJmm~2n7bqW$TuZnUAA@FIJ*~q&6@tEDOLD}ZOY{X|CcOZ zzNZlY71}MPkfslua*U?Vupg56NM)8MVHZ7sSJ-g3N|Y%YvY*gik@rDT5YTi2?^iVN zQQ$7f@QDO@f*!7mxExeyvUXszJJ~}$`FuLBawMMru9XA~nk7+lY`jF^13Bi$!Qyr^ z&p`8@pDz1_G>d;yeI@Vo(H%a8L5_t=YJMEtG z_UVoD(z!JrWiCDYHjHvPV70XJ`us4m`>u*oo>Gtvt2>`;5Ne+Pmr@^)w_r?l>3a7j zD4oI`a}8OAFd_pp8AY65195GQ9uG*qdwm-c3t{e3Ny+j<3XJE*23N3HZZC^n61!ws z|9zda!p_BH7($Nm$3Lj_P(z;l^5i(=t?w3wJ^7KVaY>`@DF$V2QRXTRc?|7!sP-J0 zpcv-exc_BF0Y56>4MtsL!lV-p+{3D_akWXX+v{X87xK&f1$6)00;Sjx0`MxrOf7t9JOcI&${vq3qfep7S^jh8**N*t$m1wu4bbbcO$QYAKt8rW-Tid^X|5ay-8R$Z?EPXD!dxKTL z3Y1^KX||P2SkI(;QIaF+etxQL@H-vwToK!1NEh{T~1gq|T3Uy8KHedscY1 zj`*nEbq20w*FD`HhMgrWiLnWZtm4W8H!O1lb!NOBkMc@xq{nO*(xvyJPkz>VNh+tP zvO>UgSPPe598fJ{u|DaZjHA}Y{QDy{@xCqUo0ErX23I$R-3B$XGkOG3lW#X-uQIKY z*yYfI1RkESEVswZe8VqBY<|}dIr(_;ZrQ7+jhKH{(^UZ_T{HVi;Az4GV4iMq&f62U z`jM*CsCunkVCdD-k~{0-UEJr+U(kB~W)pLM)^k6i!vY-Q_eq~Bir~@z;`ymu5c)z8 zNM&;^I2TtLsN0c(Rdgx3$+&U+k^1>-F7!FzZAR_(;LM4D&*j%!?p>tr_3CYZ4l1eL z%6v7J;c~J_i=oVX*hsYV^iRxQg2KG1=f{u7U8ed!oUBKpr~NEhV&zEzJvPmJ%jS86YqYk_0O88yA0j+T$S7l z;j8BmJ6~)W(%Euc3sb_gzDtp@V12kdwy zhb$NmmKpccy0o^_cOQGLBN?}()a_Qg)V-OYR_=b=?~q4g{a=pH^uvTst)>o-)giM! zP^rx|gr6x?o4A;H#~N~@tVl@u%$8bAFR5&p$xSmNNpd^RtQq2?GeF|c<@og2P24A; z5$!ECsl6p)9SB#YZ97R`be-%Ef0Ddy%%Ht|$yN5iu{W_3%n4bg>tJEI-^@<`x zM8OUBi6HPqipnk!p$wpU!ZH0?RP*<_#eSM{Fus3Z?aa{k>j1(e3#cR@l18QpFoG8#zy=jv7O*?qI|1E9vQAqi`8U8Oi?#q zz1xbvn2i6X{Remkl|W9v#!>!0Wm+cqClRqP@i{l$yE*N#k0 zVcc8Rc4aq5kweHCu`4|(LC)g6@m`g$VARe1<#5q7w(ZPhPO&idex@3kHS(vnun9;Q zI)IOYUAF-))a1wAqgw6vJoh~WWEsm^pjM{0VxKTc=;&b?+8idawVfI$~ z%XIQ6_slycoYJcG$~{rfy|HQR2S1)lu`w-$xv-lAX6QWqvzf5~71KK>5BwSe?2gcn zF_;wEBp{gn%)lO_9af36%rLGyS>8OG5m1@lGX&pH96gsR#=%`*Dn2et#ts~*lU`af z-m+Q0s9qilV@JifkPm(7uuGmwax{rx&l*sX%jmEk&_)V5h(Aj4ME`ZO#)4~=ljhtk}*PU)XVpJw^qmtW6dd{GXx%F^QyGmE~R-Hullx9uCa}?FXihQJ)n?^r+$0(v+@V1{n#6=Wt%vChTs1i zp1=>5p{P}|a>MlBqC3OdXXPDd^+t4_e2{Xx$}Xqi41(7jpckPQaqLmIcF7%+N2zrw z4$gV)XklG8Z>A8UeBtm9FK~c`a+9x2C}nzX)@I5Y z@O0GUjwqn(&El)Ca^N_B2vvdgbxpAZ!s*Nk_T4vp{CqjCdBw)GMar zibJXBH?c7>YWmEQ$PkoR55moF8;0EdF+AIa*snQ+6vbttlry#Znt1J#J;_Ws*MlTG z6(sOt zQTBZsjD4(Q`ycc?zvu0J|JQY{E|)OpocsRnpU>y6E?u~+b1=S0A<()O_Y3pJ6<#t; zQvmf{{u$EVZtRh^TqPY?cG7BTz|m`TtUgN4SbCn6?w>$5&}TOsHnO%l;-WwJj*$N8 zpfC%$IxLgiC`hSUd*371^2^@7H3zM=Ug2U$5j($?)b!wwISJ)DaJnvLn(&RYgahQe z+wu#qM>5lOBpZrzGb*hNsbv3z}MB#Rmj;vSTf=`sJ-V#Ql757A%nZv~9ZNQyTlH7aT=5gGD@rdsunf)us;bmkyY zeLg(Pzw^gjTGt0D{==?6#zTr$N3w3D0a&AmI#a^%~!crC=>7f!F@*dK9)4p=-)ell50tm0qMt$s_JI^4 zc@?ADE3m5I3!w+t&VOf*k!-aK*B0?FW1rp{H+KDrqQcT}dEYny=Tl=1l?_gpuXXbu zKedfzQb*|Zdu_gOjzzxuu$?%gVtQvdu#saYEEc;;h21${KNQ0M*6UOHMoGosNJxgo ze+K=7_z7@E{1Im#1R;>!J!~lxC&Pjm?KN z2xC3Ie0`J+D1W0>z(N|)ErHQZfNLxkH_f}zKS-8$;hQIJI&wDQA!&WjiQZ<)x&X7v zb4!LECEHr$hYne;sz-YdSj$0C#6p>ceNkILCIsoS_zREo()E z?^WotbB^2+^L}n1D`Ntp_~(EeS2p2K8@XN;wt?(eqa@2~43DkPwIkc5P$ul^x1r~p z22P4fOUmaOiC*2aQ+IooETwGfTXhn~<;l)&Y$|LM-AE|Ecn}%i0_1`IU)m8d(tl>8 zmV&G=b%{q5b1kArm9|n&)_}1b*eCfC96VX&ELPF1j|sq}3)mQ$^whgHplNa1UZkd? z_};C)VP(0b4B?>DflOV>+pUSf`Yx%|+n)yn+nCrd+QAdTGL9q>;K<@g(wQKan3E!>T;9Kz z`tnA;l<$>{icazWw-R8YUD>HW@|W81F}zj`y{#2XyD5XzqX)!K2fvZ;!&{kDYK|1K19u21=#6i3Z8|j;h1W0do{d0YP z_&m;6E-Ktp?~qtOSB*h%eB zx^mNOp~|}ouFAJ+BarM}s^mJXdUxKpY#r>q%1eQuXx1PZP0D#&O3Z}L31@-=TT-K& z5Onvv!M1A!&JDe(krbPr(&FPZczwNxa{P1FJJ* zzWyetF)tt$e|l4FE-F1+S8>0Y6h{?I@{FSOtk%HyMY*~UUqqyfyUY%pI~X8fwHz(d zM(Er71STTCn=d|vGwjOe_%xlAQ>hZh^P86fbV4SJBtubaOXKF72vUeK14C5yr}Vxn zdzjn*0pa*}%i_)3plx~LhhKDQ8-I0bE!B0$ryjPlCu6A?1xew8#`1_F{~GVLY4t^^ zz^jU9l@0ORn|xOfVYmOT@Gm~1U2&{<4S%H@v3fHxUFx-OnNps^gB@0^OrG_FNLJ}H ztE-yhJys~|OI z;@Uq5$s>Q;RXPCu)VQmf;JkS5al7T!6k|CzKstPsC(M@QONT|Ebr6&vp}r=Ra%F0t z;sQkhLY!A_YM`+Wy3!p&xNc^=;AI5NlZQZ3U+0hk#h#Upx^ES=jA02|<=9b-<2VW}H`d`~5hiKekdt4XQG!5UplQKm-n`D=Cki2uNzNe5=~dQv}9V2*Ef ziGIcqwt3~j?vEv_9t0DPwN(;2yVLx2!AkavHq}h>x|gW3Od@rM+<&zV54JzR!rXK* zVlFm*fr;RdEV%e#)kfPPm>GL%TWaIy#vL~}Cyv_{@hvf@zbE!t87v_j@kaib2YJmJi zkK8hCD3FW@g50}xxw6nwA(%%~{?!9%S6_HZ=B>j6P3YcMB!@JaF1X=SB=J0_L(@?- z-KOUAMzCt)l8$#o9gp*ZsseGKmD&p(%DeH1lnlhNIY?g4mL9<$s#E4YIJP0*1hL^G z;B276a`=7>FV**W@@>2H)?(_xoJh0E!ZYn6EY^+deZXVIh*(48hej%WALi+O|l8gNqwV6;&8mae` zB3f`dp*=NiA#VQm=JZFRlUnpqhOlXquU_HLw!QVeMlTE*UFl1hWv;&pu+DCft6fS% zG6I2eZS-u4!wE(mhLeqT)%uk>y;6J4LY0I5rem-_!W=tu@DlNHmO1-M`8?6(zG`SS zGk9W7k$&4|!+CpIn4hE0Pfly8#vg|7!-l5EvU$KPE!e(XOB>Mls->)+JKB7DKR3Fl z4HB;$_boHj?EUiid!`mb(DHv|GePvT*>s|*TRLF@F)X*=oqAlki{*frhP?Yj@{#U@UpK90hHhJj0G>Fd~6 z2ef%N(9V4U_FCXZ7?XmWqs~RWtQAiaPyFB*lfpX_lw0X(nM6ax`%-?9faP@oSEceI zlci{;MZJ;Lm_EOL0C2aN>>b#6zA1U#?Nu42s&16(V%Y`Khjsbb)PWmvzu107^yTc_ z@#G8lO4H-N5cARtp`_#{py?y&m>}6#to2!9EM^Td*P9`JU{5JR!Db)p+}tZ;%bt%N zA332WZ+-?TkV44Lp)~uVp4kd^hMgp`)zI+h)Am`iK+BaR3a#}{^KbWCZbmLd5ao)7 za#nQqdjyu#tlilL#7Z41{w~(sg=C(Yk8fW;goPQ8Xc6~2y#HKN+|+1BpLZ}hglWKw zqF(FtGGKfZH=5Asplq8ao_!j%Fj^!w@c#>(W79 z0tmokBHYdD7j7-`QohFH@IPtyE_Gcg-e&C$aA@2IAN_G1KS#Z7md(!{H_B8mrv_0+ zwop4QqDG`X>uUO;ISL@Ug(3U|47j$Q&`6$E);Bl5snn@47rQ*Gp;SC@Nn{nJ&L7*3 z`I})c3k-a_j%vQRW|>RRJp7b-_|A)v9D3htrWR$nd42BLGIL&FadqmuVTT}1d8Nn`J8a49I9HxU1Z7$yT&UW;r&uz&>-Ft6!h_R{8<_s`(1Fnbc6a z!>^}r*ExY6Xi2+v`_SD@+(VUYSp?%})yrZJC;^RZW5g!r+I8`1y>_C;ChzS=&}V}* z`3%jv%~j;|hm&^fQH4rr@*i^Jq1j6=@%!bSxFDz!z5Q4xp0sfx9i}ezdK5xbdy_a` zDP(pt^1E}(-m%Ei>s=V9$jGdG>RhSi-TDZlj{CBXntYu(!^osCMf8jE6cKWYrk0)Ec zkJrI5GOZq4pPE$Z8KZr$b!Ysu#^n4KZddNfJ#Ri_j(?|JWJsN>SxoLPHH(U`edm9* z1@x^R_c|W8w4B+=(WUwGiNm|R(2|c2fsRI;XmCXp$Efcw=aDtmn?pk#lMTH9$u7@4 ze_$vg-n-TCtcfg%}{Y?!S^=O&Y+sf9;%D6r39?NrEFhY(SWt8V4|rDh2v z&VAqq5C9ixsm(YD_vY27MbiBl))sJNktRT4#dZnyYu?=$5MdPaS7&)rYS=YDrJq~hvKx{MwQrn9LAaUpN@mE?D ztmRWXzsY|&;@VsEQ;6Y#8C*C7dRF*!$kU7BDS}i^m0uVYT4P7^6byY;#{xCi_%KO9;yVE2F=!3W%Q_TVgr>m*T>HQMxdzF=G{B=?w$6TD+p*Rt**cPQ);WZ~_=ZqRt zRWQLT+yfYP?sVJsFC$JrJ+h5AJW+snJJno8xb&Hr{zK6opis z@Gggl}xU?!^Jzf%y?SXkMk} z-B#PkB&;=Tjy|7;zs~Ra_3LvV4NB=57M1>PHSQ~<_|-`j#NEPK99a}o$*HYt@Euf` z-@o@qFH|=tbPcR+llBEBc#LeCz_wvdykX8pGdJ&=%UyAD>T5jjv8A($#^EOX%hrku zSQl;IMY!Fj>sAXI}1IUh|*ccP{j;5_vxg-zGrMaFNYw`_h!s zHsaSbmly>%P(Bs>T|3(C%YHOaUF?MxPrd)Hu$e(Sf+=<*eUwY?Y6s6xy)EHBl#>J$YcgR-49m11RW0Ht@@LOsL#z0tVJsMsyR>8|u{{aEQIc%V3-!n0N0TIy)%`4>6Wu`i=C`V8{jWofWIvFY+v|A4KS zCa39HC>xFNVSDzX2?+KVm6wC!)yj`emN{}qJMCqU)I|! zmOmuA;8O2Lt%4hj#M62ugxjJT?wBVveCbb3U-5ejglR}Ia|FzS-2ox}hGwH&r|405 zkV~K~b5IL})@mX8&u-CV6qVGHDuQo#mv00S0(0fs zJ&it5z9(|}3GwKR+iXmxf5-}MxdW5Aa5C4>_x4jeK^3M=o|a#PyOM{>H5KP-J;O+{ zaSrlb4*uJwoj#a{y z=tei?IYY*BO~|f(r+>6gq(#dt$e7GDc>uA~3CRQZRz|WAolMe`X~rQs)w~nwl~`xe zPFCh@+jXWKFO+G8yUpu!s8{L6{Sz+~%&f~KXtx`re@dfgEZ@CXd7Z*57GB3(^L*@d zdY}m&G(t{a={r*m^L;v5uJ`kiMyH^K7;YAsdzrmtJBpN9U{H*MPkl9ukzRH`ICM1xcxE*&xmTsHr$_oY$$< z9g$UK-N+5c6#g#nT!#%r`J|aBZ_IK<@I|PU`&#P9)Y$EPp|Rtl)B~1x?e5)gue_RgN2k$AT`B*B ziDB<+YPgMZu=|H5`m|5PtkfEb)$sx_ZMI3-x=(9I=vaZi?%RTb)-Dnf8@uICic^%Y z$lJQZ+Zb40)0E_5Cw9p@Dvy73si68VP9IqB4*qhTuMN7GY!puP{@ok4Y^3GW*B#7g z;#l)%QL*?!$BwHVrII?6m}mXH>c9`bq36jBxoLdEX5_@w=QJT-+49DxSDLQG1N3_u znrWo|jF%Q~Z6+Yyh=HXw-{gWpl-w`2-XBQCp!A{FPDGhut#s z>=P+L`nKy8E;YKE7wOj5jr=81>P>c30ADuc_!DV4b%Zp%)Dgi)A-o$Oh@3$|OkNMT zJoZiyahIYo$c@5qIP9RwesPF)aT;EIZYs)Ce!~_V?=s1`+_I>j;rzv}j!$fe&Q&|L zriOd?(o-`NWaLnGu?l}|_7esE(_Qy8e%CdJX~XZl=q?B%H>xyy4n;z&I$k;5afy^O zz?E@;TfLTI43ghH13XI6+2Pvs%GG>H@4>6Ol}lMKW>%dI%bZ#eR@tfG!oBPdUOi;6|0lydbTJM89A}JI8i}lE!N+eCC!?J}E_LPr zuv`Fv_Z< zrt87TK%oYPJ;?NPeb7et(wJSk_^|`n=f5^Rpq9sYC}$dlc1Qa*)XlkRDf zO*2gIas9iJ+5LF$LfU4%&^Y@tk=oW(=lYFe38JST!7OURD~W%avJ~T8A>jm|Xybf| zSzRaWe?=8H6~qcTTiC4B&m}F`0;+2CaTm7Y>}Li#;|ldfVbjFRtKe?yZJCRNO|Q6J z+O?inwmd)W*M(5`)&2M=f8QHSwQDt}5?#0vCe=s05QJjF=>c$bjf2IiNZnRYBmyrb{h*7pgK2oN-%zrhdXKfNyt@Q>3t{38D{ zy<@xmGU$yU(4dS-%jSL)H4J}PO)d4#DrtJnF#h-RdC(tsq{7fxvEGtNRtYUm7Ng!v zX8HO=-lfmJKWk>k+mTc&ZGzHL#`_q7hL}Nvc=z=pPZbldN})O4g_%xjFG&$*RDoml z7xh;rkI5%8@X+`511iZ#@voyTQ>vRwd`%Wl#T%Dp5P-_>_FGMwMp z&g2fT^UQbFElFN0aBloQxy2NQzD(_I6yMk0WuF}~(~lljYRtF6L6+0gG2TDmpZ7_q z$j)3dlV3T;MH%?M%0Z=-AB4{v2q@j^CeNG9pUd4qsh468+T9ypkYojgM+fabb1{v; zDXZhMNjL{jsJL%^&(n~Zv-Zg7Coj07t0~DfpQ58>fHzWmO`x`fWJF zW~sf^JNCLx@t+hCF`d;eb+>#AAk6)lR8e$?{k7|MiLz-d|wGMNgJ?M4)1u_AeG-ns17&%B%Z{jL3`x`>WZ z1xHRyiY(&6&URD+JO7v`AHJNp2eOQ2kvxI`y2JL#=AyR8mhV{Gh@A*USsqiuE7qVfDkyvC>V+Ve$Vp`BJPn1VKec|}(Kbs{^R;C| z9xiq&7F&FwVPZrW7vCJ_W72Nc<@z%LS;0_A?JaSCtPmLz8MrV3P4+POQmvx2RFKLa zaP09B#JNRD?T}rbTCkzGTCbFi8!MI@WTO*X$bI)QshOWb0|p-OSeMmPs_5n99iJTwPS*%h75?gV{usEk&{Kuz#QRc> z&vW=K$!VaqliGD2cAIz9H=a!$)_c`^keZ-0P?5AWMRH$wLsW&}?G5J34GA4XI}lwF z(xxL4m@AFh-Fo7SXBOXK?&`buv;kGf)R4S9Kk7^T+*9bpIjn}EEcD^*n!w)0OJGEr zUgKBR8=>-Ht*f!0(F(kdM6>17@$P-TTfaUT8X^JthkSe?8^2R`FskAMt}upwV(>X? zNsrO#4Q`a|jkdnwXvW74DiXZCOK7o8S^=svBVXDT#0sM#DYCsO4W?;Ki=*Sbub3U{ zWNKu&#HRR+IHTxgFqUdp3lt6MszFqBP5|x9CV%*tnTdIpj2BfJ^bdE~CO|#lf_XRM zGfhZu$nTE{)KV0eSRjO-E7B}X?YJj)m5lEc4Z~#O7c&dEJqJ}mzx(sU0e5_H zn0CegTdUtjy}8iD(|a4VnXKkV*N|f2Sqy9Sf#rY_7IN-MiT><2?~g0=Et`7Ef!K7j z`q+IP24MF_00bu6Mv3ZcmO2bmM?W0vEd*e_h_4emY~^a4bG^oNr4_t!KsHn4S!>EU zjPr@@z;(`PndFIBoF_*wJWL4nb(Fdve0pzW&Bpk%M;?F?o-4T}m(Ql1oNFQ{8Zv;F zwF%+_cFF`e0xrOZ6oU`*2YbaT1Tkq@^meqag3E<;-+C2iT|j;)lPUd$gK?*ci|mV< z9TaLuZc&MFxI~Xe&dFC!>ifVUI)xBSi|}gmDG(!y%Ek0*Q$uP0jj^+^&jYtRLT^?* z%G~|<;z{je;o4F1({uiAzvdXTpL$g(p#LcVHwD|~19o7Fv7xxv9vxql_o&5`E-f8b zeJS9An@k9Ps#GmLs8@7TLdkPwLw~roA}^+p88|2^yj*=~&)@ivBX=AWJg3M2bg#b9&^c9ABRMyuh{*zp3euYj zPJ^R;zamUPBxbtW*TL=+@{$17u0L+Sdab!?~3C9I(g}IhtlGHNs9km?Y&s! z88~U>Prw<4k#pA(?Va|$3P4_D%`(HIuEynt#d~aytR=to;i1d35-SoOZgI-j@q_To zQNzP%=IB3IA755i;Il_*sWhgU8P8Ky%Unc32ZK>-D`bc>4(wk{jsk$lgo#i0az4&* zhI-wj+ur0sRzZidL_CZZu}-*)`~L}zrSItpk4`l_+>yUO^Gc;@pj9RaTb%_xS6$5+An$w zLCW!L@~{e;G5XrnT)x}H0B0h_ISyJ3G?B=$#>y&j6*;ZeERI={pU&e*ed&F#5x2Tl zn`SaR^!d=1&z`N2nm2ms`7m@mU)gAN5}Q%cfoDIftY0Q2GF<|kA`It zjU18U;O+}#s4Ry6pMC&i5>jv4v;A%@3{+JBo~Wz?-3QLESvzA&XXM{>#=>8A1!o`iYW{4$&)7p4oNe&AKK{BT z7l2UNJ)ztI)=kxVdpO_PU)LapVYy*6pHpw>u!1AvS-wiJ9W`3$=>GM_|`a!$V>@9s^U_QFy29Z9*>%5Tk?Rc2JtXQ#9M_ zmcuo*2`BagO9p*xuyKUOORmvn0Ckko?`iaSAb+KvmEJHf)2}D0w3Y1*%#UuW2Y|gO zjZ{=QD}w>TiY}!#nC9*vwQuR5JpsUo=xk9Sv0LT-<`E0zuV-5Q0>tM?t6=sEP1Cw2 z;eEH&xJ)`fo5_)+XPiuRm`%h0&M#-Mt9o@ZsUTt^s6wVK${ht$w(hRvz3N>o;Pf^t*svPunH z>G+?eR;~?pBA%q*6*9M*ijdP%5pC#sC=&nb*J$NVp?nectW8}PpBPw@$AY%&vKZaU z=S|!>x@IH5%*mR=;FhS=Z62{;Z#zxIrGeP@4s~Uo$jW;s5RZm?zqa}jHFaMGT`YP8fSyHFTh4LR!IUW8Ye*(@7MH^~Vt4=?cdVZ%n zi1}ogg*}YM+9vGJ_5G*OH>EcG^y5R`+L`w()ZT_#OS%BBoDSNlFv4W5&9-}St1;I9 zRokSqSa@=ch>h8ot~BoSK!Jw6My<9vJML%~NvR^%mxnGYZa-9NUEH~zf}*8&y(W>y zo1~V|(OqZ;BrVA$$AeOvsr|uK4tAVf!Cq(#l}h7slrM11@{B0~0?gV%^w_r)X4I%92g!aKV4v%Hi0DkI$KW_nmJ1D3wRBW_p*o`P49 z!NWy43tx$A;6))qKOo%i9u?}#kI5kvKr+(~YiJ5kYYs?oC71D!WLwqgD~-^=?>Je! zC#Znh&*YS;vlzkCV&yaiUC&G%h5d4#hKjjl%yzTlCi%BQ9j?VG^DWqHNjVJr;JH+Izp344U-+7C&!5+d~KY@6aZ)qt;l7O4@hq!tuJ7vLU zg8lDW#k)7EDjM%$>5VS*-R0bItoqddRT$mX@v~E+Yi3b}anlV~3@VNE z#H}{#G5t*Cg;&<}DX9WVWhjzce=BvMGtu2-QcYsgWN&Aq%BcxD&&>_025vmsDQ^cL zYqPUa?;vZ8aehfFXT<7wFfZLLERH&gZk-im9*4~kB>lxN0u4}slDrwN7H2&z?bbGi zBA|)Q6+U#k#Nddb`ud9#Rr~$2eX&6K?-eYi^@&(hht{80%Hzx02R@dXX6nW+t9_11 z7Y8FF0WDnwpe+oPsxfKB$Q+N5Vvi)13{p4o4*TE9*>8)Rq5;z1p$}Wz91c@5VN5C~ zf^9b*l-Df8=f9jhDYko}J!E?nY<~aoB%|eT$n}2S`Nt*B2_lkiE$xkP*Y9~3#a?0H zj~=|>G%9S6?Nn}p*9izbIEsT$;^v|<6c*6d^_`!R_3^CA;fArjVQERTVS7U;`I;p) zb6ZQxSG||H#4L}B9GXFVRZ~7~sZ~?00zMlM$*@c&&s#_VNT+_px`UmYOBq%}cpDhFFP1MUx`=p5IrG{GM4hktHo{icTY0zbQuLo>lMY)4wo%BESK zq4sI*Q@ow$Ou{u3ly)!(XdFIM^NXO|f=qj=!ABm^D?Zb$;U) z&i8yes{6W>FYJD+tCvr={9yFcT2ovWPOp_n4QOi+Dsq<+YWuDA2V?)N{(!zVdnKoCzeiC*Y+gLXSTMiY$A-3m%qySO z-eM?bl(81a>pf0krppEFM1VPpBBL4w3HC6e!vlsfh{&vR4^{4sii)}ixBMQjv?N{T z-3CuFQ;?ifmYiOehXC;2g&>u(^>U~#o`pD4TQ2%VzSX*E?JmuZtBLrSfaE8c1}3-{ za)4d?Q(7O;yFt+P>*;V(I~#o>0}y_|-huHqr#;;;f(}CWQ(@5=kWcuTB?4aN;UJ8w<_^y0p)x6 zC@pzAqwJr%*FL?F{nEg0ckJ_}>iaLq6L;IUuHZ}_de2b&OJ?<7#(2ECu5WaoKD*-D zaqRr#14`B#Noup}*mn*y6*IUionNkOJ#BB1oO+OVcOVQ9`UNdBgD8Li&@Gc(V}CGn zH}0_+J3Tp}wuBF-ICfl1_w|4EiEgM8sJdo2hwq&rgvXbA0}OF@vGuXpu$}y34J+ys z>zf-_e89C`^>C`-C*JA_-YGXCTv*5KW&q9hQEn5VW10NklEL|Aw) zPP;~$9bcC3YHDyzQE2?{I6F_fa?AJG{o%dO#gD#+f5r+o>~*2yeU@Gg=jeA{n2jC{ zsUP~@d%ja~+vvY`g{lGVxO(2>W{>*2CybAxD_U(Xy9ROZ7bXG#y&kWn)vGCx++jpF zS&;;p0GE@?#}jbD0rNzPj0I*0LAfN`iPOPC0P)eXPh62075hfjnE{|3s#TG0kC{{4s!rn6%Z||aGcQwbmY=lJGwc}*PozKgj#r1h_qc{x=6Ee5 z(NWgbGMbxOis?`k5E#Om>UKMYJWUoK6wY@Z@G;N$v=|4;{b9uZ+--nJY0mv*npf_% z#N5zrI@G1rWa$j0E6iL+w)7!7wy9^1f@MLzUyn*)(|c6Uh8Jd3HzPK5+y|a2gt{ zUSF3Z_tkh>kT$D`+3SeT&jAEQpT*(vBs&G&UUC|=??*Jj>jSKY>>d&Cfzw7b+9yFq zT^m?oJY`WqjV+i!aO1>fRHC^FNcc8rD?xR#$Az%E7e2+9YN*zec13Ya*!RVvaM*P^ zMo|n(f9;o^j_v)k<3(*>Kus!PgBWPw*|quRrmcyySkw9OspX~a`igla4M6UmA+}bH z{$l(?=uS^@omw7uYI9K+i!OybCeY*yqc8#^AT%+^dmX8BtKm75+u%9J-l;0$I#r@Z z;1yrP6_M1}tfImHzH)?Xm3QOcyP!tDu5XL#@GrdJi`sqQks9Th%~&n!ivT8`o#E(H zchTy@DmSKGbT!fOyFD*VyN8UU-8@bM&z5*gfF$jr6=QfKQ1S)aS})T(hFK6obZl=a zf~-E-w7&3o$tw)_xj!zV+VJ<2HGXCcF0b=jH#VobQfIX+b-%#h%dZ2>JX+wARZRi= za|d;O6n4eZ7Ft3TRP-?U?`itp0EZ<`scqc)m^w72YRBcN8?U2qDzqB0DV-~X?sS{3 z%}h<+96MdEHfoNETiMQcJruak?3r zQ8Mz3Bd8C56P*=vYNP(j`@x7hrksOiwPh(6IU!vWApEh27rxeWEHN-4vxdtiAoIki z=zHO2)5bH3e<$o<2Y(@hnulXkFf`4P2K z57jt%2x?kbn|!iA?=Ll&QoBb)N5T9Ojvq7Q?#{QFVeJ+r#IJ;|g(-AMcyDhk8Q}Sq zeLY^FM3y7xl)$~V+lr&p`LO<_S9vs;&2hwl(a9e=(Icp7a$#{u#HO`B9)eO)%;?Eo zLKvi`_P)=zzt6i=oQBeIL3`L?MP?A~Xg8ha`mENKaLLL??!#l_%1N`3cP;^=Xpy;u zymSl7&zZK&`oXC-+?!LIk8q^3w|4XzE7J&L);-U(4mRRB(4N^Y-wW(T{86cMR@lou zQ>!IYE-<%aBWW41RPUR{@*|AxM-pju6{nWgyaUPuZBE)%%jNYM;zoalLWC%(KZFu8 zEiekZD2@J9kdjZneQV?i#qQZ3TJtuqRT&&bf}7u|yslU==^zqQo9n)%YScJM_)u!Z z*7-EkA~6wGA@fXXJ*uVZZ}wF9s--BOe)t*er55~Y$#a6WiY<44l-)q|JOiIh8vhy& z+5IcFBy2sWPwMNatG7#R$@80!$%EnViyM5wU_TXR8?#V5+T^WA7-Dce0$eU!`g<4b z(!O!>rOpgtv<4Qr_##DLB#va@X{}P8m^{iAhB!G!>yqgd`f;`xBJSLZwza!EB77D?$mMP=Aqo(gS z-cS&?H^N7at~wCAq~n~*_dST_a237l3|eHNU@2Tmb+9!caHVdFBh_*HiyIRiR!Z%= z#aU;bdKP9P6P`bc4;27EiDQlZj%M4EuUlwuo|7U#_NJe#zaOT5{^fP#33=)F2d}*Q zGAQBt-u21$1>KP58hUOI!reE-girHPP*$6mdC_rc7XvUI_H+A!u>wPeWBS339PFe0 zJF;Y>&kuOzx7U@KMfW}_Hk3?TQ}6zYjX+~~Lu1TF+i37rOXYDJ1}Ro^d5^m%>98C( z-9$%jh<18?vsMlvQkzfJ`Lg_NXQ!zZfmUd1l1)u!Tjq>h%|j(BFUj2I$uC z{^Oot{l-*ezzBCJQp{(`JPvjZo0f-0&wq)DaxudD6!NV$mWzzrOW2tO-DaklVG6tx`HI~w9SVXd#iZ;|Wgz_iJs%=D;6u>hw&Uov{4)!zrDk^ia2`UjMIP;L2MtktwY3qRlYqqRm z{$~2UuV;?{L}K~BfCyZ~8O6B}HOSjg01iD75GxXxKsGPTXfc(a`_UMh>Yue^wNf}W z6lKm?E&YOxpSuaov4fr(nKFN^%pnoauoN)E0cHFtNjJ zFS;7|l#+nSeeO1vM^b3slRpBDbLS7c8Q|Em;_`p4`@s8qv3^tD6@vC4`!bZgV5)$jY;C!T@<;v?zTi|cz&kQCGOhF0GP#$1$Iog%9W z+&S1|F$@>&0tNB+A*9*Ny=bK)Uh3Gm08Ww2&j)sFX+z%+Cn)QFp3X?rna@$^3oZzK zQTZ=#(v6}m?DTki{Z3F(;2Zj9nlep1g1TQ%Oq_a1x_5Tt{HxUsVD zvSjr@Tk)#Su^HhQ6IKlaPmeD^cY|kvpOE*;$NKRQg+e#hQnSX=a6VxVy3V~s4Q>4xSXy?;GN~? zsJKdbtd$1;DV*Z6<8{FP-#B;sT5nk=NGBJTR($hS9vA!ylg{NOb4eZs>OfF}p+!uu zc+lceFZQdeEEMVT(<&f)_&ADmZ;l#TCbA> zF)vhg>dTJ3i`_cQmT9!omaojfpMT<%G%TjVEO#3(c zGi2XJW5+X)^DS@kthpyVo(bvV$`Hu*mdq-!ZycFcS*JNQTZD)JVMIu7ulPLki>;v| z_}L zzOFSVb_wYKr=qVqqAuT|gYZ$NUU0i7tFexX?nKXf+kyZ^X_&&X2) ztOz+FcQsA9&%zc)r_u;hnDyb6iEel_VaGWm$*PiRv)Rr`Q798f8?(hcO*S7@e~d&)=Os>ZL7y>U*UjpNTEf> zc%FJ5Pr5uGj#ctCM6>OR{tl`6S7^Hp$yK88g}{jA!fKQEOg6hauCwRA51FOcd5HhV z-#$pQh`IuVq%zy&=$N%`;2hV{r$4-J^mMHx>a8K2GV%@QW<<9-jXJ7C@o&#XJ;6M0 zcR7qRmNc|8wPn;kIhA|#-{vt{sU`sBu5ip+Pbx3k8PGOJ{sX@8P9FvMgZE!5Wd73kQ*UtgGiR%xy{+%{_WFV($hu{01E0>|7%h|?*;Xy-=v8mEq@XAF z01~}`izg0_clhm$`XT@OH38o-xi+kR-$t7_FY2I>t&~6bh3mKjlt|&8i^;m~m&-T; zad#36-Kem=PR~ZJx|QLGT>f%J!vr&1yw95n4*PJ z*2a}}+d6z%F;RYv$_N76=H!m=jyc9HuVW)g1)vv9$I9uLq**(4`H$V_#TRGjMoti_ z&^vnQ{22y#M0jyU39_jJWkq=lFrK3Pc~_c6pc#pIse@BMj@>6c6te=cBCxIIue>Ws zS}Ne_df;~-CkPy|cY0DLqXl8&C2q~-WsGPN|6~{7v>&5ptwB;vCFFBL?AQEL68hfoiyEA%c&G9hHK~c3N>-> z$?u>4kKL2cN$acy9OH>q#>1z{sa0nqcFdB(*28~9Dt3-kt-lA{0ww~;_y?t*R{ymp zs2TWshn!&kKr?i7xMXHf@a5B$rySQ6U!?wcFQeFNY)mJUJy8(XL5=diL#NC$EoxUe zpO3z>5vW#rKTjN99wJbNLg~ zqCUd;5Q@Fi-)#E}*V0Rp?&0KkN7d*cGi`h}5^|Fgk*3U=m zr6La7rhbKJc9F|pH~QbgY91rGSsT;vFSXv4QHmR*c<>Zgb-^k}DqaiS3;2J0y=PdHS@%8cAPQJ0q9~FO z6%ia!1eAmj5|t7W2_hDXfEW;&(0d3)6a@ql1%@JlC_%7LLNC%mLXQxoOAEb2XraD0 z;>>Smp8xfJ;kqwAgm9m;&t7ZowfDhx=zITh(r0K*yESyWWIvMzOFhm;)ZtX{I&{Uc zS4r4de#eN`d~F^?omg%mzndX@Qil#_XTxXk55z}V?lMW)sBz$4jr#?zI^7bDQS`+C z(t=gbYN~Fko z{Q<0OY?z961UPU~?1P)rrluHN~pYKXF!l%cn^_>C<=P)g~YSTg9=O-7kzCHdagZ(9Z zY`+ZhVc#B1%BOg{zzp#!r_(rWa@y>J=#ry@?*=Dq%Ds=*nj{dYxR`F?D85F5?2G1> zGgR2b`lWCeD0#VhxIJUWj3oV_z!Bf1S%X;C5<}v7jFqW|hL&u?w*;M~2 z9`vAKHocgG?Y?DIBtH7hGy&eMBSV(DMG`gT0n*A>>^Y*V&+7jfk@J&Mb#qdT93}X@r8L+!}k;)XPQoKxP*Mz-YVAN zfMTI|jkW-NcFFcU#>!G0CFv9}kZ2y@h5hO}HTs6>G0Ws<;P&ZAD}y75v=B_M{Ugxv0BVO7p9)IiP-R*j3| zMHg4Bc-|te7*Q`;bC`cplLu)|l9Uy!XtN;bn;^JHn)+1C4AesdL=7xuGy>{_Xm9k; z*C`dNi`My^IQ}T9BCf?Xq!Y!`eZ*MFaVy((_&Te_u*b8GU_8JiI+SBQCxV>6Fc|JX zb2ab}PVD01q^=&$=NC!0?^-RA4l?xQWaMAz3%Myvbkt)v19{-XmChv#L=TwYR_umK z|B#ZK4y?Df#LLa3v};(IJJYA|@$6dLl{|RMKhK19jblsWZWFmUlalTdk-EeaE!czQ z2@u80F~jMtC)YwpVyH02WH{TTAg=p$-bT@j!n{Jm9HhMRs;{`K?KOMmNR4vK8Kf5^?d?pZ1i6~{ z&&vr|!kN5h60vk=@DEyoY$m*R^pfR0G<-6{d3^Lf8c$au_BeN%Ay`qodM4uwFBMH9 zZ3yc@{X@T^dV=>iksCLP&GY%n49q`)HAeg`cREj2N%^XrD?Hr}En@HfXmNtjeLeej zdB5mnXX~8>rYj&>Dr)rB-s-8%zmKIF-6Le`@Edn&>1|7y|Hn;xyLf3LPmv4Q2E(>_ zJTBQF{lg=Jjl#7%^!Bfn`dit5HQp7*T`!|^(F+k3x{3-JnxUK>QUeYZEQJGi z0g>#C?hsM6sS)xEUH@~p9Dqr2EhSvQnJ=Za_UDIXUu+hPU1@nRycrqNJAsXdtQ0~S z6}ex2DT{!N5Vm;g!uM0x?yvIp+B?IW%CwRs>&62f7Q1%0Ai$RJW*VL9lx$w%AK;UFioYuv{gUo-UUBvbUQ{|qJBJj8h8`mI9? zkH1jp3DIqdMVr}B!dBY2IRzuaAKVBN6-@$a9PM7J)oSKnVCY|KwY-}P2|%Se|FD{k zR7l_)!o$Hia}k-2?+jb&j-4?cT_QdB3w5jAFR^a?aq^zcLs`MU%Z~SO*ZwFxC)C757vc?McTb^>=#C@u)eyT zSowC?=0wafPtBQ!r+OOA!{*tQ1+R1N%7FUT^yfc_RZf<`ZQmc^u}kY8__CF^#)M`n z8;30)eQxk2;nyz338mI#eoML|V1vH(?_!qyIc`V0&B@a~x1Ak(wbnWhAmdio8I@C~ z@F$Gbc?-s@Lc?-YzX2&+izxM0d-LvK-=$Agsaz9ee1uZ?R{RM zJM`gmymg$pHU&a3Xtiv75DSSOn$~Zz)+hPshRZJ{#zGTRK&wB|IZccg)c*XkJgN9t zK@R?*7~J~s|ABVeUS4}hl?nATHCazZs@6l45rgoF`((#U`127dr|om4*2Afg7QC$B z_D8jIH@bv&Pi%CW@LBWu%GksO1lqNYEf*X>PRbwI?-w$4=hd!r*IEmx1;Tk+S z58XY>qU$K(r$?Hodho&OB+#URHzJVa3|`UDD#31sGt(Kf?p&1C%kV1(X?s8Id^4JZ z>+%S{&0BE@2Okt-8IF@vVtq`qv|f)Ig1^xcoBa75TAG9~{?HVD2Y7SzlqTM(PSY*C zj~jW`i=opG=tG@A(oLB>noDlI+{qh(D-E^0=Z|C=rbT98*H343i<{L&Z&zF;X)Nw# zUrLOqh&l}x)QfO54i|o78X~S6ds+oHH zN?kI2h4lW`;fjLBi@)if_C0j6^a->;49Yj7QvO^n>p#%Mp2(fyy#c-XY#|B~Y?5KJ z{wW;=Q3ekrKmG1WZmtjStalvdC(K>We_>b9PsQmR73&H$;!KGqpF~1Fy z`GkQENTPHFRVY6f=+xOsdNz`R*(%TUZ21Svy=UeLuuT~bF0dcoE`PyMB2)odwD zHJ3WOrjET73kt(numZFhAr0ZzL2_PMSUA7M?-sl`ZThH<_$h5E)EsY^;_svIegoHN z@ah{M@a)iNrBH`>TA*`(Ey6a=rPuuRq#6A}XNR>Ggf(m)<;^PwP5vI;u>7b-PqS5s zKL}_EZxYY~@f6_U7A}>Usk8au&dlz%5^MsY{o^$)zeo#0%9 zOPl6{Q}N|#Mc~oVz|7L}&MG{%IjkuS4gDQB03v$o;v+TMua+L>g>qYKbXcRyF67J4 zm9AX1k1}VrVgmR*tt;QNyD^?zlbPIq-Pkvyeve5exV1J8T4J2%7`QBk-%UgR?Y zsjB}*&Vf5(o(ZI!5d)lZLxX5#mp!2MxhMQ&q<%&IqaP*_Jv&U|7M|%y6^ohQi!`&@ z(>I`^xGx&raj!U>yOyIdi{EgqG*I{~n>^h{Z0tY-$I#S?m-&5R!7!(}B|5Fx8@3{? zsoTO4&@hO!JZD)Hc;VUHUG-?z@{}1dZ7V617E8WVTBwNDiAMiR_fX(U-3i=0;2-*h zeR7qeUt<0g#)!d*1qkb(m{7)UwyWrZmWz)Rp(eZk)}v2wUH?kBIk!vR_-=93;sDV9 z5%k&zJ*1cD@hjT$5BU06E6zTp=vyeE2<7;)nM$0aZPu4y)F?k7RKNMfNWdE z&F8|4v^W}|=6-vtG67VEPT^Emk0Wz%s|iY&RS3&3ga9^V)9O+?oq=iRk1Wq+J*%HA zBu~cHbnv%+xPj)m2=2V9I?QhiYmCMifQOym$50-l;TZe4_ila94r9DTTg4IX_P-Bn zdLF)KUv|s3JC5J=8x}MWmgwSHS(CfAR#4c@S%^-3xBsB+^FEEw0fULvE0EgT*Y3*- z+5^CFv}nd^ssvYE(z6NObnS^aLzh!ClVFlGN3* z5`(8FPyH(G|E1t;We6IHZ$N1_l3vGf8W0m6-et~san7k9tFYEi84>zx7Qm|!)(0O; znYmb8qR%#X%n2<80=DzoBOAiff$ESdO-uRIE9mpgNCQx-AbbD#R}JN#v7aPkmTU&< z4HnLkAwG^c-cYFCvJ#PLn#}*qPq+3&xMZAIwqB}L+_a0K&&NWOo|!v_RsN4AgJz?U zLqZx3*A)t-kwc<6{31NLO=H#m6(Br(?d&xvA6=!DrptCyut$VM?CG=xLs8)?5TckC zX!a;?SgO9=^~`-%5<27Gwh8eB%oi(K24GgR^vl6DanBBc7VUFbTE6?Sg_moXe>M)N zT>%##+qfBi-X_xwsBeii!JZL!f&5~grzM}6{Y4T!aJx&JrB=Qo_?+ z#dweyy$-&7so0e{$*KywqT~ex$|EuR?ZIEPbVAVgbF(aN1!k1F!EoD$n}`S9A~I@}OmDpJP2b)|H+YN~XQ#e;vsGT-Y02NrKhv6S7at1ZHvA2>8sqE;{Bz z+tn?JAiOkZOS{auZ!0Ax`R3`X$$C~IEBL}5;vc+X(eJ7Kyq046EO<`-Y>fxox$`&$ zp;HBv3sitB3e2|55~Jiobh{iz4B(q|VNO=Kgbxx!m(yA5uozq@Wz5#?#}%7(Ttw`8 z=p&MiIwP;XUYG@cZKVli05=&7jW27c+@b?%-LC5FG#@@LfnI|T|K3D&?qHd#jNS8` z{Sp=%xip}H>8BPhWGzD7z9~$>CR&A;9|hqmPZ*XvmW`EK9_0i$Od5{qjaE(49Szwy zt@}`+Bf|kdE=&=#xreyt>^M2~^l1znRqJDVPzvcy8>X*rO0Hy&lmvA{1``nEb)?vr zSLUx~EUt)I?{?P=hh~+itaOd|2w6Clmc4(HNr$MlU!T#rp1h4BVVaK@4k}j5Z+f49 z!DOT3t=|}CKbwLu^0p9@(e>Uq!W6zk8~Vd}PSh*tvvNBEcVXUmyOg(8hjQj>O;T^M zs9Fd`AK3gd($}@*19$C|T<^Y~WB`32!H;@UbgcGBk4Ta7Xxeqrp4YJnzjod4g4JCJ zn>Wrf(P=#|XB4QOJqTG3)$og+-?Rm+v&`26UDn*xy?nn>KWsV$Qr5hVP5PYpwPXJ+ ziCyQOBfFz@x2Zz1xG#JrrQ5PuD0Y``mp)njLlWjS74cCu#sSp%62F2-eM(uN1&qQO zArbQMnP?0-Cw)i=eVSE6NNixWG!Z%9lEj~Y>3_g2t}>o%m?xE2P|`s)IhXN%D@Lam zpMvS{pT1@>Uo|+w-R_zF?e1Y4XVp?{wBt3 zpvPmCq6jGxKDEaUYh^;^VriSZWt4|v?)-GkNzx8*Z&e(edkzjxj$Pkaiy|rX+|~uH z5Y_NIrvpbaped`nO=~kb`*@HtQZwnAj~9h(9o<)D`Jb4EAdhUDs=TF2JDZwjeFI|b zhA<#1+IZ+{?1L?3y6F1ji$Sq4UprZa$!x%e^D{*Fh3_|T8yf|fitUr?{*jxCJFUDF z8Mebfp!~yA7f8zs`<45XN!u8T*3Ughn4IKdU$r_K^h_q{yIKA6Bfjxq^Mb+b1k#I& z&LebyPlb_gP@EM_Ls~Lgs4`YTm~IJUp3k!hh>rP_#Z)v2L-dR*^_Mi=a#9sYtv88d zPhtvMzvKzhr`=CK6@*M46m4z@`ve+p@u)*Gfb~YEk%U24ly31Tg1bRbqMcuUTsm2* zW%PVfHkcgTRHKq0x7ZwJC4;?r8?}q6t7cZ@DiHOKE>%d@pk*&&1CiL-ARr!g;;E;y9dnf zAGv$7-g7PWQO{#>-hbEb+IDiAyu$S=l}3s?Xcp2~VFn8MvDN%_(+NIRbf*9eIGIy; za$M7{_6Uk>|Ep;FjL$rEBe}eQh zvuXPA#jESvoAaLwX}@FOdzbuE8o)V3pWryJc0omBk7`-?O8N@unI>$0enuh!5!*$@*?_BEr$ZbRV4U)tTK<8cl z%Wb#5R0PIY2v3N8{jVmZa_KR1;)aQLWdR_-lV4V@)cjukRFs<)Lpj*!w5LEya@@Ri zxP0S5OTBG-*x|My09Lo8b>%W zqy>@8Zv{_o;vJ2EfJbCdElUaT+Av!@ptQ!JswTtcuq#J$Av)De$9{1vg;MA?(Uxu{ zL#{_79g?M%98N&I@N?pm!mS?QgyU3;d%P_(;j~`TLVd;>!fS&g+G^-yKz0saOot^O zhvzkb+npadfrz-NmvlbYZ<1gf5Kd-|o^?(S#0TkN3)cQ{An$_bteA6#I=!rus9Hii zWm4Ijep!sj@b2y9^NgU|stq_NDvl6dk!{x1U1GK&Ck@Xn57~r9f9fHNY+jy!)^rz5 z&jnDW+3Y~kXJ$`Nk3G)j=NnoS^sNtKiVesgHjSw(kXa#02Qi@+rZ`Z<>0*`$g{4!j^b?PAYzbTXEvGEQ=64!}BOQMJRf zbTwm!^(>R^JfkfTAFV+W4r9^CT{+7--dCeMzIK2ezNL@8c`h7-*9T8ummuEYe~ZMo z7!4hP!fSOmoClBW9ZV0W+OQJNz6jHZV>u(LfGh4p%<5hy2AeVe*v8R|P+!j_FXt^?3pGO6}q&)D4(x*`TdwO{OQFR%HzpTTq(mxKkdpv)3qN_F2^-1ar zTHI4&qsJPoLSauqs~>~Q|By-Ilbw4RCS=7gmX4b9zS0cipK;QLa0M9G2+A-aG_J)XoSG^%EebW|xeQ**3U+(t(O^Qd zxV}^{kSw`*uhOGMt~eRYK5J^k^*Q?SW@Gkejv;*UK$LK`X9J(7r=_=BeI^yE5n1E_ zHAp%{Ua}4GmR#X!;%VNnqyG}LF{;O$29xR=f%zzY1_{NA0M1m7X9O1?tL0LBV)67e zXZpq5`5MsLqp{6<6JAY5%~NRXzxXrV6NUo~*6$Od>z}GwbJ; zNWS2^FfE~|WdgCV8GSBItaWMJ>-V3{@{a(U(BLAp_}W3ekAT@wcw7k4$}eR6aU`Vc zl$0C`o+p}H2$&PtAvo>aLg4;n$|0{XV({R5+Ck7@v=ed|IO*~gvI2MX9nJIKwck$0+dt1}ltQ3)to6Z-wo-4LqDAPEYC)<@X{X@}pda?TD{4Xz;Jz$) zJ-$Dd-;V9sEYz7xb{H4SHLh((xr$5KT!;27R#Ua<3_e1oiZ5U%LI9qkC0aPMS==F9 zkvViEI71p>(qsyyMSg$^?;6e1K#oSV$}v1a!_^c@Fwp!mBG#D; z8Mm@xx@I|{QL(f2ttR$myO>8Nb^MXdADm`-%T5DDt=WNMi*@(d`3hKIj7HZ6FV#sD zr85^Sdj_flwN+U?Z(H2r$;#gT|2_dS<DiqQj`5 ztz0#6g^RPfy5Z0kZEAas9CF)^WFq3_;*3PG+#3*;s%NCs5fL6_-r4UX(;7;m*-~oU zYX327zu}(qbVkQT7pt7KudfJv#{4>rdM_wNa*2bg8@S=e3%n4EY8~#T$x>{Ua95wR z+bj%_9_n=pkB#L6mOY2A)o0TDgUP37bBtO-Bl!4-asgFoohmIm_378%`bWI|{hQgbm@$JQUoSHHF^(f{sEOE_J5_ww3xumHx2chs=%enTsMzw$?Z2mRXd zHcLD+WLz+bMJBpC;XdbB7NvtMtm%$e@|vzFh3J-pGO3H7;gwvjYto8y&g*t+UlR4Mn(0CHxZsUlbB;fP$l?y&1n>Ee(lMW1 zuQ>NAM>&{e-bGPjcXT4P?)&qdhp@;5Sgj@j#!jz!!CY*!|MKuAG~(29mR3BO_=0+o z-Sk$PT|SOgI{rYX@kf5n|D0Cjy}!j}0*p|oR)LBzb>M=aFb=;TipZ8@@x{$GpCT{2 zTfG3*M}lDtJ>`9YVf?G+c)yd+T--w){^c~MLz>?+d9NHD;NuAB;g%wUyAQ#E9Km6g z7K%QpKx)N)D2wq|q4NI_s9389mR-BavPi3IsKtVNIOQWzh$!+5|W zf?g8msnZdwAhpB+i!z^^%psR*Q=n=&9+SE=b`+LzJh4-j_(uTIHc_l~RvQi1$q{3H zYkJ%03GN*lZDAUA=dDNEdSSj&A$4-d)Gu>!^=`eTzNde9rulndy*eo*=Hm5S@!+&dabxx)5c|Yp1MTM(sx|*JQTfo zEnIuQb=MUW&=<3znA5^Yh=jw-l8Ez-1iOHY8eEcJOaXyfl5S2`zL>fQ&?fshZuuT^ z#;n3-ZnR~ayNef4auAERuD?=bWjXbr`vH>WcMG&49*lgwf)XZ}&bu|c#&Wpg|HGeY zfVUMtLN#%T3v*BH-zD91VDO!EkH}y?u8D6%Gj3p%qlLuDr5WYwR3hURy-|y=Mx?0Z zuWp2u)v#?}f%Wgc_0Y6yPwVftsynn1Ov5k6&wkNa(=V*XleG6FOFA7L<)NAedY@dm zI+WareYI)zKYsmxhHdFbA$_)pLAI_7;&a?3kpLYyL#XOFUy!-3#~z%fRPf0A=eJ$r zBvMtoXgd;n5aokE_+r>>v1&L_HFX=z&#g4iVOvB%Pl;WBJ0U z(V>PppOP`JuxN4blPYC>Jnvz#L+xAY)6OGMQ@Rp(I)E9$?_`+~(Q3w6%xcLcj|T6( z=mUbTD?M>#Jx&G8!FFZtlk6Cj))Huiql5`)acnt-_ z9;|x8#!wipb9#?@Bx&jZrFA95{bmv|B!I@BS^1%>7-e#Fa1-gYLx8{0tX>l#D36-m zy`ZYw%>OPH`qiX-3o}k0w>KvgwBL}m9vhI{9i-@H`@ZkawijR8*X!Dj;ehO17;@KR zNP3=B&*;L_B#kUsrITMlUZuEZgHzL4JhEJrG%OvL2IGKu3hUw#TC>StoFXDFAki%^ z1pD{M-sm%!Y?8LIztR)Q+}J-KwoUsK!*ssxb9;n0;ssM~ z{F(r|D2n$l#u_jn7_|l;2|02Yb$6xEAS|Hzbxuuto%UJY%qeI8Q}Ti>1(1> z!g%%bFJ&PJon&Q){>mB{hgIW(RbsjXWTHAGtP6;MX*0y3HhRiMzh^mq&ZMG^MD&2o zDK&DI10`CdCSaPXqXOwZ>=b1SexK_}=iUqIT?Jreg)=5>e24U{C3 zOBHP}8*5VW3p$*adO01`dNO2xkJOwoGc0!K@ln|=kC*l_z>cY)7=~YZ?bjZ)07&22 z#b*HDfL6TqId%7|y%+due;l#cIlH7mO4|74qV>)4a@y)-y1$oqVDqrliR3JEjJw|M zrOr~c}3a^>^&-0XQZ-8!z&)f6ZoC1+Aww$8bBwW^vA1M?}gJo1t#4kJw9 zYb+OLIqJ{r&V*KJ-E=SRj~*M7mNGUL8}$36E{p6{n)sr-tQ*JJuv4R4CFFh)4{?-- z@GH38XF^AR@)DSYZ@okhvFJZxGXcr@H6b3@koL?+1f7U-+UX(H}D{<%wdjB>Xw(RG;L ztwq6@rwCubNnjEOL7yDh*+jDXLK(ou@rhS(cx6#*8}Q zkglolhF3^Pv*_IHso?M=sk-$5 zL3-uBv*-BA>1R2|%R|Jlz1q|FfT^(8?vsS85z0zhmW}Jgd%ugN^P}4ZYeBA;zwN(Q zsU-JAJBc^x+W90e$!i^NN6NCCTsqe7{S0WYtH(AsQDppMe8S(yFd#0tBQ1^lYNSiv z%~5wGWxV}#g6MC#`xzus-}KVbyMb)UT+^mJDEe3OExkDd2wBOh1a_puKQUl+?GCv&t_<$v}rK3_AuAt$r4$8tKw}TyO^^jGGA9-fAqH$b+Imgm={a#fD);+F7 z8ksn{oTw`1P!Z1NMlf9xVkl9$(wNwtJp2Hw;SmrgcYL31Ttt-F>3UVYRTYnz)$eim z+8Bk2^2kB2CYA-Bmp75H%CRe$Jesr*zKK{{qr2Kba4Uszqv4l>ajiEQ>uKv`LPN_o zAJ^A7=A>YU+ic(JYfrt4^208BFYj<>vLNW*l=g<5cDmgf`;(@}!|)aB<_^BThot?Yh575bZVz?Xp+)wQ2s=fbk89wt!Dna?$AUly1i@R(pa|$K`VSZTp)3hQTdC7 z{f(U(pI(|uvTIOTO!-hd{T^oM4%r|ll*nL=iTC$(5M4m7ufX!QGe;cz5BSQ@`vM+emFC= zrA%wRp7%>-wtxCp!{p!D!uleB&}}aEd3AV;yw@QN8azTuQu00uAKj&Y@;H%b2A;Vp zcE}&rKhzmPbj|_x8GI#M06bRT8j4Y35x>J0G^t*dc|i9ft;ONKO{<6A&T*d!bX*Qf zCuwr>0R4)OpUz>5a(z5A_>Mok&dQ}y!N=Amndx9>O-YZQ$~$YP zwDOkB@#HrVM$|(a9Dx=%A@&E;Url9h+;OpIisfq)A>M_S*zYXeZtmhA<@>pzHn5=c z=i>GsVcu@~u`IdpE?6vrPUYqIER1%4J3v^@@sui2jJE!x^E3|<`BbPZ9}<9`_0trX3&QuO5en(h>{6I%3|@Rx zx7IXv!%~G6B-8rf^FU|g+Uo!#qIV$S0L9{i9YOE@qW{VsmjNr4W{gxsE_v3%rQY;m z3O&#HnuNChMetZK!7+9e-hqG6z3cG3^GYQ`N%hYTo4~R!Mks(S3$~is-%3Cxza~xo z;WEG!(xD^3i=arBq)%ZSUM2tfvzD|N+Gv}u6(rpY#lxg~=#^!zVT&?lx_|xOfVjk7 zL^TT9zL*=bRb02YB~DZP92bL4!%sUm|;Gq5H7l*Eqe#A`OSw1L7EL7(n>gxy!E}H zT+y<{sMcVGY2|p>)cTchVIv3bhjB-Sht;I|&|c(Z2f^VlS^{czA;@t2Xzqho(}oKF zj{?u%#U5HKFJK%_^NK&?sA51vDjg^{u#fAwDhr>${OXwhCMW6k`yoYX!j>Qaelk-rm?F~!&+btMx)af9vJf|7bm(8 zVKtLLQu9K&;La@va(L>38nSNm4ceIg;hFEK-{E(Jq5%r#z48l($tX9)J_Rq6x(-;6 zM_mWbW1FjUgsa_3&*-i8Xru*aaQ4c2gO=>8mKW;Vl}Ar5bqD)u@80y9ZSd#=`Z`_fnTn!fJML2*&eqBX$XmxaJmmBKg-C zl)vi$Ffp!@*el7Ao_6!1B`#Ur{d!>u!$nsTF){! zE`Gvc4TnUNfkOX^?!)o0$#vU7;d4GjQ2xJf`Mw=(2dv`X)N4T_XrPs+{~q#dHE|mkrc7` z0lNv9jo?>A{Vp7IxMw*2Dv2uAr<+VTrQC8{hK^r(NT1{hf@45kFY!o+*iM?$J8`Qz z8GiSHx3KmQv#}7XAp_U?Tr$5`WdkIoRb8nlW{o8BCZ0`@vEU}g1}|{z8}3F z)S_vxS7zi2sacx9z^CQNtMS%~Guow|Lh+I6t5u7aw&wu75bAYS!93L`NE;(y;#ZcZ z%8ti`BpPq>{YTRW2BRmpdctw5cGo%n@i0qTD$7f891i+Gw)_(lJYuJ zT6VtoaT6Hi&{7k*}OfRvv4 zy8m9xKIhLdbzIZmEQ)0gyQZ+BT@92v%i_Z;#%PJ)x~9IuLe3)g-Z<llX*|Wmq ziMZ6jE4rqKKBhx#a;;JYQ%aqjtwi=quaCTkqVRUk6I37iAZ#>j#Ywz8$Ey|(jz|h7 z-kzOt@LCvyv{1sC;hM)o7acMvimFl+ArWj#rvDeAr zXh@|ME;tMoSBWl`nrKHxtVC4Yw5ylGh*l}Pbx8=wQO*xmIWuW7lHSEJ-%UEV_oBWw z7YBpa(@;c#10hp(q&ez(Csp|r2U(zm^|abObLk*jKv8P;p@Rt4v%>Squa^;f@@4*t z%_t@0L66X2$aJfk%U3Ph-{fmM715%(Gafn`O;z;7Dmrv57fa(#@hfw#rKGK-I@PW z7pb#67lF=uU?9e#Q(rm7huO!s9H!2sZlzIOAdPw}MpmuW1%9d*uHRcP;5S@O+N}RV zkIzLbSxrZbsB%n7PoVN1uH^oE;0d5P-A4&mvlGXI3tzS#c1}4OI$iVFQ*-@eNDAxc zTQb%Lg7fnVOPSr9c?@x=`P`?=z_cJ3^*B6Zv@Jr+{{xwW1=os61s|ak%{rO0`+1a` zt6*Njch9QA|G-yZSE3%8wyD?V$*^GH@s8Vw!S{JGKO8@QnNuQO>0(4UgW3UtS1%Pp zBiarKx4t4dHxJ$6Dan6Fw)lW9o^3M3Xtn3d^EZRWM`c=lgDqNawrrf!g4A8O_w!r? z8qY30&Yg{C9X@Z@Ya9)w4vP(@b5uoqwYH4kPiC zR7GzXVSEqaB5<%00xu0Ee{xa*gvMUg_D8i(knFa5RnTImjx$aKo##<{e-!@fg*6gO zBX0)x=#kJ4-M!-Ei{dRh0jwMTUuveGj3m~~fb8){7r3QC=zG|H^d+*oII&x-NY>Ec z(lMEyDD$==*o&PI%3;QB{kRnUong2qVWpA7r{mJ?TPib%^V!nLkbo^Rws_39UNo)7 zV%^Lfr|t+*Qp z^U!6R2jz3aMV~1i=Hq`f&;S&=hzr??jJmU0x#Si{_Tu$c$JjkC;7_Bl>Q|`;&=d4E zj;05ED0-^KEpDro_q7jDqN;IV2+yA@oGBkwh^8c4l3kAktsfXV8Z4|)#Gi(@MVpwg z+>0V0bVGQ&&pg4OHu1V^8Z=38Di;R~^mYR0Ux4DY#kX$x_k_Ra_SQp4((;f}ps4kv31 z>Q0o&4H(6DjXTwf;}q-yRzR0fjDR^1ZBg|;mrzHMQmxl!$qBO(t!37Go--y-o>=_g zS>06Y+ouJ~SR8aZbRC@HF4>k?46<_n^_oD_jZR zv=YRwcv`c0w+~fS z9ktjNY3_&d(Plqop!v*wmk0jrqdhk-;~dnA);;U5AO;H8aA80$lCG+SFOXHaBYjK0ts6Pc2|9p#sI^)EIMQkwofn~Pk$J}GSTj+|=m#vGB zTBsh5IUDzi@LUW_8Y&+B)yHTp=39@l{-%~*U0(rpP>`fcG%w3vPO z|Eq9WD$kYt+uY3$TGWZVAGi1Kgz6TTmVkJO_$8fbGUL~J&2Q^>R>34=(8ZZ~lQhSM z4K~TeE?S$`)wuhCc>pX$dKb(}5O>gNW+kZ1Ap!-oz$yGbEn-X?HxOmLF^%CsbZvL1 zFV10mZ`FI4Z0ft|x;IwH*EKifqF5285w=PxgS7WVH#Q98IHcF=3F`a0_gvn6$M+Qn zh6fO}BQKLA;s6&36h37D)Jox=onBv`VtZ{)i@G0(fcs_)eqAPhtKl3#kB!kV#LfsWRjm*V24%iO9mlmdl!E`6M7 zFND|bKAQ@ud%mxmyt$fgU9f5%zTYUY+de(dl*6WZ98p&z*WcpduvAjPqKT%wgVnmmEOHy_%eM5GA1K>BhVb?}_3tPZ8A1 zpkm*2l@a+w)HL3srkMx*W|rS6f9>ZPEg&` zGfMg&8xSyHbEzYDP<#WDWB@L)KZZ?t3^}~kaQpK}R_;M%yC$KTM~1y8^FFsO6pD3) z9IDt{5QTP`rrY9)9uMc$n;f*In)LiG9*g?`yG>${E<)z79!x~&^p*O1B`|Kk1?J+c zYwe&HHR0`q0ykv>lYg8arr1sy+;Tg^)IakxmP<_}O4mE?>}7B4jkkQgnd=Zr){y=H0I!eV;t}5|W4+J%>7`?QoXgDu8IE z|EE0LvqQqz9||6K{>Hp)YYT{&9Y;F*xK&m%$eiF18tcfa#D1P_g^fq0bfx9^BOs@tp#I#P)fYv_sWqi;+qwnD?P_C->Dz{0u zo;lj{b;Ev&esw$CuW&^x!@&J3BkXvnS`Wm_6=(^?{J^rNPb66lof!gwUf2aXHg``p zrCD?zC$9Cr9_{%jc?F(RPP|;5ro>Nnb#6w=$p&wvj94_Kbj^IK=zTgm?A0V|2`V}G zIqhV9Pw3u_9x8)0*Hy_D=D*OkH@?mPJE!%x43GD}Z%Jm~k+1d>rA%kSoT3|g z-8DL-vG?c~>df}*VR)2fMq$MbX9tt9`AvN!&(&{+;z5QcJjnj6i@6DJi4_|Y6?v0G z4~G*n!TYYFWps)i&f?k5?8I^oR=LWCv205-k-&ZjTC}$W({drH;HTu43(2DcZvp?3 zz8gT$lT^Udk8l(Iv|5*!q>I{G9q;e`)#LNCjPF;vQ&-XL2Y9ey(z^Tz)I0sRU@;!B zRlphRuWw}RBKyseV@z?oAAhYTUIecy&!2LJ-_uXlq?Pk@kHB1`S}~w=9NnN?2e$PkAB6B% zh?vFVp9A=@*Z0mdZosa^CkZd(9hG8&5cwdw%Cfd1Ll5$6M24kSsmp_w@VmEa0AK5K))*hw&>p zffI2lNnmDD`S2{=;SuATAIs=Y1ym*H5IPW_tr2i(D8U)U)+zF-gs?7TaXmo_(3 zr!1MT{w)0nq}*BYs?cf9-AdZqK1p5BjER`n!|?gNRO>y;3yBZTHg-+(ybi2Pih<_(P*O!;38tlYAGuAh?15sx@6vy{qzsms= z@1#PPDe;A+PhFm+C6@Rc3i4cf-R|atCtf+Mf@(0M{WdlQ{uLv)D7hoKDZg2+@k6*6r54@X}L)y$w5xRlI~>cV?W5 zu<`5P{m0~~Kk5p)^PjWVH#I#N>!mRd?0YNPpYM0{lYQYhNp6Iq-ZHeY31_<8`(IXQ zD0h~Q{(q!>dpy(oAOA^Caw>|VFjHtMqKKJWCm{*Rsaz*Xh?%)Fmvpg&Ezu%lCn|N^ zZ$oW}GLh>tGWVI=n(N$ezmHCJs&D7=`~4n|{#bj=_IbbFuh;W+f4v6o7K9=`99sO? z3!Q`E?_XVNDIv2{8X_cb!^J3jV95gsLoy)-N`5)^v$=BOCS$iljs!v%jt=1dx7zDm z>`${}xZ{KDU&zCEyB%zG<~H%;`W|dT68hiwl*%=%*W}9~U1hzNyf+0Ie$M7{LXa3QQHtgS{O-jnNgl z%>)J~Vo?@J%nT|&dcd42JSz#Lsh@pJKe;|%9n14Qx#-q=}j)9jOYY9WRDbB2AveA}P7H?M*1$VVlI|7=sROuFm9JqP4{O zZ8UxwwqpPvbR64W_%3b5YV28DIKYDEqRaDE%hFZru}L2un=RR1D==(QOX1+;pq^QEMY zZ&+6Y3@U#jmpI<_-2J^KY7d8^2!!SR*Dqzu!U3>rWARRgCYJQBDciT=W4JujeV_Z+ z%~Xf6Q?4no%cu9nCmH&0KwHNRD$u*J4Ri;Os3n@x;Jc}h7SLP% z9PO#sL+L=s)-P76EEpKbYW|%@0JP(me-~bF%!$d!tL5+KdlGy8sJ|qH<}J~v4^aWl zo=TIj2ZmZhYj*7g^Qp@ZgfxjRU+}lm8sacNX8&s5{SSsrcZNAPETAiR84rGwG2~dl3362UF*)1C3&kUYV z590HpOpPr2tSY!hHm;?ux6hL>O9T9 z?a?Q(Ac|Rsa^M~xRn|W8h?9OHYZ>1mO@@g^Gq(r?K?f)Fmup)q-Ab8L{abh})cS@y z3<7?JXq(WkDVx9=PB7G}LKK#lP#>#|M1`tXnQE8XF!UXK+7)j_hnDPb1l)^G3xbSy zmRlo7v6I0b(3*~`Ub9Z0$C7-pNYFRR7Zxgxlt{F0DL$MmXd;8`&U*1vuN$v^z)YY~ zO~}3)96GDg*^<~hA2}^9uV``XU_^bZga1n49!_WZ;IW4v@9u=uRK?(7ogOkZu+EI; z7vV@IYhp$9K24_o>(aj59>D9L=3t|smOGQLSxTr5Z`UwQ(|rE+*ZQTBN}#;f3e>AP zfsLK@xCjKfm{gppNnk%s6i<4V_Lw|v3;!7}94cX|&6vi`IOQb3y%~psQ8|cD<{O1~`9N*<^C(reiyI z6O}YGj9{GI_(aA&<DXoyM{Ar*DP;qbg6C}!^DGj?9&d7Mp?|z=(C~j>f-;K&X z#kXq51uDss;<5+P6PKkITf$#fsO4c8MwR{6scsuyz;2rl6q*ry;afpTyM>e5`ZnKU z*0bpfs|QO7q%30{a%Tx(yR5ZTu1+I%_2s7`v6Fje>>@lXDt|Ux>1Gz!>ei(21+KMP z^u1l&?Y1&jrX~`w_`jAi<%HDiiqAVnIiGk)X#8OA{WN|8FwfaN8_Uu&%)XT;sS7g+ zPR*eovBS*=Hm}HYCKARy?`fn$DNBZNq6*9Kj|@l@s+Jg!unigx^%KQWbU)V3eP@#Y z`CqNI*fshCv+m+#|BV~WgnB2N6zmmv7OGYuKTh`zxDrMm9(O`dd4o7Zt-1C-uTnKp zi#aRKZ;Cp|I*f-=4zGmHbHt63QIk6WhvhKo9(dA(uI46gjo_HNhDL2MP^Dg3aDI0E zjQel2x74P(ph}Cl!?5~ZIfHg*AbLIAU)K`Ec)86(Vm%AA2~XPEt~xrGVNmL`Q9AC| z6LxzCTpE50vD7gBe1LqZa)x_Tn!7e#LNhs5MRjB5wVtb0;ynS@>J=6!dFB=tkQDG- zoqpe8L_X)dSMBpGfJ5)ywqFM$J*X&LG4lGX@i=tGBepNGXJ2+XI_l$&i<}3%Sv5KF zm4bST(S1>zrGy?J2(Vl7nCbBZVUMoLhl^Q5>zgW@_QV;Mz{6X*0sc-Y{Q{CuxPeo2K6+~NtN!s(QE%gYxByMTq>;_@xxh0-^Lz=+LYD` zb$0gBRev|94_zvFYEUyAq`xxMrVmVsU>f?yscFOBu1$5c7zvzAhD?AoeBDlh*^CAY zJ3j5^svzb-188bs7~8;Ze27yuW0H)54#r)V#(Qq$?5;|yULfXb8q#0a>j*NvG)PY3 zQ!0JjBQ<1D-&23l2`(uqoRvdzGHr7}S#o`hQ%St5DjxE3upnG7VZxQ^;`PuWSl{&kW8jBf?XgDxNH`elrwHyP;)w= zvn@D;Yp4Hyd(A2e)Gh#8We4-G-fPwHg-DE2yS1AV4uX?_ec=Facj5d7s`TSwcE^U07-u$~(#IwQf~l``ekKGZrPHLk=%^ z#QBIPvqffzc+il-2LS+aM)Q6?yTT5t5GJ%W0ts1vSP{W0O7 zdnyvlw`%Ue?R$w(fdF7U5jMvGDD+HVCI`pkK^k+67YQGqRXe=Ox3Iy!1XpYVT1bmU9~K6&_ASm zocEa$7J&T*dlg#sf+S|+FDK7?88PtS%wBckGmn)v>_qz~IBDbI0jgL}#6|16{nGd3 z+LmK(QqMKJ^}3VCp6Q(QhxFeZj;k|b=C8v-1T$Svv26JJr^pIKcKVsI60^2Iq1L=7 zZJGlc@*Eu>zybVR4;Vl5KEpG&hwcI6T;@WxR#$7*%cZdog=$N_-u57N#-nHPBCu89 z#bLD|)$e19YefJ*^G?3?fz%DCk7``Bz*HvSrqwDkUQfKOdKQ%YHjQ;dn-0`Ln#9}@c7fudU0 zX^FbVlFCE@#1r;~wBV%)YFZ%EFt9)u=A(|nJx`TgUYjyiI<0vK_q^ZhA{Z~cv=eMk zjVL5D4-<=7h{(Bk6C3K$3zl8uydE*ML?Z*+mGYp{YN#hsQ}_O`wjXzcwsgRy)>XnZx@*TcJk`Pq^Rk4ZuWMmSkHnomgP9h)TOq$db#?b)q{v-CU@$;-D=cYlV|s?>>!+IwV*!4G=X^rby_(Z7@9%w z-JBTy8im!o2R$kIhqRP^yP7s$tsy7_aT;4J5PYMK`aq{WSF3p&XS?M%)pyFF{avY^ z^QPUa-p90lOTc8}n7eupb;Fz-GS#dq92N_d8`SE&7b{8x5;VrQIb{Hov>j0O%BHT` zs7Zsu%@DRiO_5dx=fW<x5aqG#WJVJM_^3rdWk3CKj zPeI|u6~j2;ogVF#hKc5<{8(OnExAUahNr@O@WS(MC9X+} zIRX49{(M#$sdZ~F6K@|ag)FZWtQ$mkB;KvJ>J-(>jtVi3^C7ZRmQ8N4H1;TZnSJ`~ z+7W;Bvi$bOq4J_VrxH_7hqyi1yq)0z>UyA0wsO+=pmb^lnmGaNaLBT+5l+LAI#t7$ z1uFZ6)1sfWdT!f-LyYkb>+ZsfKgm`lfCu)T4JX+j_Bf||Li~V(6hf0^c=NRmlU&ss z_HJ7yB35;?8WE)eVxW#trp2-|nKq!goc@P|Ypwo>DXS3wyYNbd>zw$F%JeEKenLSu z&h8|>*6xq2fIpu*Y)Vh6VcE2QSGY1?nlkFPFmmp)Ha1ptfglGd=-l~wf=OyKI5U=g zvB9!g5>nZu8i$31S|2gV? z$4yq8ZnGp-GV1y8fvwy5-A?laol7+eHtY2w#O|6~)zWNHX`0#}LL!`B@;&&G?w@Jt zc9@5dRqt1p#XKdhJ-?g`Rp?gv?utHt^z+4yZ{}Gl{@v{;kIx6IXQ^jEgMs^eqS8}s zK%*xN(37^NZR|H_t%PjIxV<_j%lDb^+)gjh{LuAM4Q%_2wGpTQGSU*0*%~HnVR=Vi zi+3=WE-R2`ufc8gb^~?Sc;P|xho{(0;EDYLR}lAA7OD=)DqPRpTnPvpFpv4KiL$K{LJ6#nCwSPu7wL?kG;D)@w-Ie1lUq_%{5= ze%$)DBK?H7WUW9IR;UJExLtc2tAK<~g@&RQgt2>c?eBW(#R>QL8$mgpVy~M%bQ_?y z%0zqKIB@E;vpAJP#C8b>yLvNf`!$ z$>u@fuDj)L(3ljyN%@u7HiSY#q{qeH(jlXi@yg*meC#HBjpQ5;of0P{t>@16k&?GO zS7!`RJ(ZpneHe!w{3k9>qB)PA2eHNX`2xq~(05sC+|qjLo$ zE?DK29s_e9f0h@iu;^1#-S-w!_R0&O8zSM7tk)Jnt?W&SLYmS+4HpptXMY50UqRg$ zd`sJkHFXBDM=qTo)R5q8JdftFqeYk(4QmBt&j2Q%x;HT-6!Zr+yRs+)BPib7(WHd9gAp*^P9f2-r0*0VrxUi)oWss>R z$>jnY&^m^xf@63)JK2WY(~$F4D&Wk0==^~gR0%3b7Ga_PQA^3>(0M19UR+n5vRQZ# z&rV%cv2uDbp(|iOzOR?i4-_cK@Hyp}_+E)s**3!Dy_IP$B_4euaexd|#MeLr#;7T? zmx4kiULa&<*BNN3I#c9sE6YMegjVb1-WKzXA28?}2X&{*7^}Jm%ZTt%%5L@f&)cOC zfNmR$eucE?P+5TS-`@O*c$Oe?YyTSiiwJ;V1s;o>BBJG#m7+|>eA9hExqZ4l)nCFg z)=~C2yfhQ!)1rs^o6*oI8S~zqm_jLfn7@5(#x$5dpbhE-|JO?tf6>^;e`V+8cdyJO z7$d(Kzn24g=ag1OEr_CT=g;C!m6?I_o*AK+5kPq&*Qrm7~Mw9W)F+^Je7*}8B9Xc#EJaidXvZL+WdkG!Je zz}8iVGeOPIFqvnH?A@ph)6-(-#10B)eiEroLOnym5>unmc@u-`W~%%XzGE-Y)E>*zxRD4uS0 z!FL;&} z@XKF*B{ZL2UeM!B9z_(S>=$Ww<_#Axi`p`nGt$_L-2x*7VO~!N)V>L9OD=DXow%G- zZUFPyhd~6l|86SZe5fS`H^VQ;7;AfK;BS#_VppkBQ)s&|dgP)Dc(-O89!xUO7H~a5 z+lT4%rz?q2RUQo&W@7ZvlQy8iz4s>5n9o3I!r;Ne&`D>sGk>hkXc45h1(k*Mjl$%C z&LcphSEwuuWTH@;gblV)3~oZIw~#s-n+4}NM5UAB6z#rhXz*Pqvmw4S>Y`H;xr;-b zF3*tr$d=aEjwUPnp>_w%bV_)g<*r$B>JPU-N~hzbU6v?-J-@ndp(JXs!J#Pn#^UPT z$k%|(q%Ni~)iO-Iy3(1F^|(;6V5LAOZp@IK0qzFV?)9E-pZ2-)JVI?eydgTR9-Ka( zo}L#8H?};U9n6nt*su4e*nUX zlXdOOpc*9ryIS?)L{)P~r<_Y2at}WGf`?y(>zjKE+acT-hJ5{0)&1qt3Gd4uTO8Qi z4fbMvUSX`#G-?E4~`$R2H5gV0fZ|{~`7hCbYQ&!>i_GS_y;wf>ngu zlDGP#D#ZExp`MeH__<+zW1a)s_ga#7NifvH!A3hV`REi(%IxLMU|gsBHCq3XrorR0 z2T>Cp!h0VoF*CP8IVhplmDfr$F-lAM7675!9`Jfx)1B+M#2maVq#EB>kog_i+JH%| zSu@Qx5^N0%i8=SEzH$sp&oZOX*!sLfT^ifzhNW6%9=7TkI!Le|y@RbI=(s#6co9%u z-ugr4yq=fmVZ1j;GiUjfx$ zVT={qfS6Y9&L|jAFAII%G}E>Xp;EKpC2N8!qIS3hYz6uV*L1Qs_&(veJD7;UQ9L zPQWJHE5}~;(1u`*;VuDjRhTT()GrCgn| zPw*OO(d#UTB`OQaa_q};I;yBVNxY~-?u;^G83UFENA^7hQn~EQgaT>=`W3ig_E(b* z-BR|)U-&Fq|BGM1PeC<+yGa5SZLvO}BV#PlKLV73_dzjtyU3`Zcr|(D42=xhq(kk_ zs$&!^!fK^>2^ym6(_YoMZzEr>Jz-o4&X;H3iGO*wTlH4!ubIPz?~s&m#$I24tsDCy z5eqqjlOw0wNF!Gt%6=<~cLBwO8@Ta}n9qc-%#ZRkWkrR)ZNyEK)7RrC% z^Phglif!9@^WZaQcMWZ6N=(VPx2-BnP{TD--f~k~%F@+{d`Z{K8N`^G3*3pJ1fTpH z0TV5lZ`oP%`cLQ{0SV}M6!+fV)Av=kf6wb}A-vu_i8QTjhjT9~pSj4@QFjRpi%!E- zTLjpfD}9PnK^4F(QgH%7tw76C&?q6f5%U;6mDuIkmP|IF;8TM~Vhp;uH(3iXkt)NT zE-Ny3btqZwPl|$=+%OeTBwkv;;Y6+Ro_XCDal16)jsTLOfu&apROU-`g=5{ht)4d+ zIu3iH3d$yjrd24@?S7ySI~84gfGP0W%`>B&iz)`C$x*Gs3nS&NTspBOgxVcD)vm~D zB31H-GTE*Y4BtR4ia=IAtLN85+9S;?&#u4Suag<=W#}3@*c|S&X3(rLzL8Wz*{V{e zd$K9no=_B_qXSEB$e*}n7llpJM*d<@+Fvj+cI&6a{6?qJ;J#Ti!?L(6$^2P&JDG=Q%34zxf%^AJ>EK)dh+qk9^13_`M!OjSp`!kY&Mnrmn+xXi?1`Hys}4 zmNEved~a#r(o^rt+$|26+q&W>trYA<)<0-f^0kWhG)5*_l7h`8fkEAmGU^ z`a+VTRyHq6k$(&Nu$4Yp*e_T(?DLbvz>!nCDmJpVHs68kGNF0`B`P+2#WUu7&}PHR z6rbw!N?_`{1KZ=gh8yP4>C4bj63ttl1(W=cquC2LVz?66h~SD7B?Rm|pdLSlAHrII zY90H&`1?+rT63f(QRm)LnT;`;QT$=hlk*~#FI80U{m|?FOz|>b*|+_fQQ0Ts4G#+2 zNUTCz?x>Mz_0lEaY^+xMVr47ko=@- ztN@V`2(sw=hH&Tfu4`!=4-6b4NXi6RnUEFj>N{PaA!zdFXyQl8Ty3GBKSLaMtlQkG#Ug{G5F4AtLZ zYollpsU9y$o$aW37lDiKGE*%Pi?3g9b_wLP*=J&13w;RUL=Uwr)9$ki!_z7q=oa?x z^35v@Q_#rB??uS&Qp1F`{@^|tHSb1;&4jmWv9>y-2BM7Qka67(G#02;SclYVj-h8G z0vRr_2|STkKeXndZye&c&o{8O+Utw~#cS^V))1Xz({D|?c6y<>ks_SBT<8F*xi|TB z0WCJ4hV*qx-5I+usF&~|WI4rAc_)OsJZPbM6*%OJTWLCf$KruJRp(2KN5|v5M0R)!0WpEvkzwRU_w3g`j$%X^u5mz3oq0UuGhhL-f)dP-ux+nY=ajIVT_MiMS69wl|ZQ0^l9z`N}mBZj^*A zY1J)zB)G_#J}t7V%33h;ozN4BV-)*9M#7~9gD>`++fO_R*C{$v_wGB&5sER=;Is*# z_I5NHF5>7(i=Dr+Z}!~{<(Q4)ul;F@sZGg^)XRrdv0qfcw+Jz4auqB9M3oQa`A%MZ z{AvtXX*4w~=X!Yd5@)b}&9wQO=-r<>k8pmCX#AldQWdG*_&_1Ew;9fm80g)3&PlD= zr7UX?JcBZ!N*@5RuN+g6Tzs}cvjddaEb(*?~qz^&5NQ=97uzkvRgeXz&`E1ixh6N z5yYXm|E|&AU~jU;LI(vsORH*$WtFEp#kQT9v@!F-Zt-!6jd+@g-&g8blPLL(^2|;WXh@V_eW}BJE&U-RkTif{?v1dqV5MHZR9m}VV9u?jLy5G=`~a=0?8}e; zg`i(w%LRw6fKlzxf$iOz zY;^T++v^x^g~@x;5`*R1!$EKHHOM5Z_6%tWk;mHe2%JjIZi~sSRdAztF1#Tpi0x++ z?O@iN>!b9lnXY7#U=N$G^c~7>M-}N*oq*FcR^IgRg<6%hws=1JOaEU`2DZu!1SinQ zds@p4gP?1X?pk4B&2m_@}q{G|`YnR)h6!@XsibX)MLw3vO6=Bkp-`Rv!$6;g*BEL%B+9wcKy8 z^BX7RPqo*U^U+|)d?RQOn|#H|#~PEylK9=3@AZ54j7sflrgu^Avw&CDPMTPfH4u-y zPM?UJ+38x_+tZ>%g4EbY6uB{^5popwX0a^UOhi!6WR`E)&bCopg9$)9iU7XeqoRc zTKty|dJbmHDC6dz_xEPZ0(GWSc-TYa`AIvG;KK`l=+*KE^U>-vhX-}Pvehn}8x-(7q-x%S|$+sDE6GH&yaN2A*HGrYO$e#SXPqE!4;QfdqyRS248&gR_T;&bNI;+ znyU-$FvwIv*Ev3~(w_#2xUQ4m%%`{cQ{F^IDlGHlRkc!PIrR3&L8H6A}lUL9cwv2QZuV%Zm zcCY>F4VNP3$n*^C3IvExu&S8O8eCm4dgeod%_h9RX_u?^1U|KHf`dj=sTd%H=(HGNT%DsAw|Q5uC-Y{Gn735$XTaAC$`*t!(=_1x?P|)RZwRC z^Ix#|V`TcfcN4DzG)iP@XZpuMHMbSBt%F(Hi)T52If69E4!%&>!5WoQs=bdNEf;Wlp<-1t3mzAxwY@u-3lHFo$wHQy zhIeBs#h##Qg(bbA?r|`ZJWR$K9$UF{9)wHh+{GR?ksmg4VI*E=WS{#>WnJKGyp%k9 zJ^@XUQ;>`VO03PPmrTbtKuT%Iu=r%;AK#l?UqkTU9aQK}`CgeEN6_5J&YP9ZzFV{M zO)lCXL2o?rDqn7rgm#%_3HVz~<`CZLzh5iJ`?#ED7-E`CXj^MSZN^EcAI^m?nI#9w zb5d`_%rto~$Z8rt!05&F7M@C{k;3sFY&9DL&30+QgBDrhjHN1Ttan8n)hwHps9m5n zFJPoT83+Qf`;o8E8zS6*slY(_NK`_DJyPJ*ljLbJ$pN2J9ES%WT!xT%U=d>!mPF^4Eu~%uES|cjEw}H*YF;94MDJbPV0*y zQhYjG#f_cZZloDb!9r?)A*402bbtm*2o<6SsM{I26B!8V17dC?EJzeL4O$0C( zh3<(~lBR<=eDG4vyg3{c%JC;e$C@$<7>9~FA0ig5zHq)&*!8GnuvfSwCQ18rTS)r?1zsfCX&f&+Gg1h_7MtXsty*0BYFH@xu@_E(0ckJ zF3vdnW}dMt1treGEX~mJ-m#v?z#8lFe6FPFFY-so@*SYYSDeHj$q zx$A$<`y+~Z?YYxE);f#JRbR0v05lXVr&kBS7JS&E0Lx(!e`WcGsHE>Efbk6=NBi%ncS*g{gQT+Mx1me zi-DwSWBtg5b&xI?6BT1n@%*Qy=<{@rjEiL=!J-CYveKmB|cWFCYx-5`^RkUx@)e+I%LEwYCzRVwnEo$gs@ z5m8#qzs%Omjh7@RTU^+8hayvW1n!w35zu?uRz1UR5l@if;o z6{D;ZXeU33|998u@ANVw3@|{f`wudIy4m;p&39&-477L+4iY|Wt!e2Mz$g+j1E0g0 zajw>xt*|!IuO)N{8OSuVo?GvkW(FpIVXKQLh* zQrkjW#)F>-yRSToc}XN`oCvh?s1A$5XCp#iC5AuNnGA2|;z8|cK39%^F+JS8coHC; zLcG~ga1qKOV1UL<3Q!kkiL}3P3@u;7n+UA0Bjg#(B@aoPnY2}gAwvfOL%01Wp#4JO zzX;)`%VSLs6HI#?Etg+)mM^RQ9+rZ&edo%cNqneIJ+*_XSm9H{jtJx$1u_-7g%?ML zT9@d^ki~~dmc27!ncg3w8}g#~5*&MfwFUz9BpvS@*An2^h1#gNz!Nm5_dozY_N39$ zuuoKEK?p~w%q1!;cJ_+l*z`7i^d395qFO1bbFvW7GV_#VJd(^hcf~rJlTnb&T9Xy7 zSL(SvYY%;STlL^8jk~kUO|1s%D5O(dk^P5=Nym%N6t_bGCm9%^7~527X3~L{pNiMG z7=wf%mVi{_4@BcH!~A>o@`)rlN&IVO2*=l){q!{TFpzR*=G=@0iKIP+bsQ0ZH2aNq zsOS1Lic?)8J$>G}k|90Q{n}N(s$V)6PX-DmyqD4(@>fY+ZJxFpTlK8ZRz(ynSLG_0 zYwRnYb0TyH=C^~>1Q`!@42TWAXl?d1PE^gZ-!-|b^>kwQgaAV-yMmcTq`o9KRzWUN{Uz$n-wg=6_ja=<% za=wllwz>C`CNCcuR@f^=UxE#pg>zy3+w|FY42m5eU_d0p5N2WQN#&K(#0e4ym22On zq+U0Ptp(d-!Q42Gw%cvWJ!LN~DQ5D_YYT##q@KG4bPMtKtX9jHvH zu0W6-BOS2BiCk&RA}tlKKubI3s#wuq@+@Izw-(DeHn||xFC1R708)-R(Lgfg z*^qP-P7mCmc~f}ye`5aM+FgHhzW@Ws8y@8=m7Q=aeG5C?@^TXuM)>_iHtUb7VV@i6 z*To#IC9V0iDyrL5L+`3H8*(TvdNBRT@Lm^3#%e}Lt-Uj*7w*K69Edp=^60!F@oZK= z-Pqg-WHJ8m4Qu>ihh2k(qs0=~fVj-NIvE3M)pEC zRx`%Tt<(aw`qZ}t1unxNQwE5ds7+$doVP-Dm@t_$4?bF~pQPSm&SvL$uro4Fcoym+ z2rOyCu2m}hDv;PA`)ponIfT>}&-ui~kwLYE!hyD#D&LUvmrVbLkN&Itd}PXUPav*ijcp95$#$TZ z_;$xOpKI?rS?gniD1*E_qRs9v8z>6lTv-73{J7zY!tl<;GV5W9f$ zEC8(=D2JRhGLnPn3(*ZQ`%Kn3R|cGOg`ItV9zGUW*zJ3s(Ey}wyL_GATe7Ib%(;x2 za}T-}8NTAk24+{in=Ie%Q&-j{hEmL8T$rmkTiJ_1^!FJ%zU0Nc` zQ$rN9e+$HC+yZ#{K*goq|4h5jk`gZ(1|6g93r0hoTzMst;@-`(r3ue_jhcB6wzBnNEN~3Q!{>wYE2D>II!_GGOHQ4LHzoztPDE{NmGpnI)?h;VbEQE*;ZdHx_^N2a{WCX!5gMJ$>l||?x~`?zvaCP$By!8ukQYbU-`=GE)Up!Cze~P0b-J8 zvB3I6V6VyZBA_Snw)_Wdmq_rQg{q;Lf>}ncgzJQBa+T;W-w@$53;YEYgGp;RxGVzw z=|3?K17AMn$%2mCic|dWZBM>8Nhrm9h?K;2ZSCAa(XJ25zAfC15kB|7zw?a*ln1OC zE&;ko>NjtHb;@sEk|1Hw*3P>JsP9M9Qh>pCRPACKfuIKJQx9xRq^r+L)7;}+wQHvgTxAz2jEs~*KRiKtdPG^4b!H`@1z!C zR$BkHHBqJ1=5V1P5faKTy;o##-0vWB<`s zQBqr@*p@<&;opC(JpL+VJUZfYEX_@v=ltNwCRit`myqWNUGV324GpF&rqU$lpaHl% z=%}sOV~|OAB?>1zJEtIlJ{uQ1=YFfN?O$nCvW78P#hg?BMJliI9_t~=LB>%j@ShDR zK;Q3~u7-nqR|M;9Y6fmlLgRx7^QG#6uP+wYhY=cQGn*>+8N4W1HUHNvlf@bfWolg1 z_)CEPiG#zotutxVJ&+~@6))WupvBi9LZyngg}cU_qGv~c?Ye#K*%bVjC(EK#n_bKJA+JZAY^y+U#ikGz+npP@}iJxH_QKaQ}uVtv)<`qkQafKDltR7`KT@dkTKxL6B$X33O2nJ%_~y^^k0Wp1Cw}{U zy1+nDm$VfKWcE!%y})@{7hVqrq2v~aH*`X3$|AkQa9 zDSqEN{!`M8!daRTNHGxY3*r9fXFh=eP(QttH4U%2+g(_y9v(Yasut+T?RyHD`1#sD z2eir;)?_qzzWw=sJC>$i&u`a;y0z~WjAz{NlOK@^Fuu;$ECv||MQLxNC_Ptxu6S~_ z0VhC>``5T({YN!c-zXyE(Y2AwOHRI}mK|2m9Wd>r^Myti(t*)wBk5koFH#Ir43vp4 z9MWx5Tfa7TzUYG|+p1yJc9#+T2kv5oZGRr5q^D-w%ZT(|mJJR)3+s_74F#6^zKfmX z`Soi~{9l4zSYC@;hPWZVlZA5SjhABE>I{R7y-nkcU2yt;A#qO2Mvsc8=?RMW)s-@uk^5z|U&H)i3pJxG-it76r*ogS5XV0!LaAMpT9E zfBY}Hd=~d_iR?k=tr9=q@O<}y@05DmQ{KGYY}sAn;xF4|U@MZ`jsvlCZ zPi=b^M-2lu6E8RM<;AeSChgZMr@UQwE>-1CEgrs|#nR8{v=I(AqC0mz@JX1JA!i-- z=u7kw0xyr*w*J~y{LivzoeUt6^@<2O?CVDZ$}j!R(OCqf;}G3+!Bo zS6wyy@G^irul3{RsSCBj)v(&J%XO?HC8q&9Eo`h$E^R#6hRl#2fhnHyV~xHil@I;bPUW5i#81pLXFNzr!c@10x5PLMgv$W)6i z-cX0_d^$h&=zx^9=G`ZfQF$vBo8m1(OXLGp0)6O#aIwMXI9c*2aINCRSJXFG|HY&i zg1Yi_5(4R4EX=+<7y-%i{?(yf$5br{V-MTPcx60R_=B9nujY4prMfLyMFakWj`7o4 z>+biOGq_aTz|=tNMV;7&L@@Smnq+_#sB{bMm}xxHR5)WWD3p6!j(wg^6Z z=@f9&W<}CpE4}{}3kaZ^>19;-!>@UiBpf!_f6>gOUc3~v{N~lfWU%JKaqgu!6`)$X zYt&?ZlPG7@qS;Va5qH-&*xNuAPdO<5T>H+~X}zzo!o!^xI)N=rSZ@YwxDS#E)C}AY zJHHD$0Xjv^faGFdjg4reMvXNMIsD&y+4O5iRkh`RXUl3uASvxdwt!{sAYAQKo_M&z z4(qufDG;E|DE20=C~Ba?jp4@=jQBjM9K;g7rz50{Ce;WELisH&+Q!vx`V-8(5NfyUd@ zj?wQ+-U>1O?Vt71QJz|%HV=WI`9qg%)n*ipUj4-=emw7Y<^mg7O+f@bo3(Gr*&Y^T zLe`vD(|_OpdSBpc47%(@m#U|{`%hFLiR zuVLBl;Id?6+plVqzHua+fU2AW;FK$LEBLlbtGa-DKnskr2z=%hObA#U^ltb#w{+EpuK_4=|@Gun2yFjkmha8GmbCr(+ z|01wbsnU0X6Kkri9??p2o+;WyLRVS)$u!`z%|6WiC zdGAgC%7xbB+0mu4w}rtK5y5slDZ6Xl1oN50A*EMO{|MX4ON6Qy>XHWAtE^fYEVR`h zXM*GJUcUP^*Z<(p;thMAr6MkiB-m|89LEG6)GA8ya;bd&8K>V8k0y=gRF0pK9`-8p zeU>)>IBC}Sa>tUx-g6*6K5dgu<|_(%YFF-_K}sA8{f1aI?(4%%mV?X%tJWkQ8yBlG zyF;7LihzqI5nhS@zviD#^lT2>;>80_8%+X|)xAKykFaCq%J_}sEX7%GNv$F(99 zfp+TevF2N=;VXRj`ej(!M)@-3m1lY4hi~X6n*@kY(xGyHepUG{9;Yd?B#=&-2?*Vg zwiXV6ts@LI_VNd%36+JKIn*1D8Y4`&mCd8rp?bivdq{YNIX}@aQyS#HjH>uI#Qs{h zfAy&4s*oIez;TYo#QKJdFJZ)Ife{0!ysj+U7khoIvS;tA&TyDgQ4$d`U(m07Ub;L# z-buA4!v8>ks@FBi8k-AH@Xqj(6jDp<49w2r&A!k<+$}92QR5}!As^fs(||Qib|tzn z54Kki3P6^%)E0CjXKv;~CjnRV^()1zIWY`kPUz;ao9lSRuouanF*>+SenZ&-4#K(?#YhA%(F*53IN0mxD3zr?KEHKe^ZoTGo~ zwy#%Qm)xRdHrD?pc2k;3l9lJt%1MX`!Q%J&(atoxE2p|nkK|BY$R7hW0YcS-O`*hw z-&-Fy6d3^SKS@r!So80gHRl{}9ayJ#*f^s<2h<5{qGCbT{{1lqCmvY2 z-|Yo|Cggz0)j>4@e;lx_=s2psaw23-lc*{;dH;ZNX0i)_k)*xli49F@=!GolyFn(w zQbaE|3G~{4CAB*?+oxqpkNy}4#kTdRaWkJFgPKr|O}-O&d&ps&>+zO1Rni z!jFhL$1EVu=xW=0TM)UKauj{}&rCL8e05N@K}urIqpNInWf1~+>p;&*?<;{ z0$~K`i||S&B^)5QfywSElVIXpb3k2cpl7i1qK@4`>-kYHQ5mh8KIz0-;xvZRGHQ;eiQ z+Y2QYoMINA-5fpsZwdggX#g_hMu35^t!fL?nd$<2;X5H-Ykr2ReWuO7fj`(HE|5@a z(1{D-rpB5tY0u>1lHRz!a2rU=es~)E3^aha=>ggm80_$3M^=;TN2Uy`)BU|+ck+8p zA~1g7Zv8WVEi+{M)PuwQMVrre#&Ut^r;{YYo(h?0nJ8m1oB&sJBkT;IM|SXzn!Han z>ner!8dcpNTwPIP<@fnLD3(;^tZwH#$tFf8_y~0~-z@$Xx5d%5L<=$CiH)}Pi} z7vK9yFr@(gfOO|<XstB& zmX*Z>wbkG}pdip&!f*i(-GMG&b{GXWo}Sr0T$x)e(pEg{l5SW)#}{5X6DXtORZy34Zh!BN-G#d zY?YPrwr)`eusF0)D|35oW9GgA23*FJHB)57N~dc;^7pt75@P{Z%zuT2{vLvTy1Ukj z@%Plc_gK>pxkqFQh1M$-7cUfs7~2Omhb#ZcG;q-p4*eLjIu8jE?M7#;=-Bt{Gx37t z)~hYcUaQxZEj~x@pJxTTsf|6%`QLu4;HA=t5g=tZHCgvZFs6tMYn1G|aPpNhnq3tf z+$ckQ)CCvVGhLzFS(CU#Ku6!5AP|1$kLphbS6$P(VXOboOiGFQk9Aq? z_~HTthNg_0qU-I>`u%7as5J5t z*jZ_L;(WWjW-IBT`_hZ*>n^W%*-g^im3PLkB9F)N+$U>&)8SpL()Y;ej1m_-E!~18l+OOU#|I2V=b9xa)%1p zD}uW#%lB}5OOpNUs=hv`#@FzRKCb<){Akuo-4Wk_Y*cOiFYS@AEAr=3@Gt?No77H# z*&Wj7|FiU{AgO7Jdq0lT47M-h_Nuo;c)6obN_3~!>#O5GJ7-5)!tcGXwKUG2;VE_*etyR2%w!2=u3 zJGc-3=a)&5{DJzr^L1&jN2A=zcyhNQ!(GiawT3@1b8hyt329<$sr89epLhcuMnc4b z@^0XMt+k9aZ7QSi=&{@lG2R(^lby^E5jnRc5f744ZUbPl)G=LF1!0cmE>Lc4*%B%WD1Q*PSBbdG8=-?Wb@v;I-w6I4&i_dUe`5pnNF|+2sH5ZMTyhzi zv#gg}_b3P0{owLn8=<6gMQ{o+u)){+l(~slg1hFx@}h6o+*FVwXJyRo=R#2jAAXCP zO@zyR7zyOUEUq5;A_Xtwh+WAqHmNz-MhGFjHRtkw)I+A;TBK9Q$@av<-sBRi!hg`6 z3Hoi>O>QGI09~WV8>}L$O2j2H(i|hQTrIQ(wUL8gBT^?DcQ`MRAUhi|wenB@w^Ac> zoYuh5n{~L1XXm5XsEXee;uN)ar=W#7FkaDRf`{7K8p`vKj1E?5#QsOq_J1tv4+GHW z{E62kIJyo?H$~3%as3EWul0$_5^9xw;Pv8q*V91ib?09@qlJX-C#H2sApF7gF6naW zS~IfTIO;TozYi%U;0V(1wGAwtq|dc`ib?=y+7o#v2loXN9~^u*kzJ+oE@Ch#m)c=a zb%F*}-zbm{^m2;4zNoQL-%nn#<=*G%-FHV#@=14?{Wi+q371PHwMQ*e7uXEgDP3nx z{t6jPX~J(FLm2*F+1|hLX{;u~HAypd-MMJal8Xy(viXW#*vNOiGJ3N=OO2h!dp@c& zhcep+llor%f%gGtg0Mz{KJU+y-&~7hKyX~MM$hr zDSkADyfxP@&G+Ez=YC88^Vsc7j@_~q^XCFOqjTR;N34kk?v4=sEhFTnY` z9&m_+h!-_bhnLi$w>n>Y+X>E*Rpiu$ni-T{>TK7=uk3fDbo)u{ zyXe=a3aSD-tPH2DMRk6Qg4F#=ex(HOOT#xWh74FnD{4Ys7dH}D0;!n!P;+KE2f{G! zn$i?BkC^{f_JP{HLnw*imfx&|+_0+3+#&in{<*p*mvB|*g1)@*R^94uH#jV9=Sh~q z54%KQ$oEsQ6C?Z2tUpE|IQ~CcbNqX#ZKBQ9i^rToO?X>nBQ#KRCzkHX2^>7tq&(?o z3)yA0=^^Uc+&}*hJQzkQEmD1?l^FOAm7JS!HC&a05t^y3s$4+!HiJ|&l-eD)~|!}!>*)g{Bes-(o;3at8&8#Q8?uLTd(0K zdZ{iQoUYyR?Pfb1vyf7V>V>0-;pAtXcYhhnNUTyiQU;avBMzS@!0kti-p%pkZi=aW z3V@~K3P+>&+XB`)8|K{qtWy1H$D8i71laCK_NMj5WR}C&_nxWx<`ijH-VS^TINVsT z^Snt4i^1)PS_ zSgChO^WC$U-D)pgVS&NzWff)DI-f;OQUyz$$J#1H7EhnDDVedQim!n%0O}tPp{!6=tLXs6@X+F3-=mt} z3+|P~?QUP0^Yz%dOTC#GYKOfpQRV0|U{n-qf4IDa%PP1XWAKX2pWB`q|Fo?-MTZvd zsfie_hx;i0sV0q0(f20Pp`BY4XCVe@wp!zMu*SO@OruUtQ{lh6oDJv`jt^-Uhf}&4 zd#zcN4AmVmXUmCF#(y3+suPnEY%;7JA8Sdjb?G)|ljlqutC1u-+I8w*@ALvl!TJw1 zw56udC#?p_8rp3)W1`=c++((pL|p)Qm-|e-uxLDN0B)`GO^I@ysR8M!jYqbsN}*(c z5z?RB{A#qw_*Yhg>~l+ka+K+tX<5|b`;9@HEQh?wr)B%tWM2j$sm|#$>u~#;Eiid@ z=?l}L^uSGMRs;Be7k*U^72~a7$Et#yDjxFF_`d3$c_&HlhmS~6q-F}XP9Fh0Kyxh+ zI;_FpmCa0A+}_pF^)4_a$9g+$C3d*Q$jz6JCo2G?+tZ`({iE;0Nic6L|eN5njr|+XYud?>1GfrM>R7=^gTBBVdF%=Jax+4zG6AhhzKJqbcDk ziKAOOxwHETIKMOzX`o{9U65VvCr;fOfmVg!M1 zA%a_8sV2Q|2neR`Q>QzO4bX4bx;_xud z$UhouBx;{a*^{Yv{bo9u+PJZDPK;k^%_;PV+Bsaj)%~WxkIl-hKURAre>|m?A=6H1 zar5IQ^;V)GAMKbPeGo5HX1zfmF1i~g=83phgspSamXV`?wWZ8wEnA^?PNmG%1VKuz z2Pcx$iBQK2-_c)zZ@=GEKb%TN2{|10T#`BU9ZE-8J#8&E6V`8Ghh;U#hEQ}ih8fMP zv*+c44jX6N;2sn*%b~Fwwj*ES-Ybj<6$%UoPIHR;$$pvDd@O^{ulS4VAM4o8E2P7& z3GWL-Z^zi2Mt&`wsmF6t$JJ3s8>>xSSRi=%?v!2G-8T|kPgnafGYcG<;XvL82LaTp1jzkt+OMfqd)^!^j{SqlC(@EeOGkE!GZ_ac z`Qqs$=dXrO5=OtiA_&`yPYEnG$SCl4d)=FK;*VeVY;Q36h1WlhfrB%x!&@2AfiS$H zoe(HSh;yA28Nb+B)5mvE4{^@EJmN-o^%*kc}jy;tQT^ffrI zuOnQk5RfC-B)FAIaF_{dvLH!8ugbg<~U3SCmI zb4r`zNeu;*CEyQ?M)jVg;yZsYHXJ=ZcmX%^EKG5;H35q9FUM&9y-0xmQN1=FE( zskdG7#aIXzoR~gi6y zD754r;O98G-U%JLZF}4fwtmTllT4jz=-z3P_me`TsL{@09Mcyn6|ct2SS7NXiq>!L zP!MseZm9|t)S1(@s~|yPao^LwQR_$)OIHP#F+FxE zFh8-bh@^u}LT$Dmbgg0eus)3`LF{*yhuXiI2(G7I%&jnwRvoW@?RJVYb;UMzhKTqM zdE2uIJa5I7a;ZH>w6Ur5LvWb6LpSkJOpmHs7E`#XgVYzvt~bJ{^XM>QwglYw%KBk( zDc;hg6=JXZplHFP_GPu2pA>Pxmg7=Qzk*-ccwPN^-Uk(Ryx9(`mQ`}4+5?oKj+V}ar$>B^ z_m!d?P9K7%L@DX1!TeLjwJD!&F8BPb{G!$=09Ijw!-N!a=au9-lB_%gkg85p%VfRl zC*k9lCh2$HSM~IvF~1%5iC94oairzSqOjpKS?1xLjid8y-SDe!&^?G(Hwm_eZ-?yh&rF}O?@e%6npL9olqwJ}73 z+UxLi?m@$e8?)^`=o9_C5dfiMAp-q))!9~~cy9@Xj>&WU@s2LZ4eI{}LHB8M8AphiyWI8Gwl$Js7+&g(E!L(X*llHmg$71 zBhD^B&JjFjjrbAZJ8Hc=VNxF$tpPfC*%}ew(qrflznz*uz!`({fwE+|lx@tFu><8+kxO z37s!EBz8qZ%4&JqvrHIq@TvJrVhex#H+@%Iq4O_n&tWoq);S%){7Q1>C-y-S<*Go2F7w+wwr!tYt*x+FB;@ch40 z5Yz$b8A#(aEVK<*uxM#K|07fzp8Zn~7nTQMd>p;jGXB<8)$#|w6o2`P!S&DROn<0`x#9P?9)39CPJ zi{V9#G518g(Hx@tU35t;ue21|4zCDrnTk*g;v7f}D%n~FXLcOVTK)1t$imx$xW9ab z6Pw8TB>d7QYRP{|RAu~OTaKty+=)QKpr~3Ryg~84JoueB{7%9oRC&jg=%c&nh81v; zxYtH@*Y<|ezLaaQ|sxsl2HbCP`T8r1GdR2*mg9pmGNJ*@&ZC{Q67u6U;aMuK0N55TI0dt`Bgo$yx49l;w_@j;v*_cTcp3i{3yzg?)5Ln(myNM@7F7yw`!3>Uj1rw9pbcI8)nrap}DkUs0LW% z2n|FYv}gX#WSkyjrq>seJ=xm7QGj_s*m$8g@{E#R(LD7Qi-U}+q@A@2mrBWx0_YC( z_H@oymm@N}OCx)+`v62r_%7oJa{~5;kTE=iWwcWvO7iBSQ)q;wn8}eqr?dXts}9{7 zwd~y%2D%m+FKfj{kr$dh*=ilC;m+JM}k`N@AqA$W@1TID2yTtNg?1JYx*?Q#LX3T6TWLdDdJ(sSm%au)-rwY zvpG*8tSOgm?m<(2)`4x%W&jG2dC;_*x1>yXNWhdb;tY0*#?C%iff^nwPsHnGIXtq# zNdnXQ)dDHwYpvF6)PN$jr|K?}TJc-)&W3wBeE3s(0%b=QYbhhGaTa zJQF2M+=5u_$ZDhVdcWS}oCBV=iarp%%fT6LjyP%syW9m?J=?#U)k1Z{=5M4`@oLh6 zmXv*@_@kn^x~y()(Qp<_2t0n@M%?CL^eVz=_b}L%yn1!`gjVR*$jX)w<>OR~)e$^Wt+~ZkCp6(5gx(9wE^P?%Ib5 z&1zh)eFH|$pwCd{&$HTNKrV96l>-(P157}3)u~#CWW)8q-`nw{N^9`6K8`mSqrwlW ziCcfJpA$}tcv|*5SFo!2(#Ab?W69yX6DDT49P$jX@W$!_82Tgq;cvwR5g{Bnw+gyQ zh2uQ6U{hai25$yjj_Dx?aU3gla~WE zLulF|k6RBS!Q!B8!akhPyVZMRA^ zx`8Wl37@qGz3A9^1^2e+Q{TY5ayO>eN=(cTo9yA+)kBm}c(qA>7j~UnI3i)oQ2#jn zJf37OzMI1G5*2zt#^X`;2DNFW=a2iJWct@9{9;L5(u)1_d9`g5_`VIpE7$X!Pqt3g z7E>6Zr@DNNNYKIrBw9g}_wKSNk^i#}&)~fd(%w5K;z0~jvM{~?viC`}sWBgRnM{{z zJv(4`BaQe*>Bl?$>(fLpP=eKuk7wkr)Rmjl^m|%`ukP{a{g$;glO4xWbqFJ^*RbCp zNgtc%6i%P$+!mt0!}s%JdY35%)^r?X3+cu^EgH09Xea|2fCh*ZrOu0^xI6rIOs|_v z>1%-d^`yvj7c=Z&34GR|$Kxi3{ZLz3 zBJH!=zR+~{?oix~Jo)iJkMv}UtqFv&AZXoPP<&ITya=Xd$Q_9(^_|FDUpS&X`TQ(V zLEIV3nf=86R!Qj>WJ#Q?&2F0cMv3_93Q@3q(uDm3H>*J!vd`1rQ#BA1(WUd#0wS8M zS^SR4p7+i`PtK-(+^~fi0#~mUSr8-YtsCf;SH<3no};~Z@?W1+^^D~EobJ+7@k1$h zc~D+N;lc!pKQABoZp+r$F|T^gWya)iNMg)lt%-kqF1mFIOP0Mp<;Ao8@kA0OF+Gci z80fbY{4@-5_}ZcyZ}iy2)Y5tOMh9e9pu%$An}N|NsC%^0ZcBjR8sc}Gcm;CKV5Rwc zU#MGZPgEMFq2uKP4PLe7WRNEJvps{TVwgOxftfqJ!fcD@frxx?GW_>@{_CMn&R>jm z#=hY#nYUR(?~wCCfuqME!?>l#Z!2RueSVE-M7wukebkoBbWY45P>HDmNW*(eZmBEC zAJFIKoX5HenOUIgP>!T?h1$+b@e0Nk=^ z-oNnAatWw6HHHP)acx%c$i8iF%2dgIGHF7-c^|>xFb>aS;qr+?#yNVVuU)TvzBtPV z3!pU?u?B9aK(DQ~`93GF#~0nMdPjcDnB*~NU01L0%7d+cjV_<4B$clH@EhjLNDDT_ zqii}Z^K1v{7-N@)JLhMPvx0I#F+ln|rYR?9p6%;Gnu~K}6gz^xS&)5KJ;q@n7>}9V z!4Aq3;a|svk6te9CI0L48pR?A9>0c_^DqA5SR)%xBQ^szM}Bl{cO-3U?8O_ zN<5KZv~%UwU!9#*ezdi)V^(sB6e68)wfUkD=c*3v{*Ki-Aa6*|B+twMWVX!a*Vg<( zg2zm2rHpe^GEaj056tu1E5G>RE_bH=-f88_kBX3&3z4}6qIOy9yQ?_aAK&cRXu4a6gHpa1o`2=6KdVNTj7H>dDg4y@s?QQw82vvZe>o9c1Vy3}raT2{7Z!Oz2xi zbZ{K3*vy-H{INi)F-?y1)3ocywMGvy<;|~xTq$n%*hhCsurLq3tSs$eX2AoQ?GsD8{^7%9qVb|pZs}}R2jm2w zdt|gVABr~$qh+5?Jj9*MU)b{NV_UQL)2*{q6Q4c2u$gh41{{Nbd}#QLcL&zq|l{OFg~AE;<*baF;| zulN3K)MEplU6o#_-|i(Nph>R{NdlW+gmnFL$p`7fEwlov^CJlJh44|G~=^6@QIjBJBj65 zKtrRhnkT1R_DqGaoP`d`GD!|Fxnoa zVW0i(-Q}y?LGfUS<3<{_VM*3nKtpd(J z8J_YypY)1F>7zrO+lA-ek>|-B(XzdO%rdY(D$mKUf7`p)-{CALw`C>6c#wm%M3c_A zwX)b`+ihc(jcfj%uJ7@WaPxi7Hq*Sh0=N?N8kJFW%$6U+)-d1&lkaK%o@p;9=QG~4 zc+x(VS7G_#g%_DN>khLP_qt7fpN5Nlp7ixXdady~g&FwB1z6daM)<;eEsx}Ob|BJu zLrt-2KQ)h_Z*4QKTX&vZhn<@go6+P=f?XoZZGdIT1;x3P8{(o@jZ~rZqc7zq-bcU971Qzx! zNE3S(up@gmmeGf08^A_T>SQznH084#^J)kvhIV+dJ-bhps)tdf0-fl8tl_*d?G6wi z_Ql3l&Wo-nrdhj{xyqOMhN=kba95KM$+)4zO(r9c9>md&shtMrHd~(}H;9&)pDP1l zj$G=YdE)o-%QzsJ%wt_^;L9nWlnzw`?VIxU&ooR%f^Gd?R(vRJ7-4m+QI^_g@FbYL z=HkogBxrn!-%Da_0oRprSRCTUkOv|vEEjNf zP{CbT?#yz_{B-DI>;l8B`z^MCH{|Qv_^UR~`ubV&B5x}$hBrQthb~XXekaKjHkx^VBo#8!2lS z{vh^Mmp4y8mpU%nk()pld=77SiGf{~DUbezhDGgu!--9Cr3b^48U+dOO#G*i&8jRN zu1!%^scO8NcZhBv^V$!)4b)kuMXD?pT#rNtv~cxVCOYv)$lsHnz5r$Ap$kO^f-W$f zWM;47Mxptm@LQki*WvX?(GUj7ZJDUlB9%RCKKLuT34^?d^JZJIB%Qs6J#;iPvYI{8 zL1Xjy(?-gFp+1v;6~D7wHaz4WDxdL+IcWAOi!uK~>L(HMb~$ zAXJeUvctP1;lnv8Y5|WZuTL)RNhIwU8U?ec5fkboM${_kZ_JDZsV7Tq4@GRjqhQP+ z%f|Cj{BB4^44SxXs7M&bAj9~}iyk@ZGc0&B67SO0POgN#q z9bR0(CCtrg#BklBD(DxJ`4!wK`ZuiV&HoI*e*Nj^mNhxiLu&S>ob0`fXXzw(b)0VJ zzetFkX)q?t>;B$To70)kWm%Y3v zhi@{I!wm%Lnw`Ym(Bjx%#5d7+q-72EG<)Sun22v3j*z$q^?$sHI~NVZQO+5^r|nM^ z&i?d8f1eS|(HK%|UV85S?VUhoYaTtts(-Mrc6}njmiwjBr1f&{y@=8d~3a*@| z)#mYmO5C^w^O9~@w<9syYjUl1lBzJNM*h#<3&axW~7`+{hP~PuHMT zza*EEuRZNm(~SZn@$%beT>U0jpAP8j>B)D0iu@aePYE>b&Vf1|H7!$N z$H}}zu3(PrJ=sg?(y_5U+4G;#D`6co)!*Cok=v3T2VbHN9^B*($$BmwMS8e%EL%&3 zH%S3n8%s&VUBOLKp%3u{=X()(jUBYIb2b~8144675-VLgKB8T%t$v??e?1JbsUHC; zMnV2Czh6eUf3oXHqd?!KdF4;4i!G|?Ps=lo5gfK4srG+7Q-%Q3m|7l7*R@zr(|+|6 zBCgJ(BY-E2KC+RYn3*j~L56M57|%Q2Vfp4dzCDramI`JCew5=2@n~J+m3!IMmcb6xl!efPO5(h3rlBc8A`8WTN`pk z79V;U_H_Ybcf)kB=qJNFxd}meL=UPOSwy*Sit;oFI?9C!BgzLI?RzLbqf@yO8tA?P&JmKXmkO z-Jnmcsd-$Ocx0KoBj{fI2l1O@&G`T>d&@@09T|7#q%f&SbgsIucgC*EpQh^0Ps8{n z|2bbIT>_UwHjz`kbtSI5`F?}|&h=yzS-OWZF80ZcHyk!WTjkXcCY^gnhl^0-$>k1R z%xZ;wxrX-V*k8(J~W=!voVD-t&li+A< zY(a8hir6GJ-rBd}xJNnp?w)U7?1l7o%w(gU0He3;W-m5`Zj0-#7aIwEZ=!#s{a#T^ zs`iI0*_>_a*KHAK0{1`YoIRlq@8;;ZJ;0Jww0C)5|9A#T?6ZF>@UA`K#-Y$a|4l^3 zn(h@umia#`)OVF0byuYURH5~_o4w(MRw3{FmonE#cZSI)TMadJ{+<#1WI7SnQD$2= zPw53$gevr$_etpB>b)JIly|}KdxtIZeVTp@B!a@0V@KlBefUqFD$zZCf8u>qE-cqR z^0v$3)#N1fyB(8DzEEw8=R*r7U7lh>yCmmRNke)^NbQ(Ro~m?IH5$C_eSt__wPFVT zjRRCk{Yx?rzvD#P_4u6Yk=%bmAN3T;B{em28s=wRd*Jl^!j^vH8 z(C!t+LKn=dq5{UGGEWq;46Pt6IX*kuCr{$5PAIfnTAF6q4LhhI%u3Qp_Eqt>dF_dJ z2ev$A=wm|X4Ie(G@D{A;8l>O)@wHTAj!>cpJ079Ch3CQ5pXvO`0yiY2E2*0*WC{PaEKPjzscJ?Ac^Vs7NbTM=@vrUEb=O z@&hi${MjS`4-^=O90Gh`wk%Dg*m(O#-hQqofc-e#?&cdxIX?V83Y#y})L23}L8^N; zjGcG859RmmDv0(NW}L%4ieE4{xPd!0)SS^it}e2-ypX$ofT~zwOFClYIds$SKlbcS z293XXNk;Qx!GB@qo=_7VFFJJj$eI>^z!oI>BWqF~>#6ivoJB`a6iAh2=LTIXs8#(V;{9(^W>BF<$v&iJ_<#Ra?O$)^b*-v&h(I|H< zd>E_bvXs?Qy4-|lR@=ko3`F>HF6$6o&=%t}FIW5AEtPJI(G3)-h4hoUx->Or-T6J@ zqy5jb3|+I9pMC?OBWISC#m3A59#Gt5tVNREa4}c0mhl4rYKU5Auj55b)J3h^gWw74 zRs>-+lZw)SF7=*IkIoDI~Tc5dg^yFUH zI;(xzz~|}$txL*MR4H8U$hcry3!nxqJ&C}^J5q1>sO&I3iQlR-=UAJ=^CM1A-c||^ z)HN%^_3T@z4E!Jt=l`OmIB{+kf?DkzYFWz1`no(Oxa&Phqz%d2pl-1ans0x&WG4UF zQzd><+=S44=401jk&*?tv?msH~bqVS=9H$$De1Mol~{rR8rH5mNW-FAPgq4)cgjq5%719TcxEgg%UfA)cRq zdLTwL9}x)PG$f!(e0v0s#p|H5|2c4fTS>`rs+Fw265y4KdfEJlVa;)>rgSwKePFEz z27^a$R8Q%Ugd+l2>b;EzbG5KOqjjiZNxS!e_`On{!`yV(msNj8o~37S7<81? zZ@;C8YA(Y7&Y}GwU9DkSVnJoIiyDu&Wf>IUr~teL7a*kTCn{m?6Zsz2vcF^>qCitiRk;DU z35AJbjeyL|1zhH>I*V(55AN8}h(s&()@*C*taHnsP6Iq)u#Lt-Mo4^v6>>A(%@&Jf zbl5$KHo4PZG(S`x2~O~H0f{jyk?7|6vOcOaCaeZ? z)Z@?2KXmenk4;Vax^-;@oIVDqhMF-k*;km0v!|=+0L#mkD8gsLj}K_=`3BD=k873>b&;TqtUU=NH4kX z?HgtTTa^ImAXclHs`kfZQLSkFp_Q>H@fMtLsQG8?ebV;*5$NagF{(uGOHzfMOi!;g zZ+zR1u^K*d3wv8j1)!IYir98Ra*{iI&0NGT_aA0Nd|>7(=K+9+j6|xU0#_qpnT&`o zYn|RXaxLa69s{V`X*{@YE9P^iQ0)l}GG*a;!=|cUh>vdf79Fv-;KsVG7HRoDe8N#( zr24&-BU|KyK@UXue^^(l3Lgz5br|*8k(lx2lF5Z4AxBB4Y}9Ws6%CQi!aSPlcOVKY#4O>RC?`MJdQ36H8f0YfoXVlPYT>gq-SaflcsGRcjw(D1{zW`gIUKwb+P?k z0QV;h=Sa{`J8E4k_GJOp&n9oITaZ#+O+Tz#`hl*KUE&=j5HqEv-1Iq79rxdmu=j~V=--#h%wv^q#Ve-S5UWzxEa z9522Ott*4c*mV}e6%@R#s`*Wl468$9TS3{N+wjPR5xvKfxarqZpvvb&ofxPA5>vY) zzq{9IH5zt2%MZ$qj`cp%#-|KDc3*@zw9@11MITQL#{8GKafTN4us`n=hWq5SM*m80Qk-jn?2{veU+5QBC@a6{#}k{Z+ISISz)+U1+YtJpoP%kAY`mCGl*^>^0 zpX++COsoG9+I)6v;=0Zor9`Wt2|azd1zRd%?!#eH}&at zv@Z&mR@A}@thc|iaGk47PQzEDVDG{zR;`!)XKL@}CEDWIPX-<1cnH&COSU<{$W4`n zaR)|In1S7b4%`kSL)@~Vml-n>@sL|*Q{Q#9Tw^@Vsj#${|45Vs54SiBTlfR3DmZCK zk4XZIyyL6`TrU?XhYeJw_)KV1m8Bo(cFA?qZ5TM`G0N!KJLDq0jrW!G zVOh4=swQ9BF?Uxe^V60D@&?rd4kVwofl=V-Jy&u~`mH|>&c!}f8sbAY1M;bP==Tqw z5-7=m9USY2nFS7F#t6zDdTlT)Zn<2RW*q5Wi>lJ07_R8C>?D%en_3n8SUKK4Jy02L zNt+a=Wjj0DkFn?b~u1)%d zk>Qi*Hq}+ZYw@bPoy7kTZF>bvz&3ioO6*-)8QSL(NZE2DEiJ7ZOg$W^r$t5v$qR)5 zbtL)3b6pWF_v^b}g7T|{^Cf02Z;Y)cT4)9;(J<05?QTJNJBN|pi<+VfN*HEH?~D-8 zM%W!_vuy8i4iHg&gZZ?u1pfsiyG;`@gjJ(e4sg^L&?7!k1uJ4O-=L27s622`!;LVn z*jGX->Do87KC4aGn^%mUhe^8T{r$SLY|fGK+iAAo`G7l>JhC?nICqm=6`i~vv9~L9 zle0~w;@tWe zs5WcxPw=umwJDd+Tr~*HBFJZh+i3c(NBaAQM8RjTM~$9k{L44BADMX{*koTl>R9c| zT~cg@Vqi*w!@U<2gxmg6Y53^#=xekfXVYymv!ciq-&x1Iwgu-E8<5C1KjEmczifb& z>ndEgFlGM~k3Z5FQnE&lg%?!A<<69YRvQSHEYqLz2H`PX3Wf2MIBT32i1hX234?+} z!Wh`;jBT|=@d)MIp`oAAeN88v{7{~TrAXn3BqEu~Qy9ZK&K*vUhJr zCAEX~!?_9@=NNyB-DcnQj{G5XQ-ghRL)Fv6+%%u(HqIuW%Wu2>c#QW4KRXJMi0pm& z#ph}7M78tm*NFm8nZhsDy(#0n6g(U*#RlpuPjsLD;$iGZi1#x%UPbDUfIU9m<|f!= zF8ZSR_?K|`jT&ldP-2DSb#82v;;I)?5kK_mRQ|%P2+~Gf@hb2T2ec;{Hd31*>#6_E zu~mjly(3nCT~ZUSdiCi~$*gIH9%4E_^Oz9?3h-G%La3#+)C_Y4d>(f(V%{Icc`qju zc$;CJFf$kgPGarqQYxPaJ~;Z1f-1%Th&Df^$Eo6=pQXd+Xi}h&NRICE#fq8&TfvX4 z_?zVF>hfX&nIo^!u`wx-<}c9QML(7m{eaQ&$1sL3%(6|$<|nQ5?%b}64d9qqffUqT zSk>riB;62Ef^;A)fGGV0=a#eMc9e=I!sxxzb;#in-$IXBa{SCqK)3`kQb>E*PigN4$@l7Om?(&=bQn6j!xon; zzUOybKFyy+Z4tE47>6vrb2&1iHRmC^d#l5jlBd<{smRu|SdYC7J!iLgcw~X1y{>ET z2ig1FRgR>DdrrFd62yDAu;lee@S+nnLwZ-!|06D^W^Q&D3tF_ZiR%xW62CLcOxCzq z#5endu!|P;$c;`;8YX)e4NYfA7GAjdw5syK^Nh(KKC*nCLm1QT+j}QhP$OxmlIk3X zUhT0cY&JbRiK1a#dtv?jNP07**GcFB9bw)Mb_{dhF*#-ac}A+gfA3elS4SAl^~0sL zBJ_B`lhn(^@zd2$8+Al%(DI837GDkuyz5EV>F@>d>$b9~+=mqS$WD+`Xp8IdV_?^BgIt%>CUGO9}&LrP#tFT?TT z;e$y>KhPtw6SDgGa?#0=LqF8c54TZS@IOi&rO&h+DQwxj2d>`{r9SD{gDnbh3W_5z}ghdQq7SxKV5acft% z6AZS~uV(LWVPz=)k)cv?r%$<(Pc`19-ksaM?{;P4_98MJ?J=aS=8+27?yPL8qmDBe zrNtBgdlR3XOrdc_lTi3CaU#YO9^~E8QR~gQMLN0@8-rbh6E8?v zKw{Q2=h+{iHcBfA-;OO_V;-vL?fs_L$jIO>rP~M#RuIe|Fk#DYXq$f!75z8$4?RP} zc)D2W(4Xtkfks6*pfw;{z-itWo;Xk~>u-5lj#ER0J>w7N^}1J^iq)G_^QBmpAYe1w( z@0|oh=^-G!2Bm}&h?GzglKi4R=RCg8`+n;?XPtlc+6%H^=iYN)Gjq)~bC(yy5G<}7 zaCDPOL)pIY#QJbsT!$PO*)KVMNcgt2sC<%n%(|<>z-N$)U-_$a?saYXz$?5o3lUWC zS-cjBFOgF#XmIzUMf8*JQ%^;mhC4~>SC!-U&Bgg&lFkFDh|d;%EQck$7(GQ`haYBn z)^Wd6#orkhuTDtt5c31liA7?q``0?G-KkmILXL-bpsOrjA94C0z4ltwUXgf>^x_L^ zafk5ulX6mM-(>jcZ=8QnBb0m}`X%TnkGD9Dpp#nu*nkj?S6d^LJA6N>e6@ah1_bLe zM6p)RL?&v;?Oa;s9!K89XNnV|L(RoyoyKPCWJ~cnD&v#gLB>6%>e0mICnE{>x^^a> zQqo$^8b?E$)$!_v_=rB3&BAP9`hr8p@*`80$L#O=1bljz{}F7lh{RICSe_i|7dBOQ za-MgnNUbgd>|})oxr~*pdZugI4=DQmXlEEtVx`#K6vk8dQVB2TH>yca%rYimz*T`V z-sc+aB85#cJ~=Pr$clw#ERy{3JR ztVef#M)y;+z_<+QU%Sa>h0esQkT*KfQFVN#`Bj$jj<#o(_Dnj15y!iO3b)Ii=T4!V z8*^zt|H&3ky$*5TGO?G8HTIHxM;q|K$A*nR+!fzM*zuc2-!HWwYLtJUFJd|JoNT`X z<9RO>6}(|}WmDrSKyfFF_LHkis;h=7Sdi0r=cq_Y0KslDjo9-VJ4{>Tksc~4F+1si9+-)Fo z`R*}5z*(1oPAnv5p-E*dvX?5oqbX~G`Z7RsM)V5)rrxb_e1LNM+s zWal7?GuC`gP}6=gDKWd39*Rhv4hRTvuC8jFOP$T29EELUu#qNhe|P*44Mo{YrppX- z&hP)|U>$$nG8LC7!_4Q^FZEC&=-Wvb87zR1C4=RRL}PrPBr~%#%|72>yifq}S{`|h zngR8^6MhIiS`>AW*)sO$6!;mFaruFEcN#+biEzR!cI>%0MT-fbI8}^= z-;fWTHurrniY~Qn4%wZuftz&Ww{F=p-zZC9R zt>I5!6r~k#)nT{?IJGIi7^#I7;x*3YsRp!n#o7OG+x)UNjR;Ph{PX zXR+IRnFxziwcn1@GYTr4euD|T`jy{^`M6aV+CX64^Rl!f(l;p{raW!O*9APDJhgLQ zO`(dhEAQT|s(&j}T{PtFKP7l!(1fm`ryTL!L2`oPAzdip(sF)A&c-c?fO~FQ^|{eX zMdx@N49)!f{H{ut22+mqqFIOx3+E4h78Qn*9Yk>AGQbsZ&i%FZXxhAUN1(NSFuh67 zKueL#Mq|s)P1foD_$y{^U&h^b66?ZZ|ODhWW?^R~HvQHzb4l*yff7(}m zJpW3Qhedb&{JKjutI?xrT|N>@@qAT(i^5l#E3v;tvs`RHxQdGQc=$6y4Wd%~-If)8 zNK4B?Kzm+owY0BQAr9YZ|Ax+N8Ai-E!cFXS;{M89pNr6vgtR(Qu4obQxKzC%?tz?( zcGbeYZjx;(Gm^B(Rm0{Zge}LZpKkzxOTq~OkzG$T!_2n|#2IdztQ}1ro-lxX^7P6_m=uw={K(Xl`oyU50gFIygJcjf2YUj0SOJ!5bEozI-VbI$) zdzfnE7|m7YI`765>cD~w&%0N}z+Q=|aS!I%3{E+fZT!WLxYs1v6Uo>>Yj>5D4UU`lI|d zmDHx#V9>(fus&EWgf)^2>$iT+^t_pO6?FbB=WPXsRn*hQl;BMMoctpN$utCPPiRB^ z9F!)ama0wSol^CjdgF7j`YmbpRzCA!gza3^u6n-%D*WLjw9-uzvL0R??FD?K}zQ7oAz!N}F`y8civO(A6Hd|$X@~PwW zSj8G(T)~A0#?kJ^;E7S|r%`y*;&K?EvgFU=mMiXZXLF@PT0g<1-3=~WVll*FgGkN%+LEBAf=nC6Rn71cjS&>`81U( zVLv&(U1HseKYrK*k(!R=M;!(yhc5(pw{BR3w^=-e+ zD?#O}by&UWqeNM{&I_S@y&q(h{y?|CYL2=Z@V;v>4z+dmr&NhwDTk9aIl<2p&dKl- zgNqi8>fG$xL(O4`*0aj*GQnXD_FwzEY@XY9huYGgNGo5uN*%PhE>)TpaYH2O+sSmD zH@vaFvQ-0LVnE#P8gnQ8ax0}7-d>*miQl|mUwJ==|E^S z()=9prnW$zgZdC*^}FbHR+E{;$)#X|Mv`iI*Rv8eMna~ob7VZ8+Knizzjjy*wn{C( z-Zx~Z2aF7+Cte?`J+QUAzx2JzYPWrY&mI!Sjmy=`iS)X(E|}EySu3?KW#oeBAC%6| zxILwTF32o1bcwy5cz>JvxZ=)Kl){`M`sXAu-H>VS25N=dlo=%B<-q-R)?kl%ZZb9q ztt<-O^nxmfryk_1Q%-o}i1pdnxI>rV*2)@4!Nb6mo{a@8giL@)wmJDt@3vyWSYcBj z7{^JOxRnXB>v^YheCi4-bv=6q?qaBAAG$x)>yT1atl2Gf2e0>X$~ed_1vR0w0$Gll z;e=-3!$!}gU2T5wZrGyBsZ4jDfLBzouDxk@cvi%;s+j9 zLx~va=fn9O2M?;|P#DW4Ez8VcGI1Yxt76gn`Es=ANnXW=9+qTN2+kBL*jWH^Z`MeU1Yx=h=Z|{5bp*lbAKm`xBH?&1BO8r59{&{T)NZ6SL$rW~ri z3R>9zROOj{20G>Msvx;>-&;`{{w~J-0Xz+fpWB5rqMQnsL4rQOaik4F_`@bVq^2~o z36Xc5U$btK=>u6Gl@wO-#6uG&{Asa~&hqD}PXd_-3kEt%Ls>{rvcr9&w~>x(6n zW?gz%-w_EAi(FW)CSKVioa%D}jcm|g@i`U%@TAIdGl7k_iUaS=Vg-J4F)3{G^=R!Q zt=6P?lX9Z95sycy))z%A8j<3K6y35|_GwnB_cE-7%CPgF`kTqyxMRaJE2^~TEF8eQ z&G)dH|C#)nCQy40UjJRp3a)8zx+s&AZqPQ1YaP4-z+h@j67m_IS${Jvh!G=F8uMZXIr6g z;o%24TXRSp(S3S&VHY~unHV>vhR*$R>EB?BSF?=@W_G;hYN$(Dqr++akmURAQwX){ zm8%Y&wa`7&N3;!dN6QNEbT_4YSz?5FT@R7QtByv+?SadhZId_3{Shv~VYhf?(&K33 zi^ze~jFj`OFg-uH5Uj}TTl(tO$#&}N)p4u}KCjN~>?qX))P(J;e9KF=#)tJ?Yu06m zk1onwa!j0FN(KgF!_{_kAcCw6N0>!}>}lWUqKH6to}~qW3b8al1bS9%w8yKP#ZQ%zd&^G!tL;Q*67-epY=Jr792n68-LQf&HL7Vjy6h*-sdc` zGBfZ=2wPRucos5fStj>fOBZ0Osu9eEG;-YSI5?sI_YQcMd?r*Zd z@f8&@gRnwSJh)5N9hJzZsAZJ#)+1LwAoI+Jv9^%4A8M8K!%I1Ftlq#tWFqJ*%zfcvb*VlTYKQ~dNw>%5z;tlR zeM@b4F$r#FN{sI_beQ`UwA#e5{ZRNgrT(LS(&ZzUo7i}XXOzM-`n!`6Hkl`eNc1UfA}%aQKvlP=MSmRm!PReTMYgyPg@7T%IwuJmopODMe!=)N_E zHXg<7FRHDa^Gt1(Nd4v;Q2$$|9h>Y1q`1^D!;G#Xa{1m3DJ_X!P*8sr?Edc z7hN%|xX)%MkUGG`@OEWzu<@yyboUSU*nx~tiXG`w&X11?di_lD%Cf)@cflPQ)EhhX zf(oSpeT^@Vay!s+-T0Yko--qnXZ5u!c8X&&yy?#lQ+u;Yqh=%JWnN=Xx_SrtH^S`g5Mv%^56qsL>z)OzkW@u0F> zEZxqXZ&BL(eSq6=1D^^w^<9+aa7BV3?uZ8hbW_Px@Wzve ztyPfu9cKaq=^8Y&WiGPl=@V$5B73*;9f$WihKzGEDM+Nf2n--@3YFNB`U7IvBif!d z8&F}OaFf4|DqYS7WmgDYW~{VX!~0F;8fn7eVXx=_FC)5@2K4oWAdS<(Ste z?x5xSjE9P`14^soUw6ZM3K)EHE9Ix>wi7@+d9!XD#_n~wBuV1)y&l}*D!1~f)tKEt z#aM$R1bfF%9x!1{ekY0?Y(PW>aIJ>-_Xldcrj#@yxoJq(#319XorLs~&fb=2f7MIK zk(Ox7=zKO%G;C5+2Q^2gU${ zl=oUO{1$2i+qv-o6t=Z=!SyYwJ2-tGAKf+NC&kMf%47TCEO{V+a&*Kq1C{LdHDiqA z$<%Pz6+{rGdTrX`OLYt34tFYgg4ON%Tzs=D04(3YsrQY?tK0T;A3MTM5Y=JmRQ$cK zdXD+f0=T9c1GX~@lG^Lo*RDf7SlpNV!`^>q0&aQ&l*x=u{zi>kH>p6MI~0ZHbW^=| zt)hACJ^;)Xb-l%#j$PGc70Toxrm|#>3+`;4=NDW%|1_ir+^xU{4)qq_c%bj#@2zrn zxN=+3!pcN8Zf-zrc}L^{&!c50(iraXNEqyucg3o}Fu=67^>Du9VP>G`SZaYc)#}k! zN_w1oFjxNtUv|RkV&JiDvz^3R+5qw70pWE}@bWaY5yjXYWF6uCdTMz(jy5wXH~msy z<_BB*jVWu}FB0hA@pg&^-3laA@974|5zBVyJMf8er14G;>cnF0p{V0ki`QdbQ81|Y zMFcFP%KcuyJ%QoRx&TFsByuGmg+>~3o^gkFlhQ(c)wOj7-MXn7NF@j0-Qrf()t$q$ ziyHi3`RQ2LIimK-)xKFBrIgkvUh!lSA8j)x-9NZ5hrD9)bv6_wRa|i&l13|ml&NAAlHtOk5{Qx`L!GPy3i!*j7MGCaT)&PAf}H4e*sKlp;0>P@m8Z+LZ25|AUiBaim)@ZG9c%_bBL}o2h>~%Ucq?81ja>c+yAsxt1MbB@UMPd?-l6=VRgeC*Dr+K#-m&mzMd65Iu^kh|>X8`0-wI{ZCpL<#Wjst0-nS-1y!ocbx)c$7J&g{$X|XgY0m zzooTW8?O2zk9Y6tsduT%!P48*}iJV6N4{bxob25G{YcY?XrQVJbOXl0~>}m+ES}Gc;pbkmp}4Rq6YrT#7p7uY#KHO&Xa?HRF%?=>djE z=O6GTRGP^U&R8RP3tLb7BkJHbN?#qw8l#rEI2>W=56M@gEH(HVUS&6PguCoTtNthL z?RY#hPt$aSD4!Vh=Bl*uMo;b>q&KA7K4 zVj7|OeC!Tn(J^ITAlRVTA<+CBT)jhn>U*NyHb>!)%loR+=4d~Qzf_$IZ$ifJm0K?D z_n_`VxLf7jwQTKGGrCdsgwq!OYIzcu|9~&{)DR-)QY)x2h9VOrFSO=P?{=M0XNu^M z2CI%zHBiC=wOP;Auu7FY{$-^;2l(Jo&_DtFHY6nYBElZb5iUUF7$w+r(XVn>K?~C4 zkOlmogFlL}gOB%7x)u^9%M;cint4{sPII=C$R%%~$6xqufvpvltnd?wYTh!U?{eM5 zj3&>)BR4j^EDk^alRC_HV@%*Ksw=gjV9mlCD%#uU%=zeztPI|>uj+p2&>GI!eNuBC zaLJjyD2*l4c93b8a2svzW7rsdWe4{RrJ=T_rMm3#&L}SI;TnSaLX1G)a83J)?>3Q^ zW$@6K@oQY+>N90-Kx}9GB_*udbh4UmQD%sD@54xMzQf6?o=vBkQ-=;e$l*1YZBc=j zV-C%;A`Ce{3lUBlvf{6;X(fGBu^a1IR7+Ygh}&@B=BREhy8+8tZ?E!{9oBa&A6iUq z`MuLb&QX^Ini_p~S|Q(Hp{thohMNr5Yz5eit9|xel(I&mUdYEG$M1lj9T=BQ*1~xH z6ic1or^6pn;YD`u?2a>3vEaiYw5yQIYFEzrrO|#ExF7*GA*Ryik7bLlh|P|nSnMB8 z&W*#rN|@j-0}9t4-XkXuGddr-S1%1sZ78E#Z2Cv%O;XZV2#fS!$wHj8k{czwXcn;w5 zsvf;w_2Maz7@=wr<63I>*9T3D#<>AY;lXthg2dP=&h96Vb2msQ>@tt^6A9FCogGEw z%Y@vIN{td-&)`zAy#1Zzw@2zbkg^nXAfwXTpgDu4M%O|e`yFuauE#7slOI638g$^} zEw~*xfg-oSdQ|0dX$qo$Dl0VLbg&MKas_woc>Lav{a#pC3L>)C9pjdjjvDrR_bju4 z?y#BnkM!h?ej5Quup~yUZ_RBf*6=zB&u%%bK*l{*#8xed*N7z$o=emdJDR3==g{L z3>S|tY6$b+U!%MKWovP-BQ7j4$Z>^MSC3(oo#N}?u;(t%JoXpw-@epmQVTk?ndMQ* zwW!VG5n#`>Nei<&DiP`qy{+Wty|{w;+HOyj%k-!32T1BAu?T+6si$r<@PppAsItdw z`16R{W?i%7n{M-|d$Un@!tF*HdUVLnvT1g^yJs%}VN}SGx^HG)P&00})$jj%_jg{V z=EG!Y4PCo296SDq@G#80QK3j}e&-AIoXiH5tTR5O{=&0wITWZpEVz>6Q(C@GD)Y9fhu3i?SVS#eRdzP+VE(Y z01=cPYtp+KP#>tDN4}*#B6C~)U2qZ~-qr6NivxZBs`eF<$i9LE*nEA^V%tB~Te3Ri zi@P0p$i6R+Rp&`o7mk(-jF6dVhZPeIVtBjhoh87ANtzC01?n#Otq zSb%t+2Lc=FHd}#WfyPf><7U`8Y%Rl2s*KguU!|9w+NIuB%FJ}NUC%B@23$g7$x)~R z&8Q%Ky8?wAEi%6_E8I4#>xlT|Of^ez0geL?nYu)2>HZG!fU#d93yJT8@DYh9-f6gV z*08U5u(5y43v-D+{$F-+fqmX@<3ccMIW}}$1Y&xmhua@oPetCx@JHt1JftBC8>Wud zUTfuHwaka?ztmE{6Q=9gBtFlJMS0}~0pw}jESs}>IF0T(paw{wUxB2 zt}XAC3xGVEn@f0dcNG9JOG7#Lbs5Gy7t`OvEKKU&dCs_P#t5xsUS#P_i{S~mzx1Jc z^U8-Ey{>c-qs)g&Q9*6R6tX?WeGGr{Yf{w0xo4-A4$r+oEAl0Vx@YxmPgS9aYz`jzI`ru0pC&6r!2F+pK8Vg6u zM8=Cy>4R=tri7+rtDxrbvtgWstDgMZM@nykg$ObDf|?tH&G%$vjAeCu7{vaDf$uOqShgHrt;;nzUD|z zM6NDs6Wvf>Ik3H=KC0kMFeSPwY&Bl4b^{>uFs{Mw+I8_JFl?)(~kZZj>zqOVm?NcH^i!2dC?c+fb3NFMa9?v)^ekP(R80 zYWLegc05WbLc`{DI9#8Kiwny(QfF87q7SkputOA3 zYLTENUM$G&0YkNAIIkrSiCb>}qfye)mWFZOWua4Vv{QmQy|aVg$SV~JvxYyp}JgNHb ze+WZrUaJ~(5(*QFMT_~$p3D>H196V9jYPe25$kT#)aerF%Q0t}{^INLBR2X<--D^4 zI`2uM>~wz+kCpt`nA3*bSdbU&FRRyVBZZ6u`2+l!%M=J_ltoqrsHkMW-npsyV2{1U zH{F?qgqwN->FLK1MlQT7Js%j;k93 z^e@Y2My1f=%D+<)FLnvW)Wh?DlykzWu*PzPCoHnt=aYFI7aMWhtDr6WJAUuvZRzP1 z6${tKr6qPS8|-&<95^w`X$Gs77W_n0JVh(fQS`8XLptTfE2WS=(z=b?y$SQq@7lJN z!o_>>mP#HWnOBpK`kU2<$@!RaLaR5#oOKlGpxoCcKdx@MjU&JqTT`$rAA<@uZ5!2h zl-H!{#tj*gi~$y}Li@e^2XfN7VrmXE-A1g1z-5b+j*USQT}u{$0ApLN-r`!qRxaZ! z>-h9n+%v}g$^q8EtKsl3OOqK(k-s9CUnEJ}Gtr7PngDX$c{iTiPXXnyry+rBufEKu zFwAzV9=^P2AOOBNR~(3SQ!UB|+Aw-j=CWD>@0h#xFs-~ZP`I*>s@n0A;3}F#)&dU| zzZw)wB5_t(UNxmtr0t!II;4mhx#mrLGOU~j!|sywaC6M9P{fEZUT68u20l&cnT)Dq zPVRF|mN@*U3jK1ZXUAmzs7~#5nT)a_5v>M)#voE}>TBw;P3yu7TSDoy> zQ)Q~(g!$keEQav8@h>VNmL4lDtG(oD!R^~GNe;UJ<|xxC5;f(t} z!t1EyX=ox1EapBph9;u4 z)dYrHvI3*_+b4Uv*IUN1t%jpBq-!;yUX!dAchwgbMtQ4v{&tcJuiJ7HzK~*wTnsCb zuM$a#!O=kHCA!^QwMEiy@!ajllC$eWIV)y%5M8Lz7S0u94vnW>DorLf^1qjJjDz-I zPg9z5c8K)KXHiMP^2mE@InWJg8X^K*oDbKAqy`K1UEBX&9}vBCIfL+mdOIn{!Cb5F zg!bW~Jf5G~7` zwKL-w=rL0qx8bW2K>f8vy)d|}w1hB>K(`K6`>bm(h7ZlZdnHJ$zMR?q=9Fu+y2NDig@;37HZ+M^*DrM(qPLx zG3+h>O>4;CC9w;VWsHO6<`oPl6eGMy(;fpljqs7ht*eK*TuVKNnElao+(7`b*F-Je zy%ai)l&U6}D||0jB%dYP;qQ-Sjw121CQpwaY~!lC7)`xJ`gt*+%- zG}!U|{X%|{a)V=Zdv5Dfd7c*}NsNl!pQ$gf@cG%i>>~*9>+5T&W$%(l+ApgK$Tqk` zK5(|7vm+A~&+&PFIiJRQi8-w}sVh`QO&8a`x(aOo7TaX_m+>N!2p<@)>(wg6rYNu2diNfeSOeg;;~u^S?Y>|$}y}3=d7idt@rsDx@LBM+Q>`CLQ~Wtk<&k?Ih~ZW)z_oo#oHxp0eE3%dPZL!7$JO$VQ-U|%b2CA@=~|0 zm<`QzPO8Gghhm58gdKu{p-0xy5p2pjSVDW)B))N9CaXNIF@}sL0bN~dhL4x;2daMH zJge2f(?bzjX15-nkQk&ib)is?!kQsBn+i(8*{2PD?2n=zL3VJW{>&CH|1hOL{Pb`B z^{?yTnNVq}_a8H>DdULRy4mJ)7HGWevb*bVJG@`G$9XCEOdnc^-w?)g*jA-rF36kO zLi=8W&3!B)<2-Fa@}6yDj2H;*AxZ6D=m7<~73fin)Rle-X0%E|_2_)D>24+l~<#DsDa@HE}mRBS4R3J!`Y8xH(1mQXMxBTW2rLd<{9lKaPvW10rdL7G+~?+u#=j0bg(QL#Zx z0o2E6&ebR}V7#MDfN)4qr6`}R{JQJBs z+H)_xUXTHyY!(bzY^=M$u$X=&wQ*KDQ6WQlVs44^c9u-fPOXXuk)^LgYMpXSm(!^4 zR{h8h-z%2ub#c%>_Y%z%OG5+b?aqFREcTU>=!su#MH3x#Oc|zmkjGCkLasMm;$&>a zZ-sGzkAc2>Xn6T|G=U|`iF-GgD5FWf$)S)&aT0bZeNX)w{yh`_?QQ;t*X!AI$qC3i zlr`OB3UvW&h%dTI(7$k^-%V6_reqUTt_BF1QHWKFpDz7i>%gQ7e;eO=k|^!@qltEr z*+eF`j05~in)yKf=^p2ZBJwh3(dGat2ojXF8En&{-ObXBxd8flC~XlocA>tNx{*8U_h{(^87K%Y9g;yVQ&YEtcroGC{W!6^7 z8W;U0ueFoTOP}o*>PiM5f0kLVZV$~#A?91g67wOK#nSH-6Y0u6Rs)t1-7ZJRR!)8J zFI$KuCW%c*$ZSyy{y{?i%O3v!+S`Br{D%rdK#H{V z<{#1QKl#o-6ng*pS2hfxr005{L@26C)>Ae%2lbpkz;Xrh4H#Tuzkn%_3)D>DB0%bc zI~>9JRuKI;nIWto?E=%hSY6Ufu{fD&CKq48fJ}H0(;VTv^h6m`q@Q6+d(?Oi-!25N z*7qrNx3?Wn<_376QW-Ouu`zM&K3zhfZoqL)kA2k8iGh8SuTOegU)KmPq)5l2_V6;^ zj$uslRiudS`A=Shg_ct;Bd5`HzhCD}bVwU5EF5aWa#Dz=u*{`)V&U{IPpgo`sjuN^!R8;Y{;h%dL->RCLU?%DXiW zXpc#%b?kKw-QPWJ_hT-c@O9x1uT8ms^nUgeq#iGyw|&HzZlJ%~x~yR=Frr`svR`9L zwyKi<<+8GK8CAOENL@mALXI{S)XSQ^?l7f6)IFDNX!lz-`NJ^~t9CVo3Np6(|Ac)j zhLrSmeejh*ZP(S%uuGE>vDKfQgjb4#d^5@Q^wG>`J}(CgJ+c>32%8m8cSvO_vV7AN z7wReWh#~$>^(OBtru!oq_mBYr(R?-3s!{YZVFz^=`U(LzqW$^8c+AQVC%sak{o#)X z77OkYcE_!sR9hS54AoJ_$gt~^{<7NCw(2wb0I|73?ofZfQ`!5@`gZ(Z)Y>jMLjKQh zbV8FNJ~$M4(WWTSHjmx8)T!%zS$d)`6vd(jVRMqu3ZyimFtI=s`UZFu(%TnU_e=RJ zUj!jVWI$2POnRF1KhDZL!x}j{6j(30lR=VPM+EnS0byASP7%{h#e z0AlAR@pah-@6A`LS2R9Qs%dhZL^k_pXK{@YOZkzM!JNuZ3#aw}Mjnw%p~eZ*lh2vIOVlZh_W+mhgoUcd7mc=CHokc^1Fv_6M%&1cAxN1$L#EzwKwv?`dxL6` zTuckg1PpK?uSapXNJx8W&0xQsr~h7 zITdnD5GqV`-Xdz8Y2h=y{faLOW{izGHHZL=qek|UZyhgUud0N8ds3?|8NJ1`Y5U{b znHc*DvS5<-*RR$>cVzs3C*8UaXspqR)lULqF`PI4-egpyZA6yJ~& zJRg7Ow;+RX>e=g}^8)p?_k{^MqE8V=%y=DCQ3?Ont!*-RKqfg-J(B6WGT(+YJ3kZ* zXh+6U2Q$w9(LwS5>(u`315=rlsBo(Fr4js%hRunW-XaRLFs1<+8!ThZIh-KvAd}J# zd6d&mH<8+rg~jhxV_a2bR!?cdv?ivgABGN~UCY`u5^MM2vvePb7A+9uG}YTIGFN`b z>sG(b?VQ~vQp3clD9Ox88Na8KolR-d2z?`D?^GTqm>Trk_NPMIw65e75$VgZd({}r zsHW4O{TMWZ6g&jOb}$8#@Q(wZK^kyy%UVfC&>yVKKgX#4t!MdfMeILrYQ#d>g1(mF zbXqAR(AjN5_KnYYsCkCe(>C#9HmG*ehaS_1qV7(83FdgGxG+tK3mcRJEi_Z%s)*uy zt+RXjPQ4cb%IUlF_EBZ3;bX0rWnLrVV_?rq`*U6H1EVBv9q+i`DMYTEs1EqcF0 z@=Bx>i;|y+f^q+n^&;lU0A_jKeP5l9b5P+W^}5&XaA%xMV`7!!jsCkMQ30>g{Mowz zMwwOCU&O=O-Fuh5rL^}BcrUm<>(%IaoHcB|m6pnhtgAwZ8}$_Q$6hK(lky;|ojVeT zGk5#qGWZrM^JdL?-u?Ri7upe;zd?&VEd(qKeD&kvHW!vDDE^*5HBCgW`|h#LdGWo> zqzgbc8}a}t3mh6oc(4&u@uv#re-C=mbWF}~ehQ?dLSZ(_AVtc?o zTyFs$z)t#Bq9@Q<5-7zmqW+eCk)e2a5*^~tueSm0dd_1s+rXoLiHtwJ(&W*o=>Qrj9$_T`KeM@5QS* z&pqF`7h$kwg0C~xz=*TpQ~`FJL&uIKg4?p2hqd^V;3Zob(ubfG&0 zUSx&#U3ZNA5bDS0E(v6`sLL8dn(yG#0WqV^DWQRU?iC+OR7jk5RM}kJCDYD}{co#A z`#W01bGiCwL^no*0+~By{wh*a$PuD2@Ws4OJ;!9d=Om|BpHBk}+Lb>f*Xzvy`eA=8 zsRtHHprfrn?0BI~r?URM`9uk&(B z;P$PDm*qBZo_dcTFum#0b&ckyIj|^O0nD|E{VsS^W|3zS~NtR&_Xq91T$pHwu?uK~P*Ky+9Y6IiH=*Vn=Rb*8tFaJ8EAllqYCMfHV`oj-2Dv{ub6Ce`oB7u1 zWMBPOl(V>hk-DsPbl@s3Wqzh%+mrVwa1_0+GqoS1oKr@=%S-ki6)O_yPG+59qYG?U z+iKeE!ZkR2^a?iG2rAaUE9rLLw2ad?$-l-Lo5@)soCcNM1;J0;gtDpsoj|-rdwP5Xa-0u29QPYl(n1=* z1IE#~%Dm1!o7$b!0I3DM)+imT(bq9%o;+a^-rywG1$K=oY#-~~?!(w7x>YF*V!Xqc{wm zX+h@YNj(wZ!N8NNla0bTpLYSaL6y$F*_Oq286U;E02xqQ|EnhPmn4jZ7^m~#9AYt} zjE&@KH`nK&<){eSqn+fWjP+J95>+HTS9C6aFtMi2#GWbQ)p|5;E z9<<7+9wfR8j$H-fYV$^5a(0h7vX%cT{`7OU+On zQyySBx_iNv?`{^_?0F!6iPA^pXZFv{O>0|4E=gu1)3UdhWRFP= zf3bB90~*kA#D4PERcHIq$FT?p%6)4^jV?^w2X}LjhM~JcIRiP15oCBtli4`=>Cb1$ z^fRz7mxoxhGIH>hDAAo{mp$?v#bi7)&Lr5VsvE6=c4`L>x%ySuega2mB8?citV~4> zfgUZumU@yUN<3#C{Tr-M(@bBnVd!^T%9=pr*V^Xdq$@9v7&7X*@OFs)g+sbJZG=^) z9wZvv3e7_L%U$`k*8J4eu)|axAxO!$~4;mN7JN6vawKPGv?IQbwhvuA^<{yg~ zCcitQ3J(vi;}&lCh!eY6{BN8WZ?DGaCTGrMmEa$YMkQG7dymdY?CbG|4^B<5`_sJS zz8Yq5JtF=J$sl>1Co59 zg#j%vm7jKP%*GR>Gpb<9tMXNA`EbjtmQVhHCpPlJ#>Ho;Qh6KoCWs*W4DQRzEjr@cmiyVkCn^2>$~JYrSwV#1smh^%)FZ3CneX0X zPm$j{^?#eCu4x+?qBjm9ZEg~Gj}RYEpQgNuHWfyuoDcq7@s+2Z>1AKHU^RZWIi>Ui zTEsZOtUTK4J3t4uQ)tjGx)$xU)2WoiI?PtX-Fp(Z$YER^Kb_gpj#C?xgOpZ+>jn&( zf#qox=6652O*UQ){jziSp%;W@#0T;*+^lA|yYxPrNgsH@^WkVj(i%F(^FD3|AJ9;< zrd{lyg8i8GkOpNbr`hn7h*VLrqSzYbf!=ND=BdmQU&#HK%L}hf_HLpadL46_ zr1PKr7Bx-vH4ju}`JCjs?I46E>ezN;_Vxe#LAvApDIrv-NWGNJCwB#u^Hoi1NtN$p zlz%2$tH8Ll8eI6~cO(^pwMdKRQy`x~nq_-rMM|Xtgo7^D3;I zU-1Wicn3P_163j4-hq})VR+>M5bQLD==pGVXS~=7p683K1!J$cp@F)@jfV05amBM; z|G?#64(zXRLqwQ@2Y2pl7W$@bP@Wo7=%2MeAZyvR!vYHW?Izm>&i)7vKo1~z_WB8{ zfQ$z>1b+g~9dW)UjG4P{^4K$=|d&YhAs_#+N2GS;R%?ZK>WXz`!8kA^GfJq ziu_&eR{eg(+vH_8xVNhr%x3y;z1ODd(~-}cZ~iR(VwHSaB3z7d-&Co2I2ujJ{=)FG zxM+lg?tAZsm!K+M-1a6X%QGK^Z2SGp&)rL&FE1}{R`;KKos)6jXNx~rBOb4{EF3XD3!1!lXMf*#nq`Kb+S9K;MIyF+zgOe8 zCNQ_zfho^_ZbhQ>yDi0ehVuiD&V9UEoj~B>al(a_4YEJ1=2je5!=ng?l(cX}MAU}& zH;$c{bGP%rp&;Ipdi7>gAEwy?FMhvoXSlC6t;ZW9ObI&GA)o2H?C)2+dwXwIaIOh< zsK}oi;P*Os!T0_0yMN6oTTF&S;dbV-vi!L9D{C%#>cZhcxIP5K3YdgnmptN~jcmkZ zfe1O>H+BU-PAv4?vb6WD@QFF8@1pKr+?AnvJAL=s>)G>Hx%uKM(NG%k2g*3#+*~KU zlOH94oSA>%P)6nbc^B_l^U2xmvZ!A?`@Uf6IivE^y=@t>CQWa*+`RUBYj7Bmk(e-> zh2_UK&Reh<=~wwjwMQM3Cz z=a2^$9GzTZiV}q=v5cH{z)34%4KNoT+hpMZbC7{OQ(4Qb`8!P} znK6}Z%6hyil*lj!*>fNxh23s7%qUo310^u*#U)}QaO3I%Utf60;&(kZQySj^v)ZnB zCI)yKBbl+FwSgg?J2aPkS2%oUVyd~T&&Yttzofe2f|EnT`qouuoTLWOK;`QCUD2Mo*KstnlD z3z3;6ii6|B)_|*OL@LJ;+a>zIu>32;KtgUnk9u8T@fo!uYclzPxl0^ai_~#4kP`l= zu4ohkCT-o2twa`K*uv{BH^+z4{VWWq24ho+E8RJ81CzGcs#_{#2j*xo0ZT-q#RM!7 zjTRHI964G{Kuey{Vq&zIKyNjS789ez1X}wJSWNum|Fli2OqRRn83Pb_y85}S10I42 E09{QjQvd(} literal 0 HcmV?d00001 diff --git a/4-ComputerVision/07-ConvNets/images/convolutionExample.png b/4-ComputerVision/07-ConvNets/images/convolutionExample.png new file mode 100644 index 0000000000000000000000000000000000000000..7bfd6db520f5931c37086def4041b2fade1ae4f4 GIT binary patch literal 14862 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 uZk?b@qx?I%1-HAQiV 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≠@If}D{K{qMP5OHOj~leb#t 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