adv-ml


Nameadv-ml JSON
Version 0.0.4 PyPI version JSON
download
home_pagehttps://github.com/Irad-Zehavi/adv-ml
SummaryA modular and easy-to-use framework of adversarial machine learning algorithms: https://en.m.wikipedia.org/wiki/Adversarial_machine_learning
upload_time2023-06-10 10:07:34
maintainer
docs_urlNone
authoriradz
requires_python>=3.7
licenseApache Software License 2.0
keywords nbdev jupyter notebook python
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            adv-ml
================

<!-- WARNING: THIS FILE WAS AUTOGENERATED! DO NOT EDIT! -->

## Docs

See https://irad-zehavi.github.io/adv-ml/

## Install

``` sh
pip install adv_ml
```

## How to use

## How to Use

As an nbdev library, `adv-ml` supports `import *` (without importing
unwanted symbols):

``` python
from adv_ml.all import *
```

### Adversarial Examples

``` python
mnist = MNIST()
classifier = MLP(10)
learn = Learner(mnist.dls(), classifier, metrics=accuracy)
learn.fit(1)
```

<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: left;">
      <th>epoch</th>
      <th>train_loss</th>
      <th>valid_loss</th>
      <th>accuracy</th>
      <th>time</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>0</td>
      <td>0.154410</td>
      <td>0.177410</td>
      <td>0.953900</td>
      <td>00:32</td>
    </tr>
  </tbody>
</table>

``` python
sub_dsets = mnist.valid.random_sub_dsets(64)
learn.show_results(shuffle=False, dl=sub_dsets.dl())
```

![](index_files/figure-commonmark/cell-4-output-2.png)

``` python
attack = InputOptimizer(classifier, LinfPGD(epsilon=.15), n_epochs=10, epoch_size=20)
perturbed_dsets = attack.perturb(sub_dsets)
```

<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: left;">
      <th>epoch</th>
      <th>train_loss</th>
      <th>time</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>0</td>
      <td>-4.302573</td>
      <td>00:00</td>
    </tr>
    <tr>
      <td>1</td>
      <td>-7.585707</td>
      <td>00:00</td>
    </tr>
    <tr>
      <td>2</td>
      <td>-9.014968</td>
      <td>00:00</td>
    </tr>
    <tr>
      <td>3</td>
      <td>-9.700548</td>
      <td>00:00</td>
    </tr>
    <tr>
      <td>4</td>
      <td>-10.075110</td>
      <td>00:00</td>
    </tr>
    <tr>
      <td>5</td>
      <td>-10.296636</td>
      <td>00:00</td>
    </tr>
    <tr>
      <td>6</td>
      <td>-10.433834</td>
      <td>00:00</td>
    </tr>
    <tr>
      <td>7</td>
      <td>-10.521141</td>
      <td>00:00</td>
    </tr>
    <tr>
      <td>8</td>
      <td>-10.577673</td>
      <td>00:00</td>
    </tr>
    <tr>
      <td>9</td>
      <td>-10.614740</td>
      <td>00:00</td>
    </tr>
  </tbody>
</table>

``` python
learn.show_results(shuffle=False, dl=TfmdDL(perturbed_dsets))
```

![](index_files/figure-commonmark/cell-6-output-2.png)

### Data Poisoning

``` python
patch = torch.tensor([[1, 0, 1],
                      [0, 1, 0],
                      [1, 0, 1]]).int()*255
trigger = F.pad(patch, (25, 0, 25, 0)).numpy()
learn = Learner(mnist.dls(), MLP(10), metrics=accuracy, cbs=BadNetsAttack(trigger, '0'))
learn.fit_one_cycle(1)
```

<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: left;">
      <th>epoch</th>
      <th>train_loss</th>
      <th>valid_loss</th>
      <th>accuracy</th>
      <th>time</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>0</td>
      <td>0.103652</td>
      <td>0.097075</td>
      <td>0.971400</td>
      <td>00:23</td>
    </tr>
  </tbody>
</table>

Benign performance:

``` python
learn.show_results()
```

![](index_files/figure-commonmark/cell-8-output-2.png)

Attack success:

``` python
learn.show_results(2)
```

