{"id":13640500,"url":"https://github.com/QData/AdversarialDNN-Playground","last_synced_at":"2025-04-20T02:34:06.793Z","repository":{"id":19652706,"uuid":"87580818","full_name":"QData/AdversarialDNN-Playground","owner":"QData","description":"VizSec17: Web-based visualization tool for adversarial machine learning / LiveDemo","archived":false,"fork":false,"pushed_at":"2023-05-01T20:29:33.000Z","size":146274,"stargazers_count":128,"open_issues_count":5,"forks_count":31,"subscribers_count":12,"default_branch":"master","last_synced_at":"2024-08-03T01:16:57.696Z","etag":null,"topics":["adversarial-samples","deep-neural-networks","machine-learning","neural-network","python","tensorflow","visualization"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/QData.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2017-04-07T19:37:34.000Z","updated_at":"2024-06-02T15:02:16.000Z","dependencies_parsed_at":"2024-01-07T01:43:21.354Z","dependency_job_id":"98e44006-691d-4515-9b0b-9f9424908bec","html_url":"https://github.com/QData/AdversarialDNN-Playground","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QData%2FAdversarialDNN-Playground","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QData%2FAdversarialDNN-Playground/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QData%2FAdversarialDNN-Playground/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QData%2FAdversarialDNN-Playground/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/QData","download_url":"https://codeload.github.com/QData/AdversarialDNN-Playground/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223816634,"owners_count":17207892,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["adversarial-samples","deep-neural-networks","machine-learning","neural-network","python","tensorflow","visualization"],"created_at":"2024-08-02T01:01:11.830Z","updated_at":"2024-11-09T10:31:20.439Z","avatar_url":"https://github.com/QData.png","language":"Python","funding_links":[],"categories":["Adversarial Robustness Libraries","Table of Contents","Adversarial Robustness"],"sub_categories":[],"readme":"Adversarial DNN Playground\n==========================\n\n\n\nCitation:\n---------\n\n```\n@inproceedings{norton2017adversarial,\n  title={Adversarial-Playground: A visualization suite showing how adversarial examples fool deep learning},\n  author={Norton, Andrew P and Qi, Yanjun},\n  booktitle={Visualization for Cyber Security (VizSec), 2017 IEEE Symposium on},\n  pages={1--4},\n  year={2017},\n  organization={IEEE}\n}\n```\n\nReference Papers:\n---------\n[1] \"Adversarial-Playground: A Visualization Suite Showing How Adversarial\n  Examples Fool Deep Learning\", Andrew P. Norton, Yanjun Qi, [arxiv](http://arxiv.org/abs/1708.00807) (this is a revised version of [1])\n  Published in:  2017 IEEE Symposium on Visualization for Cyber Security (VizSec), [URL](http://ieeexplore.ieee.org/document/8062202/)\n\n[2] \"Adversarial Playground: A Visualization Suite for Adversarial Sample Generation\", Norton, Andrew and Qi, Yanjun, [url](http://arxiv.org/abs/1706.01763)\n\n\nThis is Andrew Norton's capstone research work.  The goal is to perform a similar function to Google's TensorFlow Playground, but for evasion attacks in adversiaral machine learning.  It is a web service that enables the user to visualize the creation of adversarial samples to neural networks.\n\nScreenshots and Demo\n--------------------\n\nInformation regarding the various settings for each attack model may be found the [project slide set](https://github.com/QData/AdversarialDNN-Playground/blob/master/presentation.pdf) (see especially the *System Demonstration* section).\n\n\nInstallation\n------------\n\nThere are git submodules in this repository; to clone all the needed files, please use:\n\n```\ngit clone --recursive https://github.com/QData/AdversarialDNN-Playground.git\n```\n\nThe primary requirements for this package are Python 3 with Tensorflow version 1.0.1 or greater.  The `requirements.txt` file contains a listing of the required Python packages; to install all requirements, run the following:\n\n```\npip3 -r install requirements.txt\n```\n\nIf the above command does not work, use the following:\n\n```\npip3 install -r requirements.txt\n```\n\nOr use the following instead if need to sudo:\n```\nsudo -H pip  install -r requirements.txt\n```\n\nUse:\n----\n\n### To Deploy the webserver:\n\nOnce you've downloaded the repo, run `python3 run.py` :\n\n```\n$ cd AdversarialDNN-Playground-localDir\n$ python3 run.py \u0026       \n```\n\nOr run the following command to run the webapp in the background even when logged out from the server:\n```\n$ cd AdversarialDNN-Playground-localDir\n$ nohup python3 run.py \u0026        # run in background even when logged out\n```\n\nNow use your favorite explorer to navigate to `localhost:9000`  or 'your_server_url:9000'\n\n### Modifying Seed Images\nBy default, we give the user the option of 11 seed images (one from each class 0 through 9, and one misclassified instance from the \"9\" class).  However, you may desire to select different images for your own instance of this tool.  It is quite easy to do so via the `json_gen.py` script in the [`utils`](https://github.com/QData/AdversarialDNN-Playground/tree/master/utils) directory.  Edit the `images_to_generate.csv` file to specify the indices into the MNIST dataset which interest you in the first column, and provide a human readable description in the second column.\n\nAfter editing the `images_to_generate.csv` file, run:\n```\n$ python images_to_generate.csv\n```\n\nThis will take a short amount of time, as it processes and classifies (using the pre-trained model) each seed image, and saves a `png` file of the image.  There are two items created as output, and they must be moved into proper locations in the `webapp` directories:\n  - `seeds.json` : This contains each image and the classifier output as a JSON object; it goes in `/webapp/models`.\n  - `imgs/` : This directory should be copied into the `webapp/static/` directory.\n\nRun (or restart) the webserver, and the new options should be visible to the user.\n\nFramework\n---------\n  - Python `Flask`-based server\n    - Python backend provides access to TensorFlow\n    - Integration with cleverhans is also possible\n  - Front-end using JQuery and Bootstrap\n    - Bootstrap for static visuals\n      - Used Seiyria's [Bootstrap slider][bootstrap-slider]\n    - Ploty.JS utilized for visualization\n\n\n[bootstrap-slider]: https://github.com/seiyria/bootstrap-slider\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FQData%2FAdversarialDNN-Playground","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FQData%2FAdversarialDNN-Playground","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FQData%2FAdversarialDNN-Playground/lists"}