All Projects → a1600012888 → Yopo You Only Propagate Once

a1600012888 / Yopo You Only Propagate Once

Code for our nips19 paper: You Only Propagate Once: Accelerating Adversarial Training Via Maximal Principle

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Yopo You Only Propagate Once

Sigpy
Python package for signal processing, with emphasis on iterative methods
Stars: ✭ 132 (-13.16%)
Mutual labels:  optimization
Ltecleanerfoss
The last Android cleaner you'll ever need!
Stars: ✭ 141 (-7.24%)
Mutual labels:  optimization
Deep Learning Specialization Coursera
Deep Learning Specialization courses by Andrew Ng, deeplearning.ai
Stars: ✭ 146 (-3.95%)
Mutual labels:  optimization
Search Engine Optimization
🔍 A helpful checklist/collection of Search Engine Optimization (SEO) tips and techniques.
Stars: ✭ 1,798 (+1082.89%)
Mutual labels:  optimization
Pygmo2
A Python platform to perform parallel computations of optimisation tasks (global and local) via the asynchronous generalized island model.
Stars: ✭ 134 (-11.84%)
Mutual labels:  optimization
Nlopt.jl
Package to call the NLopt nonlinear-optimization library from the Julia language
Stars: ✭ 141 (-7.24%)
Mutual labels:  optimization
Sddp.jl
Stochastic Dual Dynamic Programming in Julia
Stars: ✭ 130 (-14.47%)
Mutual labels:  optimization
Cosmo.jl
COSMO: Accelerated ADMM-based solver for convex conic optimisation problems (LP, QP, SOCP, SDP, ExpCP, PowCP). Automatic chordal decomposition of sparse semidefinite programs.
Stars: ✭ 149 (-1.97%)
Mutual labels:  optimization
E2e Model Learning
Task-based end-to-end model learning in stochastic optimization
Stars: ✭ 140 (-7.89%)
Mutual labels:  optimization
Fantasy Basketball
Scraping statistics, predicting NBA player performance with neural networks and boosting algorithms, and optimising lineups for Draft Kings with genetic algorithm. Capstone Project for Machine Learning Engineer Nanodegree by Udacity.
Stars: ✭ 146 (-3.95%)
Mutual labels:  optimization
Optimization Python
General optimization (LP, MIP, QP, continuous and discrete optimization etc.) using Python
Stars: ✭ 133 (-12.5%)
Mutual labels:  optimization
Pysot
Surrogate Optimization Toolbox for Python
Stars: ✭ 136 (-10.53%)
Mutual labels:  optimization
Snappy
snAppy is a VS Code extension coupled with an interactive view to support your React front-end delivery.
Stars: ✭ 144 (-5.26%)
Mutual labels:  optimization
Nnvm
No description or website provided.
Stars: ✭ 1,639 (+978.29%)
Mutual labels:  optimization
Evalml
EvalML is an AutoML library written in python.
Stars: ✭ 145 (-4.61%)
Mutual labels:  optimization
Knowledgesummary
📚A list of core knowledge that most Android programmers need to know. (continuously updated...)
Stars: ✭ 131 (-13.82%)
Mutual labels:  optimization
Soot
Soot - A Java optimization framework
Stars: ✭ 2,049 (+1248.03%)
Mutual labels:  optimization
Webdnn
The Fastest DNN Running Framework on Web Browser
Stars: ✭ 1,850 (+1117.11%)
Mutual labels:  optimization
Easyengine
Command-line control panel for Nginx Server to manage WordPress sites running on Nginx, PHP, MySQL, and Let's Encrypt
Stars: ✭ 1,881 (+1137.5%)
Mutual labels:  optimization
Georaptor
Python Geohash Compression Tool
Stars: ✭ 143 (-5.92%)
Mutual labels:  optimization

YOPO (You Only Propagate Once: Accelerating Adversarial Training via Maximal Principle)

Code for our paper: "You Only Propagate Once: Accelerating Adversarial Training via Maximal Principle" by Dinghuai Zhang, Tianyuan Zhang, Yiping Lu, Zhanxing Zhu, Bin Dong.

Our paper has been accepted by NeurIPS2019.

The Pipeline of YOPO

Prerequisites

  • Pytorch==1.0.1, torchvision
  • Python 3.5
  • tensorboardX
  • easydict
  • tqdm

Intall

git clone https://github.com/a1600012888/YOPO-You-Only-Propagate-Once.git
cd YOPO-You-Only-Propagate-Once
pip3 install -r requirements.txt --user

How to run our code

Natural training and PGD training

  • normal training: experiments/CIFAR10/wide34.natural
  • PGD adversarial training: experiments/CIFAR10/wide34.pgd10 run python train.py -d <whcih_gpu>

You can change all the hyper-parameters in config.py. And change network in network.py Actually code in above mentioned director is very flexible and can be easiliy modified. It can be used as a template.

YOPO training

Go to directory experiments/CIFAR10/wide34.yopo-5-3 run python train.py -d <whcih_gpu>

You can change all the hyper-parameters in config.py. And change network in network.py Runing this code for the first time will dowload the dataset in ./experiments/CIFAR10/data/, you can modify the path in dataset.py

Miscellaneous

A C++ implementation by Nitin Shyamkumar is provided here! Thank you Nitin for your work!

The mainbody of experiments/CIFAR10-TRADES/baseline.res-pre18.TRADES.10step is written according to TRADES official repo

A tensorflow implementation provided by Runtian Zhai is provided here. The implemetation of the "For Free" paper is also included. It turns out that our YOPO is faster than "For Free" (detailed results will come soon). Thanks for Runtian's help!

Cite

@article{zhang2019you,
  title={You Only Propagate Once: Accelerating Adversarial Training via Maximal Principle},
  author={Zhang, Dinghuai and Zhang, Tianyuan and Lu, Yiping and Zhu, Zhanxing and Dong, Bin},
  journal={arXiv preprint arXiv:1905.00877},
  year={2019}
}
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].