Neural Network Intelligence
NNI (Neural Network Intelligence) is a toolkit to help users run automated machine learning experiments. The tool dispatches and runs trial jobs that generated by tuning algorithms to search the best neural architecture and/or hyper-parameters in different environments (e.g. local machine, remote servers and cloud).
Who should consider using NNI
- You want to try different AutoML algorithms for your training code (model) at local
- You want to run AutoML trial jobs in different environments to speed up search (e.g. remote servers and cloud)
- As a researcher and data scientist, you want to implement your own AutoML algorithms and compare with other algorithms
- As a ML platform owner, you want to support AutoML in your platform
Get Started with NNI
pip Installation Prerequisites
- linux (ubuntu 16.04 or newer version has been well tested)
- python >= 3.5
- git, wget
python3 -m pip install -v --user git+https://github.com/Microsoftfirstname.lastname@example.org source ~/.bashrc
Quick start: run your first experiment at local
NNI provides a set of examples in the package to get you familiar with the above process. In the following example [/examples/trials/mnist], we had already set up the configuration and updated the training codes for you. You can directly run the following command to start an experiment.
NOTE: The following example is an experiment built on TensorFlow, make sure you have TensorFlow installed before running the following command.
Try it out:
nnictl create --config ~/nni/examples/trials/mnist/config.yml
In the command output, find out the WebUI url and open it in your browser. You can analyze your experiment through WebUI, or browse trials' tensorboard.
To learn more about how this example was constructed and how to analyze the experiment results in NNI WebUI, please refer to How to write a trial run on NNI (MNIST as an example)?
Get Started Tutorial for more detailed information.Please refer to
- Tutorial of NNI python annotation.
- Tuners supported by NNI.
- How to enable early stop (i.e. assessor) in an experiment?
- How to run an experiment on multiple machines?
- How to run an experiment on OpenPAI?
- How to write a customized tuner?
- How to write a customized assessor?
- How to resume an experiment?
- Tutorial of the command tool nnictl.
- How to debug in NNI
This project welcomes contributions and suggestions, please refer to our contributing document for the same.
We use GitHub issues for tracking requests and bugs.
The entire codebase is under MIT license