Metadata-Version: 2.4
Name: nas-torch
Version: 0.1.1
Summary: A frugal and memetic Neural Architecture Search (NAS) framework.
Author-email: Romain AMIGON <romain.amigon@etu.uqac.ca>
Project-URL: Homepage, https://github.com/Romain-Amigon/nas-torch
Project-URL: Bug Tracker, https://github.com/Romain-Amigon/8INF976/nas-torch
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: torch>=1.9.0
Requires-Dist: scikit-learn>=1.0.0
Dynamic: license-file

# nas-torch

Frugal memetic Neural Architecture Search combining an autoregressive
Transformer controller (REINFORCE) with an Artificial Bee Colony (ABC)
metaheuristic, designed to run on consumer-grade hardware.

## Layout

| File | Purpose |
|------|---------|
| `layer_classes.py` | Dataclass configs for each supported layer type |
| `model.py` | `DynamicNet`: builds a runnable model from a list of layer configs |
| `optimizer.py` | Search strategies: SA, GA, ABC, RL (LSTM) and Transformer controllers |
| `cifar_common.py` | Shared seeding, GPU preloading and proxy evaluation for the CIFAR scripts |
| `Cifar_hybrid.py` | Transformer + ABC hybrid search on CIFAR-10 |
| `Cifar100_hybrid.py` | Same hybrid search on CIFAR-100 |
| `Cifar_SA.py` | Standalone Simulated Annealing baseline |
| `Cifar_abc.py` | Standalone ABC baseline |
| `random_search.py` | Budget-matched Random Search baseline |
| `benchmark_technique.py` | Multi-dataset benchmark (California Housing, Breast Cancer, Fashion-MNIST) |
| `test_bank_eva.py` | Hybrid search on the Credit Card Fraud dataset |
| `launcher.py` | Runs every experiment script sequentially |

## Requirements

```
pip install -r requirements.txt
```

## Running

Individual experiments:

```
python Cifar_hybrid.py
```

All experiments in sequence:

```
python launcher.py
```

Results (accuracy, parameter count, search time, evaluation budget) are written
as JSON under `results/`. The fraud script expects `data/creditcard.csv`; the
image datasets are downloaded automatically to `data/` on first run.