![](index_files/figure-commonmark/cell-9-output-2.png)



            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/Irad-Zehavi/adv-ml",
    "name": "adv-ml",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": "",
    "keywords": "nbdev jupyter notebook python",
    "author": "iradz",
    "author_email": "irad.zehavi@outlook.com",
    "download_url": "https://files.pythonhosted.org/packages/8d/62/08d24ee327042bf70bef28680a06253757222a0c24032da9ecdf98c171fa/adv-ml-0.0.4.tar.gz",
    "platform": null,
    "description": "adv-ml\n================\n\n<!-- WARNING: THIS FILE WAS AUTOGENERATED! DO NOT EDIT! -->\n\n## Docs\n\nSee https://irad-zehavi.github.io/adv-ml/\n\n## Install\n\n``` sh\npip install adv_ml\n```\n\n## How to use\n\n## How to Use\n\nAs an nbdev library, `adv-ml` supports `import *` (without importing\nunwanted symbols):\n\n``` python\nfrom adv_ml.all import *\n```\n\n### Adversarial Examples\n\n``` python\nmnist = MNIST()\nclassifier = MLP(10)\nlearn = Learner(mnist.dls(), classifier, metrics=accuracy)\nlearn.fit(1)\n```\n\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: left;\">\n      <th>epoch</th>\n      <th>train_loss</th>\n      <th>valid_loss</th>\n      <th>accuracy</th>\n      <th>time</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <td>0</td>\n      <td>0.154410</td>\n      <td>0.177410</td>\n      <td>0.953900</td>\n      <td>00:32</td>\n    </tr>\n  </tbody>\n</table>\n\n``` python\nsub_dsets = mnist.valid.random_sub_dsets(64)\nlearn.show_results(shuffle=False, dl=sub_dsets.dl())\n```\n\n![](index_files/figure-commonmark/cell-4-output-2.png)\n\n``` python\nattack = InputOptimizer(classifier, LinfPGD(epsilon=.15), n_epochs=10, epoch_size=20)\nperturbed_dsets = attack.perturb(sub_dsets)\n```\n\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: left;\">\n      <th>epoch</th>\n      <th>train_loss</th>\n      <th>time</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <td>0</td>\n      <td>-4.302573</td>\n      <td>00:00</td>\n    </tr>\n    <tr>\n      <td>1</td>\n      <td>-7.585707</td>\n      <td>00:00</td>\n    </tr>\n    <tr>\n      <td>2</td>\n      <td>-9.014968</td>\n      <td>00:00</td>\n    </tr>\n    <tr>\n      <td>3</td>\n      <td>-9.700548</td>\n      <td>00:00</td>\n    </tr>\n    <tr>\n      <td>4</td>\n      <td>-10.075110</td>\n      <td>00:00</td>\n    </tr>\n    <tr>\n      <td>5</td>\n      <td>-10.296636</td>\n      <td>00:00</td>\n    </tr>\n    <tr>\n      <td>6</td>\n      <td>-10.433834</td>\n      <td>00:00</td>\n    </tr>\n    <tr>\n      <td>7</td>\n      <td>-10.521141</td>\n      <td>00:00</td>\n    </tr>\n    <tr>\n      <td>8</td>\n      <td>-10.577673</td>\n      <td>00:00</td>\n    </tr>\n    <tr>\n      <td>9</td>\n      <td>-10.614740</td>\n      <td>00:00</td>\n    </tr>\n  </tbody>\n</table>\n\n``` python\nlearn.show_results(shuffle=False, dl=TfmdDL(perturbed_dsets))\n```\n\n![](index_files/figure-commonmark/cell-6-output-2.png)\n\n### Data Poisoning\n\n``` python\npatch = torch.tensor([[1, 0, 1],\n                      [0, 1, 0],\n                      [1, 0, 1]]).int()*255\ntrigger = F.pad(patch, (25, 0, 25, 0)).numpy()\nlearn = Learner(mnist.dls(), MLP(10), metrics=accuracy, cbs=BadNetsAttack(trigger, '0'))\nlearn.fit_one_cycle(1)\n```\n\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: left;\">\n      <th>epoch</th>\n      <th>train_loss</th>\n      <th>valid_loss</th>\n      <th>accuracy</th>\n      <th>time</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <td>0</td>\n      <td>0.103652</td>\n      <td>0.097075</td>\n      <td>0.971400</td>\n      <td>00:23</td>\n    </tr>\n  </tbody>\n</table>\n\nBenign performance:\n\n``` python\nlearn.show_results()\n```\n\n![](index_files/figure-commonmark/cell-8-output-2.png)\n\nAttack success:\n\n``` python\nlearn.show_results(2)\n```\n\n![](index_files/figure-commonmark/cell-9-output-2.png)\n\n\n",
    "bugtrack_url": null,
    "license": "Apache Software License 2.0",
    "summary": "A modular and easy-to-use framework of adversarial machine learning algorithms: https://en.m.wikipedia.org/wiki/Adversarial_machine_learning",
    "version": "0.0.4",
    "project_urls": {
        "Homepage": "https://github.com/Irad-Zehavi/adv-ml"
    },
    "split_keywords": [
        "nbdev",
        "jupyter",
        "notebook",
        "python"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d8afb3dfb924c69cdb1084ce08107c4072f5e5e94414489803f8da6d7dddde4e",
                "md5": "8ee434a5c26a9c81ebf7b553973f7112",
                "sha256": "a1c284973cac35915fa50ad4ae513a7069b594ece6faeb32fda5e869ad0e013f"
            },
            "downloads": -1,
            "filename": "adv_ml-0.0.4-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "8ee434a5c26a9c81ebf7b553973f7112",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7",
            "size": 20760,
            "upload_time": "2023-06-10T10:07:32",
            "upload_time_iso_8601": "2023-06-10T10:07:32.508540Z",
            "url": "https://files.pythonhosted.org/packages/d8/af/b3dfb924c69cdb1084ce08107c4072f5e5e94414489803f8da6d7dddde4e/adv_ml-0.0.4-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "8d6208d24ee327042bf70bef28680a06253757222a0c24032da9ecdf98c171fa",
                "md5": "2aaa95cf2e948b6a85c83879b8dc8a8e",
                "sha256": "fb99423d52072d8e4e1919e8fd3f59c6f259c2e3b756bc38ea0849b9f0437927"
            },
            "downloads": -1,
            "filename": "adv-ml-0.0.4.tar.gz",
            "has_sig": false,
            "md5_digest": "2aaa95cf2e948b6a85c83879b8dc8a8e",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 21980,
            "upload_time": "2023-06-10T10:07:34",
            "upload_time_iso_8601": "2023-06-10T10:07:34.406069Z",
            "url": "https://files.pythonhosted.org/packages/8d/62/08d24ee327042bf70bef28680a06253757222a0c24032da9ecdf98c171fa/adv-ml-0.0.4.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-06-10 10:07:34",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "Irad-Zehavi",
    "github_project": "adv-ml",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "adv-ml"
}
        
Elapsed time: 0.13894s