diff --git a/docker/Dockerfile.finn_dev b/docker/Dockerfile.finn_dev index 46b3ffb255f6e3d4ff6e92d83b285e53be4beeeb..877930c2bae96ff607af2146d8917ba157fc0303 100644 --- a/docker/Dockerfile.finn_dev +++ b/docker/Dockerfile.finn_dev @@ -55,6 +55,9 @@ RUN pip install sphinx_rtd_theme==0.5.0 RUN pip install pytest-xdist==2.0.0 RUN pip install pytest-parallel==0.1.0 RUN pip install netron +RUN pip install pandas==1.1.5 +RUN pip install scikit-learn==0.24.1 +RUN pip install tqdm==4.31.1 RUN pip install -e git+https://github.com/fbcotter/dataset_loading.git@0.0.4#egg=dataset_loading # switch user diff --git a/notebooks/end2end_example/cybersecurity/1-train-mlp-with-brevitas.ipynb b/notebooks/end2end_example/cybersecurity/1-train-mlp-with-brevitas.ipynb index 650125ee13373cbfda01e65a1a78b98a35e2d1b9..84dde835df82d6e96399ef31a4d977c8a66364b3 100644 --- a/notebooks/end2end_example/cybersecurity/1-train-mlp-with-brevitas.ipynb +++ b/notebooks/end2end_example/cybersecurity/1-train-mlp-with-brevitas.ipynb @@ -51,48 +51,10 @@ "* [That's it!](#thats_it)" ] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Initial Setup <a id='initial_setup'></a>\n", - "\n", - "Let's start by making sure we have all the Python packages we'll need for this notebook." - ] - }, { "cell_type": "code", "execution_count": 1, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Requirement already satisfied: pandas in /workspace/.local/lib/python3.6/site-packages (1.1.5)\n", - "Requirement already satisfied: numpy>=1.15.4 in /opt/conda/lib/python3.6/site-packages (from pandas) (1.19.5)\n", - "Requirement already satisfied: pytz>=2017.2 in /opt/conda/lib/python3.6/site-packages (from pandas) (2019.1)\n", - "Requirement already satisfied: python-dateutil>=2.7.3 in /opt/conda/lib/python3.6/site-packages (from pandas) (2.8.1)\n", - "Requirement already satisfied: six>=1.5 in /opt/conda/lib/python3.6/site-packages (from python-dateutil>=2.7.3->pandas) (1.15.0)\n", - "Requirement already satisfied: scikit-learn in /workspace/.local/lib/python3.6/site-packages (0.24.1)\n", - "Requirement already satisfied: joblib>=0.11 in /workspace/.local/lib/python3.6/site-packages (from scikit-learn) (1.0.0)\n", - "Requirement already satisfied: scipy>=0.19.1 in /opt/conda/lib/python3.6/site-packages (from scikit-learn) (1.5.2)\n", - "Requirement already satisfied: numpy>=1.13.3 in /opt/conda/lib/python3.6/site-packages (from scikit-learn) (1.19.5)\n", - "Requirement already satisfied: threadpoolctl>=2.0.0 in /workspace/.local/lib/python3.6/site-packages (from scikit-learn) (2.1.0)\n", - "Requirement already satisfied: tqdm in /opt/conda/lib/python3.6/site-packages (4.31.1)\n" - ] - } - ], - "source": [ - "!pip install --user pandas\n", - "!pip install --user scikit-learn\n", - "!pip install --user tqdm" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, "outputs": [], "source": [ "import onnx\n", @@ -137,7 +99,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -147,7 +109,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -168,7 +130,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -195,7 +157,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ @@ -217,7 +179,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 6, "metadata": {}, "outputs": [], "source": [ @@ -258,7 +220,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 7, "metadata": {}, "outputs": [], "source": [ @@ -287,7 +249,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ @@ -331,7 +293,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 9, "metadata": {}, "outputs": [], "source": [ @@ -349,7 +311,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 10, "metadata": {}, "outputs": [], "source": [ @@ -360,7 +322,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 11, "metadata": { "scrolled": true }, @@ -369,7 +331,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "Training loss = 0.130159 test accuracy = 0.797989: 100%|██████████| 15/15 [02:42<00:00, 10.80s/it]\n" + "Training loss = 0.132304 test accuracy = 0.808811: 100%|██████████| 15/15 [04:52<00:00, 19.47s/it]\n" ] } ], @@ -397,14 +359,14 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 12, "metadata": { "scrolled": true }, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "<Figure size 432x288 with 1 Axes>" ] @@ -425,12 +387,12 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 13, "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "<Figure size 432x288 with 1 Axes>" ] @@ -448,16 +410,16 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "0.7979886313948404" + "0.8088106689986883" ] }, - "execution_count": 15, + "execution_count": 14, "metadata": {}, "output_type": "execute_result" } @@ -468,7 +430,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 15, "metadata": {}, "outputs": [], "source": [ @@ -487,7 +449,7 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": 16, "metadata": {}, "outputs": [ { @@ -496,7 +458,7 @@ "IncompatibleKeys(missing_keys=[], unexpected_keys=[])" ] }, - "execution_count": 36, + "execution_count": 16, "metadata": {}, "output_type": "execute_result" } @@ -511,7 +473,7 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": 17, "metadata": { "scrolled": true }, @@ -522,7 +484,7 @@ "0.9188772287810328" ] }, - "execution_count": 37, + "execution_count": 17, "metadata": {}, "output_type": "execute_result" } @@ -549,7 +511,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 18, "metadata": {}, "outputs": [ { @@ -558,7 +520,7 @@ "(64, 593)" ] }, - "execution_count": 17, + "execution_count": 18, "metadata": {}, "output_type": "execute_result" } @@ -574,7 +536,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 19, "metadata": {}, "outputs": [ { @@ -583,7 +545,7 @@ "(64, 600)" ] }, - "execution_count": 18, + "execution_count": 19, "metadata": {}, "output_type": "execute_result" } @@ -598,7 +560,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 20, "metadata": {}, "outputs": [ { @@ -607,7 +569,7 @@ "torch.Size([64, 600])" ] }, - "execution_count": 19, + "execution_count": 20, "metadata": {}, "output_type": "execute_result" } @@ -630,7 +592,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 21, "metadata": {}, "outputs": [], "source": [ @@ -658,7 +620,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 22, "metadata": {}, "outputs": [], "source": [ @@ -688,16 +650,16 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "0.8083369771170383" + "0.9188772287810328" ] }, - "execution_count": 22, + "execution_count": 23, "metadata": {}, "output_type": "execute_result" } @@ -717,7 +679,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 24, "metadata": { "scrolled": true }, diff --git a/notebooks/end2end_example/cybersecurity/3-build-accelerator-with-finn.ipynb b/notebooks/end2end_example/cybersecurity/3-build-accelerator-with-finn.ipynb index 75566b1ae6ee36f0eee2a5f56c65d293214614f2..4bbd75c090e5b172a4d1e01dded135a44b10a80d 100644 --- a/notebooks/end2end_example/cybersecurity/3-build-accelerator-with-finn.ipynb +++ b/notebooks/end2end_example/cybersecurity/3-build-accelerator-with-finn.ipynb @@ -391,11 +391,18 @@ "source": [ "import finn.builder.build_dataflow as build\n", "import finn.builder.build_dataflow_config as build_cfg\n", + "import os\n", + "import shutil\n", "\n", "model_file = \"cybsec-mlp-verified.onnx\"\n", "\n", "rtlsim_output_dir = \"output_ipstitch_ooc_rtlsim\"\n", "\n", + "#Delete previous run results if exist\n", + "if os.path.exists(rtlsim_output_dir):\n", + " shutil.rmtree(rtlsim_output_dir)\n", + " print(\"Previous run results deleted!\")\n", + "\n", "cfg = build.DataflowBuildConfig(\n", " output_dir = rtlsim_output_dir,\n", " target_fps = 1000000,\n", @@ -661,6 +668,11 @@ "\n", "final_output_dir = \"output_final\"\n", "\n", + "#Delete previous run results if exist\n", + "if os.path.exists(final_output_dir):\n", + " shutil.rmtree(final_output_dir)\n", + " print(\"Previous run results deleted!\")\n", + "\n", "cfg = build.DataflowBuildConfig(\n", " output_dir = final_output_dir,\n", " target_fps = 1000000,\n",