From 2cf9dd5e2f2ce1e921a8b6adb6ca6c811589b910 Mon Sep 17 00:00:00 2001 From: Your Name Date: Mon, 14 Oct 2024 23:29:52 +0200 Subject: [PATCH 1/4] Notebook Bug Resolved --- Notebooks/AROS.ipynb | 63 ++++++++++++++++++---------------- Notebooks/Ablation_Study.ipynb | 59 ++++++++++++++++++++++++------- 2 files changed, 80 insertions(+), 42 deletions(-) diff --git a/Notebooks/AROS.ipynb b/Notebooks/AROS.ipynb index c90e175..e2f3196 100644 --- a/Notebooks/AROS.ipynb +++ b/Notebooks/AROS.ipynb @@ -3,8 +3,8 @@ { "cell_type": "markdown", "metadata": { - "id": "view-in-github", - "colab_type": "text" + "colab_type": "text", + "id": "view-in-github" }, "source": [ "\"Open" @@ -12,22 +12,22 @@ }, { "cell_type": "markdown", - "source": [ - "## Adversarially Robust Out-of-Distribution Detection Using Lyapunov-Stabilized Embeddings" - ], "metadata": { "id": "RFxEz28oe7dE" - } + }, + "source": [ + "## Adversarially Robust Out-of-Distribution Detection Using Lyapunov-Stabilized Embeddings" + ] }, { "cell_type": "markdown", + "metadata": { + "id": "ZL5Va1N940xJ" + }, "source": [ "This notebook is designed to replicate and analyze the results presented in Table 1 of the AROS paper, focusing on out-of-distribution detection performance under both attack scenarios and clean evaluation. The dataset configurations involve using CIFAR-10 and CIFAR-100 as in-distribution and out-of-distribution datasets. The notebook is structured to load a pre-trained model as the encoder, followed by generating fake OOD embeddings through sampling. The model is then trained using the designed loss function and evaluated across various OOD detection benchmarks to assess its performance under different conditions.\n", "\n" - ], - "metadata": { - "id": "ZL5Va1N940xJ" - } + ] }, { "cell_type": "markdown", @@ -40,41 +40,41 @@ }, { "cell_type": "code", - "source": [ - "!git clone https://github.com/MMathisLab/AROS.git" - ], + "execution_count": null, "metadata": { "id": "TdY-7pyGq4oN" }, - "execution_count": null, - "outputs": [] + "outputs": [], + "source": [ + "!git clone https://github.com/MMathisLab/AROS.git" + ] }, { "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "owrQtpTxrbth" + }, + "outputs": [], "source": [ "%cd /content/AROS\n", "%ls\n", "!pip install -r requirements.txt" - ], - "metadata": { - "id": "owrQtpTxrbth" - }, - "execution_count": null, - "outputs": [] + ] }, { "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "WgsBOHhNrtYD" + }, + "outputs": [], "source": [ "import argparse\n", "import torch\n", "import torch.nn as nn\n", "from tqdm.notebook import tqdm" - ], - "metadata": { - "id": "WgsBOHhNrtYD" - }, - "execution_count": null, - "outputs": [] + ] }, { "cell_type": "code", @@ -112,6 +112,11 @@ "\n", "# Define the hyperparameters controlled via CLI 'Ding2020MMA'\n", "\n", + "\n", + "parser.add_argument('--fast', type=bool, default=True, help='Toggle between fast and full fake data generation modes')\n", + "parser.add_argument('--epoch1', type=int, default=2, help='Number of epochs for stage 1')\n", + "parser.add_argument('--epoch2', type=int, default=1, help='Number of epochs for stage 2')\n", + "parser.add_argument('--epoch3', type=int, default=2, help='Number of epochs for stage 3')\n", "parser.add_argument('--in_dataset', type=str, default='cifar10', choices=['cifar10', 'cifar100'], help='The in-distribution dataset to be used')\n", "parser.add_argument('--threat_model', type=str, default='Linf', help='Adversarial threat model for robust training')\n", "parser.add_argument('--noise_std', type=float, default=1, help='Standard deviation of noise for generating noisy fake embeddings')\n", @@ -474,9 +479,9 @@ "accelerator": "GPU", "colab": { "gpuType": "A100", - "provenance": [], + "include_colab_link": true, "machine_shape": "hm", - "include_colab_link": true + "provenance": [] }, "kernelspec": { "display_name": "Python 3", diff --git a/Notebooks/Ablation_Study.ipynb b/Notebooks/Ablation_Study.ipynb index eb8d373..c368683 100644 --- a/Notebooks/Ablation_Study.ipynb +++ b/Notebooks/Ablation_Study.ipynb @@ -2,12 +2,32 @@ "cells": [ { "cell_type": "markdown", - "source": [ - "## AROS, Ablation Study" - ], "metadata": { "id": "G1Ues10_fww5" - } + }, + "source": [ + "## AROS, Ablation Study" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "!git clone https://github.com/MMathisLab/AROS.git" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%cd /content/AROS\n", + "%ls\n", + "!pip install -r requirements.txt" + ] }, { "cell_type": "code", @@ -81,17 +101,30 @@ } ], "source": [ - "!pip install -r requirements.txt\n", "import argparse\n", "import torch\n", "import torch.nn as nn\n", + "from tqdm.notebook import tqdm" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "%cd AROS\n", "from evaluate import *\n", "from utils import *\n", - "from tqdm.notebook import tqdm\n", "from data_loader import *\n", "from stability_loss_function import *" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#Set hyperparameters & dataloader" + ] + }, { "cell_type": "code", "execution_count": null, @@ -134,14 +167,14 @@ "cell_type": "code", "execution_count": null, "metadata": { - "id": "g2TltXvg7MfF", - "outputId": "4df864e7-e14b-4db4-e1ae-06e33c9b11be", "colab": { "referenced_widgets": [ "59296a90b8c84b1c94648a4c5d68a43b", "ad54c341af6e400280d000b3725f08ee" ] - } + }, + "id": "g2TltXvg7MfF", + "outputId": "4df864e7-e14b-4db4-e1ae-06e33c9b11be" }, "outputs": [ { @@ -207,14 +240,14 @@ "cell_type": "code", "execution_count": null, "metadata": { - "id": "QeC-30C5ImKg", - "outputId": "793be5f3-3307-4a3d-8e5f-177ac212d30a", "colab": { "referenced_widgets": [ "c9c97585bef049ca9974797d1d5964ab", "97f0832ab970458f947318195735214b" ] - } + }, + "id": "QeC-30C5ImKg", + "outputId": "793be5f3-3307-4a3d-8e5f-177ac212d30a" }, "outputs": [ { @@ -302,4 +335,4 @@ }, "nbformat": 4, "nbformat_minor": 0 -} \ No newline at end of file +} From 4a71785e0de57bafd7b6b7ebeb225c6f5f978fcc Mon Sep 17 00:00:00 2001 From: Mackenzie Mathis Date: Fri, 18 Oct 2024 17:39:55 +0200 Subject: [PATCH 2/4] conflicts --- Notebooks/Ablation_Study.ipynb | 263 +++++++++++++++++++++------------ 1 file changed, 167 insertions(+), 96 deletions(-) diff --git a/Notebooks/Ablation_Study.ipynb b/Notebooks/Ablation_Study.ipynb index a5b1b8a..eb8d373 100644 --- a/Notebooks/Ablation_Study.ipynb +++ b/Notebooks/Ablation_Study.ipynb @@ -1,112 +1,97 @@ { "cells": [ - { - "cell_type": "markdown", - "metadata": { - "id": "view-in-github", - "colab_type": "text" - }, - "source": [ - "\"Open" - ] - }, { "cell_type": "markdown", "source": [ "## AROS, Ablation Study" ], - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "!git clone https://github.com/MMathisLab/AROS.git" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "%cd /content/AROS\n", - "%ls\n", - "!pip install -r requirements.txt" - ] - }, - { - "cell_type": "code", - "source": [ - "!git clone https://github.com/AdaptiveMotorControlLab/AROS.git" - ], - "metadata": { - "id": "RoJ64RU50lri" - }, - "execution_count": null, - "outputs": [] - }, - { - "cell_type": "code", - "source": [ - "%cd /content/AROS\n", - "%ls\n", - "!pip install -r requirements.txt" - ], "metadata": { - "id": "e_k9dufx09HZ" - }, - "execution_count": null, - "outputs": [] + "id": "G1Ues10_fww5" + } }, { "cell_type": "code", "execution_count": null, "metadata": { - "id": "S2YKR1ps79o3" + "id": "S2YKR1ps79o3", + "outputId": "499e2580-c01b-4f2d-a59d-890f798b3295" }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Defaulting to user installation because normal site-packages is not writeable\n", + "Collecting git+https://github.com/RobustBench/robustbench.git (from -r requirements.txt (line 3))\n", + " Cloning https://github.com/RobustBench/robustbench.git to /tmp/pip-req-build-cdsd2hhb\n", + " Running command git clone --filter=blob:none --quiet https://github.com/RobustBench/robustbench.git /tmp/pip-req-build-cdsd2hhb\n", + " Resolved https://github.com/RobustBench/robustbench.git to commit 776bc95bb4167827fb102a32ac5aea62e46cfaab\n", + " Preparing metadata (setup.py) ... \u001b[?25ldone\n", + "\u001b[?25hRequirement already satisfied: geotorch in /usr/local/lib/python3.10/dist-packages (from -r requirements.txt (line 1)) (0.3.0)\n", + "Requirement already satisfied: torchdiffeq in /usr/local/lib/python3.10/dist-packages (from -r requirements.txt (line 2)) (0.2.4)\n", + "Requirement already satisfied: torch>=1.9 in /usr/local/lib/python3.10/dist-packages (from geotorch->-r requirements.txt (line 1)) (2.4.1)\n", + "Requirement already satisfied: scipy>=1.4.0 in /usr/local/lib/python3.10/dist-packages (from torchdiffeq->-r requirements.txt (line 2)) (1.14.1)\n", + "Collecting autoattack@ git+https://github.com/fra31/auto-attack.git@a39220048b3c9f2cca9a4d3a54604793c68eca7e#egg=autoattack\n", + " Using cached autoattack-0.1-py3-none-any.whl\n", + "Requirement already satisfied: Jinja2~=3.1.2 in /usr/local/lib/python3.10/dist-packages (from robustbench==1.1->-r requirements.txt (line 3)) (3.1.4)\n", + "Requirement already satisfied: gdown==5.1.0 in /home/hossein/.local/lib/python3.10/site-packages (from robustbench==1.1->-r requirements.txt (line 3)) (5.1.0)\n", + "Requirement already satisfied: numpy>=1.19.4 in /usr/local/lib/python3.10/dist-packages (from robustbench==1.1->-r requirements.txt (line 3)) (2.1.2)\n", + "Requirement already satisfied: pandas>=1.3.5 in /usr/local/lib/python3.10/dist-packages (from robustbench==1.1->-r requirements.txt (line 3)) (2.2.3)\n", + "Requirement already satisfied: pyyaml in /usr/local/lib/python3.10/dist-packages (from robustbench==1.1->-r requirements.txt (line 3)) (6.0.2)\n", + "Requirement already satisfied: requests>=2.25.0 in /usr/local/lib/python3.10/dist-packages (from robustbench==1.1->-r requirements.txt (line 3)) (2.32.3)\n", + "Requirement already satisfied: timm>=0.9.0 in /usr/local/lib/python3.10/dist-packages (from robustbench==1.1->-r requirements.txt (line 3)) (1.0.9)\n", + "Requirement already satisfied: torchvision>=0.8.2 in /usr/local/lib/python3.10/dist-packages (from robustbench==1.1->-r requirements.txt (line 3)) (0.19.1)\n", + "Requirement already satisfied: tqdm>=4.56.1 in /usr/local/lib/python3.10/dist-packages (from robustbench==1.1->-r requirements.txt (line 3)) (4.66.5)\n", + "Requirement already satisfied: beautifulsoup4 in /usr/local/lib/python3.10/dist-packages (from gdown==5.1.0->robustbench==1.1->-r requirements.txt (line 3)) (4.12.3)\n", + "Requirement already satisfied: filelock in /usr/local/lib/python3.10/dist-packages (from gdown==5.1.0->robustbench==1.1->-r requirements.txt (line 3)) (3.16.1)\n", + "Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.10/dist-packages (from Jinja2~=3.1.2->robustbench==1.1->-r requirements.txt (line 3)) (2.1.5)\n", + "Requirement already satisfied: python-dateutil>=2.8.2 in /usr/local/lib/python3.10/dist-packages (from pandas>=1.3.5->robustbench==1.1->-r requirements.txt (line 3)) (2.9.0.post0)\n", + "Requirement already satisfied: tzdata>=2022.7 in /usr/local/lib/python3.10/dist-packages (from pandas>=1.3.5->robustbench==1.1->-r requirements.txt (line 3)) (2024.2)\n", + "Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.10/dist-packages (from pandas>=1.3.5->robustbench==1.1->-r requirements.txt (line 3)) (2024.2)\n", + "Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests>=2.25.0->robustbench==1.1->-r requirements.txt (line 3)) (2.2.3)\n", + "Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests>=2.25.0->robustbench==1.1->-r requirements.txt (line 3)) (3.3.2)\n", + "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests>=2.25.0->robustbench==1.1->-r requirements.txt (line 3)) (2024.8.30)\n", + "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests>=2.25.0->robustbench==1.1->-r requirements.txt (line 3)) (3.10)\n", + "Requirement already satisfied: safetensors in /usr/local/lib/python3.10/dist-packages (from timm>=0.9.0->robustbench==1.1->-r requirements.txt (line 3)) (0.4.5)\n", + "Requirement already satisfied: huggingface_hub in /usr/local/lib/python3.10/dist-packages (from timm>=0.9.0->robustbench==1.1->-r requirements.txt (line 3)) (0.25.2)\n", + "Requirement already satisfied: nvidia-cuda-runtime-cu12==12.1.105 in /usr/local/lib/python3.10/dist-packages (from torch>=1.9->geotorch->-r requirements.txt (line 1)) (12.1.105)\n", + "Requirement already satisfied: nvidia-cusparse-cu12==12.1.0.106 in /usr/local/lib/python3.10/dist-packages (from torch>=1.9->geotorch->-r requirements.txt (line 1)) (12.1.0.106)\n", + "Requirement already satisfied: nvidia-cuda-nvrtc-cu12==12.1.105 in /usr/local/lib/python3.10/dist-packages (from torch>=1.9->geotorch->-r requirements.txt (line 1)) (12.1.105)\n", + "Requirement already satisfied: nvidia-nccl-cu12==2.20.5 in /usr/local/lib/python3.10/dist-packages (from torch>=1.9->geotorch->-r requirements.txt (line 1)) (2.20.5)\n", + "Requirement already satisfied: nvidia-cuda-cupti-cu12==12.1.105 in /usr/local/lib/python3.10/dist-packages (from torch>=1.9->geotorch->-r requirements.txt (line 1)) (12.1.105)\n", + "Requirement already satisfied: typing-extensions>=4.8.0 in /usr/local/lib/python3.10/dist-packages (from torch>=1.9->geotorch->-r requirements.txt (line 1)) (4.12.2)\n", + "Requirement already satisfied: nvidia-cublas-cu12==12.1.3.1 in /usr/local/lib/python3.10/dist-packages (from torch>=1.9->geotorch->-r requirements.txt (line 1)) (12.1.3.1)\n", + "Requirement already satisfied: nvidia-curand-cu12==10.3.2.106 in /usr/local/lib/python3.10/dist-packages (from torch>=1.9->geotorch->-r requirements.txt (line 1)) (10.3.2.106)\n", + "Requirement already satisfied: nvidia-cudnn-cu12==9.1.0.70 in /usr/local/lib/python3.10/dist-packages (from torch>=1.9->geotorch->-r requirements.txt (line 1)) (9.1.0.70)\n", + "Requirement already satisfied: networkx in /usr/local/lib/python3.10/dist-packages (from torch>=1.9->geotorch->-r requirements.txt (line 1)) (3.3)\n", + "Requirement already satisfied: nvidia-cufft-cu12==11.0.2.54 in /usr/local/lib/python3.10/dist-packages (from torch>=1.9->geotorch->-r requirements.txt (line 1)) (11.0.2.54)\n", + "Requirement already satisfied: triton==3.0.0 in /usr/local/lib/python3.10/dist-packages (from torch>=1.9->geotorch->-r requirements.txt (line 1)) (3.0.0)\n", + "Requirement already satisfied: nvidia-nvtx-cu12==12.1.105 in /usr/local/lib/python3.10/dist-packages (from torch>=1.9->geotorch->-r requirements.txt (line 1)) (12.1.105)\n", + "Requirement already satisfied: sympy in /usr/local/lib/python3.10/dist-packages (from torch>=1.9->geotorch->-r requirements.txt (line 1)) (1.13.3)\n", + "Requirement already satisfied: nvidia-cusolver-cu12==11.4.5.107 in /usr/local/lib/python3.10/dist-packages (from torch>=1.9->geotorch->-r requirements.txt (line 1)) (11.4.5.107)\n", + "Requirement already satisfied: fsspec in /usr/local/lib/python3.10/dist-packages (from torch>=1.9->geotorch->-r requirements.txt (line 1)) (2024.9.0)\n", + "Requirement already satisfied: nvidia-nvjitlink-cu12 in /usr/local/lib/python3.10/dist-packages (from nvidia-cusolver-cu12==11.4.5.107->torch>=1.9->geotorch->-r requirements.txt (line 1)) (12.6.77)\n", + "Requirement already satisfied: pillow!=8.3.*,>=5.3.0 in /usr/local/lib/python3.10/dist-packages (from torchvision>=0.8.2->robustbench==1.1->-r requirements.txt (line 3)) (10.4.0)\n", + "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.10/dist-packages (from python-dateutil>=2.8.2->pandas>=1.3.5->robustbench==1.1->-r requirements.txt (line 3)) (1.16.0)\n", + "Requirement already satisfied: soupsieve>1.2 in /usr/local/lib/python3.10/dist-packages (from beautifulsoup4->gdown==5.1.0->robustbench==1.1->-r requirements.txt (line 3)) (2.6)\n", + "Requirement already satisfied: packaging>=20.9 in /usr/local/lib/python3.10/dist-packages (from huggingface_hub->timm>=0.9.0->robustbench==1.1->-r requirements.txt (line 3)) (24.1)\n", + "Requirement already satisfied: PySocks!=1.5.7,>=1.5.6 in /usr/local/lib/python3.10/dist-packages (from requests>=2.25.0->robustbench==1.1->-r requirements.txt (line 3)) (1.7.1)\n", + "Requirement already satisfied: mpmath<1.4,>=1.1.0 in /usr/local/lib/python3.10/dist-packages (from sympy->torch>=1.9->geotorch->-r requirements.txt (line 1)) (1.3.0)\n" + ] + } + ], "source": [ + "!pip install -r requirements.txt\n", "import argparse\n", "import torch\n", "import torch.nn as nn\n", - "from tqdm.notebook import tqdm" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "%cd AROS\n", "from evaluate import *\n", "from utils import *\n", + "from tqdm.notebook import tqdm\n", "from data_loader import *\n", "from stability_loss_function import *" ] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#Set hyperparameters & dataloader" - ] - }, - { - "cell_type": "code", - "source": [ - "%cd AROS\n", - "from data_loader import *\n", - "from stability_loss_function import *\n", - "from evaluate import *\n", - "from utils import *" - ], - "metadata": { - "id": "tsnDsEXY1AcI" - }, - "execution_count": null, - "outputs": [] - }, { "cell_type": "code", "execution_count": null, @@ -149,16 +134,59 @@ "cell_type": "code", "execution_count": null, "metadata": { + "id": "g2TltXvg7MfF", + "outputId": "4df864e7-e14b-4db4-e1ae-06e33c9b11be", "colab": { "referenced_widgets": [ "59296a90b8c84b1c94648a4c5d68a43b", "ad54c341af6e400280d000b3725f08ee" ] - }, - "id": "g2TltXvg7MfF", - "outputId": "4df864e7-e14b-4db4-e1ae-06e33c9b11be" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "59296a90b8c84b1c94648a4c5d68a43b", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + " 0%| | 0/1250 [00:00 Date: Fri, 18 Oct 2024 08:40:54 -0700 Subject: [PATCH 3/4] Update Ablation_Study.ipynb --- Notebooks/Ablation_Study.ipynb | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/Notebooks/Ablation_Study.ipynb b/Notebooks/Ablation_Study.ipynb index eb8d373..58af74f 100644 --- a/Notebooks/Ablation_Study.ipynb +++ b/Notebooks/Ablation_Study.ipynb @@ -1,6 +1,15 @@ { "cells": [ { + "cell_type": "markdown", + "metadata": { + "id": "view-in-github", + "colab_type": "text" + }, + "source": [ + "\"Open" + ] + }, "cell_type": "markdown", "source": [ "## AROS, Ablation Study" @@ -302,4 +311,4 @@ }, "nbformat": 4, "nbformat_minor": 0 -} \ No newline at end of file +} From f00d966ab4ea3e4e0e874bb60fc82775b35ebaef Mon Sep 17 00:00:00 2001 From: Mackenzie Mathis Date: Fri, 18 Oct 2024 08:41:20 -0700 Subject: [PATCH 4/4] Update Ablation_Study.ipynb --- Notebooks/Ablation_Study.ipynb | 1 + 1 file changed, 1 insertion(+) diff --git a/Notebooks/Ablation_Study.ipynb b/Notebooks/Ablation_Study.ipynb index 58af74f..d356e78 100644 --- a/Notebooks/Ablation_Study.ipynb +++ b/Notebooks/Ablation_Study.ipynb @@ -10,6 +10,7 @@ "\"Open" ] }, + { "cell_type": "markdown", "source": [ "## AROS, Ablation Study"