"src/vscode:/vscode.git/clone" did not exist on "87ed70cd5fc0e88551899d07a2614def1964a84a"
Unverified Commit 71fc4da2 authored by Yuge Zhang's avatar Yuge Zhang Committed by GitHub
Browse files

Merge pull request #3836 from microsoft/v2.3

Merge v2.3 back to master
parents 4146c715 84507248
...@@ -26,10 +26,11 @@ The tool manages automated machine learning (AutoML) experiments, **dispatches a ...@@ -26,10 +26,11 @@ The tool manages automated machine learning (AutoML) experiments, **dispatches a
* ML Platform owners who want to **support AutoML in their platform**. * ML Platform owners who want to **support AutoML in their platform**.
## **What's NEW!** &nbsp;<a href="#nni-released-reminder"><img width="48" src="docs/img/release_icon.png"></a> ## **What's NEW!** &nbsp;<a href="#nni-released-reminder"><img width="48" src="docs/img/release_icon.png"></a>
* **New release**: [v2.2 is available](https://github.com/microsoft/nni/releases) - _released on April-26-2021_
* **New demo available**: [Youtube entry](https://www.youtube.com/channel/UCKcafm6861B2mnYhPbZHavw) | [Bilibili 入口](https://space.bilibili.com/1649051673) - _last updated on May-26-2021_
* **New use case sharing**: [Cost-effective Hyper-parameter Tuning using AdaptDL with NNI](https://medium.com/casl-project/cost-effective-hyper-parameter-tuning-using-adaptdl-with-nni-e55642888761) - _posted on Feb-23-2021_ * **New release**: [v2.3 is available](https://github.com/microsoft/nni/releases) - _released on June-15-2021_
* **New demo available**: [Youtube entry](https://www.youtube.com/channel/UCKcafm6861B2mnYhPbZHavw) | [Bilibili 入口](https://space.bilibili.com/1649051673) - _last updated on May-26-2021_
* **New webinar**: [Introducing Retiarii: A deep learning exploratory-training framework on NNI](https://note.microsoft.com/MSR-Webinar-Retiarii-Registration-Live.html) - _scheduled on June-24-2021_
* **New community channel**: [Discussions](https://github.com/microsoft/nni/discussions)
## **NNI capabilities in a glance** ## **NNI capabilities in a glance**
...@@ -122,25 +123,19 @@ Within the following table, we summarized the current NNI capabilities, we are g ...@@ -122,25 +123,19 @@ Within the following table, we summarized the current NNI capabilities, we are g
<li><a href="https://nni.readthedocs.io/en/stable/Tuner/BuiltinTuner.html#SMAC">SMAC</a></li> <li><a href="https://nni.readthedocs.io/en/stable/Tuner/BuiltinTuner.html#SMAC">SMAC</a></li>
<li><a href="https://nni.readthedocs.io/en/stable/Tuner/BuiltinTuner.html#MetisTuner">Metis Tuner</a></li> <li><a href="https://nni.readthedocs.io/en/stable/Tuner/BuiltinTuner.html#MetisTuner">Metis Tuner</a></li>
<li><a href="https://nni.readthedocs.io/en/stable/Tuner/BuiltinTuner.html#GPTuner">GP Tuner</a></li> <li><a href="https://nni.readthedocs.io/en/stable/Tuner/BuiltinTuner.html#GPTuner">GP Tuner</a></li>
</ul> <li><a href="https://nni.readthedocs.io/en/stable/Tuner/BuiltinTuner.html#DNGOTuner">DNGO Tuner</a></li>
<b>RL Based</b>
<ul>
<li><a href="https://nni.readthedocs.io/en/stable/Tuner/BuiltinTuner.html#PPOTuner">PPO Tuner</a> </li>
</ul> </ul>
</ul> </ul>
<a href="https://nni.readthedocs.io/en/stable/NAS/Overview.html">Neural Architecture Search</a> <a href="https://nni.readthedocs.io/en/stable/NAS/Overview.html">Neural Architecture Search (Retiarii)</a>
<ul>
<ul> <ul>
<li><a href="https://nni.readthedocs.io/en/stable/NAS/ENAS.html">ENAS</a></li> <li><a href="https://nni.readthedocs.io/en/stable/NAS/ENAS.html">ENAS</a></li>
<li><a href="https://nni.readthedocs.io/en/stable/NAS/DARTS.html">DARTS</a></li> <li><a href="https://nni.readthedocs.io/en/stable/NAS/DARTS.html">DARTS</a></li>
<li><a href="https://nni.readthedocs.io/en/stable/NAS/PDARTS.html">P-DARTS</a></li>
<li><a href="https://nni.readthedocs.io/en/stable/NAS/CDARTS.html">CDARTS</a></li>
<li><a href="https://nni.readthedocs.io/en/stable/NAS/SPOS.html">SPOS</a></li> <li><a href="https://nni.readthedocs.io/en/stable/NAS/SPOS.html">SPOS</a></li>
<li><a href="https://nni.readthedocs.io/en/stable/NAS/Proxylessnas.html">ProxylessNAS</a></li> <li><a href="https://nni.readthedocs.io/en/stable/NAS/Proxylessnas.html">ProxylessNAS</a></li>
<li><a href="https://nni.readthedocs.io/en/stable/Tuner/BuiltinTuner.html#NetworkMorphism">Network Morphism</a></li> <li><a href="https://nni.readthedocs.io/en/stable/NAS/FBNet.html">FBNet</a></li>
<li><a href="https://nni.readthedocs.io/en/stable/NAS/TextNAS.html">TextNAS</a></li> <li><a href="https://nni.readthedocs.io/en/stable/NAS/ExplorationStrategies.html">Reinforcement Learning</a></li>
<li><a href="https://nni.readthedocs.io/en/stable/NAS/Cream.html">Cream</a></li> <li><a href="https://nni.readthedocs.io/en/stable/NAS/ExplorationStrategies.html">Regularized Evolution</a></li>
</ul> <li><a href="https://nni.readthedocs.io/en/stable/NAS/Overview.html">More...</a></li>
</ul> </ul>
<a href="https://nni.readthedocs.io/en/stable/Compression/Overview.html">Model Compression</a> <a href="https://nni.readthedocs.io/en/stable/Compression/Overview.html">Model Compression</a>
<ul> <ul>
...@@ -153,11 +148,13 @@ Within the following table, we summarized the current NNI capabilities, we are g ...@@ -153,11 +148,13 @@ Within the following table, we summarized the current NNI capabilities, we are g
<li><a href="https://nni.readthedocs.io/en/stable/Compression/Pruner.html#simulatedannealing-pruner">SimulatedAnnealing Pruner</a></li> <li><a href="https://nni.readthedocs.io/en/stable/Compression/Pruner.html#simulatedannealing-pruner">SimulatedAnnealing Pruner</a></li>
<li><a href="https://nni.readthedocs.io/en/stable/Compression/Pruner.html#admm-pruner">ADMM Pruner</a></li> <li><a href="https://nni.readthedocs.io/en/stable/Compression/Pruner.html#admm-pruner">ADMM Pruner</a></li>
<li><a href="https://nni.readthedocs.io/en/stable/Compression/Pruner.html#autocompress-pruner">AutoCompress Pruner</a></li> <li><a href="https://nni.readthedocs.io/en/stable/Compression/Pruner.html#autocompress-pruner">AutoCompress Pruner</a></li>
<li><a href="https://nni.readthedocs.io/en/stable/Compression/Overview.html">More...</a></li>
</ul> </ul>
<b>Quantization</b> <b>Quantization</b>
<ul> <ul>
<li><a href="https://nni.readthedocs.io/en/stable/Compression/Quantizer.html#qat-quantizer">QAT Quantizer</a></li> <li><a href="https://nni.readthedocs.io/en/stable/Compression/Quantizer.html#qat-quantizer">QAT Quantizer</a></li>
<li><a href="https://nni.readthedocs.io/en/stable/Compression/Quantizer.html#dorefa-quantizer">DoReFa Quantizer</a></li> <li><a href="https://nni.readthedocs.io/en/stable/Compression/Quantizer.html#dorefa-quantizer">DoReFa Quantizer</a></li>
<li><a href="https://nni.readthedocs.io/en/stable/Compression/Quantizer.html#bnn-quantizer">BNN Quantizer</a></li>
</ul> </ul>
</ul> </ul>
<a href="https://nni.readthedocs.io/en/stable/FeatureEngineering/Overview.html">Feature Engineering (Beta)</a> <a href="https://nni.readthedocs.io/en/stable/FeatureEngineering/Overview.html">Feature Engineering (Beta)</a>
...@@ -207,6 +204,8 @@ Within the following table, we summarized the current NNI capabilities, we are g ...@@ -207,6 +204,8 @@ Within the following table, we summarized the current NNI capabilities, we are g
<li><a href="https://nni.readthedocs.io/en/stable/Tuner/CustomizeTuner.html">CustomizeTuner</a></li> <li><a href="https://nni.readthedocs.io/en/stable/Tuner/CustomizeTuner.html">CustomizeTuner</a></li>
<li><a href="https://nni.readthedocs.io/en/stable/Assessor/CustomizeAssessor.html">CustomizeAssessor</a></li> <li><a href="https://nni.readthedocs.io/en/stable/Assessor/CustomizeAssessor.html">CustomizeAssessor</a></li>
<li><a href="https://nni.readthedocs.io/en/stable/Tutorial/InstallCustomizedAlgos.html">Install Customized Algorithms as Builtin Tuners/Assessors/Advisors</a></li> <li><a href="https://nni.readthedocs.io/en/stable/Tutorial/InstallCustomizedAlgos.html">Install Customized Algorithms as Builtin Tuners/Assessors/Advisors</a></li>
<li><a href="https://nni.readthedocs.io/en/stable/NAS/QuickStart.html#define-your-model-space">Define NAS Model Space</a></li>
<li><a href="https://nni.readthedocs.io/en/stable/NAS/ApiReference.html">NAS/Retiarii APIs</a></li>
</ul> </ul>
</td> </td>
<td style="border-top:#FF0000 solid 0px;"> <td style="border-top:#FF0000 solid 0px;">
...@@ -252,7 +251,7 @@ Note: ...@@ -252,7 +251,7 @@ Note:
* Download the examples via clone the source code. * Download the examples via clone the source code.
```bash ```bash
git clone -b v2.2 https://github.com/Microsoft/nni.git git clone -b v2.3 https://github.com/Microsoft/nni.git
``` ```
* Run the MNIST example. * Run the MNIST example.
...@@ -317,6 +316,7 @@ We appreciate all contributions and thank all the contributors! ...@@ -317,6 +316,7 @@ We appreciate all contributions and thank all the contributors!
## **Feedback** ## **Feedback**
* [File an issue](https://github.com/microsoft/nni/issues/new/choose) on GitHub. * [File an issue](https://github.com/microsoft/nni/issues/new/choose) on GitHub.
* Open or participate in a [discussion](https://github.com/microsoft/nni/discussions).
* Discuss on the NNI [Gitter](https://gitter.im/Microsoft/nni?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) in NNI. * Discuss on the NNI [Gitter](https://gitter.im/Microsoft/nni?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) in NNI.
Join IM discussion groups: Join IM discussion groups:
......
...@@ -25,7 +25,7 @@ Step 1. Download ``bash-completion`` ...@@ -25,7 +25,7 @@ Step 1. Download ``bash-completion``
cd ~ cd ~
wget https://raw.githubusercontent.com/microsoft/nni/{nni-version}/tools/bash-completion wget https://raw.githubusercontent.com/microsoft/nni/{nni-version}/tools/bash-completion
Here, {nni-version} should by replaced by the version of NNI, e.g., ``master``, ``v2.2``. You can also check the latest ``bash-completion`` script :githublink:`here <tools/bash-completion>`. Here, {nni-version} should by replaced by the version of NNI, e.g., ``master``, ``v2.3``. You can also check the latest ``bash-completion`` script :githublink:`here <tools/bash-completion>`.
.. cannot find :githublink:`here <tools/bash-completion>`. .. cannot find :githublink:`here <tools/bash-completion>`.
......
...@@ -32,7 +32,7 @@ To avoid storage and legality issues, we do not provide any prepared databases. ...@@ -32,7 +32,7 @@ To avoid storage and legality issues, we do not provide any prepared databases.
git clone -b ${NNI_VERSION} https://github.com/microsoft/nni git clone -b ${NNI_VERSION} https://github.com/microsoft/nni
cd nni/examples/nas/benchmarks cd nni/examples/nas/benchmarks
Replace ``${NNI_VERSION}`` with a released version name or branch name, e.g., ``v2.2``. Replace ``${NNI_VERSION}`` with a released version name or branch name, e.g., ``v2.3``.
#. #.
Install dependencies via ``pip3 install -r xxx.requirements.txt``. ``xxx`` can be ``nasbench101``\ , ``nasbench201`` or ``nds``. Install dependencies via ``pip3 install -r xxx.requirements.txt``. ``xxx`` can be ``nasbench101``\ , ``nasbench201`` or ``nds``.
......
...@@ -5,6 +5,94 @@ ...@@ -5,6 +5,94 @@
Change Log Change Log
========== ==========
Release 2.3 - 6/15/2021
-----------------------
Major Updates
^^^^^^^^^^^^^
Neural Architecture Search
""""""""""""""""""""""""""
* Retiarii Framework (NNI NAS 2.0) Beta Release with new features:
* Support new high-level APIs: ``Repeat`` and ``Cell`` (#3481)
* Support pure-python execution engine (#3605)
* Support policy-based RL strategy (#3650)
* Support nested ModuleList (#3652)
* Improve documentation (#3785)
**Note**: there are more exciting features of Retiarii planned in the future releases, please refer to `Retiarii Roadmap <https://github.com/microsoft/nni/discussions/3744>`__ for more information.
* Add new NAS algorithm: Blockwise DNAS FBNet (#3532, thanks the external contributor @alibaba-yiwuyao)
Model Compression
"""""""""""""""""
* Support Auto Compression Framework (#3631)
* Support slim pruner in Tensorflow (#3614)
* Support LSQ quantizer (#3503, thanks the external contributor @chenbohua3)
* Improve APIs for iterative pruners (#3507 #3688)
Training service & Rest
"""""""""""""""""""""""
* Support 3rd-party training service (#3662 #3726)
* Support setting prefix URL (#3625 #3674 #3672 #3643)
* Improve NNI manager logging (#3624)
* Remove outdated TensorBoard code on nnictl (#3613)
Hyper-Parameter Optimization
""""""""""""""""""""""""""""
* Add new tuner: DNGO (#3479 #3707)
* Add benchmark for tuners (#3644 #3720 #3689)
WebUI
"""""
* Improve search parameters on trial detail page (#3651 #3723 #3715)
* Make selected trials consistent after auto-refresh in detail table (#3597)
* Add trial stdout button on local mode (#3653 #3690)
Examples & Documentation
""""""""""""""""""""""""
* Convert all trial examples' from config v1 to config v2 (#3721 #3733 #3711 #3600)
* Add new jupyter notebook examples (#3599 #3700)
Dev Excellent
"""""""""""""
* Upgrade dependencies in Dockerfile (#3713 #3722)
* Substitute PyYAML for ``ruamel.yaml`` (#3702)
* Add pipelines for AML and hybrid training service and experiment config V2 (#3477 #3648)
* Add pipeline badge in README (#3589)
* Update issue bug report template (#3501)
Bug Fixes & Minor Updates
^^^^^^^^^^^^^^^^^^^^^^^^^
* Fix syntax error on Windows (#3634)
* Fix a logging related bug (#3705)
* Fix a bug in GPU indices (#3721)
* Fix a bug in FrameworkController (#3730)
* Fix a bug in ``export_data_url format`` (#3665)
* Report version check failure as a warning (#3654)
* Fix bugs and lints in nnictl (#3712)
* Fix bug of ``optimize_mode`` on WebUI (#3731)
* Fix bug of ``useActiveGpu`` in AML v2 config (#3655)
* Fix bug of ``experiment_working_directory`` in Retiarii config (#3607)
* Fix a bug in mask conflict (#3629, thanks the external contributor @Davidxswang)
* Fix a bug in model speedup shape inference (#3588, thanks the external contributor @Davidxswang)
* Fix a bug in multithread on Windows (#3604, thanks the external contributor @Ivanfangsc)
* Delete redundant code in training service (#3526, thanks the external contributor @maxsuren)
* Fix typo in DoReFa compression doc (#3693, thanks the external contributor @Erfandarzi)
* Update docstring in model compression (#3647, thanks the external contributor @ichejun)
* Fix a bug when using Kubernetes container (#3719, thanks the external contributor @rmfan)
Release 2.2 - 4/26/2021 Release 2.2 - 4/26/2021
----------------------- -----------------------
......
...@@ -124,7 +124,7 @@ Run the following commands to start the example experiment: ...@@ -124,7 +124,7 @@ Run the following commands to start the example experiment:
nnictl create --config config_aml.yml nnictl create --config config_aml.yml
Replace ``${NNI_VERSION}`` with a released version name or branch name, e.g., ``v2.2``. Replace ``${NNI_VERSION}`` with a released version name or branch name, e.g., ``v2.3``.
Monitor your code in the cloud by using the studio Monitor your code in the cloud by using the studio
-------------------------------------------------- --------------------------------------------------
......
...@@ -120,7 +120,7 @@ Modify ``nni/examples/trials/ga_squad/config_pai.yml``\ , here is the default co ...@@ -120,7 +120,7 @@ Modify ``nni/examples/trials/ga_squad/config_pai.yml``\ , here is the default co
#Your nni_manager ip #Your nni_manager ip
nniManagerIp: 10.10.10.10 nniManagerIp: 10.10.10.10
tuner: tuner:
codeDir: https://github.com/Microsoft/nni/tree/v2.2/examples/tuners/ga_customer_tuner codeDir: https://github.com/Microsoft/nni/tree/v2.3/examples/tuners/ga_customer_tuner
classFileName: customer_tuner.py classFileName: customer_tuner.py
className: CustomerTuner className: CustomerTuner
classArgs: classArgs:
......
...@@ -497,47 +497,6 @@ As a strategy in a Sequential Model-based Global Optimization (SMBO) algorithm, ...@@ -497,47 +497,6 @@ As a strategy in a Sequential Model-based Global Optimization (SMBO) algorithm,
selection_num_warm_up: 100000 selection_num_warm_up: 100000
selection_num_starting_points: 250 selection_num_starting_points: 250
:raw-html:`<a name="PPOTuner"></a>`
PPO Tuner
^^^^^^^^^
..
Built-in Tuner Name: **PPOTuner**
Note that the only acceptable types within the search space are ``layer_choice`` and ``input_choice``. For ``input_choice``\ , ``n_chosen`` can only be 0, 1, or [0, 1]. Note, the search space file for NAS is usually automatically generated through the command `nnictl ss_gen <../Tutorial/Nnictl.rst>`__.
**Suggested scenario**
PPOTuner is a Reinforcement Learning tuner based on the PPO algorithm. PPOTuner can be used when using the NNI NAS interface to do neural architecture search. In general, the Reinforcement Learning algorithm needs more computing resources, though the PPO algorithm is relatively more efficient than others. It's recommended to use this tuner when you have a large amount of computional resources available. You could try it on a very simple task, such as the :githublink:`mnist-nas <examples/nas/legacy/classic_nas>` example. `See details <./PPOTuner.rst>`__
**classArgs Requirements:**
* **optimize_mode** (*'maximize' or 'minimize'*\ ) - If 'maximize', the tuner will try to maximize metrics. If 'minimize', the tuner will try to minimize metrics.
* **trials_per_update** (*int, optional, default = 20*\ ) - The number of trials to be used for one update. It must be divisible by minibatch_size. ``trials_per_update`` is recommended to be an exact multiple of ``trialConcurrency`` for better concurrency of trials.
* **epochs_per_update** (*int, optional, default = 4*\ ) - The number of epochs for one update.
* **minibatch_size** (*int, optional, default = 4*\ ) - Mini-batch size (i.e., number of trials for a mini-batch) for the update. Note that trials_per_update must be divisible by minibatch_size.
* **ent_coef** (*float, optional, default = 0.0*\ ) - Policy entropy coefficient in the optimization objective.
* **lr** (*float, optional, default = 3e-4*\ ) - Learning rate of the model (lstm network); constant.
* **vf_coef** (*float, optional, default = 0.5*\ ) - Value function loss coefficient in the optimization objective.
* **max_grad_norm** (*float, optional, default = 0.5*\ ) - Gradient norm clipping coefficient.
* **gamma** (*float, optional, default = 0.99*\ ) - Discounting factor.
* **lam** (*float, optional, default = 0.95*\ ) - Advantage estimation discounting factor (lambda in the paper).
* **cliprange** (*float, optional, default = 0.2*\ ) - Cliprange in the PPO algorithm, constant.
**Example Configuration:**
.. code-block:: yaml
# config.yml
tuner:
builtinTunerName: PPOTuner
classArgs:
optimize_mode: maximize
:raw-html:`<a name="PBTTuner"></a>` :raw-html:`<a name="PBTTuner"></a>`
PBT Tuner PBT Tuner
...@@ -573,6 +532,8 @@ Population Based Training (PBT) bridges and extends parallel search methods and ...@@ -573,6 +532,8 @@ Population Based Training (PBT) bridges and extends parallel search methods and
Note that, to use this tuner, your trial code should be modified accordingly, please refer to `the document of PBTTuner <./PBTTuner.rst>`__ for details. Note that, to use this tuner, your trial code should be modified accordingly, please refer to `the document of PBTTuner <./PBTTuner.rst>`__ for details.
:raw-html:`<a name="DNGOTuner"></a>`
DNGO Tuner DNGO Tuner
^^^^^^^^^^ ^^^^^^^^^^
......
...@@ -71,4 +71,4 @@ Our documentation is built with :githublink:`sphinx <docs>`. ...@@ -71,4 +71,4 @@ Our documentation is built with :githublink:`sphinx <docs>`.
* It's an image link which needs to be formatted with embedded html grammar, please use global URL like ``https://user-images.githubusercontent.com/44491713/51381727-e3d0f780-1b4f-11e9-96ab-d26b9198ba65.png``, which can be automatically generated by dragging picture onto `Github Issue <https://github.com/Microsoft/nni/issues/new>`__ Box. * It's an image link which needs to be formatted with embedded html grammar, please use global URL like ``https://user-images.githubusercontent.com/44491713/51381727-e3d0f780-1b4f-11e9-96ab-d26b9198ba65.png``, which can be automatically generated by dragging picture onto `Github Issue <https://github.com/Microsoft/nni/issues/new>`__ Box.
* It cannot be re-formatted by sphinx, such as source code, please use its global URL. For source code that links to our github repo, please use URLs rooted at ``https://github.com/Microsoft/nni/tree/v2.2/`` (:githublink:`mnist.py <examples/trials/mnist-pytorch/mnist.py>` for example). * It cannot be re-formatted by sphinx, such as source code, please use its global URL. For source code that links to our github repo, please use URLs rooted at ``https://github.com/Microsoft/nni/tree/v2.3/`` (:githublink:`mnist.py <examples/trials/mnist-pytorch/mnist.py>` for example).
...@@ -24,7 +24,7 @@ Install NNI through source code ...@@ -24,7 +24,7 @@ Install NNI through source code
.. code-block:: bash .. code-block:: bash
git clone -b v2.2 https://github.com/Microsoft/nni.git git clone -b v2.3 https://github.com/Microsoft/nni.git
cd nni cd nni
python3 -m pip install --upgrade pip setuptools python3 -m pip install --upgrade pip setuptools
python3 setup.py develop python3 setup.py develop
...@@ -37,7 +37,7 @@ If you want to perform a persist install instead, we recommend to build your own ...@@ -37,7 +37,7 @@ If you want to perform a persist install instead, we recommend to build your own
.. code-block:: bash .. code-block:: bash
git clone -b v2.2 https://github.com/Microsoft/nni.git git clone -b v2.3 https://github.com/Microsoft/nni.git
cd nni cd nni
export NNI_RELEASE=2.0 export NNI_RELEASE=2.0
python3 -m pip install --upgrade pip setuptools wheel python3 -m pip install --upgrade pip setuptools wheel
...@@ -59,7 +59,7 @@ Verify installation ...@@ -59,7 +59,7 @@ Verify installation
.. code-block:: bash .. code-block:: bash
git clone -b v2.2 https://github.com/Microsoft/nni.git git clone -b v2.3 https://github.com/Microsoft/nni.git
* *
Run the MNIST example. Run the MNIST example.
......
...@@ -40,7 +40,7 @@ If you want to contribute to NNI, refer to `setup development environment <Setup ...@@ -40,7 +40,7 @@ If you want to contribute to NNI, refer to `setup development environment <Setup
.. code-block:: bat .. code-block:: bat
git clone -b v2.2 https://github.com/Microsoft/nni.git git clone -b v2.3 https://github.com/Microsoft/nni.git
cd nni cd nni
python setup.py develop python setup.py develop
...@@ -52,7 +52,7 @@ Verify installation ...@@ -52,7 +52,7 @@ Verify installation
.. code-block:: bat .. code-block:: bat
git clone -b v2.2 https://github.com/Microsoft/nni.git git clone -b v2.3 https://github.com/Microsoft/nni.git
* *
Run the MNIST example. Run the MNIST example.
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
{% block document %} {% block document %}
<div> <div>
<div class="chinese"><a href="https://nni.readthedocs.io/zh/latest/">简体中文</a></div> <div class="chinese"><a href="https://nni.readthedocs.io/zh/stable/">简体中文</a></div>
<b>NNI (Neural Network Intelligence)</b> is a lightweight but powerful toolkit to <b>NNI (Neural Network Intelligence)</b> is a lightweight but powerful toolkit to
help users <b>automate</b> help users <b>automate</b>
<a href="{{ pathto('FeatureEngineering/Overview') }}">Feature Engineering</a>, <a href="{{ pathto('FeatureEngineering/Overview') }}">Feature Engineering</a>,
...@@ -23,10 +23,10 @@ ...@@ -23,10 +23,10 @@
<a href="{{ pathto('TrainingService/RemoteMachineMode') }}">Remote Servers</a>, <a href="{{ pathto('TrainingService/RemoteMachineMode') }}">Remote Servers</a>,
<a href="{{ pathto('TrainingService/PaiMode') }}">OpenPAI</a>, <a href="{{ pathto('TrainingService/PaiMode') }}">OpenPAI</a>,
<a href="{{ pathto('TrainingService/KubeflowMode') }}">Kubeflow</a>, <a href="{{ pathto('TrainingService/KubeflowMode') }}">Kubeflow</a>,
<a href="{{ pathto('TrainingService/FrameworkControllerMode') }}">FrameworkController on K8S (AKS etc.)</a> <a href="{{ pathto('TrainingService/FrameworkControllerMode') }}">FrameworkController on K8S (AKS etc.)</a>,
<a href="{{ pathto('TrainingService/DLTSMode') }}">DLWorkspace (aka. DLTS)</a> <a href="{{ pathto('TrainingService/DLTSMode') }}">DLWorkspace (aka. DLTS)</a>,
<a href="{{ pathto('TrainingService/AMLMode') }}">AML (Azure Machine Learning)</a> <a href="{{ pathto('TrainingService/AMLMode') }}">AML (Azure Machine Learning)</a>,
and other cloud options. <a href="{{ pathto('TrainingService/AdaptDLMode') }}">AdaptDL (aka. ADL)</a>, other cloud options and even <a href="{{ pathto('TrainingService/HybridMode') }}">Hybrid mode</a>.
</p> </p>
<!-- Who should consider using NNI --> <!-- Who should consider using NNI -->
<div> <div>
...@@ -109,13 +109,14 @@ ...@@ -109,13 +109,14 @@
<ul class="circle"> <ul class="circle">
<li><a href="https://github.com/microsoft/nni/tree/master/examples/trials/mnist-pytorch">MNIST-pytorch</li> <li><a href="https://github.com/microsoft/nni/tree/master/examples/trials/mnist-pytorch">MNIST-pytorch</li>
</a> </a>
<li><a href="https://github.com/microsoft/nni/tree/master/examples/trials/mnist-tfv1">MNIST-tensorflow</li> <li><a href="https://github.com/microsoft/nni/tree/master/examples/trials/mnist-tfv2">MNIST-tensorflow</li>
</a> </a>
<li><a href="https://github.com/microsoft/nni/tree/master/examples/trials/mnist-keras">MNIST-keras</li></a> <li><a href="https://github.com/microsoft/nni/tree/master/examples/trials/mnist-keras">MNIST-keras</li></a>
<li><a href="{{ pathto('TrialExample/GbdtExample') }}">Auto-gbdt</a></li> <li><a href="{{ pathto('TrialExample/GbdtExample') }}">Auto-gbdt</a></li>
<li><a href="{{ pathto('TrialExample/Cifar10Examples') }}">Cifar10-pytorch</li></a> <li><a href="{{ pathto('TrialExample/Cifar10Examples') }}">Cifar10-pytorch</li></a>
<li><a href="{{ pathto('TrialExample/SklearnExamples') }}">Scikit-learn</a></li> <li><a href="{{ pathto('TrialExample/SklearnExamples') }}">Scikit-learn</a></li>
<li><a href="{{ pathto('TrialExample/EfficientNet') }}">EfficientNet</a></li> <li><a href="{{ pathto('TrialExample/EfficientNet') }}">EfficientNet</a></li>
<li><a href="{{ pathto('TrialExample/OpEvoExamples') }}">Kernel Tunning</li></a>
<a href="{{ pathto('SupportedFramework_Library') }}">More...</a><br /> <a href="{{ pathto('SupportedFramework_Library') }}">More...</a><br />
</ul> </ul>
</ul> </ul>
...@@ -125,54 +126,58 @@ ...@@ -125,54 +126,58 @@
<ul class="firstUl"> <ul class="firstUl">
<div><b>Exhaustive search</b></div> <div><b>Exhaustive search</b></div>
<ul class="circle"> <ul class="circle">
<li><a href="{{ pathto('Tuner/BuiltinTuner') }}">Random Search</a></li> <li><a href="{{ pathto('Tuner/BuiltinTuner') }}#Random">Random Search</a></li>
<li><a href="{{ pathto('Tuner/BuiltinTuner') }}">Grid Search</a></li> <li><a href="{{ pathto('Tuner/BuiltinTuner') }}#GridSearch">Grid Search</a></li>
<li><a href="{{ pathto('Tuner/BuiltinTuner') }}">Batch</a></li> <li><a href="{{ pathto('Tuner/BuiltinTuner') }}#Batch">Batch</a></li>
</ul> </ul>
<div><b>Heuristic search</b></div> <div><b>Heuristic search</b></div>
<ul class="circle"> <ul class="circle">
<li><a href="{{ pathto('Tuner/BuiltinTuner') }}">Naïve Evolution</a></li> <li><a href="{{ pathto('Tuner/BuiltinTuner') }}#Evolution">Naïve Evolution</a></li>
<li><a href="{{ pathto('Tuner/BuiltinTuner') }}">Anneal</a></li> <li><a href="{{ pathto('Tuner/BuiltinTuner') }}#Anneal">Anneal</a></li>
<li><a href="{{ pathto('Tuner/BuiltinTuner') }}">Hyperband</a></li> <li><a href="{{ pathto('Tuner/BuiltinTuner') }}#Hyperband">Hyperband</a></li>
<li><a href="{{ pathto('Tuner/BuiltinTuner') }}#PBTTuner">PBT</a></li>
</ul> </ul>
<div><b>Bayesian optimization</b></div> <div><b>Bayesian optimization</b></div>
<ul class="circle"> <ul class="circle">
<li><a href="{{ pathto('Tuner/BuiltinTuner') }}">BOHB</a></li> <li><a href="{{ pathto('Tuner/BuiltinTuner') }}#BOHB">BOHB</a></li>
<li><a href="{{ pathto('Tuner/BuiltinTuner') }}">TPE</a></li> <li><a href="{{ pathto('Tuner/BuiltinTuner') }}#TPE">TPE</a></li>
<li><a href="{{ pathto('Tuner/BuiltinTuner') }}">SMAC</a></li> <li><a href="{{ pathto('Tuner/BuiltinTuner') }}#SMAC">SMAC</a></li>
<li><a href="{{ pathto('Tuner/BuiltinTuner') }}">Metis Tuner</a></li> <li><a href="{{ pathto('Tuner/BuiltinTuner') }}#MetisTuner">Metis Tuner</a></li>
<li><a href="{{ pathto('Tuner/BuiltinTuner') }}">GP Tuner</a> </li> <li><a href="{{ pathto('Tuner/BuiltinTuner') }}#GPTuner">GP Tuner</a> </li>
</ul> <li><a href="{{ pathto('Tuner/BuiltinTuner') }}#DNGOTuner">DNGO Tuner</a></li>
<div><b>RL Based</b></div>
<ul class="circle">
<li><a href="{{ pathto('Tuner/BuiltinTuner') }}">PPO Tuner</a> </li>
</ul> </ul>
</ul> </ul>
<a href="{{ pathto('NAS/Overview') }}">Neural Architecture Search</a> <a href="{{ pathto('NAS/Overview') }}">Neural Architecture Search (Retiarii)</a>
<ul class="firstUl"> <ul class="firstUl">
<ul class="circle"> <ul class="circle">
<li><a href="{{ pathto('NAS/ENAS') }}">ENAS</a></li> <li><a href="{{ pathto('NAS/ENAS') }}">ENAS</a></li>
<li><a href="{{ pathto('NAS/DARTS') }}">DARTS</a></li> <li><a href="{{ pathto('NAS/DARTS') }}">DARTS</a></li>
<li><a href="{{ pathto('NAS/PDARTS') }}">P-DARTS</a></li>
<li><a href="{{ pathto('NAS/CDARTS') }}">CDARTS</a></li>
<li><a href="{{ pathto('NAS/SPOS') }}">SPOS</a></li> <li><a href="{{ pathto('NAS/SPOS') }}">SPOS</a></li>
<li><a href="{{ pathto('NAS/Proxylessnas') }}">ProxylessNAS</a></li> <li><a href="{{ pathto('NAS/Proxylessnas') }}">ProxylessNAS</a></li>
<li><a href="{{ pathto('Tuner/NetworkmorphismTuner') }}">Network Morphism</a> </li> <li><a href="{{ pathto('NAS/FBNet') }}">FBNet</a></li>
<li><a href="{{ pathto('NAS/TextNAS') }}">TextNAS</a> </li> <li><a href="{{ pathto('NAS/ExplorationStrategies') }}">Reinforcement Learning</a></li>
<li><a href="{{ pathto('NAS/ExplorationStrategies') }}">Regularized Evolution</a></li>
<li><a href="{{ pathto('NAS/Overview') }}">More...</a></li>
</ul> </ul>
</ul> </ul>
<a href="{{ pathto('Compression/Overview') }}">Model Compression</a> <a href="{{ pathto('Compression/Overview') }}">Model Compression</a>
<ul class="firstUl"> <ul class="firstUl">
<div><b>Pruning</b></div> <div><b>Pruning</b></div>
<ul class="circle"> <ul class="circle">
<li><a href="{{ pathto('Compression/Pruner') }}">AGP Pruner</a></li> <li><a href="{{ pathto('Compression/Pruner') }}#agp-pruner">AGP Pruner</a></li>
<li><a href="{{ pathto('Compression/Pruner') }}">Slim Pruner</a></li> <li><a href="{{ pathto('Compression/Pruner') }}#slim-pruner">Slim Pruner</a></li>
<li><a href="{{ pathto('Compression/Pruner') }}">FPGM Pruner</a></li> <li><a href="{{ pathto('Compression/Pruner') }}#fpgm-pruner">FPGM Pruner</a></li>
<li><a href="{{ pathto('Compression/Pruner') }}#netadapt-pruner">NetAdapt Pruner</a></li>
<li><a href="{{ pathto('Compression/Pruner') }}#simulatedannealing-pruner">SimulatedAnnealing Pruner</a></li>
<li><a href="{{ pathto('Compression/Pruner') }}#admm-pruner">ADMM Pruner</a></li>
<li><a href="{{ pathto('Compression/Pruner') }}#autocompress-pruner">AutoCompress Pruner</a></li>
<li><a href="{{ pathto('Compression/Overview') }}">More...</a></li>
</ul> </ul>
<div><b>Quantization</b></div> <div><b>Quantization</b></div>
<ul class="circle"> <ul class="circle">
<li><a href="{{ pathto('Compression/Quantizer') }}">QAT Quantizer</a></li> <li><a href="{{ pathto('Compression/Quantizer') }}#qat-quantize">QAT Quantizer</a></li>
<li><a href="{{ pathto('Compression/Quantizer') }}">DoReFa Quantizer</a></li> <li><a href="{{ pathto('Compression/Quantizer') }}#dorefa-quantizer">DoReFa Quantizer</a></li>
<li><a href="{{ pathto('Compression/Quantizer') }}#bnn-quantizer">BNN Quantizer</a></li>
</ul> </ul>
</ul> </ul>
<a href="{{ pathto('FeatureEngineering/Overview') }}">Feature Engineering (Beta)</a> <a href="{{ pathto('FeatureEngineering/Overview') }}">Feature Engineering (Beta)</a>
...@@ -182,23 +187,23 @@ ...@@ -182,23 +187,23 @@
</ul> </ul>
<a href="{{ pathto('Assessor/BuiltinAssessor') }}">Early Stop Algorithms</a> <a href="{{ pathto('Assessor/BuiltinAssessor') }}">Early Stop Algorithms</a>
<ul class="circle"> <ul class="circle">
<li><a href="{{ pathto('Assessor/BuiltinAssessor') }}">Median Stop</a></li> <li><a href="{{ pathto('Assessor/BuiltinAssessor') }}#MedianStop">Median Stop</a></li>
<li><a href="{{ pathto('Assessor/BuiltinAssessor') }}">Curve Fitting</a></li> <li><a href="{{ pathto('Assessor/BuiltinAssessor') }}#Curvefitting">Curve Fitting</a></li>
</ul> </ul>
</td> </td>
<td> <td>
<ul class="firstUl"> <ul class="firstUl">
<li><a href="{{ pathto('TrainingService/LocalMode') }}">Local Machine</a></li> <li><a href="{{ pathto('TrainingService/LocalMode') }}">Local Machine</a></li>
<li><a href="{{ pathto('TrainingService/RemoteMachineMode') }}">Remote Servers</a></li> <li><a href="{{ pathto('TrainingService/RemoteMachineMode') }}">Remote Servers</a></li>
<li><a href="{{ pathto('TrainingService/HybridMode') }}">Hybrid mode</a></li>
<li><a href="{{ pathto('TrainingService/AMLMode') }}">AML(Azure Machine Learning)</a></li>
<li><b>Kubernetes based services</b></li> <li><b>Kubernetes based services</b></li>
<ul class="circle"> <ul>
<li><a href="{{ pathto('TrainingService/PaiMode') }}">OpenPAI</a></li> <li><a href="{{ pathto('TrainingService/PaiMode') }}">OpenPAI</a></li>
<li><a href="{{ pathto('TrainingService/KubeflowMode') }}">Kubeflow</a></li> <li><a href="{{ pathto('TrainingService/KubeflowMode') }}">Kubeflow</a></li>
<li><a href="{{ pathto('TrainingService/FrameworkControllerMode') }}">FrameworkController on K8S <li><a href="{{ pathto('TrainingService/FrameworkControllerMode') }}">FrameworkController on K8S (AKS etc.)</a></li>
(AKSetc.)</a>
</li>
<li><a href="{{ pathto('TrainingService/DLTSMode') }}">DLWorkspace (aka. DLTS)</a></li> <li><a href="{{ pathto('TrainingService/DLTSMode') }}">DLWorkspace (aka. DLTS)</a></li>
<li><a href="{{ pathto('TrainingService/AMLMode') }}">AML (Azure Machine Learning)</a></li> <li><a href="{{ pathto('TrainingService/AdaptDLMode') }}">AdaptDL (aka. ADL)</a></li>
</ul> </ul>
</ul> </ul>
</td> </td>
...@@ -207,9 +212,9 @@ ...@@ -207,9 +212,9 @@
<td class="verticalMiddle"><b>References</b></td> <td class="verticalMiddle"><b>References</b></td>
<td> <td>
<ul class="firstUl"> <ul class="firstUl">
<li><a href="https://nni.readthedocs.io/en/latest/autotune_ref.html#trial">Python API</a></li> <li><a href="{{ pathto('Tutorial/HowToLaunchFromPython') }}">Python API</a></li>
<li><a href="{{ pathto('Tutorial/AnnotationSpec') }}">NNI Annotation</a></li> <li><a href="{{ pathto('Tutorial/AnnotationSpec') }}">NNI Annotation</a></li>
<li><a href="https://nni.readthedocs.io/en/latest/installation.html">Supported OS</a></li> <li><a href="{{ pathto('installation') }}">Supported OS</a></li>
</ul> </ul>
</td> </td>
<td> <td>
...@@ -217,6 +222,8 @@ ...@@ -217,6 +222,8 @@
<li><a href="{{ pathto('Tuner/CustomizeTuner') }}">CustomizeTuner</a></li> <li><a href="{{ pathto('Tuner/CustomizeTuner') }}">CustomizeTuner</a></li>
<li><a href="{{ pathto('Assessor/CustomizeAssessor') }}">CustomizeAssessor</a></li> <li><a href="{{ pathto('Assessor/CustomizeAssessor') }}">CustomizeAssessor</a></li>
<li><a href="{{ pathto('Tutorial/InstallCustomizedAlgos') }}">Install Customized Algorithms as Builtin Tuners/Assessors/Advisors</a></li> <li><a href="{{ pathto('Tutorial/InstallCustomizedAlgos') }}">Install Customized Algorithms as Builtin Tuners/Assessors/Advisors</a></li>
<li><a href="{{ pathto('NAS/QuickStart') }}">Define NAS Model Space</a></li>
<li><a href="{{ pathto('NAS/ApiReference') }}">NAS/Retiarii APIs</a></li>
</ul> </ul>
</td> </td>
<td> <td>
...@@ -274,9 +281,9 @@ ...@@ -274,9 +281,9 @@
<li> <li>
<p>Run the MNIST example.</p> <p>Run the MNIST example.</p>
<div class="command-intro">Linux or macOS</div> <div class="command-intro">Linux or macOS</div>
<div class="command">nnictl create --config nni/examples/trials/mnist-tfv1/config.yml</div> <div class="command">nnictl create --config nni/examples/trials/mnist-pytorch/config.yml</div>
<div class="command-intro">Windows</div> <div class="command-intro">Windows</div>
<div class="command">nnictl create --config nni\examples\trials\mnist-tfv1\config_windows.yml</div> <div class="command">nnictl create --config nni\examples\trials\mnist-pytorch\config_windows.yml</div>
</li> </li>
<li> <li>
<p> <p>
......
...@@ -27,7 +27,7 @@ author = 'Microsoft' ...@@ -27,7 +27,7 @@ author = 'Microsoft'
# The short X.Y version # The short X.Y version
version = '' version = ''
# The full version, including alpha/beta/rc tags # The full version, including alpha/beta/rc tags
release = 'v2.2' release = 'v2.3'
# -- General configuration --------------------------------------------------- # -- General configuration ---------------------------------------------------
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment