{"kind":"Notebook","sha256":"592e3f6a895a2e3048f6898b3bd82521f762f73fda4abdb80063c9701f79ac43","slug":"preparation","location":"/../source/part2/preparation.ipynb","dependencies":[],"frontmatter":{"title":"Data Preparation","math":{"\\abs":{"macro":"\\left\\lvert #1 \\right\\rvert"},"\\norm":{"macro":"\\left\\lvert #1 \\right\\rvert"},"\\Set":{"macro":"\\left\\{ #1 \\right\\}"},"\\mc":{"macro":"\\mathcal{#1}"},"\\M":{"macro":"\\boldsymbol{#1}"},"\\R":{"macro":"\\mathsf{#1}"},"\\RM":{"macro":"\\boldsymbol{\\mathsf{#1}}"},"\\op":{"macro":"\\operatorname{#1}"},"\\E":{"macro":"\\op{E}"},"\\d":{"macro":"\\mathrm{\\mathstrut d}"}},"kernelspec":{"name":"python3","language":"python","display_name":"Python 3 (ipykernel)"},"authors":[{"nameParsed":{"literal":"Chung Chan","given":"Chung","family":"Chan"},"name":"Chung Chan","affiliations":["City University of Hong Kong"],"id":"contributors-myst-generated-uid-0"}],"github":"https://github.com/ccha23/divedeep","keywords":[],"affiliations":[{"id":"City University of Hong Kong","name":"City University of Hong Kong"}],"thumbnail":"/~ccha23/deepbook/build/4b9b7aff5e0fc5aab0dbfcb205c470d7.png","exports":[{"format":"ipynb","filename":"preparation.ipynb","url":"/~ccha23/deepbook/build/preparation-aa04be5df03ea7d4ede2f0ac137f141d.ipynb"}]},"mdast":{"type":"root","children":[{"type":"block","kind":"notebook-content","data":{"hideCode":false,"hidePrompt":false,"slideshow":{"slide_type":"-"},"tags":[]},"children":[{"type":"paragraph","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"strong","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"DIVE into Deep Learning","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"hXN1f525pm"}],"key":"Sp46tbrqRt"}],"key":"Lgiobusacq"},{"type":"thematicBreak","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"zkmeRhQ6lE"}],"visibility":"remove","key":"rZjS1AeH1K"},{"type":"block","kind":"notebook-code","data":{"hideCode":false,"hidePrompt":false,"init_cell":true,"slideshow":{"slide_type":"notes"}},"children":[{"type":"code","lang":"python","executable":true,"value":"import os\nimport pprint as pp\n\nimport matplotlib.pyplot as plt\nimport numpy as np\nimport tensorflow.compat.v2 as tf\nimport tensorflow_datasets as tfds\nfrom IPython import display\nfrom matplotlib import pyplot as plt\n\n# produce vector inline graphics\nfrom matplotlib_inline.backend_inline import set_matplotlib_formats\n\nset_matplotlib_formats(\"svg\")\nos.environ[\"TF_CPP_MIN_LOG_LEVEL\"] = \"2\"\n%matplotlib widget","key":"ND26FECEY4"},{"type":"output","id":"0DnoqHvsWJ5_xFAvMrKWz","data":[],"key":"xdLwUi0bEk"}],"key":"X3KeltANnL"},{"type":"block","kind":"notebook-content","data":{"hideCode":false,"hidePrompt":false,"slideshow":{"slide_type":"slide"}},"children":[{"type":"heading","depth":2,"position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"Loading Data","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"HiRXlSn5oJ"}],"identifier":"loading-data","label":"Loading Data","html_id":"loading-data","implicit":true,"key":"PdmhKoGIRT"}],"key":"y2EKs6hAaS"},{"type":"block","kind":"notebook-content","data":{"slideshow":{"slide_type":"subslide"}},"children":[{"type":"paragraph","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"strong","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"What is an example in a dataset?","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"F9P41RAmqg"}],"key":"kse9BdwSoP"}],"key":"nwC5ZrAVMy"}],"key":"je2ybWW1T3"},{"type":"block","kind":"notebook-content","data":{"slideshow":{"slide_type":"-"}},"children":[{"type":"paragraph","position":{"start":{"line":1,"column":1},"end":{"line":10,"column":1}},"children":[{"type":"text","value":"A neural network learns from many examples collected together as a ","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"qgbeR757F3"},{"type":"emphasis","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"dataset","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"WL4Hg7MaBp"}],"key":"v7qW5ifa7K"},{"type":"text","value":". For instance, the ","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"WBazD2Ha1j"},{"type":"link","url":"https://en.wikipedia.org/wiki/MNIST_database","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"MNIST (Modified National Institute of Standards and Technology)","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"VblOs5x2oi"}],"urlSource":"https://en.wikipedia.org/wiki/MNIST_database","data":{"page":"MNIST_database","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"ktW47rb38r"},{"type":"text","value":" dataset consists of labeled handwritten digits.","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"x8zd0AzkcI"},{"type":"inlineMath","value":"\\def\\abs#1{\\left\\lvert #1 \\right\\rvert}\n\\def\\Set#1{\\left\\{ #1 \\right\\}}\n\\def\\mc#1{\\mathcal{#1}}\n\\def\\M#1{\\boldsymbol{#1}}\n\\def\\R#1{\\mathsf{#1}}\n\\def\\RM#1{\\boldsymbol{\\mathsf{#1}}}\n\\def\\op#1{\\operatorname{#1}}\n\\def\\E{\\op{E}}\n\\def\\d{\\mathrm{\\mathstrut d}}","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"html":"<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow></mrow><annotation encoding=\"application/x-tex\">\\def\\abs#1{\\left\\lvert #1 \\right\\rvert}\n\\def\\Set#1{\\left\\{ #1 \\right\\}}\n\\def\\mc#1{\\mathcal{#1}}\n\\def\\M#1{\\boldsymbol{#1}}\n\\def\\R#1{\\mathsf{#1}}\n\\def\\RM#1{\\boldsymbol{\\mathsf{#1}}}\n\\def\\op#1{\\operatorname{#1}}\n\\def\\E{\\op{E}}\n\\def\\d{\\mathrm{\\mathstrut d}}</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"></span></span>","key":"rDYMcmfwjc"}],"key":"Jed9qAvn7j"}],"key":"d5OXzt4Sjq"},{"type":"block","kind":"notebook-content","data":{},"children":[{"type":"container","kind":"figure","identifier":"fig:mnistexamples","label":"fig:MnistExamples","children":[{"type":"image","url":"/~ccha23/deepbook/build/4b9b7aff5e0fc5aab0dbfcb205c470d7.png","alt":"Mnist examples","align":"left","key":"LWPEIpfXH1","urlSource":"https://upload.wikimedia.org/wikipedia/commons/2/27/MnistExamples.png"},{"type":"caption","children":[{"type":"paragraph","position":{"start":{"line":5,"column":1},"end":{"line":5,"column":1}},"children":[{"type":"captionNumber","kind":"figure","label":"fig:MnistExamples","identifier":"fig:mnistexamples","html_id":"fig-mnistexamples","enumerator":"1","children":[{"type":"text","value":"Figure ","key":"oSi65yGBYS"},{"type":"text","value":"1","key":"Zboelf0K39"},{"type":"text","value":":","key":"P2vnipSx4n"}],"template":"Figure %s:","key":"ypWgcvdOe2"},{"type":"text","value":"Mnist examples","position":{"start":{"line":5,"column":1},"end":{"line":5,"column":1}},"key":"TQM2rj9XkV"},{"type":"footnoteReference","identifier":"license","label":"license","position":{"start":{"line":5,"column":1},"end":{"line":5,"column":1}},"number":1,"enumerator":"1","key":"TmouQBBGMk"}],"key":"ZRD2NoWZ26"}],"key":"WEW6KN9EiD"}],"enumerator":"1","html_id":"fig-mnistexamples","key":"ceCTYxEuKg"},{"type":"footnoteDefinition","identifier":"license","label":"license","position":{"start":{"line":5,"column":1},"end":{"line":5,"column":1}},"children":[{"type":"paragraph","position":{"start":{"line":8,"column":1},"end":{"line":8,"column":1}},"children":[{"type":"text","value":"Josef Steppan, CC BY-SA 4.0 ","position":{"start":{"line":8,"column":1},"end":{"line":8,"column":1}},"key":"nfmnbOVR42"},{"type":"link","url":"https://creativecommons.org/licenses/by-sa/4.0","position":{"start":{"line":8,"column":1},"end":{"line":8,"column":1}},"children":[{"type":"text","value":"https://​creativecommons​.org​/licenses​/by​-sa​/4​.0","position":{"start":{"line":8,"column":1},"end":{"line":8,"column":1}},"key":"h0eLDSa23Y"}],"urlSource":"https://creativecommons.org/licenses/by-sa/4.0","key":"NupHPQKhRD"},{"type":"text","value":", via Wikimedia Commons","position":{"start":{"line":8,"column":1},"end":{"line":8,"column":1}},"key":"IWDZKki6We"}],"key":"RAJbiiRnnW"}],"number":1,"enumerator":"1","key":"mRNuRFJjd1"}],"key":"wipWvFFJ0l"},{"type":"block","kind":"notebook-content","data":{"slideshow":{"slide_type":"subslide"}},"children":[{"type":"paragraph","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"A dataset is a sequence","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"HEHuWmfEwC"}],"key":"jfAa5z3693"},{"type":"math","value":"\\begin{align}\n(\\RM{x}_1,\\R{y}_1),(\\RM{x}_2,\\R{y}_2), \\dots\\tag{dataset}\n\\end{align}","position":{"start":{"line":3,"column":1},"end":{"line":7,"column":1}},"html":"<span class=\"katex-display\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\" display=\"block\"><semantics><mtable rowspacing=\"0.25em\" columnalign=\"right\" columnspacing=\"\"><mtr><mtd class =\"mtr-glue\"></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"true\"><mrow><mo stretchy=\"false\">(</mo><msub><mi mathvariant=\"sans-serif\">x</mi><mn>1</mn></msub><mo separator=\"true\">,</mo><msub><mi mathvariant=\"sans-serif\">y</mi><mn>1</mn></msub><mo stretchy=\"false\">)</mo><mo separator=\"true\">,</mo><mo stretchy=\"false\">(</mo><msub><mi mathvariant=\"sans-serif\">x</mi><mn>2</mn></msub><mo separator=\"true\">,</mo><msub><mi mathvariant=\"sans-serif\">y</mi><mn>2</mn></msub><mo stretchy=\"false\">)</mo><mo separator=\"true\">,</mo><mo>…</mo></mrow></mstyle></mtd><mtd class =\"mtr-glue\"></mtd><mtd class =\"mml-eqn-num\"></mtd></mtr></mtable><annotation encoding=\"application/x-tex\">\\begin{align}\n(\\RM{x}_1,\\R{y}_1),(\\RM{x}_2,\\R{y}_2), \\dots\\tag{dataset}\n\\end{align}</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1.5em;vertical-align:-0.5em;\"></span><span class=\"mtable\"><span class=\"col-align-r\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1em;\"><span style=\"top:-3.16em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mopen\">(</span><span class=\"mord\"><span class=\"mord\"><span class=\"mord\"><span class=\"mord mathsf\">x</span></span></span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.3011em;\"><span style=\"top:-2.55em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.1667em;\"></span><span class=\"mord\"><span class=\"mord mathsf\" style=\"margin-right:0.01389em;\">y</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.3011em;\"><span style=\"top:-2.55em;margin-left:-0.0139em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">1</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mclose\">)</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.1667em;\"></span><span class=\"mopen\">(</span><span class=\"mord\"><span class=\"mord\"><span class=\"mord\"><span class=\"mord mathsf\">x</span></span></span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.3011em;\"><span style=\"top:-2.55em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.1667em;\"></span><span class=\"mord\"><span class=\"mord mathsf\" style=\"margin-right:0.01389em;\">y</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.3011em;\"><span style=\"top:-2.55em;margin-left:-0.0139em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mclose\">)</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.1667em;\"></span><span class=\"minner\">…</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.5em;\"><span></span></span></span></span></span></span></span><span class=\"tag\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1em;\"><span style=\"top:-3.16em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span><span class=\"mord text\"><span class=\"mord\">(</span><span class=\"mord\"><span class=\"mord\">dataset</span></span><span class=\"mord\">)</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.5em;\"><span></span></span></span></span></span></span></span></span>","enumerator":"1","key":"F1S3JzUS8L"},{"type":"paragraph","position":{"start":{"line":9,"column":1},"end":{"line":9,"column":1}},"children":[{"type":"text","value":"of ","position":{"start":{"line":9,"column":1},"end":{"line":9,"column":1}},"key":"AqQNOMOUkA"},{"type":"emphasis","position":{"start":{"line":9,"column":1},"end":{"line":9,"column":1}},"children":[{"type":"text","value":"tuples/instances","position":{"start":{"line":9,"column":1},"end":{"line":9,"column":1}},"key":"Ve9R4WoNs2"}],"key":"belK2zptfd"},{"type":"text","value":" ","position":{"start":{"line":9,"column":1},"end":{"line":9,"column":1}},"key":"XN6NulTfpz"},{"type":"inlineMath","value":"(\\RM{x}_i,\\R{y}_i)","position":{"start":{"line":9,"column":1},"end":{"line":9,"column":1}},"html":"<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo stretchy=\"false\">(</mo><msub><mi mathvariant=\"sans-serif\">x</mi><mi>i</mi></msub><mo separator=\"true\">,</mo><msub><mi mathvariant=\"sans-serif\">y</mi><mi>i</mi></msub><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">(\\RM{x}_i,\\R{y}_i)</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mopen\">(</span><span class=\"mord\"><span class=\"mord\"><span class=\"mord\"><span class=\"mord mathsf\">x</span></span></span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.3117em;\"><span style=\"top:-2.55em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">i</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.1667em;\"></span><span class=\"mord\"><span class=\"mord mathsf\" style=\"margin-right:0.01389em;\">y</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.3117em;\"><span style=\"top:-2.55em;margin-left:-0.0139em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">i</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mclose\">)</span></span></span></span>","key":"JxQRukU3sA"},{"type":"text","value":", each of which consists of","position":{"start":{"line":9,"column":1},"end":{"line":9,"column":1}},"key":"ypwkrSEK3T"}],"key":"ZEqzL7eyzR"}],"key":"IpQe7QZNBu"},{"type":"block","kind":"notebook-content","data":{"slideshow":{"slide_type":"fragment"}},"children":[{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"an ","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"SbzCk17V9j"},{"type":"emphasis","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"input feature vector","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"OndRY6tkJX"}],"key":"UJlxa3I38B"},{"type":"text","value":" ","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"aIv1Ifd1R6"},{"type":"inlineMath","value":"\\RM{x}_i","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"html":"<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msub><mi mathvariant=\"sans-serif\">x</mi><mi>i</mi></msub></mrow><annotation encoding=\"application/x-tex\">\\RM{x}_i</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.5944em;vertical-align:-0.15em;\"></span><span class=\"mord\"><span class=\"mord\"><span class=\"mord\"><span class=\"mord mathsf\">x</span></span></span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.3117em;\"><span style=\"top:-2.55em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">i</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span></span>","key":"PpkKu6hjGH"},{"type":"text","value":" such as an image of a handwritten digit and","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"Yc6eO3LaWG"}],"key":"pu6RSCsRpa"}],"key":"lMXHscGTnj"}],"key":"p6R9CpOSH7"},{"type":"block","kind":"notebook-content","data":{"slideshow":{"slide_type":"fragment"}},"children":[{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"a ","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"ahBufwcfBq"},{"type":"emphasis","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"label","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"FeyqSGJl4D"}],"key":"XwFm8O87Sx"},{"type":"text","value":" ","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"aacaStAgX3"},{"type":"inlineMath","value":"\\R{y}_i","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"html":"<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><msub><mi mathvariant=\"sans-serif\">y</mi><mi>i</mi></msub></mrow><annotation encoding=\"application/x-tex\">\\R{y}_i</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.6389em;vertical-align:-0.1944em;\"></span><span class=\"mord\"><span class=\"mord mathsf\" style=\"margin-right:0.01389em;\">y</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.3117em;\"><span style=\"top:-2.55em;margin-left:-0.0139em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">i</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span></span>","key":"Rz3UWuMiju"},{"type":"text","value":" such as the digit type of the handwritten digit.","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"RfTcIeUEDE"}],"key":"fpS5i1XNwq"}],"key":"NXfUQlfmNc"}],"key":"bZQeWpOYUr"},{"type":"block","kind":"notebook-content","data":{"slideshow":{"slide_type":"fragment"}},"children":[{"type":"paragraph","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"The goal is to classify the digit type of a handwritten digit.","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"ZG2akNPqOh"}],"key":"MnDEmjOC1m"}],"key":"JZOZtYKmQF"},{"type":"block","kind":"notebook-content","data":{"slideshow":{"slide_type":"subslide"}},"children":[{"type":"paragraph","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"strong","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"How to load the MNIST dataset?","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"s4J0sXbgcs"}],"key":"nCBo1RKN2g"}],"key":"jxoffiM2rH"}],"key":"mkptxdhnyl"},{"type":"block","kind":"notebook-content","data":{"hideCode":false,"hidePrompt":false,"slideshow":{"slide_type":"fragment"}},"children":[{"type":"paragraph","position":{"start":{"line":1,"column":1},"end":{"line":2,"column":1}},"children":[{"type":"text","value":"We first specify the folder to download the data.","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"lLF3fWZ5so"},{"type":"break","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"X6IbgRfRYT"},{"type":"text","value":"Press ","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"eX9uOZjs1q"},{"type":"inlineCode","value":"Shift+Enter","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"NKyMzwN2Nc"},{"type":"text","value":" to evaluate the following cell:","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"sT4reSCPPm"}],"key":"kP6bSiyTun"}],"key":"uJelZr7YCx"},{"type":"block","kind":"notebook-code","data":{"hideCode":false,"hidePrompt":false,"slideshow":{"slide_type":"-"}},"children":[{"type":"code","lang":"python","executable":true,"value":"import os\n\nuser_home = os.getenv(\"HOME\")  # get user home directory\ndata_dir = os.path.join(user_home, \"data\")  # create download folder path\n\ndata_dir  # show the path","key":"qWnXW9oE4N"},{"type":"output","id":"c8NBe6p-QN5JjuJ3ZoNxq","data":[],"key":"rzUrcT5kDO"}],"key":"g3N89jMiYx"},{"type":"block","kind":"notebook-content","data":{"hideCode":false,"hidePrompt":false,"slideshow":{"slide_type":"subslide"}},"children":[{"type":"paragraph","position":{"start":{"line":1,"column":1},"end":{"line":2,"column":1}},"children":[{"type":"text","value":"The MNIST dataset can be obtained in many ways due to its popularity in image recognition.","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"R5eV48KsED"},{"type":"break","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"eRY9kXUDLE"},{"type":"text","value":"One way is to use the package ","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"V5JB6WaECp"},{"type":"link","url":"https://blog.tensorflow.org/2019/02/introducing-tensorflow-datasets.html","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"inlineCode","value":"tensorflow_datasets","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"rZrYCTYDKz"}],"urlSource":"https://blog.tensorflow.org/2019/02/introducing-tensorflow-datasets.html","key":"pxPlmY0gF5"},{"type":"text","value":".","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"lkwrG8FVOm"}],"key":"QZ9uhefFlY"}],"key":"TlaJgedJ9T"},{"type":"block","kind":"notebook-code","data":{"hideCode":false,"hidePrompt":false,"slideshow":{"slide_type":"-"}},"children":[{"type":"code","lang":"python","executable":true,"value":"import tensorflow_datasets as tfds  # give a shorter name tfds for convenience\n\nds, ds_info = tfds.load(\n    \"mnist\",\n    data_dir=data_dir,  # download location\n    as_supervised=True,  # separate input features and label\n    with_info=True,  # return information of the dataset\n)\n\nds","key":"pQCB5mSugI"},{"type":"output","id":"YBVoBhNQPsVZS-csmrc3k","data":[],"key":"HU8cvfSSWV"}],"key":"Wu9RwVcUNg"},{"type":"block","kind":"notebook-content","data":{"hideCode":false,"hidePrompt":false,"slideshow":{"slide_type":"notes"}},"children":[{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":1,"column":1},"end":{"line":2,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"The function ","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"Lz0k6Ot5p9"},{"type":"inlineCode","value":"tfds.load","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"uwKkomOedn"},{"type":"text","value":" downloads the data to ","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"cAWAs2V1z4"},{"type":"inlineCode","value":"data_dir","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"UUvrZa4bRT"},{"type":"text","value":" and prepare it for loading using variable ","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"SallEv7X15"},{"type":"inlineCode","value":"ds","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"sVY3Moqcl8"},{"type":"text","value":".","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"aeIfbUu1D4"}],"key":"HHfJGSpPhJ"},{"type":"listItem","spread":true,"position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"children":[{"type":"text","value":"The data are loaded as ","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"RbqRvcyLhz"},{"type":"link","url":"https://www.tensorflow.org/guide/tensor","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"children":[{"type":"inlineCode","value":"Tensor","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"aKjJrIQUYO"},{"type":"text","value":"s","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"YJGjeFIMeV"}],"urlSource":"https://www.tensorflow.org/guide/tensor","key":"VLoOwyQjVz"},{"type":"text","value":", which can be operated faster by GPU or TPU instead of CPU.","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"damnxf1jGC"}],"key":"Txcy0N2qYE"}],"key":"mQn8DPhGpa"}],"key":"GWAD3AESQc"},{"type":"block","kind":"notebook-content","data":{"hideCode":false,"hidePrompt":false,"slideshow":{"slide_type":"fragment"}},"children":[{"type":"paragraph","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"The dataset is split into","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"ke6lsAzeXY"}],"key":"oNEwxFAZfn"},{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":2,"column":1},"end":{"line":3,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"children":[{"type":"text","value":"a training set ","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"xrKEBkAmCE"},{"type":"inlineCode","value":"ds[\"train\"]","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"Tyh61H0KMV"},{"type":"text","value":" and","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"rKQHnDK5hY"}],"key":"mlg2MysAWR"},{"type":"listItem","spread":true,"position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"children":[{"type":"text","value":"a test set ","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"NII4q4Xfwl"},{"type":"inlineCode","value":"ds[\"test\"]","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"aKCBXZVJOi"},{"type":"text","value":".","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"Nb7poGdArq"}],"key":"Y7UvGPS58p"}],"key":"xNudfMB1YP"}],"key":"X4J41QOaSK"},{"type":"block","kind":"notebook-content","data":{"hideCode":false,"hidePrompt":false,"slideshow":{"slide_type":"notes"}},"children":[{"type":"paragraph","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"inlineCode","value":"tfds.load?","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"Wdh3VxaQPN"},{"type":"text","value":" shows more information about the function. E.g., we can control the split ratio using the argument ","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"pDvoHhCAZE"},{"type":"link","url":"https://www.tensorflow.org/datasets/splits","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"inlineCode","value":"split","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"WMDHUn64WI"}],"urlSource":"https://www.tensorflow.org/datasets/splits","key":"wpE66YFFs1"},{"type":"text","value":".","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"poXzp4qOKA"}],"key":"Hm6XGJr02d"}],"key":"IM0UM7eDrt"},{"type":"block","kind":"notebook-content","data":{"hideCode":false,"hidePrompt":false,"slideshow":{"slide_type":"subslide"}},"children":[{"type":"paragraph","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"strong","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"Why split the data?","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"wEMRl8dyv6"}],"key":"HzOp4M1Z3m"}],"key":"PcUs5XaM6K"}],"key":"rleHKLjXLa"},{"type":"block","kind":"notebook-content","data":{"hideCode":false,"hidePrompt":false,"slideshow":{"slide_type":"fragment"}},"children":[{"type":"paragraph","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"The test set is used to evaluate the performance of a neural network trained using the training set (separate from the test set).","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"hNSJtR1HFo"}],"key":"aOFkwFdtHk"}],"key":"ItGy9FMhdu"},{"type":"block","kind":"notebook-content","data":{"hideCode":false,"hidePrompt":false,"slideshow":{"slide_type":"fragment"}},"children":[{"type":"paragraph","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"The purpose of separating the test set from the training set is to avoid ","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"VOUxmdvgBT"},{"type":"emphasis","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"overly-optimistic","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"HyoiNB49rj"}],"key":"AcmVgm0xAf"},{"type":"text","value":" performance estimate. Why?","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"J9MB8b69OU"}],"key":"veLCgxFZWo"}],"key":"mgLub0Bjn4"},{"type":"block","kind":"notebook-content","data":{"hideCode":false,"hidePrompt":false,"slideshow":{"slide_type":"fragment"}},"children":[{"type":"paragraph","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"Suppose the final exam questions (test set) are the same as the previous homework questions (training set).","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"LF5QEMqOIh"}],"key":"gvsOs6ncSK"},{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":2,"column":1},"end":{"line":3,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"children":[{"type":"text","value":"Students may get a high exam score simply by studying the model answers to the homework instead of understanding entire subject.","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"CfLJEAU8fJ"}],"key":"IjtMcSa6ei"},{"type":"listItem","spread":true,"position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"children":[{"type":"text","value":"The exam score is therefore an overly-optimistic estimate of the students’ understanding of the subject.","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"zGjaUqMgyG"}],"key":"S1k0MM8TMe"}],"key":"Ni1IQv03Hh"}],"key":"PRZBwTkafO"},{"type":"block","kind":"notebook-content","data":{"hideCode":false,"hidePrompt":false,"slideshow":{"slide_type":"subslide"}},"children":[{"type":"paragraph","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"strong","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"How large are the training set and test set?","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"GhPCQYyf0F"}],"key":"ul7PBvr9C8"}],"key":"WkI6ISs0m0"}],"key":"orBWhrJadT"},{"type":"block","kind":"notebook-content","data":{"hideCode":false,"hidePrompt":false,"slideshow":{"slide_type":"fragment"}},"children":[{"type":"paragraph","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"Both the training and test sets are loaded as ","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"dYLKaEXeRq"},{"type":"link","url":"https://www.tensorflow.org/api_docs/python/tf/data/Dataset","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"inlineCode","value":"Dataset","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"BXuHQjbUUP"},{"type":"text","value":" objects","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"w2C0zMXaSm"}],"urlSource":"https://www.tensorflow.org/api_docs/python/tf/data/Dataset","key":"IJbm8ajQMf"},{"type":"text","value":".","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"c8gNmc1HUC"}],"key":"WWZZB1sP6M"},{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":2,"column":1},"end":{"line":3,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"children":[{"type":"text","value":"The loading is lazy, i.e., the data is not yet in memory, we cannot count the number of instances directly.","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"wyvu4IRbAE"}],"key":"pFBqMXshSb"},{"type":"listItem","spread":true,"position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"children":[{"type":"text","value":"Instead, we obtain such information from ","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"dsZDw23bWD"},{"type":"inlineCode","value":"ds_info","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"GFAZ0dYYJ7"},{"type":"text","value":".","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"ThlsBQEHDG"}],"key":"O8nuoxC6wa"}],"key":"AyqSStIHUq"}],"key":"IrSAWYXW9J"},{"type":"block","kind":"notebook-content","data":{"hideCode":false,"hidePrompt":false,"slideshow":{"slide_type":"subslide"}},"children":[{"type":"exercise","label":"ex:1","identifier":"ex:1","enumerated":true,"children":[{"type":"paragraph","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"children":[{"type":"text","value":"Assign to ","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"igSqnR9oQJ"},{"type":"inlineCode","value":"train_size","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"pf3ohP6kl0"},{"type":"text","value":" and ","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"hsxZytTKvM"},{"type":"inlineCode","value":"test_size","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"mVoVfoDHHd"},{"type":"text","value":" the numbers of instances in the training set and test set respectively.","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"QcHPlE1zSK"}],"key":"BHTnzF0rFi"},{"type":"paragraph","position":{"start":{"line":6,"column":1},"end":{"line":6,"column":1}},"children":[{"type":"text","value":"Replace ","position":{"start":{"line":6,"column":1},"end":{"line":6,"column":1}},"key":"BHaTL2JpKm"},{"type":"inlineCode","value":"raise NotImplementedError()","position":{"start":{"line":6,"column":1},"end":{"line":6,"column":1}},"key":"sZRmEwOhQm"},{"type":"text","value":" in the solution cell by the following code with the blanks filled with the desired numbers:","position":{"start":{"line":6,"column":1},"end":{"line":6,"column":1}},"key":"L5GNBIrqdf"}],"key":"byvrQC4tDI"},{"type":"code","lang":"python","value":"train_size = ___\ntest_size = ___","position":{"start":{"line":8,"column":1},"end":{"line":11,"column":1}},"key":"eXCaP9BScH"},{"type":"admonition","kind":"hint","class":"dropdown","children":[{"type":"admonitionTitle","children":[{"type":"text","value":"Hint","key":"DqQ3XykHIO"}],"key":"V9ibih6b0b"},{"type":"paragraph","position":{"start":{"line":14,"column":1},"end":{"line":14,"column":1}},"children":[{"type":"text","value":"Right click anywhere in the notebook and select ","position":{"start":{"line":14,"column":1},"end":{"line":14,"column":1}},"key":"aXd8fZfttM"},{"type":"inlineCode","value":"Create New Console for Notebook","position":{"start":{"line":14,"column":1},"end":{"line":14,"column":1}},"key":"etlux5rvK1"},{"type":"text","value":". Then, evaluate","position":{"start":{"line":14,"column":1},"end":{"line":14,"column":1}},"key":"ByCItBwYGY"}],"key":"uhWRqB4r9F"},{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":15,"column":1},"end":{"line":17,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":15,"column":1},"end":{"line":15,"column":1}},"children":[{"type":"inlineCode","value":"ds_info","position":{"start":{"line":15,"column":1},"end":{"line":15,"column":1}},"key":"B8GDYkza6m"},{"type":"text","value":" or","position":{"start":{"line":15,"column":1},"end":{"line":15,"column":1}},"key":"A998XkSoX5"}],"key":"st1VsrcAfa"},{"type":"listItem","spread":true,"position":{"start":{"line":16,"column":1},"end":{"line":17,"column":1}},"children":[{"type":"inlineCode","value":"dir(ds_info.splits[\"train\"])","position":{"start":{"line":16,"column":1},"end":{"line":16,"column":1}},"key":"lTiOU8hLaM"},{"type":"text","value":" and ","position":{"start":{"line":16,"column":1},"end":{"line":16,"column":1}},"key":"BDfFC4l2GP"},{"type":"inlineCode","value":"dir(ds_info.splits[\"test\"])","position":{"start":{"line":16,"column":1},"end":{"line":16,"column":1}},"key":"XVpaZKSFlu"}],"key":"XEAaRF3gAJ"}],"key":"bHELPYopwH"},{"type":"paragraph","position":{"start":{"line":18,"column":1},"end":{"line":18,"column":1}},"children":[{"type":"text","value":"to see their attributes. Alternatively,","position":{"start":{"line":18,"column":1},"end":{"line":18,"column":1}},"key":"j8m5FCuSSi"}],"key":"cztVsn62D9"},{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":20,"column":1},"end":{"line":21,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":20,"column":1},"end":{"line":20,"column":1}},"children":[{"type":"text","value":"you may select ","position":{"start":{"line":20,"column":1},"end":{"line":20,"column":1}},"key":"UdwB1vgSib"},{"type":"inlineCode","value":"Show Contextual Help","position":{"start":{"line":20,"column":1},"end":{"line":20,"column":1}},"key":"ymOMworB4T"},{"type":"text","value":" and hover the mouse over a piece of code to get its documentation, or","position":{"start":{"line":20,"column":1},"end":{"line":20,"column":1}},"key":"B63hiGZDDi"}],"key":"oGnW8bhnvr"},{"type":"listItem","spread":true,"position":{"start":{"line":21,"column":1},"end":{"line":21,"column":1}},"children":[{"type":"text","value":"evaluate ","position":{"start":{"line":21,"column":1},"end":{"line":21,"column":1}},"key":"VcSOLBG9ha"},{"type":"inlineCode","value":"ds_info.splits?","position":{"start":{"line":21,"column":1},"end":{"line":21,"column":1}},"key":"sR4kSSZpnB"},{"type":"text","value":" or ","position":{"start":{"line":21,"column":1},"end":{"line":21,"column":1}},"key":"R27fnCYGDL"},{"type":"inlineCode","value":"ds_info.splits??","position":{"start":{"line":21,"column":1},"end":{"line":21,"column":1}},"key":"PvqLTyVhA7"},{"type":"text","value":" in a cell.","position":{"start":{"line":21,"column":1},"end":{"line":21,"column":1}},"key":"f87qw8YpyA"}],"key":"t91HWNxATy"}],"key":"a3ycRP0p2X"}],"key":"e9528LZKFt"}],"enumerator":"1","html_id":"ex-1","key":"X9VPRJKRgr"}],"key":"B7Vm1hiURj"},{"type":"block","kind":"notebook-code","data":{"hideCode":false,"hidePrompt":false,"nbgrader":{"grade":false,"grade_id":"sizes","locked":false,"schema_version":3,"solution":true,"task":false},"slideshow":{"slide_type":"-"},"tags":[]},"children":[{"type":"code","lang":"python","executable":true,"value":"### BEGIN SOLUTION\ntrain_size = ds_info.splits[\"train\"].num_examples\ntest_size = ds_info.splits[\"test\"].num_examples\n### END SOLUTION\ntrain_size, test_size","visibility":"hide","key":"JY8TbqwFcE"},{"type":"output","id":"sykqt0CRWD_Z0zEarw6lb","data":[],"visibility":"remove","key":"MzrD786NDe"}],"visibility":"show","key":"yDIoo5JHGQ"},{"type":"block","kind":"notebook-code","data":{"hideCode":false,"hideOutput":false,"hidePrompt":false,"nbgrader":{"grade":true,"grade_id":"test-sizes","locked":true,"points":1,"schema_version":3,"solution":false,"task":false},"slideshow":{"slide_type":"-"},"tags":[]},"children":[{"type":"code","lang":"python","executable":true,"value":"# tests\nassert 0 < train_size < 100000\nassert 0 < test_size < 50000\n# hidden tests will be run to check your answers precisely after submission\n### BEGIN HIDDEN TESTS\nassert train_size == 60000\nassert test_size == 10000\n### END HIDDEN TESTS","visibility":"hide","key":"N0wsJ1SUVT"},{"type":"output","id":"37j-Zjj162xvzq7BgLTXB","data":[],"visibility":"remove","key":"dJSstfuFAq"}],"visibility":"show","key":"ctQdrXvVTl"},{"type":"block","kind":"notebook-content","data":{"hideCode":false,"hidePrompt":false,"slideshow":{"slide_type":"notes"}},"children":[{"type":"paragraph","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"Note that the training set is often much larger than the test set especially for deep learning because","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"oxKnmKNw1R"}],"key":"UdfrRt8SnD"},{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":2,"column":1},"end":{"line":3,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"children":[{"type":"text","value":"training a neural network requires many examples but","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"ZGLi7IRcf8"}],"key":"uR3Prggpno"},{"type":"listItem","spread":true,"position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"children":[{"type":"text","value":"estimating its performance does not.","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"YKPFekz6UW"}],"key":"tIxM8rB19b"}],"key":"N5JRM6GcEm"}],"key":"SeuyDRgWES"},{"type":"block","kind":"notebook-content","data":{"hideCode":false,"hidePrompt":false,"slideshow":{"slide_type":"slide"}},"children":[{"type":"heading","depth":2,"position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"Data Visualization","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"VZDf1a9IV1"}],"identifier":"data-visualization","label":"Data Visualization","html_id":"data-visualization","implicit":true,"key":"aBKSJlT9ed"}],"key":"QSQlrfvzPz"},{"type":"block","kind":"notebook-content","data":{"hideCode":false,"hidePrompt":false,"slideshow":{"slide_type":"-"}},"children":[{"type":"paragraph","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"The following retrieves an example from the training set.","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"m1C84agTYe"}],"key":"SJjJrZsjmn"}],"key":"FrvWrtXRQv"},{"type":"block","kind":"notebook-code","data":{"hideCode":false,"hidePrompt":false,"slideshow":{"slide_type":"-"}},"children":[{"type":"code","lang":"python","executable":true,"value":"for image, label in ds[\"train\"].take(1):\n    print(\n        f\"\"\"image dtype: {type(image)} shape: {image.shape} element dtype: {image.dtype}\nlabel dtype: {label.dtype}\"\"\"\n    )","key":"CGKhl8lqXl"},{"type":"output","id":"Wpjx6cFdQQ_BkHMy5waSd","data":[],"key":"n9yE7StVeS"}],"key":"aONqURbZtE"},{"type":"block","kind":"notebook-content","data":{"hideCode":false,"hidePrompt":false,"slideshow":{"slide_type":"notes"}},"children":[{"type":"paragraph","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"The for loop above takes one example from ","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"PBsJmglyua"},{"type":"inlineCode","value":"ds[\"train\"]","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"yvWpidKKIE"},{"type":"text","value":" using the method ","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"bxlW84ohHt"},{"type":"link","url":"https://www.tensorflow.org/api_docs/python/tf/data/Dataset#take","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"inlineCode","value":"take","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"eBI9vFyiEH"}],"urlSource":"https://www.tensorflow.org/api_docs/python/tf/data/Dataset#take","key":"mJKbFDQn9X"},{"type":"text","value":" and print its data types.","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"SjsdWcXayi"}],"key":"TjPGFM7NhU"},{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":2,"column":1},"end":{"line":3,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"children":[{"type":"text","value":"The handwritten digit is represented by a 28x28x1 ","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"RgsqfBXxRM"},{"type":"link","url":"https://www.tensorflow.org/guide/eager","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"children":[{"type":"inlineCode","value":"EagerTensor","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"vEENrdShQN"}],"urlSource":"https://www.tensorflow.org/guide/eager","key":"L8iliKpo4l"},{"type":"text","value":", which is essentially a 2D array of bytes (8-bit unsigned integers ","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"EJX6ZyjHJH"},{"type":"inlineCode","value":"uint8","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"eEGnFcMMDi"},{"type":"text","value":").","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"EzWe4CB0Ad"}],"key":"ggCfmaA165"},{"type":"listItem","spread":true,"position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"children":[{"type":"text","value":"The digit type is an integer.","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"bpWUaEemLD"}],"key":"eb37Byxek8"}],"key":"PsiCYIqFg6"}],"key":"NwdAUZIbTz"},{"type":"block","kind":"notebook-content","data":{"hideCode":false,"hidePrompt":false,"slideshow":{"slide_type":"subslide"}},"children":[{"type":"paragraph","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"The following function plots the image using the ","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"z5hizSI15x"},{"type":"inlineCode","value":"imshow","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"cSODtJiqdG"},{"type":"text","value":" function from ","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"Jda57sRy1y"},{"type":"inlineCode","value":"matplotlib.pyplot","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"FRZFvaIKG1"},{"type":"text","value":".","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"ajG364hk5S"}],"key":"O9dFVRTmxi"}],"key":"b9BNmz4EJQ"},{"type":"block","kind":"notebook-code","data":{"hideCode":false,"hidePrompt":false,"slideshow":{"slide_type":"-"}},"children":[{"type":"code","lang":"python","executable":true,"value":"import matplotlib.pyplot as plt\n\nplt.figure(num=1)\nfor image, label in ds[\"train\"].take(1):  # take 1 example from training set\n    plt.imshow(image)\n    plt.title(label.numpy())  # show digit type as plot title\nplt.show()","key":"jE2phz8WQr"},{"type":"output","id":"FKG4wPlMPbDB3gGqX07yt","data":[],"key":"iCTvgvSPWq"}],"key":"cRonCx7XtG"},{"type":"block","kind":"notebook-content","data":{"hideCode":false,"hidePrompt":false,"slideshow":{"slide_type":"notes"}},"children":[{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"The method ","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"NMPtsCcA93"},{"type":"inlineCode","value":"numpy()","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"i8355MF3Cv"},{"type":"text","value":" is needed to convert the label to the correct integer type for ","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"FaTMw0TeZH"},{"type":"inlineCode","value":"matplotlib","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"im4vxKJ58H"},{"type":"text","value":".","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"rjbXsk4I8B"}],"key":"lUW3GzgcNx"}],"key":"D39BQbR63b"}],"key":"JUadjsQJml"},{"type":"block","kind":"notebook-content","data":{"hideCode":false,"hidePrompt":false,"slideshow":{"slide_type":"subslide"}},"children":[{"type":"paragraph","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"The following function plots the image properly in grayscale labeled by pixel values:","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"SJie6y7Okc"}],"key":"wueSNSZh31"}],"key":"xdmDGRZteY"},{"type":"block","kind":"notebook-code","data":{"hideCode":false,"hidePrompt":false,"slideshow":{"slide_type":"-"},"tags":[]},"children":[{"type":"code","lang":"python","executable":true,"value":"def plot_mnist_image(example, ax=None, pixel_format=None):\n    (image, label) = example\n    if ax == None:\n        ax = plt.gca()\n    ax.imshow(image, cmap=\"gray_r\")  # show image\n    ax.title.set_text(label.numpy())  # show digit type as plot title\n    # Major ticks\n    ax.set_xticks(np.arange(0, 28, 3))\n    ax.set_yticks(np.arange(0, 28, 3))\n    # Minor ticks\n    ax.set_xticks(np.arange(-0.5, 28, 1), minor=True)\n    ax.set_yticks(np.arange(-0.5, 28, 1), minor=True)\n    if pixel_format is not None:\n        for i in range(28):\n            for j in range(28):\n                ax.text(\n                    j,\n                    i,\n                    pixel_format.format(image[i, j, 0].numpy()),  # show pixel value\n                    va=\"center\",\n                    ha=\"center\",\n                    color=\"white\",\n                    fontweight=\"bold\",\n                    fontsize=\"small\",\n                )\n        ax.grid(color=\"lightblue\", linestyle=\"-\", linewidth=1, which=\"minor\")\n        ax.set_xlabel(\"2nd dimension\")\n        ax.set_ylabel(\"1st dimension\")\n        ax.title.set_text(\"Image with label \" + ax.title.get_text())\n\n\nplt.figure(num=2)\nfor example in ds[\"train\"].take(1):\n    plot_mnist_image(example, pixel_format=\"{}\")\nplt.show()","visibility":"show","key":"UY2B1qjJhv"},{"type":"output","id":"6IkKTvoLgxR2s_EsiBKvA","data":[],"visibility":"remove","key":"hiBWfaIG9W"}],"visibility":"show","key":"YABAWVQr6L"},{"type":"block","kind":"notebook-content","data":{"hideCode":false,"hidePrompt":false,"slideshow":{"slide_type":"notes"}},"children":[{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"We set the parameter ","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"ZeN3KGD00X"},{"type":"inlineCode","value":"cmap","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"Px6E0wETnj"},{"type":"text","value":" to ","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"vQNG3IPVEs"},{"type":"inlineCode","value":"gray_r","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"Wctvr5TnR3"},{"type":"text","value":" so the color is darker if the pixel value is larger.","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"KVIXMRqjaz"}],"key":"hu7YUKGloY"}],"key":"ENtqpIlyFJ"}],"key":"MPg7VtizUQ"},{"type":"block","kind":"notebook-content","data":{"hideCode":false,"hidePrompt":false,"nbgrader":{"grade":false,"grade_id":"check-plot_mnist_image_matrix","locked":true,"points":1,"schema_version":3,"solution":false,"task":true},"slideshow":{"slide_type":"subslide"}},"children":[{"type":"exercise","label":"ex:2","identifier":"ex:2","enumerated":true,"children":[{"type":"paragraph","position":{"start":{"line":3,"column":1},"end":{"line":4,"column":1}},"children":[{"type":"text","value":"Complete the following code to generate a matrix plot of the first 50 examples from the training sets.","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"RULc4RvohK"},{"type":"break","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"lACdXiUE16"},{"type":"text","value":"The parameter ","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"exVvPl9gOf"},{"type":"inlineCode","value":"nrows","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"HYZuWwwG6r"},{"type":"text","value":" and ","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"EuWJz6G5RV"},{"type":"inlineCode","value":"ncols","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"aVUM4T1FXT"},{"type":"text","value":" specify the number of rows and columns respectively.","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"OxedInDJzQ"}],"key":"sM6M2mVuH5"},{"type":"admonition","kind":"hint","class":"dropdown","children":[{"type":"admonitionTitle","children":[{"type":"text","value":"Hint","key":"XO2FxYsALs"}],"key":"DdTCcLcleL"},{"type":"paragraph","position":{"start":{"line":9,"column":1},"end":{"line":9,"column":1}},"children":[{"type":"text","value":"You code may look like","position":{"start":{"line":9,"column":1},"end":{"line":9,"column":1}},"key":"VkZZ2Er8eT"}],"key":"NDJZz9a4cU"},{"type":"code","lang":"python","value":"...\n        for ax, example in zip(axes.flat, ds[\"train\"].____(nrows * ncols)):\n            plot_mnist_image(_______, ax)\n            ax.axes.xaxis.set_visible(False)\n            ax.axes.yaxis.set_visible(False)\n...","position":{"start":{"line":10,"column":1},"end":{"line":17,"column":1}},"key":"HYHaTJeL06"},{"type":"paragraph","position":{"start":{"line":18,"column":1},"end":{"line":19,"column":1}},"children":[{"type":"text","value":"and the output image should look like\n","position":{"start":{"line":18,"column":1},"end":{"line":18,"column":1}},"key":"iPvIKzl3sJ"},{"type":"image","url":"/~ccha23/deepbook/build/mnist_examples-5cc3fff69f4258ecd0f17f1c4aa37cbf.svg","alt":"mnist_examples","position":{"start":{"line":18,"column":1},"end":{"line":18,"column":1}},"key":"kIy2abl53o","urlSource":"mnist_examples.svg"}],"key":"x0pEg3erRt"}],"key":"zJFszc1HHZ"}],"enumerator":"2","html_id":"ex-2","key":"uHZ4oxqdIM"}],"key":"IO4IVHPgy6"},{"type":"block","kind":"notebook-code","data":{"hideCode":false,"hideOutput":false,"hidePrompt":false,"nbgrader":{"grade":false,"grade_id":"plot_mnist_image_matrix","locked":false,"schema_version":3,"solution":true,"task":false},"slideshow":{"slide_type":"-"},"tags":[]},"children":[{"type":"code","lang":"python","executable":true,"value":"if input(\"Execute? [Y/n]\").lower != \"n\":\n\n    def plot_mnist_image_matrix(ds, nrows=5, ncols=10, **args):\n        fig, axes = plt.subplots(nrows=nrows, ncols=ncols, **args)\n\n        ### BEGIN SOLUTION\n        for ax, example in zip(axes.flat, ds[\"train\"].take(nrows * ncols)):\n            plot_mnist_image(example, ax)\n            ax.axes.xaxis.set_visible(False)\n            ax.axes.yaxis.set_visible(False)\n        ### END SOLUTION\n\n        fig.tight_layout()  # adjust spacing between subplots automatically\n        return fig, axes\n\n    fig, axes = plot_mnist_image_matrix(ds, nrows=5, num=3, figsize=(9, 6))\n    # plt.savefig('mnist_examples.svg')\n    plt.show()","visibility":"show","key":"IOHrDbBBxe"},{"type":"output","id":"bLNRGfP_PKTesdqkd0yJW","data":[],"visibility":"remove","key":"HUMLcNt8tg"}],"visibility":"show","key":"v5XeO0zWMK"},{"type":"block","kind":"notebook-content","data":{"hideCode":false,"hidePrompt":false,"slideshow":{"slide_type":"subslide"}},"children":[{"type":"heading","depth":2,"position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"Data Preprocessing","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"kKdHSNlDAa"}],"identifier":"data-preprocessing","label":"Data Preprocessing","html_id":"data-preprocessing","implicit":true,"key":"e6SUXmjY3d"}],"key":"ZH2XhznwZR"},{"type":"block","kind":"notebook-content","data":{"hideCode":false,"hidePrompt":false,"slideshow":{"slide_type":"-"}},"children":[{"type":"paragraph","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"We will use the ","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"i8gmmXle8t"},{"type":"link","url":"https://www.tensorflow.org/","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"inlineCode","value":"tensorflow","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"rWARXOD1tU"}],"urlSource":"https://www.tensorflow.org/","key":"uavZICUwDU"},{"type":"text","value":" library to process the data and train the neural network. (Another popular library is ","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"DfVqKxzvVs"},{"type":"link","url":"https://pytorch.org/","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"PyTorch","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"bp3SZ01ZlF"}],"urlSource":"https://pytorch.org/","key":"PW7UqI8pHn"},{"type":"text","value":".)","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"bhwDbnABtP"}],"key":"jOLiYwO7NV"}],"key":"cGSj3s22sN"},{"type":"block","kind":"notebook-code","data":{"hideCode":false,"hidePrompt":false,"slideshow":{"slide_type":"-"}},"children":[{"type":"code","lang":"python","executable":true,"value":"import tensorflow.compat.v2 as tf  # explicitly use tensorflow version 2","key":"whBIJxUpn4"},{"type":"output","id":"XDdKVSBpCvqe0aPAMW_Ut","data":[],"key":"g9bLNmtOC4"}],"key":"CkMPxNnEKF"},{"type":"block","kind":"notebook-content","data":{"hideCode":false,"hidePrompt":false,"slideshow":{"slide_type":"fragment"}},"children":[{"type":"paragraph","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"Each pixel is stored as an integer from ","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"OQprzQOKHH"},{"type":"inlineMath","value":"\\{0,\\dots,255\\}","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"html":"<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo stretchy=\"false\">{</mo><mn>0</mn><mo separator=\"true\">,</mo><mo>…</mo><mo separator=\"true\">,</mo><mn>255</mn><mo stretchy=\"false\">}</mo></mrow><annotation encoding=\"application/x-tex\">\\{0,\\dots,255\\}</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mopen\">{</span><span class=\"mord\">0</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.1667em;\"></span><span class=\"minner\">…</span><span class=\"mspace\" style=\"margin-right:0.1667em;\"></span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.1667em;\"></span><span class=\"mord\">255</span><span class=\"mclose\">}</span></span></span></span>","key":"sIN1ZFRRqv"},{"type":"text","value":" (","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"z0Q3enftXB"},{"type":"span","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"2","key":"tx7XLzFn67"},{"type":"superscript","children":[{"type":"text","value":"8","key":"dcGc2WYlOX"}],"key":"PrqF8fZ41D"}],"key":"eUiISnQrzy"},{"type":"text","value":" possible values). However, for computations by the neural network, we need to convert it to a floating point number. We will also normalize each pixel value to be within the unit interval ","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"tY7s7dUKOD"},{"type":"inlineMath","value":"[0,1]","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"html":"<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo stretchy=\"false\">[</mo><mn>0</mn><mo separator=\"true\">,</mo><mn>1</mn><mo stretchy=\"false\">]</mo></mrow><annotation encoding=\"application/x-tex\">[0,1]</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mopen\">[</span><span class=\"mord\">0</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.1667em;\"></span><span class=\"mord\">1</span><span class=\"mclose\">]</span></span></span></span>","key":"dLLCYOA6TZ"},{"type":"text","value":":","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"RXDdYBUl4G"}],"key":"uL9Aay0teB"},{"type":"math","value":"\\begin{align} \nv \\mapsto \\frac{v - v_{\\min}}{v_{\\max} - v_{\\min}} = \\frac{v}{255}\\tag{min-max normalization}\n\\end{align}","position":{"start":{"line":3,"column":1},"end":{"line":7,"column":1}},"html":"<span class=\"katex-display\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\" display=\"block\"><semantics><mtable rowspacing=\"0.25em\" columnalign=\"right\" columnspacing=\"\"><mtr><mtd class =\"mtr-glue\"></mtd><mtd><mstyle scriptlevel=\"0\" displaystyle=\"true\"><mrow><mi>v</mi><mo>↦</mo><mfrac><mrow><mi>v</mi><mo>−</mo><msub><mi>v</mi><mi>min</mi><mo>⁡</mo></msub></mrow><mrow><msub><mi>v</mi><mi>max</mi><mo>⁡</mo></msub><mo>−</mo><msub><mi>v</mi><mi>min</mi><mo>⁡</mo></msub></mrow></mfrac><mo>=</mo><mfrac><mi>v</mi><mn>255</mn></mfrac></mrow></mstyle></mtd><mtd class =\"mtr-glue\"></mtd><mtd class =\"mml-eqn-num\"></mtd></mtr></mtable><annotation encoding=\"application/x-tex\">\\begin{align} \nv \\mapsto \\frac{v - v_{\\min}}{v_{\\max} - v_{\\min}} = \\frac{v}{255}\\tag{min-max normalization}\n\\end{align}</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:2.3963em;vertical-align:-0.9482em;\"></span><span class=\"mtable\"><span class=\"col-align-r\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.4482em;\"><span style=\"top:-3.4482em;\"><span class=\"pstrut\" style=\"height:3.2603em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">v</span><span class=\"mspace\" style=\"margin-right:0.2778em;\"></span><span class=\"mrel\">↦</span><span class=\"mspace\" style=\"margin-right:0.2778em;\"></span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.2603em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">v</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.1514em;\"><span style=\"top:-2.55em;margin-left:-0.0359em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mop mtight\"><span class=\"mtight\">m</span><span class=\"mtight\">a</span><span class=\"mtight\">x</span></span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span><span class=\"mspace\" style=\"margin-right:0.2222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">v</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.3175em;\"><span style=\"top:-2.55em;margin-left:-0.0359em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mop mtight\"><span class=\"mtight\">m</span><span class=\"mtight\">i</span><span class=\"mtight\">n</span></span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">v</span><span class=\"mspace\" style=\"margin-right:0.2222em;\"></span><span class=\"mbin\">−</span><span class=\"mspace\" style=\"margin-right:0.2222em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">v</span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.3175em;\"><span style=\"top:-2.55em;margin-left:-0.0359em;margin-right:0.05em;\"><span class=\"pstrut\" style=\"height:2.7em;\"></span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\"><span class=\"mop mtight\"><span class=\"mtight\">m</span><span class=\"mtight\">i</span><span class=\"mtight\">n</span></span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.15em;\"><span></span></span></span></span></span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.836em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span><span class=\"mspace\" style=\"margin-right:0.2778em;\"></span><span class=\"mrel\">=</span><span class=\"mspace\" style=\"margin-right:0.2778em;\"></span><span class=\"mord\"><span class=\"mopen nulldelimiter\"></span><span class=\"mfrac\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.1076em;\"><span style=\"top:-2.314em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord\">255</span></span></span><span style=\"top:-3.23em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"frac-line\" style=\"border-bottom-width:0.04em;\"></span></span><span style=\"top:-3.677em;\"><span class=\"pstrut\" style=\"height:3em;\"></span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right:0.03588em;\">v</span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.686em;\"><span></span></span></span></span></span><span class=\"mclose nulldelimiter\"></span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.9482em;\"><span></span></span></span></span></span></span></span><span class=\"tag\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:1.4482em;\"><span style=\"top:-3.4482em;\"><span class=\"pstrut\" style=\"height:3.2603em;\"></span><span><span class=\"mord text\"><span class=\"mord\">(</span><span class=\"mord\"><span class=\"mord\">min-max normalization</span></span><span class=\"mord\">)</span></span></span></span></span><span class=\"vlist-s\">​</span></span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height:0.9482em;\"><span></span></span></span></span></span></span></span></span>","enumerator":"2","key":"X7FdI6Xxjc"}],"key":"VaTxiyMTlQ"},{"type":"block","kind":"notebook-content","data":{"slideshow":{"slide_type":"-"}},"children":[{"type":"image","url":"/~ccha23/deepbook/build/mnist_example_normal-232b915345455113cff5ff544893f2f5.svg","alt":"mnist_example","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"PXt21m4YX2","urlSource":"mnist_example_normalized.svg"}],"key":"wUP5qwshdl"},{"type":"block","kind":"notebook-content","data":{"hideCode":false,"hidePrompt":false,"slideshow":{"slide_type":"subslide"}},"children":[{"type":"exercise","label":"ex:3","identifier":"ex:3","enumerated":true,"children":[{"type":"paragraph","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"children":[{"type":"text","value":"Using the function ","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"z8n7IPgg6a"},{"type":"inlineCode","value":"map","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"yxmwE3DNRP"},{"type":"text","value":", normalize each element of an image to the unit interval ","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"PztJWYmQmv"},{"type":"inlineMath","value":"[0,1]","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"html":"<span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mo stretchy=\"false\">[</mo><mn>0</mn><mo separator=\"true\">,</mo><mn>1</mn><mo stretchy=\"false\">]</mo></mrow><annotation encoding=\"application/x-tex\">[0,1]</annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:1em;vertical-align:-0.25em;\"></span><span class=\"mopen\">[</span><span class=\"mord\">0</span><span class=\"mpunct\">,</span><span class=\"mspace\" style=\"margin-right:0.1667em;\"></span><span class=\"mord\">1</span><span class=\"mclose\">]</span></span></span></span>","key":"z8oqRZ9Kzv"},{"type":"text","value":" after converting them to ","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"kxoerpQ5Eu"},{"type":"inlineCode","value":"tf.float32","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"ksyygpDUiL"},{"type":"text","value":" using ","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"kIv81m4ckC"},{"type":"link","url":"https://www.tensorflow.org/api_docs/python/tf/cast","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"children":[{"type":"inlineCode","value":"tf.cast","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"feTRrAga8o"}],"urlSource":"https://www.tensorflow.org/api_docs/python/tf/cast","key":"LNbOsTMuSZ"},{"type":"text","value":".","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"lsTQ2IwCGP"}],"key":"GpM0AlNI2l"},{"type":"admonition","kind":"hint","class":"dropdown","children":[{"type":"admonitionTitle","children":[{"type":"text","value":"Hint","key":"a5OZ0D7f5o"}],"key":"ZsH24rM0nn"},{"type":"paragraph","position":{"start":{"line":8,"column":1},"end":{"line":8,"column":1}},"children":[{"type":"text","value":"Your code may look like","position":{"start":{"line":8,"column":1},"end":{"line":8,"column":1}},"key":"pjXuhoXlc1"}],"key":"khU5RXz7r2"},{"type":"code","lang":"python","value":"...\n        ds_n[part] = ds[part].map(\n                    lambda image, label: (_____(image, _____) / ___, label),\n                    num_parallel_calls=tf.data.experimental.AUTOTUNE)\n...","position":{"start":{"line":9,"column":1},"end":{"line":15,"column":1}},"key":"pcr9NknJE3"},{"type":"paragraph","position":{"start":{"line":16,"column":1},"end":{"line":16,"column":1}},"children":[{"type":"inlineCode","value":"map","position":{"start":{"line":16,"column":1},"end":{"line":16,"column":1}},"key":"fzktvX99eA"},{"type":"text","value":" applies the conversion to each example in the dataset.","position":{"start":{"line":16,"column":1},"end":{"line":16,"column":1}},"key":"cU9K4ts9h5"}],"key":"a0KkXar3IX"}],"key":"ZSZqGLQTfR"}],"enumerator":"3","html_id":"ex-3","key":"GKCcQyhByh"}],"key":"x3UOyG4cQL"},{"type":"block","kind":"notebook-code","data":{"hideCode":false,"hidePrompt":false,"nbgrader":{"grade":false,"grade_id":"normalize","locked":false,"schema_version":3,"solution":true,"task":false},"slideshow":{"slide_type":"-"}},"children":[{"type":"code","lang":"python","executable":true,"value":"def normalize_mnist(ds):\n    \"\"\"\n    Returns:\n    MNIST Dataset with image pixel values normalized to float32 in [0,1].\n    \"\"\"\n    ds_n = dict.fromkeys(ds.keys())  # initialize the normalized dataset\n    for part in ds.keys():\n        # normalize pixel values to [0,1]\n        ### BEGIN SOLUTION\n        ds_n[part] = ds[part].map(\n            lambda image, label: (tf.cast(image, tf.float32) / 255, label),\n            num_parallel_calls=tf.data.experimental.AUTOTUNE,\n        )\n        # - `tf.cast(image, tf.float32) / 255` converts each element of `image`\n        #    to a float and then normalize it to within the unit interval [0,1];\n        # - `map` applies the conversion to each example in the dataset.\n        ### END SOLUTION\n    return ds_n\n\n\nds_n = normalize_mnist(ds)\nds_n","key":"t79wuJueD0"},{"type":"output","id":"0utbddrLDhAfV3uz85Mf9","data":[],"key":"rGbCBwEGLh"}],"key":"NW5XUEXMr5"},{"type":"block","kind":"notebook-code","data":{"slideshow":{"slide_type":"skip"},"tags":[]},"children":[{"type":"code","lang":"python","executable":true,"value":"# Plot the normalized digit\nif input(\"Execute? [Y/n]\").lower != \"n\":\n    plt.figure(figsize=(11, 11), dpi=80)\n    for example in ds_n[\"train\"].take(1):\n        plot_mnist_image(example, pixel_format=\"{:.2f}\")  # show pixel value to 2 d.p.s\n    # plt.savefig('mnist_example_normalized.svg')\n    plt.show()","visibility":"show","key":"cgVbyiTB0u"},{"type":"output","id":"W4gyVxHMyD2kTUt7cFKNR","data":[],"visibility":"remove","key":"jYPqNik3sR"}],"visibility":"show","key":"p4vRuOxzth"},{"type":"block","kind":"notebook-code","data":{"hideCode":false,"hidePrompt":false,"nbgrader":{"grade":true,"grade_id":"test-normalize","locked":true,"points":1,"schema_version":3,"solution":false,"task":false},"slideshow":{"slide_type":"skip"},"tags":[]},"children":[{"type":"code","lang":"python","executable":true,"value":"# tests\n### BEGIN HIDDEN TESTS\nimage = ds[\"test\"].__iter__().next()[0]\nassert tf.math.reduce_all(\n    tf.math.equal(ds_n[\"test\"].__iter__().next()[0], tf.cast(image, tf.float32) / 255.0)\n)\n### END HIDDEN TESTS","visibility":"show","key":"wyFoTFlFsm"},{"type":"output","id":"8CXV0ACMtPtUf40Kym5o3","data":[],"visibility":"remove","key":"Gm5GX7uF7T"}],"visibility":"show","key":"HPdE0PoCi7"},{"type":"block","kind":"notebook-content","data":{"hideCode":false,"hidePrompt":false,"slideshow":{"slide_type":"subslide"}},"children":[{"type":"paragraph","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"To avoid overfitting, the training of a neural network uses ","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"Pd2pEkz3H9"},{"type":"emphasis","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"stochastic gradient descent","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"UfRhwB2Gnu"}],"key":"YH8GZkJLjz"},{"type":"text","value":" which","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"UEsQKS8FuL"}],"key":"mYVqAFGBoq"},{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":2,"column":1},"end":{"line":4,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"children":[{"type":"text","value":"divides the training into many steps where","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"zRbzDV8iIS"}],"key":"fvf1W0CL1w"},{"type":"listItem","spread":true,"position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"children":[{"type":"text","value":"each step uses a ","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"AtlLF3uVaM"},{"type":"emphasis","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"children":[{"type":"text","value":"randomly","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"BPamqB5plG"}],"key":"gg8eFghXG2"},{"type":"text","value":" selected minibatch of samples","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"BgnHqC1I7V"}],"key":"DskUhhwbUi"},{"type":"listItem","spread":true,"position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"children":[{"type":"text","value":"to improve the neural network ","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"P7zIp98yVx"},{"type":"emphasis","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"children":[{"type":"text","value":"bit-by-bit","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"T1fH3xsgKP"}],"key":"QVQ7hzx71l"},{"type":"text","value":".","position":{"start":{"line":4,"column":1},"end":{"line":4,"column":1}},"key":"V4DxS0btID"}],"key":"hChpvqKncc"}],"key":"EonR83462v"}],"key":"pyEdgyG0DG"},{"type":"block","kind":"notebook-code","data":{"hideCode":false,"hidePrompt":false,"slideshow":{"slide_type":"-"}},"children":[{"type":"code","lang":"python","executable":true,"value":"def batch_mnist(ds_n):\n    ds_b = dict.fromkeys(ds_n.keys())  # initialize the batched dataset\n    for part in ds_n.keys():\n        ds_b[part] = (\n            ds_n[part]\n            .batch(128)  # Use a minibatch of examples for each training step\n            .shuffle(\n                ds_info.splits[part].num_examples, reshuffle_each_iteration=True\n            )  # shuffle data for each epoch\n            .cache()  # cache current elements\n            .prefetch(tf.data.experimental.AUTOTUNE)\n        )  # preload subsequent elements\n    return ds_b\n\n\nds_b = batch_mnist(ds_n)\nds_b","key":"V98Kb4eXl8"},{"type":"output","id":"xTs3C38KjEdW9nXI-nUkn","data":[],"key":"hqU2w1tQ5G"}],"key":"XcLasuc5mt"},{"type":"block","kind":"notebook-content","data":{"hideCode":false,"hidePrompt":false,"slideshow":{"slide_type":"notes"}},"children":[{"type":"paragraph","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"The above code","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"yp3QtiixUG"}],"key":"iFVPIgiEXU"},{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":2,"column":1},"end":{"line":3,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"children":[{"type":"text","value":"specifies the batch size (128) and","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"YS3RDRbTQx"}],"key":"F7iSpCuvFF"},{"type":"listItem","spread":true,"position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"children":[{"type":"text","value":"enables caching and prefetching to reduce the latency in loading examples repeatedly for training and testing.","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"tl5KASWxHg"}],"key":"CiMkSFCmm8"}],"key":"v2DQXc49fj"}],"key":"t8PMlKSwrp"},{"type":"block","kind":"notebook-content","data":{"hideCode":false,"hidePrompt":false,"slideshow":{"slide_type":"subslide"}},"children":[{"type":"exercise","label":"ex:4","identifier":"ex:4","enumerated":true,"children":[{"type":"paragraph","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"children":[{"type":"text","value":"The output to the above cell should look like","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"YUUBjliCQL"}],"key":"OX1N27QJR4"},{"type":"code","lang":"python","value":"{'test': <PrefetchDataset shapes: ((None, 28, 28, 1), (None,)), types: (tf.float32, tf.int64)>,\n 'train': <PrefetchDataset shapes: ((None, 28, 28, 1), (None,)), types: (tf.float32, tf.int64)>}","position":{"start":{"line":4,"column":1},"end":{"line":7,"column":1}},"key":"Xn0KFjkGIH"},{"type":"paragraph","position":{"start":{"line":8,"column":1},"end":{"line":8,"column":1}},"children":[{"type":"text","value":"with a new first dimension of unknown size ","position":{"start":{"line":8,"column":1},"end":{"line":8,"column":1}},"key":"rHIbweKa7a"},{"type":"inlineCode","value":"None","position":{"start":{"line":8,"column":1},"end":{"line":8,"column":1}},"key":"cEAzbJISQi"},{"type":"text","value":". Why?","position":{"start":{"line":8,"column":1},"end":{"line":8,"column":1}},"key":"d9vrRoNXaC"}],"key":"ZRN0Pcpw3B"},{"type":"admonition","kind":"hint","class":"dropdown","children":[{"type":"admonitionTitle","children":[{"type":"text","value":"Hint","key":"Z3v90Hnn2I"}],"key":"NUD9k2U7kp"},{"type":"paragraph","position":{"start":{"line":12,"column":1},"end":{"line":12,"column":1}},"children":[{"type":"text","value":"Is the total number of examples divisible by the batch sizs?","position":{"start":{"line":12,"column":1},"end":{"line":12,"column":1}},"key":"nHtr3aPSIS"}],"key":"zzBdrLdzG0"}],"key":"uY7tljgFOb"}],"enumerator":"4","html_id":"ex-4","key":"Ezsfmo9t5F"}],"key":"tQtfy1xFvd"},{"type":"block","kind":"notebook-content","data":{"hideCode":false,"hidePrompt":false,"nbgrader":{"grade":true,"grade_id":"batch","locked":false,"points":1,"schema_version":3,"solution":true,"task":false},"slideshow":{"slide_type":"-"}},"children":[{"type":"solution","class":"dropdown","children":[{"type":"admonitionTitle","children":[{"type":"text","value":"Solution to ","key":"FG92scmOHN"},{"type":"crossReference","label":"ex:4","identifier":"ex:4","kind":"exercise","children":[{"type":"text","value":"Exercise ","key":"s5anpqzqbS"},{"type":"text","value":"4","key":"dz0fJOHyoj"}],"template":"Exercise %s","enumerator":"4","resolved":true,"html_id":"ex-4","key":"dj5kgHbFeq"}],"key":"TCEl6qwwWi"},{"type":"paragraph","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"children":[{"type":"text","value":"Since the total number of examples may not be divisible by the batch size, the size of the last batch may be different from those of other batches.","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"nNxh4pXtsJ"}],"key":"yb8Pkq8ohe"}],"key":"fpvYnkEZ93"}],"key":"qqTEKfQNod"},{"type":"block","kind":"notebook-content","data":{"slideshow":{"slide_type":"slide"}},"children":[{"type":"heading","depth":2,"position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"Release Memory","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"envKULu2Fa"}],"identifier":"release-memory","label":"Release Memory","html_id":"release-memory","implicit":true,"key":"AxWU8NlBUl"}],"key":"WMUAAAqJ2J"},{"type":"block","kind":"notebook-content","data":{},"children":[{"type":"paragraph","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"children":[{"type":"text","value":"You cannot run a notebook if you have insufficient memory. It is important to shut down a notebook to release the memory:","position":{"start":{"line":1,"column":1},"end":{"line":1,"column":1}},"key":"bUMcPRoMfh"}],"key":"e3MpMw2ZeC"},{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"children":[{"type":"inlineCode","value":"Kernel","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"NSSqjXJAzt"},{"type":"text","value":"->","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"o4NP57w8Du"},{"type":"inlineCode","value":"Shut Down Kernel","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"Q3XQu1rKAT"},{"type":"text","value":".","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"QJZ2ZApDUB"}],"key":"aGUWrUhj2k"}],"key":"ccgDMbHQya"}],"key":"txjiuJZMWG"},{"type":"block","kind":"notebook-content","data":{"slideshow":{"slide_type":"fragment"}},"children":[{"type":"admonition","kind":"seealso","children":[{"type":"admonitionTitle","children":[{"type":"text","value":"See Also","key":"eFCgZrQAFI"}],"key":"C1WOHHN5bd"},{"type":"paragraph","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"children":[{"type":"text","value":"The JupyterLab interface has many ","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"TRlAtaNyq1"},{"type":"link","url":"https://jupyterlab.readthedocs.io/en/stable/user/running.html","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"children":[{"type":"text","value":"tools","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"TwgQ8vJNSz"}],"urlSource":"https://jupyterlab.readthedocs.io/en/stable/user/running.html","key":"FY5oCTIlSG"},{"type":"text","value":" to help you monitor your memory consumption.","position":{"start":{"line":2,"column":1},"end":{"line":2,"column":1}},"key":"KSLmpgoSx9"}],"key":"qxiphwvk6f"}],"key":"gvYdGSObcD"}],"key":"GVvvkjs3jM"}],"key":"tdsGBw37Tk"},"references":{"cite":{"order":[],"data":{}}},"footer":{"navigation":{"prev":{"title":"Mathematical Preliminaries","url":"/theory","group":"Part 1"},"next":{"title":"Network Architecture","url":"/network","group":"Part 2"}}},"domain":"http://localhost:3002"}