README.md 3.87 KB
Newer Older
1
2
# Neural Network Intelligence

3
[![Build Status](https://msrasrg.visualstudio.com/NNIOpenSource/_apis/build/status/Microsoft.nni)](https://msrasrg.visualstudio.com/NNIOpenSource/_build/latest?definitionId=6)
Gems Guo's avatar
Gems Guo committed
4
5
6
7
[![Issues](https://img.shields.io/github/issues-raw/Microsoft/nni.svg)](https://github.com/Microsoft/nni/issues?q=is%3Aissue+is%3Aopen)
[![Bugs](https://img.shields.io/github/issues/Microsoft/nni/bug.svg)](https://github.com/Microsoft/nni/issues?q=is%3Aissue+is%3Aopen+label%3Abug)
[![Pull Requests](https://img.shields.io/github/issues-pr-raw/Microsoft/nni.svg)](https://github.com/Microsoft/nni/pulls?q=is%3Apr+is%3Aopen)
[![Version](https://img.shields.io/github/tag/Microsoft/nni.svg)]()
Microsoft Open Source's avatar
Microsoft Open Source committed
8

QuanluZhang's avatar
QuanluZhang committed
9
10
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).
11

QuanluZhang's avatar
QuanluZhang committed
12
13
14
15
<p align="center">
<img src="./docs/nni_overview.png" alt="drawing" width="800"/>
</p>

16
17
## **Who should consider using NNI**
* You want to try different AutoML algorithms for your training code (model) at local
Scarlett Li's avatar
Scarlett Li committed
18
* You want to run AutoML trial jobs in different environments to speed up search (e.g. remote servers and cloud)
19
20
21
* 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

Scarlett Li's avatar
Scarlett Li committed
22
# Get Started with NNI
23
24

## **Installation**
Scarlett Li's avatar
Scarlett Li committed
25
26
27
28
29
pip Installation Prerequisites
* linux (ubuntu 16.04 or newer version has been well tested)
* python >= 3.5
* git, wget

30
```
fishyds's avatar
fishyds committed
31
python3 -m pip install -v --user git+https://github.com/Microsoft/nni.git@v0.2
32
33
34
source ~/.bashrc
```

Scarlett Li's avatar
Scarlett Li committed
35
36
37
38
39
40
## **Quick start: run your first experiment at local**
It only requires 3 steps to start an experiment on NNI:
![](./docs/3_steps.jpg)


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. 
41

Scarlett Li's avatar
Scarlett Li committed
42
**NOTE**: The following example is an experiment built on TensorFlow, make sure you have **TensorFlow installed** before running the following command.
43

Scarlett Li's avatar
Scarlett Li committed
44
Try it out:
45
```bash
Scarlett Li's avatar
Scarlett Li committed
46
    nnictl create --config ~/nni/examples/trials/mnist/config.yml
47
```
Scarlett Li's avatar
Scarlett Li committed
48

goooxu's avatar
goooxu committed
49
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. 
Scarlett Li's avatar
Scarlett Li committed
50

goooxu's avatar
goooxu committed
51
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)?](docs/WriteYourTrial.md)
Microsoft Open Source's avatar
Microsoft Open Source committed
52

Scarlett Li's avatar
Scarlett Li committed
53
54
## **Please refer to [Get Started Tutorial](docs/GetStarted.md) for more detailed information.**
## More tutorials
Scarlett Li's avatar
Scarlett Li committed
55

gongwuji's avatar
gongwuji committed
56
57
58
59
* [Tutorial of NNI python annotation.](tools/nni_annotation/README.md)
* [Tuners supported by NNI.](src/sdk/pynni/nni/README.md)
* [How to enable early stop (i.e. assessor) in an experiment?](docs/EnableAssessor.md)
* [How to run an experiment on multiple machines?](docs/RemoteMachineMode.md)
fishyds's avatar
fishyds committed
60
* [How to run an experiment on OpenPAI?](docs/PAIMode.md)
gongwuji's avatar
gongwuji committed
61
62
63
64
* [How to write a customized tuner?](docs/CustomizedTuner.md)
* [How to write a customized assessor?](examples/assessors/README.md)
* [How to resume an experiment?](docs/NNICTLDOC.md)
* [Tutorial of the command tool *nnictl*.](docs/NNICTLDOC.md)
xuehui's avatar
xuehui committed
65
* [How to debug in NNI](docs/HowToDebug.md)
Microsoft Open Source's avatar
Microsoft Open Source committed
66

Scarlett Li's avatar
Scarlett Li committed
67
# Contributing
Vipul Gupta's avatar
Vipul Gupta committed
68
This project welcomes contributions and suggestions, please refer to our [contributing](./docs/CONTRIBUTING.md) document for the same.
Scarlett Li's avatar
Scarlett Li committed
69
70

We use [GitHub issues](https://github.com/Microsoft/nni/issues) for tracking requests and bugs.
Microsoft Open Source's avatar
Microsoft Open Source committed
71

Vipul Gupta's avatar
Vipul Gupta committed
72
73
74
# License 
The entire codebase is under [MIT license](https://github.com/Microsoft/nni/blob/master/LICENSE)