https://github.com/pprp/piconas
Modularized NAS Framework
https://github.com/pprp/piconas
benchmark nas neural-architecture-search
Last synced: 7 months ago
JSON representation
Modularized NAS Framework
- Host: GitHub
- URL: https://github.com/pprp/piconas
- Owner: pprp
- License: gpl-3.0
- Created: 2021-09-28T01:23:47.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2024-03-06T14:28:39.000Z (over 1 year ago)
- Last Synced: 2024-06-26T12:39:52.349Z (about 1 year ago)
- Topics: benchmark, nas, neural-architecture-search
- Language: Python
- Homepage:
- Size: 3.36 MB
- Stars: 8
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# PicoNAS
PicoNAS is a modularized NAS Framework designed for One-Shot NAS. It is built on top of PyTorch and supports multiple NAS algorithms and datasets.
## Overview
This repository includes the benchmarks:
- NAS-Bench-101
- NAS-Bench-201
- NAS-Bench-301
- NATS-Bench
- Macro-NAS-Bench.This repository support multiple NAS algorithms:
- Differentiable Architecture Search
- Single Path One Shot
- FairNAS
- AutoSlim
- AngleNAS
- [RD-NAS](https://github.com/pprp/PicoNAS/tree/dev/examples/rdnas)
- [MetaPool](https://github.com/pprp/PicoNAS/tree/dev/examples/meta_pool)This repository support multiple dataset:
- CIFAR-10
- CIFAR-100
- ImageNet16-120## Installation
Requirements:
- python>=3.7
- pytorch>=1.9
- nasbenchNote that tensorflow 1.x only support Python<=3.7 to install nasbench.
Intall from source code
```
git clone https://github.com/pprp/PicoNAS.git
cd PicoNAS
pip install -r requirements.txt
# install piconas
pip install -e .
```## Introduction
PicoNAS is a modularized NAS Framework designed for One-Shot NAS. It contains the following components:
- Dataset: CIFAR-10, CIFAR-100, ImageNet16-120
- SuperNet: DARTS, SPOS, FairNAS, AutoSlim, AngleNAS
- Mutable: OneshotOP, DifferentiableOP, MutableOP
- Mutator: OneshotMutator, DifferentiableMutator, MutableMutator
- Evaluator: NB101Evaluator, NB201Evaluator, NB301Evaluator, NATSEvaluator, MacroNASEvaluator
- Trainer: NB101Trainer, NB201Trainer, NB301Trainer, NATSTrainer, MacroNASTrainer
- Predictor: SNIP, EPENAS, Fisher, GraSP, NWOT, ZEN, GradNorm, Synflow, TENAS, etc.## Quick Start
```bash
CUDA_VISIBLE_DEVICES=0 python exps/train.py \
\
--model_name OneShotNASBench201Network \
--trainer_name NB201_Balance_Trainer \
--log_name graduate_nb201_spos_sandwich-sampling \
--dataset cifar10 --crit ce --lr 0.025
```## Contributing
We welcome contributions to the library along with any potential issues or suggestions.
## Thanks
- MMRazor:
- SimMIM:
- NASLib:
- MixPath:
- Zerocostnas:
- RepDistiller:
- ZenNAS:
- NAS-w-Proxy-data:## Citation
If you find this repository useful in your research, please consider citing:
```bibtex
@misc{piconas2023,
author = {Peijie Dong},
title = {PicoNAS: A Modularized NAS Framework},
year = {2023},
publisher = {GitHub},
journal = {GitHub repository}
}
```## TODO List
- [ ] update config system
- [ ] update log system
- [ ] update summarywriter