{"nbformat":4,"nbformat_minor":0,"metadata":{"colab":{"name":"app.ipynb","provenance":[],"collapsed_sections":[],"authorship_tag":"ABX9TyPtCzu/O+ogUahToK6HFaDf"},"kernelspec":{"name":"python3","display_name":"Python 3"},"language_info":{"name":"python"}},"cells":[{"cell_type":"code","source":["#|default_exp app"],"metadata":{"id":"VrvCYdus8Hyk","executionInfo":{"status":"ok","timestamp":1659886440082,"user_tz":-330,"elapsed":2,"user":{"displayName":"Edward Dennis","userId":"04496919791044727738"}}},"execution_count":17,"outputs":[]},{"cell_type":"code","execution_count":1,"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"q539RJtpzMl2","executionInfo":{"status":"ok","timestamp":1659885858755,"user_tz":-330,"elapsed":3234,"user":{"displayName":"Edward Dennis","userId":"04496919791044727738"}},"outputId":"e6a63c7b-f02a-4535-eac8-01be8aa335f3"},"outputs":[{"output_type":"stream","name":"stdout","text":["Drive already mounted at /content/drive; to attempt to forcibly remount, call drive.mount(\"/content/drive\", force_remount=True).\n"]}],"source":["from google.colab import drive\n","drive.mount('/content/drive')"]},{"cell_type":"code","source":["!pwd"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"_GI3NtilzjsP","executionInfo":{"status":"ok","timestamp":1659885861826,"user_tz":-330,"elapsed":359,"user":{"displayName":"Edward Dennis","userId":"04496919791044727738"}},"outputId":"46f25981-600d-41c8-8892-d13863ac3fac"},"execution_count":2,"outputs":[{"output_type":"stream","name":"stdout","text":["/content\n"]}]},{"cell_type":"code","source":["import os\n","os.chdir('/content/drive/MyDrive/fastai') # change working directory\n","!pwd"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"vpCqeBY4zkpb","executionInfo":{"status":"ok","timestamp":1659885863612,"user_tz":-330,"elapsed":449,"user":{"displayName":"Edward Dennis","userId":"04496919791044727738"}},"outputId":"0a2c6a09-86ed-43cb-8f99-d88671feefe9"},"execution_count":3,"outputs":[{"output_type":"stream","name":"stdout","text":["/content/drive/MyDrive/fastai\n"]}]},{"cell_type":"code","source":["!pip install --user -qq torch==1.9.0 torchvision==0.10.0 torchaudio==0.9.0 torchtext==0.10.0\n","!pip install --user -qq fastai"],"metadata":{"id":"4cij2YXmzrxS","executionInfo":{"status":"ok","timestamp":1659885875402,"user_tz":-330,"elapsed":8150,"user":{"displayName":"Edward Dennis","userId":"04496919791044727738"}}},"execution_count":4,"outputs":[]},{"cell_type":"code","source":["!pip install gradio"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"aqSwrTqR0SYW","executionInfo":{"status":"ok","timestamp":1659884402559,"user_tz":-330,"elapsed":18360,"user":{"displayName":"Edward Dennis","userId":"04496919791044727738"}},"outputId":"3d9fa6cb-516c-45cc-99f0-0e7bfd5e7993"},"execution_count":5,"outputs":[{"output_type":"stream","name":"stdout","text":["Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n","Collecting gradio\n"," Downloading gradio-3.1.4-py3-none-any.whl (5.6 MB)\n","\u001b[K |████████████████████████████████| 5.6 MB 27.0 MB/s \n","\u001b[?25hRequirement already satisfied: Jinja2 in /usr/local/lib/python3.7/dist-packages (from gradio) (2.11.3)\n","Collecting httpx\n"," Downloading httpx-0.23.0-py3-none-any.whl (84 kB)\n","\u001b[K |████████████████████████████████| 84 kB 3.0 MB/s \n","\u001b[?25hCollecting uvicorn\n"," Downloading uvicorn-0.18.2-py3-none-any.whl (57 kB)\n","\u001b[K |████████████████████████████████| 57 kB 5.1 MB/s \n","\u001b[?25hCollecting fsspec\n"," Downloading fsspec-2022.7.1-py3-none-any.whl (141 kB)\n","\u001b[K |████████████████████████████████| 141 kB 61.6 MB/s \n","\u001b[?25hCollecting python-multipart\n"," Downloading python-multipart-0.0.5.tar.gz (32 kB)\n","Requirement already satisfied: matplotlib in /usr/local/lib/python3.7/dist-packages (from gradio) (3.2.2)\n","Collecting h11<0.13,>=0.11\n"," Downloading h11-0.12.0-py3-none-any.whl (54 kB)\n","\u001b[K |████████████████████████████████| 54 kB 3.5 MB/s \n","\u001b[?25hRequirement already satisfied: numpy in /usr/local/lib/python3.7/dist-packages (from gradio) (1.21.6)\n","Collecting markdown-it-py[linkify,plugins]\n"," Downloading markdown_it_py-2.1.0-py3-none-any.whl (84 kB)\n","\u001b[K |████████████████████████████████| 84 kB 3.4 MB/s \n","\u001b[?25hRequirement already satisfied: aiohttp in /usr/local/lib/python3.7/dist-packages (from gradio) (3.8.1)\n","Requirement already satisfied: requests in /usr/local/lib/python3.7/dist-packages (from gradio) (2.23.0)\n","Requirement already satisfied: pydantic in /usr/local/lib/python3.7/dist-packages (from gradio) (1.9.1)\n","Collecting orjson\n"," Downloading orjson-3.7.11-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (275 kB)\n","\u001b[K |████████████████████████████████| 275 kB 54.9 MB/s \n","\u001b[?25hCollecting fastapi\n"," Downloading fastapi-0.79.0-py3-none-any.whl (54 kB)\n","\u001b[K |████████████████████████████████| 54 kB 3.2 MB/s \n","\u001b[?25hCollecting pycryptodome\n"," Downloading pycryptodome-3.15.0-cp35-abi3-manylinux2010_x86_64.whl (2.3 MB)\n","\u001b[K |████████████████████████████████| 2.3 MB 63.8 MB/s \n","\u001b[?25hCollecting pydub\n"," Downloading pydub-0.25.1-py2.py3-none-any.whl (32 kB)\n","Collecting analytics-python\n"," Downloading analytics_python-1.4.0-py2.py3-none-any.whl (15 kB)\n","Collecting paramiko\n"," Downloading paramiko-2.11.0-py2.py3-none-any.whl (212 kB)\n","\u001b[K |████████████████████████████████| 212 kB 47.2 MB/s \n","\u001b[?25hCollecting ffmpy\n"," Downloading ffmpy-0.3.0.tar.gz (4.8 kB)\n","Requirement already satisfied: pandas in /usr/local/lib/python3.7/dist-packages (from gradio) (1.3.5)\n","Requirement already satisfied: pillow in /usr/local/lib/python3.7/dist-packages (from gradio) (7.1.2)\n","Requirement already satisfied: attrs>=17.3.0 in /usr/local/lib/python3.7/dist-packages (from aiohttp->gradio) (22.1.0)\n","Requirement already satisfied: async-timeout<5.0,>=4.0.0a3 in /usr/local/lib/python3.7/dist-packages (from aiohttp->gradio) (4.0.2)\n","Requirement already satisfied: frozenlist>=1.1.1 in /usr/local/lib/python3.7/dist-packages (from aiohttp->gradio) (1.3.0)\n","Requirement already satisfied: yarl<2.0,>=1.0 in /usr/local/lib/python3.7/dist-packages (from aiohttp->gradio) (1.8.1)\n","Requirement already satisfied: asynctest==0.13.0 in /usr/local/lib/python3.7/dist-packages (from aiohttp->gradio) (0.13.0)\n","Requirement already satisfied: typing-extensions>=3.7.4 in /usr/local/lib/python3.7/dist-packages (from aiohttp->gradio) (4.1.1)\n","Requirement already satisfied: multidict<7.0,>=4.5 in /usr/local/lib/python3.7/dist-packages (from aiohttp->gradio) (6.0.2)\n","Requirement already satisfied: aiosignal>=1.1.2 in /usr/local/lib/python3.7/dist-packages (from aiohttp->gradio) (1.2.0)\n","Requirement already satisfied: charset-normalizer<3.0,>=2.0 in /usr/local/lib/python3.7/dist-packages (from aiohttp->gradio) (2.1.0)\n","Requirement already satisfied: idna>=2.0 in /usr/local/lib/python3.7/dist-packages (from yarl<2.0,>=1.0->aiohttp->gradio) (2.10)\n","Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.7/dist-packages (from analytics-python->gradio) (1.15.0)\n","Collecting monotonic>=1.5\n"," Downloading monotonic-1.6-py2.py3-none-any.whl (8.2 kB)\n","Requirement already satisfied: python-dateutil>2.1 in /usr/local/lib/python3.7/dist-packages (from analytics-python->gradio) (2.8.2)\n","Collecting backoff==1.10.0\n"," Downloading backoff-1.10.0-py2.py3-none-any.whl (31 kB)\n","Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /usr/local/lib/python3.7/dist-packages (from requests->gradio) (1.24.3)\n","Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.7/dist-packages (from requests->gradio) (2022.6.15)\n","Requirement already satisfied: chardet<4,>=3.0.2 in /usr/local/lib/python3.7/dist-packages (from requests->gradio) (3.0.4)\n","Collecting starlette==0.19.1\n"," Downloading starlette-0.19.1-py3-none-any.whl (63 kB)\n","\u001b[K |████████████████████████████████| 63 kB 2.0 MB/s \n","\u001b[?25hCollecting anyio<5,>=3.4.0\n"," Downloading anyio-3.6.1-py3-none-any.whl (80 kB)\n","\u001b[K |████████████████████████████████| 80 kB 8.3 MB/s \n","\u001b[?25hCollecting sniffio>=1.1\n"," Downloading sniffio-1.2.0-py3-none-any.whl (10 kB)\n","Collecting httpcore<0.16.0,>=0.15.0\n"," Downloading httpcore-0.15.0-py3-none-any.whl (68 kB)\n","\u001b[K |████████████████████████████████| 68 kB 6.2 MB/s \n","\u001b[?25hCollecting rfc3986[idna2008]<2,>=1.3\n"," Downloading rfc3986-1.5.0-py2.py3-none-any.whl (31 kB)\n","Requirement already satisfied: MarkupSafe>=0.23 in /usr/local/lib/python3.7/dist-packages (from Jinja2->gradio) (2.0.1)\n","Collecting mdurl~=0.1\n"," Downloading mdurl-0.1.1-py3-none-any.whl (10 kB)\n","Collecting mdit-py-plugins\n"," Downloading mdit_py_plugins-0.3.0-py3-none-any.whl (43 kB)\n","\u001b[K |████████████████████████████████| 43 kB 2.1 MB/s \n","\u001b[?25hCollecting linkify-it-py~=1.0\n"," Downloading linkify_it_py-1.0.3-py3-none-any.whl (19 kB)\n","Collecting uc-micro-py\n"," Downloading uc_micro_py-1.0.1-py3-none-any.whl (6.2 kB)\n","Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.7/dist-packages (from matplotlib->gradio) (0.11.0)\n","Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib->gradio) (3.0.9)\n","Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib->gradio) (1.4.4)\n","Requirement already satisfied: pytz>=2017.3 in /usr/local/lib/python3.7/dist-packages (from pandas->gradio) (2022.1)\n","Collecting bcrypt>=3.1.3\n"," Downloading bcrypt-3.2.2-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl (62 kB)\n","\u001b[K |████████████████████████████████| 62 kB 1.1 MB/s \n","\u001b[?25hCollecting cryptography>=2.5\n"," Downloading cryptography-37.0.4-cp36-abi3-manylinux_2_24_x86_64.whl (4.1 MB)\n","\u001b[K |████████████████████████████████| 4.1 MB 48.4 MB/s \n","\u001b[?25hCollecting pynacl>=1.0.1\n"," Downloading PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl (856 kB)\n","\u001b[K |████████████████████████████████| 856 kB 42.8 MB/s \n","\u001b[?25hRequirement already satisfied: cffi>=1.1 in /usr/local/lib/python3.7/dist-packages (from bcrypt>=3.1.3->paramiko->gradio) (1.15.1)\n","Requirement already satisfied: pycparser in /usr/local/lib/python3.7/dist-packages (from cffi>=1.1->bcrypt>=3.1.3->paramiko->gradio) (2.21)\n","Requirement already satisfied: click>=7.0 in /usr/local/lib/python3.7/dist-packages (from uvicorn->gradio) (7.1.2)\n","Building wheels for collected packages: ffmpy, python-multipart\n"," Building wheel for ffmpy (setup.py) ... \u001b[?25l\u001b[?25hdone\n"," Created wheel for ffmpy: filename=ffmpy-0.3.0-py3-none-any.whl size=4712 sha256=78108f78ed976e4579d564eab3fbaa0f251113e01bbccb16b379643699c075e2\n"," Stored in directory: /root/.cache/pip/wheels/13/e4/6c/e8059816e86796a597c6e6b0d4c880630f51a1fcfa0befd5e6\n"," Building wheel for python-multipart (setup.py) ... \u001b[?25l\u001b[?25hdone\n"," Created wheel for python-multipart: filename=python_multipart-0.0.5-py3-none-any.whl size=31678 sha256=afc27be9ae472e10c7989e62c995b23d8b7a6c15bb12a4d9e3682c87c027066b\n"," Stored in directory: /root/.cache/pip/wheels/2c/41/7c/bfd1c180534ffdcc0972f78c5758f89881602175d48a8bcd2c\n","Successfully built ffmpy python-multipart\n","Installing collected packages: sniffio, mdurl, uc-micro-py, rfc3986, markdown-it-py, h11, anyio, starlette, pynacl, monotonic, mdit-py-plugins, linkify-it-py, httpcore, cryptography, bcrypt, backoff, uvicorn, python-multipart, pydub, pycryptodome, paramiko, orjson, httpx, fsspec, ffmpy, fastapi, analytics-python, gradio\n","Successfully installed analytics-python-1.4.0 anyio-3.6.1 backoff-1.10.0 bcrypt-3.2.2 cryptography-37.0.4 fastapi-0.79.0 ffmpy-0.3.0 fsspec-2022.7.1 gradio-3.1.4 h11-0.12.0 httpcore-0.15.0 httpx-0.23.0 linkify-it-py-1.0.3 markdown-it-py-2.1.0 mdit-py-plugins-0.3.0 mdurl-0.1.1 monotonic-1.6 orjson-3.7.11 paramiko-2.11.0 pycryptodome-3.15.0 pydub-0.25.1 pynacl-1.5.0 python-multipart-0.0.5 rfc3986-1.5.0 sniffio-1.2.0 starlette-0.19.1 uc-micro-py-1.0.1 uvicorn-0.18.2\n"]}]},{"cell_type":"code","source":["!pip install timm"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"2yGumhwV0yMq","executionInfo":{"status":"ok","timestamp":1659885891194,"user_tz":-330,"elapsed":4818,"user":{"displayName":"Edward Dennis","userId":"04496919791044727738"}},"outputId":"8b0b2ec8-2110-4526-8bde-8484e22abc0b"},"execution_count":5,"outputs":[{"output_type":"stream","name":"stdout","text":["Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n","Requirement already satisfied: timm in /usr/local/lib/python3.7/dist-packages (0.6.7)\n","Requirement already satisfied: torch>=1.4 in /root/.local/lib/python3.7/site-packages (from timm) (1.9.0)\n","Requirement already satisfied: torchvision in /root/.local/lib/python3.7/site-packages (from timm) (0.10.0)\n","Requirement already satisfied: typing-extensions in /usr/local/lib/python3.7/dist-packages (from torch>=1.4->timm) (4.1.1)\n","Requirement already satisfied: pillow>=5.3.0 in /usr/local/lib/python3.7/dist-packages (from torchvision->timm) (7.1.2)\n","Requirement already satisfied: numpy in /usr/local/lib/python3.7/dist-packages (from torchvision->timm) (1.21.6)\n"]}]},{"cell_type":"code","source":["#|export\n","from fastai.vision.all import *\n","import gradio as gr\n","import timm"],"metadata":{"id":"ebp8joA00Mrf","executionInfo":{"status":"ok","timestamp":1659885896292,"user_tz":-330,"elapsed":5101,"user":{"displayName":"Edward Dennis","userId":"04496919791044727738"}}},"execution_count":6,"outputs":[]},{"cell_type":"code","source":["img = PILImage.create('narendra modi')\n","img.thumbnail((224,224))\n","img"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":143},"id":"VU8aj-Ej05TS","executionInfo":{"status":"ok","timestamp":1659885908083,"user_tz":-330,"elapsed":716,"user":{"displayName":"Edward Dennis","userId":"04496919791044727738"}},"outputId":"98c17580-70d3-4711-e6e9-9423024af535"},"execution_count":7,"outputs":[{"output_type":"execute_result","data":{"text/plain":["PILImage mode=RGB size=224x126"],"image/png":"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\n"},"metadata":{},"execution_count":7}]},{"cell_type":"code","source":["#|export\n","learn = load_learner('export.pkl')"],"metadata":{"id":"jFQp3lqA15TR","executionInfo":{"status":"ok","timestamp":1659885912732,"user_tz":-330,"elapsed":1275,"user":{"displayName":"Edward Dennis","userId":"04496919791044727738"}}},"execution_count":8,"outputs":[]},{"cell_type":"code","source":["learn.predict(img)"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":141},"id":"rB0Q2RTv2K3D","executionInfo":{"status":"ok","timestamp":1659885915892,"user_tz":-330,"elapsed":940,"user":{"displayName":"Edward Dennis","userId":"04496919791044727738"}},"outputId":"4d67d365-34fa-4e49-b952-b47269a2dc92"},"execution_count":9,"outputs":[{"output_type":"display_data","data":{"text/plain":[""],"text/html":["\n","\n"]},"metadata":{}},{"output_type":"display_data","data":{"text/plain":[""],"text/html":[""]},"metadata":{}},{"output_type":"stream","name":"stderr","text":["/root/.local/lib/python3.7/site-packages/torch/nn/functional.py:718: UserWarning: Named tensors and all their associated APIs are an experimental feature and subject to change. Please do not use them for anything important until they are released as stable. (Triggered internally at /pytorch/c10/core/TensorImpl.h:1156.)\n"," return torch.max_pool2d(input, kernel_size, stride, padding, dilation, ceil_mode)\n"]},{"output_type":"execute_result","data":{"text/plain":["('narendra modi',\n"," tensor(4),\n"," tensor([6.2628e-12, 4.0092e-09, 2.7112e-10, 9.6719e-08, 1.0000e+00, 1.2365e-11,\n"," 2.0535e-11]))"]},"metadata":{},"execution_count":9}]},{"cell_type":"code","source":["#|export\n","categories = learn.dls.vocab\n","\n","def classify_image(img):\n"," pred,idx,probs = learn.predict(img)\n"," return dict(zip(categories,map(float,probs)))"],"metadata":{"id":"d3VGaa382NUF","executionInfo":{"status":"ok","timestamp":1659885930845,"user_tz":-330,"elapsed":339,"user":{"displayName":"Edward Dennis","userId":"04496919791044727738"}}},"execution_count":10,"outputs":[]},{"cell_type":"code","source":["classify_image(img=img)"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":138},"id":"aboEWoU22sWi","executionInfo":{"status":"ok","timestamp":1659885932407,"user_tz":-330,"elapsed":348,"user":{"displayName":"Edward Dennis","userId":"04496919791044727738"}},"outputId":"4262ef05-c412-491c-de6a-12925ded23e3"},"execution_count":11,"outputs":[{"output_type":"display_data","data":{"text/plain":[""],"text/html":["\n","\n"]},"metadata":{}},{"output_type":"display_data","data":{"text/plain":[""],"text/html":[""]},"metadata":{}},{"output_type":"execute_result","data":{"text/plain":["{'george bush': 6.262795403805255e-12,\n"," 'jacinda ardern': 4.009158338647012e-09,\n"," 'joe biden': 2.7112309619603536e-10,\n"," 'leaders': 9.671945377931479e-08,\n"," 'narendra modi': 0.9999998807907104,\n"," 'olaf scholz': 1.2364967556799389e-11,\n"," 'vladimir putin': 2.0534563632823577e-11}"]},"metadata":{},"execution_count":11}]},{"cell_type":"code","source":["#|export\n","image = gr.inputs.Image(shape=(192,192))\n","labels = gr.outputs.Label()\n","examples = ['olaf1.jpg','olaf-young.jpg','narendra modi','jacinda1.jpg']"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"jewoPvLp2wkI","executionInfo":{"status":"ok","timestamp":1659885937423,"user_tz":-330,"elapsed":438,"user":{"displayName":"Edward Dennis","userId":"04496919791044727738"}},"outputId":"5bd661f2-7fa3-4cc6-c544-036ce7ececbb"},"execution_count":12,"outputs":[{"output_type":"stream","name":"stderr","text":["/usr/local/lib/python3.7/dist-packages/gradio/inputs.py:257: UserWarning: Usage of gradio.inputs is deprecated, and will not be supported in the future, please import your component from gradio.components\n"," \"Usage of gradio.inputs is deprecated, and will not be supported in the future, please import your component from gradio.components\",\n","/usr/local/lib/python3.7/dist-packages/gradio/deprecation.py:40: UserWarning: `optional` parameter is deprecated, and it has no effect\n"," warnings.warn(value)\n","/usr/local/lib/python3.7/dist-packages/gradio/outputs.py:197: UserWarning: Usage of gradio.outputs is deprecated, and will not be supported in the future, please import your components from gradio.components\n"," \"Usage of gradio.outputs is deprecated, and will not be supported in the future, please import your components from gradio.components\",\n","/usr/local/lib/python3.7/dist-packages/gradio/deprecation.py:40: UserWarning: The 'type' parameter has been deprecated. Use the Number component instead.\n"," warnings.warn(value)\n"]}]},{"cell_type":"code","source":["#|export\n","intf = gr.Interface(fn=classify_image, inputs=image, outputs=labels, examples=examples)\n","intf.launch(inline=False)"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"FpkWYzhK4RPb","executionInfo":{"status":"ok","timestamp":1659885945315,"user_tz":-330,"elapsed":3071,"user":{"displayName":"Edward Dennis","userId":"04496919791044727738"}},"outputId":"825d10b1-a8e8-429d-8e34-6119547dd1e2"},"execution_count":13,"outputs":[{"output_type":"stream","name":"stdout","text":["Colab notebook detected. To show errors in colab notebook, set `debug=True` in `launch()`\n","Running on public URL: https://48832.gradio.app\n","\n","This share link expires in 72 hours. For free permanent hosting, check out Spaces: https://huggingface.co/spaces\n"]},{"output_type":"execute_result","data":{"text/plain":["(,\n"," 'http://127.0.0.1:7860/',\n"," 'https://48832.gradio.app')"]},"metadata":{},"execution_count":13}]},{"cell_type":"code","source":["m = learn.model\n","m"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"lGOJI7-S4UTe","executionInfo":{"status":"ok","timestamp":1659885981549,"user_tz":-330,"elapsed":346,"user":{"displayName":"Edward Dennis","userId":"04496919791044727738"}},"outputId":"69b0cd52-0198-4990-a395-752e4ad20860"},"execution_count":14,"outputs":[{"output_type":"execute_result","data":{"text/plain":["Sequential(\n"," (0): Sequential(\n"," (0): Conv2d(3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False)\n"," (1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n"," (2): ReLU(inplace=True)\n"," (3): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)\n"," (4): Sequential(\n"," (0): Bottleneck(\n"," (conv1): Conv2d(64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)\n"," (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n"," (conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n"," (bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n"," (conv3): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n"," (bn3): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n"," (relu): ReLU(inplace=True)\n"," (downsample): Sequential(\n"," (0): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n"," (1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n"," )\n"," )\n"," (1): Bottleneck(\n"," (conv1): Conv2d(256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)\n"," (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n"," (conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n"," (bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n"," (conv3): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n"," (bn3): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n"," (relu): ReLU(inplace=True)\n"," )\n"," (2): Bottleneck(\n"," (conv1): Conv2d(256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)\n"," (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n"," (conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n"," (bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n"," (conv3): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n"," (bn3): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n"," (relu): ReLU(inplace=True)\n"," )\n"," )\n"," (5): Sequential(\n"," (0): Bottleneck(\n"," (conv1): Conv2d(256, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n"," (bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n"," (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)\n"," (bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n"," (conv3): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n"," (bn3): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n"," (relu): ReLU(inplace=True)\n"," (downsample): Sequential(\n"," (0): Conv2d(256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False)\n"," (1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n"," )\n"," )\n"," (1): Bottleneck(\n"," (conv1): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n"," (bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n"," (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n"," (bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n"," (conv3): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n"," (bn3): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n"," (relu): ReLU(inplace=True)\n"," )\n"," (2): Bottleneck(\n"," (conv1): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n"," (bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n"," (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n"," (bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n"," (conv3): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n"," (bn3): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n"," (relu): ReLU(inplace=True)\n"," )\n"," (3): Bottleneck(\n"," (conv1): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n"," (bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n"," (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n"," (bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n"," (conv3): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n"," (bn3): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n"," (relu): ReLU(inplace=True)\n"," )\n"," )\n"," (6): Sequential(\n"," (0): Bottleneck(\n"," (conv1): Conv2d(512, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n"," (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n"," (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)\n"," (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n"," (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n"," (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n"," (relu): ReLU(inplace=True)\n"," (downsample): Sequential(\n"," (0): Conv2d(512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False)\n"," (1): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n"," )\n"," )\n"," (1): Bottleneck(\n"," (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n"," (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n"," (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n"," (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n"," (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n"," (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n"," (relu): ReLU(inplace=True)\n"," )\n"," (2): Bottleneck(\n"," (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n"," (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n"," (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n"," (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n"," (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n"," (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n"," (relu): ReLU(inplace=True)\n"," )\n"," (3): Bottleneck(\n"," (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n"," (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n"," (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n"," (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n"," (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n"," (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n"," (relu): ReLU(inplace=True)\n"," )\n"," (4): Bottleneck(\n"," (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n"," (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n"," (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n"," (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n"," (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n"," (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n"," (relu): ReLU(inplace=True)\n"," )\n"," (5): Bottleneck(\n"," (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n"," (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n"," (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n"," (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n"," (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n"," (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n"," (relu): ReLU(inplace=True)\n"," )\n"," )\n"," (7): Sequential(\n"," (0): Bottleneck(\n"," (conv1): Conv2d(1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n"," (bn1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n"," (conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)\n"," (bn2): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n"," (conv3): Conv2d(512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False)\n"," (bn3): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n"," (relu): ReLU(inplace=True)\n"," (downsample): Sequential(\n"," (0): Conv2d(1024, 2048, kernel_size=(1, 1), stride=(2, 2), bias=False)\n"," (1): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n"," )\n"," )\n"," (1): Bottleneck(\n"," (conv1): Conv2d(2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n"," (bn1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n"," (conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n"," (bn2): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n"," (conv3): Conv2d(512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False)\n"," (bn3): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n"," (relu): ReLU(inplace=True)\n"," )\n"," (2): Bottleneck(\n"," (conv1): Conv2d(2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n"," (bn1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n"," (conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n"," (bn2): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n"," (conv3): Conv2d(512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False)\n"," (bn3): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n"," (relu): ReLU(inplace=True)\n"," )\n"," )\n"," )\n"," (1): Sequential(\n"," (0): AdaptiveConcatPool2d(\n"," (ap): AdaptiveAvgPool2d(output_size=1)\n"," (mp): AdaptiveMaxPool2d(output_size=1)\n"," )\n"," (1): fastai.layers.Flatten(full=False)\n"," (2): BatchNorm1d(4096, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n"," (3): Dropout(p=0.25, inplace=False)\n"," (4): Linear(in_features=4096, out_features=512, bias=False)\n"," (5): ReLU(inplace=True)\n"," (6): BatchNorm1d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n"," (7): Dropout(p=0.5, inplace=False)\n"," (8): Linear(in_features=512, out_features=7, bias=False)\n"," )\n",")"]},"metadata":{},"execution_count":14}]},{"cell_type":"code","source":["l = m.get_submodule('0.model.stem.1')\n","list(l.parameters())"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":304},"id":"06vZaFaa4y_h","executionInfo":{"status":"error","timestamp":1659885557303,"user_tz":-330,"elapsed":4,"user":{"displayName":"Edward Dennis","userId":"04496919791044727738"}},"outputId":"8106c170-9416-48a7-fdb4-94f75637604f"},"execution_count":18,"outputs":[{"output_type":"error","ename":"AttributeError","evalue":"ignored","traceback":["\u001b[0;31m---------------------------------------------------------------------------\u001b[0m","\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)","\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0ml\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mm\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_submodule\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'0.model.stem.1'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2\u001b[0m \u001b[0mlist\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ml\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mparameters\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;32m/usr/local/lib/python3.7/dist-packages/torch/nn/modules/module.py\u001b[0m in \u001b[0;36mget_submodule\u001b[0;34m(self, target)\u001b[0m\n\u001b[1;32m 455\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mhasattr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmod\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mitem\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 456\u001b[0m raise AttributeError(mod._get_name() + \" has no \"\n\u001b[0;32m--> 457\u001b[0;31m \"attribute `\" + item + \"`\")\n\u001b[0m\u001b[1;32m 458\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 459\u001b[0m \u001b[0mmod\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mgetattr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmod\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mitem\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;31mAttributeError\u001b[0m: Sequential has no attribute `model`"]}]},{"cell_type":"markdown","source":["## export"],"metadata":{"id":"7bF6MlRe5iLE"}},{"cell_type":"code","source":["!pip install nbdev"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"L5R1V9bm52e3","executionInfo":{"status":"ok","timestamp":1659885994075,"user_tz":-330,"elapsed":4326,"user":{"displayName":"Edward Dennis","userId":"04496919791044727738"}},"outputId":"41dbbb03-78b7-4669-8759-2499a891b6e2"},"execution_count":15,"outputs":[{"output_type":"stream","name":"stdout","text":["Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n","Requirement already satisfied: nbdev in /usr/local/lib/python3.7/dist-packages (2.1.2)\n","Requirement already satisfied: astunparse in /usr/local/lib/python3.7/dist-packages (from nbdev) (1.6.3)\n","Requirement already satisfied: PyYAML in /usr/local/lib/python3.7/dist-packages (from nbdev) (3.13)\n","Requirement already satisfied: ghapi in /usr/local/lib/python3.7/dist-packages (from nbdev) (1.0.0)\n","Requirement already satisfied: fastcore>=1.5.14 in /usr/local/lib/python3.7/dist-packages (from nbdev) (1.5.15)\n","Requirement already satisfied: execnb>=0.0.10 in /usr/local/lib/python3.7/dist-packages (from nbdev) (0.1.1)\n","Requirement already satisfied: asttokens in /usr/local/lib/python3.7/dist-packages (from nbdev) (2.0.5)\n","Requirement already satisfied: ipython in /usr/local/lib/python3.7/dist-packages (from execnb>=0.0.10->nbdev) (5.5.0)\n","Requirement already satisfied: packaging in /usr/local/lib/python3.7/dist-packages (from fastcore>=1.5.14->nbdev) (21.3)\n","Requirement already satisfied: pip in /usr/local/lib/python3.7/dist-packages (from fastcore>=1.5.14->nbdev) (21.1.3)\n","Requirement already satisfied: six in /usr/local/lib/python3.7/dist-packages (from asttokens->nbdev) (1.15.0)\n","Requirement already satisfied: wheel<1.0,>=0.23.0 in /usr/local/lib/python3.7/dist-packages (from astunparse->nbdev) (0.37.1)\n","Requirement already satisfied: pickleshare in /usr/local/lib/python3.7/dist-packages (from ipython->execnb>=0.0.10->nbdev) (0.7.5)\n","Requirement already satisfied: simplegeneric>0.8 in /usr/local/lib/python3.7/dist-packages (from ipython->execnb>=0.0.10->nbdev) (0.8.1)\n","Requirement already satisfied: setuptools>=18.5 in /usr/local/lib/python3.7/dist-packages (from ipython->execnb>=0.0.10->nbdev) (57.4.0)\n","Requirement already satisfied: traitlets>=4.2 in /usr/local/lib/python3.7/dist-packages (from ipython->execnb>=0.0.10->nbdev) (5.1.1)\n","Requirement already satisfied: pexpect in /usr/local/lib/python3.7/dist-packages (from ipython->execnb>=0.0.10->nbdev) (4.8.0)\n","Requirement already satisfied: pygments in /usr/local/lib/python3.7/dist-packages (from ipython->execnb>=0.0.10->nbdev) (2.6.1)\n","Requirement already satisfied: prompt-toolkit<2.0.0,>=1.0.4 in /usr/local/lib/python3.7/dist-packages (from ipython->execnb>=0.0.10->nbdev) (1.0.18)\n","Requirement already satisfied: decorator in /usr/local/lib/python3.7/dist-packages (from ipython->execnb>=0.0.10->nbdev) (4.4.2)\n","Requirement already satisfied: wcwidth in /usr/local/lib/python3.7/dist-packages (from prompt-toolkit<2.0.0,>=1.0.4->ipython->execnb>=0.0.10->nbdev) (0.2.5)\n","Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /usr/local/lib/python3.7/dist-packages (from packaging->fastcore>=1.5.14->nbdev) (3.0.9)\n","Requirement already satisfied: ptyprocess>=0.5 in /usr/local/lib/python3.7/dist-packages (from pexpect->ipython->execnb>=0.0.10->nbdev) (0.7.0)\n"]}]},{"cell_type":"code","source":["from nbdev.export import notebook2script"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":304},"id":"RiE8EeRi45BP","executionInfo":{"status":"error","timestamp":1659886455262,"user_tz":-330,"elapsed":356,"user":{"displayName":"Edward Dennis","userId":"04496919791044727738"}},"outputId":"22c50935-31d8-4299-e0fa-adcc94b1ba39"},"execution_count":18,"outputs":[{"output_type":"error","ename":"ImportError","evalue":"ignored","traceback":["\u001b[0;31m---------------------------------------------------------------------------\u001b[0m","\u001b[0;31mImportError\u001b[0m Traceback (most recent call last)","\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0;32mfrom\u001b[0m \u001b[0mnbdev\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mexport\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mnotebook2script\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m","\u001b[0;31mImportError\u001b[0m: cannot import name 'notebook2script' from 'nbdev.export' (/usr/local/lib/python3.7/dist-packages/nbdev/export.py)","","\u001b[0;31m---------------------------------------------------------------------------\u001b[0;32m\nNOTE: If your import is failing due to a missing package, you can\nmanually install dependencies using either !pip or !apt.\n\nTo view examples of installing some common dependencies, click the\n\"Open Examples\" button below.\n\u001b[0;31m---------------------------------------------------------------------------\u001b[0m\n"],"errorDetails":{"actions":[{"action":"open_url","actionText":"Open Examples","url":"/notebooks/snippets/importing_libraries.ipynb"}]}}]},{"cell_type":"code","source":[""],"metadata":{"id":"NcTRdcME6qWI"},"execution_count":null,"outputs":[]}]}