Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/gomerudo/nas-env
A simple OpenAI Gym environment for Neural Architecture Search (NAS)
https://github.com/gomerudo/nas-env
neural-architecture-search openai-gym reinforcement-learning
Last synced: 3 months ago
JSON representation
A simple OpenAI Gym environment for Neural Architecture Search (NAS)
- Host: GitHub
- URL: https://github.com/gomerudo/nas-env
- Owner: gomerudo
- License: mit
- Created: 2019-03-25T12:56:01.000Z (over 5 years ago)
- Default Branch: develop
- Last Pushed: 2020-05-04T22:38:59.000Z (over 4 years ago)
- Last Synced: 2024-07-28T00:37:25.196Z (3 months ago)
- Topics: neural-architecture-search, openai-gym, reinforcement-learning
- Language: Python
- Size: 198 KB
- Stars: 29
- Watchers: 7
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-llmops - NASGym - of-concept OpenAI Gym environment for Neural Architecture Search (NAS). | ![GitHub Badge](https://img.shields.io/github/stars/gomerudo/nas-env.svg?style=flat-square) | (AutoML / Profiling)
README
# NASGym
A proof-of-concept OpenAI Gym environment for Neural Architecture Search (NAS).
**Under development:** The code and documentation of this repository may contain minor bugs.
## Overview
This is a python package developed for the research project [Learning to reinforcement learn for Neural Architecture Search](https://arxiv.org/abs/1911.03769).
The environment is fully compatible with the OpenAI baselines. It implements the RL steps for NAS, using the Neural Structure Code (NSC) of [BlockQNN: Efficient Block-wise Neural Network Architecture Generation](https://arxiv.org/abs/1808.05584) to encode the networks and make architectural changes. Under this setting, a Neural Network (i.e. the state for the reinforcement learning agent) is modeled as a list of NSCs, an action is the addition of a layer to the network, and the reward is the accuracy after the early-stop training. The datasets considered so far are the CIFAR-10 dataset (default) and the meta-dataset (it has to be downloaded as specified in [the original repository](https://github.com/gomerudo/meta-dataset)).
## Highlights
The code structure allows you to:
- Set the main training variables in a config.ini file (see the [resources](resources/) directory).
- Easily change the layers to consider and their hyperparameters in a yml file (see the [resources](resources/) directory).
- Create customized TensorFlow estimators to plug-in your performance estimation strategy.
- Store a local database of the experiments (CSV file by default, with an option to create your own DB interfaces).
- Create your own dataset handlers to input the TensorFlow estimators.
## InstallationThe recommended way to install the package is in editable mode:
```
cd ${GIT_STORAGE}/nas-env
git checkout develop
pip install -e .
```
## ExampleTo see an example of how to use this environment after installation, check the scripts in the [nas-dmlr repo](https://github.com/gomerudo/nas-dmrl).
## Future plans- Architectural changes to the source code to ease plugging-in the different NAS elements, i.e. the performance estimation strategy and the search space.
- Generate documentation
- Publish the package in PiPy.## Contributing
So far I am the only contributor to this project, but I would like to improve the design to allow for even easier integration of the different NAS elements. Please feel free to join me in this quest!