Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
OpenDAS
nni
Commits
41d19a53
"src/vscode:/vscode.git/clone" did not exist on "2cccf1f5ddfdd16bb477002f5754364f3e14fb1e"
Unverified
Commit
41d19a53
authored
Feb 15, 2019
by
Chi Song
Committed by
GitHub
Feb 15, 2019
Browse files
Chinese Translation (#732)
parent
8896afa3
Changes
12
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
109 additions
and
45 deletions
+109
-45
zh_CN/README.Makefile.md
zh_CN/README.Makefile.md
+20
-20
zh_CN/README.md
zh_CN/README.md
+5
-5
zh_CN/docs/Builtin_Assessors.md
zh_CN/docs/Builtin_Assessors.md
+7
-5
zh_CN/docs/Builtin_Tuner.md
zh_CN/docs/Builtin_Tuner.md
+16
-14
zh_CN/docs/img/bar.png
zh_CN/docs/img/bar.png
+0
-0
zh_CN/src/sdk/pynni/nni/batch_tuner/README.md
zh_CN/src/sdk/pynni/nni/batch_tuner/README.md
+7
-0
zh_CN/src/sdk/pynni/nni/evolution_tuner/README.md
zh_CN/src/sdk/pynni/nni/evolution_tuner/README.md
+5
-0
zh_CN/src/sdk/pynni/nni/gridsearch_tuner/README.md
zh_CN/src/sdk/pynni/nni/gridsearch_tuner/README.md
+5
-0
zh_CN/src/sdk/pynni/nni/hyperopt_tuner/README.md
zh_CN/src/sdk/pynni/nni/hyperopt_tuner/README.md
+13
-0
zh_CN/src/sdk/pynni/nni/medianstop_assessor/README.md
zh_CN/src/sdk/pynni/nni/medianstop_assessor/README.md
+5
-0
zh_CN/src/sdk/pynni/nni/metis_tuner/README.md
zh_CN/src/sdk/pynni/nni/metis_tuner/README.md
+19
-0
zh_CN/src/sdk/pynni/nni/smac_tuner/README.md
zh_CN/src/sdk/pynni/nni/smac_tuner/README.md
+7
-1
No files found.
zh_CN/README.Makefile.md
View file @
41d19a53
# Makefile 文件和安装配置
# Makefile 文件和安装配置
NNI 使用 GNU 来生成和安装。
NNI 使用 GNU
Make
来生成和安装。
`Makefile`
提供标准的目标
`生成`
、
`安装`
和
`卸载`
, 以及不同设置的安装对象:
`Makefile`
提供标准的目标
`生成`
、
`安装`
和
`卸载`
, 以及不同设置的安装对象:
*
`easy-install`
: 针对非专家用户,自动
处理
所有内容;
*
`easy-install`
: 针对非专家用户,自动
安装
所有内容;
*
`dev-easy-install`
: 针对专家用户,自动
处理
所有内容;
*
`dev-easy-install`
: 针对专家用户,自动
安装
所有内容;
*
`install`
: 针对 NNI 普通用户,通过复制文件来安装 NNI;
*
`install`
: 针对 NNI 普通用户,通过复制文件来安装 NNI;
*
`dev-install`
: 针对 NNI
贡献者
,通过创建
symlinks
而不是复制文件来安装 NNI;
*
`dev-install`
: 针对 NNI
开发人员
,通过创建
符号链接
而不是复制文件来安装 NNI;
*
`pip-install`
: 针对使用
`setup.py`
安装的情况;
*
`pip-install`
: 针对使用
`setup.py`
安装的情况;
下文会有更详细的介绍。
下文会有更详细的介绍。
## 依赖项
## 依赖项
NNI 依赖于 Node.js, Yarn, 和
pip
来生成,推荐安装 TypeScript。
NNI 依赖于 Node.js, Yarn, 和
PIP
来生成,推荐安装 TypeScript。
NNI 需要 Node.js 以及
运行所需要的所有库。 需要的
Node.js 库 (包括 TypeScript) 可以通过 Yarn 来安装,
需要的
Python 库可以通过 setuptools 或者 PIP 来安装。
运行
NNI 需要 Node.js 以及
依赖库。
Node.js
依赖
库 (包括 TypeScript) 可以通过 Yarn 来安装, Python
依赖
库可以通过 setuptools 或者 PIP 来安装。
NNI
*用户*
可以用
`make install-dependencies`
来安装 Node.js 和 Yarn。 Node.js 会被安装到 NNI 的安装目录,Yarn 会被安装到
`/tmp/nni-yarn`
。 安装过程需要 wget。
NNI
*
普通
用户*
可以用
`make install-dependencies`
来安装 Node.js 和 Yarn。 Node.js 会被安装到 NNI 的安装目录,Yarn 会被安装到
`/tmp/nni-yarn`
。 安装过程需要 wget。
NNI
*开发人员*
推荐手工安装 Node.js 和 Yarn。 可浏览相应的官方文档了解安装过程。
NNI
*开发人员*
推荐手工安装 Node.js 和 Yarn。 可浏览相应的官方文档了解安装过程。
...
@@ -32,15 +32,15 @@ NNI *开发人员*推荐手工安装 Node.js 和 Yarn。 可浏览相应的官
...
@@ -32,15 +32,15 @@ NNI *开发人员*推荐手工安装 Node.js 和 Yarn。 可浏览相应的官
NNI 项目主要由两个 Node.js 模块 (
`nni_manager`
,
`webui`
) 以及两个 Python 包 (
`nni`
,
`nnictl`
) 所组成。
NNI 项目主要由两个 Node.js 模块 (
`nni_manager`
,
`webui`
) 以及两个 Python 包 (
`nni`
,
`nnictl`
) 所组成。
默认情况下,Node.js 模块
可以
为所有用户安装在
`/usr/share/nni`
目录下,也可
为只安装在
当前用户
的
`~/.local/nni`
目录下。
默认情况下,Node.js 模块为所有用户安装在
`/usr/share/nni`
目录下,也可
以只为
当前用户
安装在
`~/.local/nni`
目录下。
Python 包使用 setuptools 安装,所以安装路径依赖于 Python 配置。 如果
为没有权限的用户
安装,并且没有虚拟环境的时候,要加上
`--user`
参数。
Python 包使用 setuptools 安装,所以安装路径依赖于 Python 配置。 如果
以非管理员身份
安装
,并且没有虚拟环境的时候,要加上
`--user`
参数。
此外,
`nnictl`
是一个 bash
脚本,会被安装在
`/usr/share/bash-completion/completions`
或
`~/.bash_completion.d`
目录下。
此外,
`nnictl`
提供一个自动完成
脚本,会被安装在
`/usr/share/bash-completion/completions`
或
`~/.bash_completion.d`
目录下。
在某些配置情况下,NNI 也会将 Node.js 安装到
`/usr/share/nni`
目录下。
在某些配置情况下,NNI 也会将 Node.js 安装到
`/usr/share/nni`
目录下。
以上所有目录都可
以
配置。 可参考下一章节。
以上所有目录都
是
可配置
的
。 可参考下一章节。
### 配置
### 配置
...
@@ -59,19 +59,19 @@ Python 包使用 setuptools 安装,所以安装路径依赖于 Python 配置
...
@@ -59,19 +59,19 @@ Python 包使用 setuptools 安装,所以安装路径依赖于 Python 配置
|
`NODE`
| Node.js 命令 | 参考源代码 | 参考源代码 |
|
`NODE`
| Node.js 命令 | 参考源代码 | 参考源代码 |
|
`YARN`
| Yarn 命令 | 参考源代码 | 参考源代码 |
|
`YARN`
| Yarn 命令 | 参考源代码 | 参考源代码 |
注意,这些变量不仅会影响安装路径,也会影响生成的
`nnictl`
和
`nnimanager`
脚本。 如果复制文件的路径和运行时的不一样(例如,创建发行版本包时),需要手工编辑
`nnictl`
和
`nnimanager`
。
注意,这些变量不仅会影响安装路径,也会影响生成的
`nnictl`
脚本。 如果复制文件的路径和运行时的不一样(例如,创建发行版本包时),需要手工编辑
`nnictl`
和
`nnimanager`
。
### 目标
### 目标
安装目标的流程如下:
安装目标的流程如下:
| 目标 | 流程
|
| 目标 | 流程 |
| ------------------ | ------------------------------------------
------
|
| ------------------ | ------------------------------------------ |
|
`easy-install`
| 安装依赖项,生成,安装 NNI,并编辑
`~/.bashrc`
|
|
`easy-install`
| 安装依赖项,生成,安装 NNI,并编辑
`~/.bashrc`
|
|
`dev-easy-install`
| 安装依赖项,生成,将 NNI 作为
symlinks
来安装,并编辑
`~/.bashrc`
|
|
`dev-easy-install`
| 安装依赖项,生成,将 NNI 作为
符号链接
来安装,并编辑
`~/.bashrc`
|
|
`install`
| 安装 Python 包,Node.js 模块,NNI 脚本和样例
|
|
`install`
| 安装 Python 包,Node.js 模块,NNI 脚本和样例 |
|
`dev-install`
| 将 Python 和 Node.js 模块作为
symlinks
安装,然后安装 scripts |
|
`dev-install`
| 将 Python 和 Node.js 模块作为
符号链接
安装,然后安装 scripts |
|
`pip-install`
| 安装依赖项,生成,安装 NNI,但不安装 Python 包
|
|
`pip-install`
| 安装依赖项,生成,安装 NNI,但不安装 Python 包 |
## TODO
## TODO
...
@@ -79,4 +79,4 @@ Python 包使用 setuptools 安装,所以安装路径依赖于 Python 配置
...
@@ -79,4 +79,4 @@ Python 包使用 setuptools 安装,所以安装路径依赖于 Python 配置
*
`test`
目标
*
`test`
目标
*
`lint`
目标
*
`lint`
目标
*
每个目标的测试用例
*
每个目标的测试用例
*
评审变量
*
评审变量
\ No newline at end of file
zh_CN/README.md
View file @
41d19a53
<p
align=
"center"
>
<p
align=
"center"
>
<img
src=
"https://
microsoft.github.io/nni
/docs/img/nni_logo.png"
width=
"300"
/>
<img
src=
"https://
github.com/Microsoft/nni/blob/master
/docs/img/nni_logo.png"
width=
"300"
/>
</p>
</p>
* * *
* * *
...
@@ -13,7 +13,7 @@ NNI (Neural Network Intelligence) 是自动机器学习(AutoML)的工具包
...
@@ -13,7 +13,7 @@ NNI (Neural Network Intelligence) 是自动机器学习(AutoML)的工具包
### **NNI [v0.5.1](https://github.com/Microsoft/nni/releases) 已发布!**
### **NNI [v0.5.1](https://github.com/Microsoft/nni/releases) 已发布!**
<p
align=
"center"
>
<p
align=
"center"
>
<a
href=
"#nni-v05-has-been-released"
><img
src=
"https://
microsoft.github.io/nni
/docs/img/overview.svg"
/></a>
<a
href=
"#nni-v05-has-been-released"
><img
src=
"https://
github.com/Microsoft/nni/blob/master
/docs/img/overview.svg"
/></a>
</p>
</p>
<table>
<table>
...
@@ -21,15 +21,15 @@ NNI (Neural Network Intelligence) 是自动机器学习(AutoML)的工具包
...
@@ -21,15 +21,15 @@ NNI (Neural Network Intelligence) 是自动机器学习(AutoML)的工具包
<tr
align=
"center"
valign=
"bottom"
>
<tr
align=
"center"
valign=
"bottom"
>
<td>
<td>
<b>
支持的框架
</b>
<b>
支持的框架
</b>
<img
src=
"https://
user-images.githubusercontent.com/44491713/51381727-e3d0f780-1b4f-11e9-96ab-d26b9198ba65
.png"
/>
<img
src=
"https://
github.com/Microsoft/nni/blob/master/docs/img/bar
.png"
/>
</td>
</td>
<td>
<td>
<b>
调优算法
</b>
<b>
调优算法
</b>
<img
src=
"https://
user-images.githubusercontent.com/44491713/51381727-e3d0f780-1b4f-11e9-96ab-d26b9198ba65
.png"
/>
<img
src=
"https://
github.com/Microsoft/nni/blob/master/docs/img/bar
.png"
/>
</td>
</td>
<td>
<td>
<b>
训练服务
</b>
<b>
训练服务
</b>
<img
src=
"https://
user-images.githubusercontent.com/44491713/51381727-e3d0f780-1b4f-11e9-96ab-d26b9198ba65
.png"
/>
<img
src=
"https://
github.com/Microsoft/nni/blob/master/docs/img/bar
.png"
/>
</td>
</td>
</tr>
</tr>
<tr/>
<tr/>
...
...
zh_CN/docs/Builtin_Assessors.md
View file @
41d19a53
...
@@ -2,10 +2,12 @@
...
@@ -2,10 +2,12 @@
NNI 提供了先进的调优算法,使用上也很简单。 下面是内置 Assessor 的介绍:
NNI 提供了先进的调优算法,使用上也很简单。 下面是内置 Assessor 的介绍:
| Assessor | 算法简介 |
注意:点击
**Assessor 的名称**
可跳转到算法的详细描述,点击
**用法**
可看到 Assessor 的安装要求、建议场景和使用样例等等。
| ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
**Medianstop**
[
(用法)
](
#MedianStop
)
| Medianstop 是一种简单的提前终止策略,可参考
[
论文
](
https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/46180.pdf
)
。 如果 Trial X 的在步骤 S 的最好目标值比所有已完成 Trial 的步骤 S 的中位数值明显要低,就会停止运行 Trial X。 |
| Assessor | 算法简介 |
|
[
Curvefitting
](
../src/sdk/pynni/nni/curvefitting_assessor/README.md
)
[
(用法)
]
(#Curvefitting) | Curve Fitting Assessor 是一个 LPA (learning, predicting, assessing,即学习、预测、评估) 的算法。 如果预测的 Trial X 在 step S 比性能最好的 Trial要差,就会提前终止它。 此算法中采用了 12 种曲线来拟合精度。 |
| ------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
[
Medianstop
](
https://github.com/Microsoft/nni/blob/master/zh_CN/src/sdk/pynni/nni/medianstop_assessor/README.md
)
[
(用法)
]
(#MedianStop) | Medianstop 是一个简单的提前终止算法。 如果 Trial X 的在步骤 S 的最好目标值比所有已完成 Trial 的步骤 S 的中位数值明显要低,就会停止运行 Trial X。
[
参考论文
](
https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/46180.pdf
)
|
|
[
Curvefitting
](
https://github.com/Microsoft/nni/blob/master/zh_CN/src/sdk/pynni/nni/curvefitting_assessor/README.md
)
[
(用法)
]
(#Curvefitting) | Curve Fitting Assessor 是一个 LPA (learning, predicting, assessing,即学习、预测、评估) 的算法。 如果预测的 Trial X 在 step S 比性能最好的 Trial要差,就会提前终止它。 此算法中采用了 12 种曲线来拟合精度曲线。
[
参考论文
](
http://aad.informatik.uni-freiburg.de/papers/15-IJCAI-Extrapolation_of_Learning_Curves.pdf
)
|
## 用法
## 用法
...
@@ -49,7 +51,7 @@ assessor:
...
@@ -49,7 +51,7 @@ assessor:
**建议场景**
**建议场景**
适用于各种性能曲线,可用到各种场景中来加速优化过程。 更好的是,它能
够
处理并评估性能类似的曲线。
适用于各种性能曲线,可用到各种场景中来加速优化过程。 更好的
地方
是,它能处理并评估性能类似的曲线。
**参数**
**参数**
...
...
zh_CN/docs/Builtin_Tuner.md
View file @
41d19a53
...
@@ -2,18 +2,20 @@
...
@@ -2,18 +2,20 @@
NNI 提供了先进的调优算法,使用上也很简单。 下面是内置 Tuner 的简单介绍:
NNI 提供了先进的调优算法,使用上也很简单。 下面是内置 Tuner 的简单介绍:
| Tuner | 算法简介 |
注意:点击
**Tuner 的名称**
可跳转到算法的详细描述,点击
**用法**
可看到 Tuner 的安装要求、建议场景和使用样例等等。
| ---------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
**TPE**
[
(用法)
](
#TPE
)
| Tree-structured Parzen Estimator (TPE) 是一种 sequential model-based optimization(SMBO,即基于序列模型优化)的方法。 SMBO 方法根据历史指标数据来按顺序构造模型,来估算超参的性能,随后基于此模型来选择新的超参。 |
| Tuner | 算法简介 |
|
**Random Search**
[
(用法)
](
#Random
)
| 在超参优化时,随机搜索算法展示了其惊人的简单和效果。 建议当不清楚超参的先验分布时,采用随机搜索作为基准。 |
| ------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
**Anneal**
[
(用法)
](
#Anneal
)
| 这种简单的退火算法从先前的采样开始,会越来越靠近发现的最佳点取样。 此算法是随机搜索的简单变体,利用了反应曲面的平滑性。 退火率不是自适应的。 |
|
[
TPE
](
https://github.com/Microsoft/nni/blob/master/zh_CN/src/sdk/pynni/nni/hyperopt_tuner/README.md
)
[
(用法)
]
(#TPE) | Tree-structured Parzen Estimator (TPE) 是一种 sequential model-based optimization(SMBO,即基于序列模型优化)的方法。 SMBO 方法根据历史指标数据来按顺序构造模型,来估算超参的性能,随后基于此模型来选择新的超参。
[
参考论文
](
https://papers.nips.cc/paper/4443-algorithms-for-hyper-parameter-optimization.pdf
)
|
|
**Naive Evolution**
[
(用法)
](
#Evolution
)
| 朴素进化算法来自于大规模图像分类进化。 它会基于搜索空间随机生成一个种群。 在每一代中,会选择较好的结果,并对其下一代进行一些变异(例如,改动一个超参,增加或减少一层)。 进化算法需要很多次 Trial 才能有效,但它也非常简单,也很容易扩展新功能。 |
|
[
Random Search
](
https://github.com/Microsoft/nni/blob/master/zh_CN/src/sdk/pynni/nni/hyperopt_tuner/README.md
)
[
(用法)
]
(#Random) | 在超参优化时,随机搜索算法展示了其惊人的简单和效果。 建议当不清楚超参的先验分布时,采用随机搜索作为基准。
[
参考论文
](
http://www.jmlr.org/papers/volume13/bergstra12a/bergstra12a.pdf
)
|
|
**SMAC**
[
(用法)
](
#SMAC
)
| SMAC 基于 Sequential Model-Based Optimization (SMBO,即序列的基于模型优化方法)。 它会利用使用过的结果好的模型(高斯随机过程模型),并将随机森林引入到 SMBO 中,来处理分类参数。 SMAC 算法包装了 Github 的 SMAC3。 注意:SMAC 需要通过
`nnictl package`
命令来安装。 |
|
[
Anneal
](
https://github.com/Microsoft/nni/blob/master/zh_CN/src/sdk/pynni/nni/hyperopt_tuner/README.md
)
[
(用法)
]
(#Anneal) | 这种简单的退火算法从先前的采样开始,会越来越靠近发现的最佳点取样。 此算法是随机搜索的简单变体,利用了反应曲面的平滑性。 退火率不是自适应的。 |
|
**Batch tuner**
[
(用法)
](
#Batch
)
| Batch Tuner 能让用户简单的提供几组配置(如,超参选项的组合)。 当所有配置都执行完后,Experiment 即结束。 Batch Tuner 仅支持 choice 类型。 |
|
[
Naive Evolution
](
https://github.com/Microsoft/nni/blob/master/zh_CN/src/sdk/pynni/nni/evolution_tuner/README.md
)
[
(Usage)
]
(#Evolution) | 朴素进化算法来自于大规模图像分类进化。 它会基于搜索空间随机生成一个种群。 在每一代中,会选择较好的结果,并对其下一代进行一些变异(例如,改动一个超参,增加或减少一层)。 进化算法需要很多次 Trial 才能有效,但它也非常简单,也很容易扩展新功能。
[
参考论文
](
https://arxiv.org/pdf/1703.01041.pdf
)
|
|
**Grid Search**
[
(用法)
](
#GridSearch
)
| 网格搜索会穷举定义在搜索空间文件中的所有超参组合。 网格搜索可以使用的类型有 choice, quniform, qloguniform。 quniform 和 qloguniform 中的数值 q 具有特别的含义(不同于搜索空间文档中的说明)。 它表示了在最高值与最低值之间采样的值的数量。 |
|
[
SMAC
](
https://github.com/Microsoft/nni/blob/master/zh_CN/src/sdk/pynni/nni/smac_tuner/README.md
)
[
(用法)
]
(#SMAC) | SMAC 基于 Sequential Model-Based Optimization (SMBO,即序列的基于模型优化方法)。 它会利用使用过的结果好的模型(高斯随机过程模型),并将随机森林引入到 SMBO 中,来处理分类参数。 SMAC 算法包装了 Github 的 SMAC3。 注意:SMAC 需要通过
`nnictl package`
命令来安装。
[
参考论文,
](
https://www.cs.ubc.ca/~hutter/papers/10-TR-SMAC.pdf
)
[
Github 代码库
]
(https://github.com/automl/SMAC3) |
|
[
Hyperband
](
https://github.com/Microsoft/nni/tree/master/src/sdk/pynni/nni/hyperband_advisor
)
[
(用法)
]
(#Hyperband) | Hyperband 试图用有限的资源来探索尽可能多的组合,并发现最好的结果。 它的基本思路是生成大量的配置,并运行少量的步骤来找到有可能好的配置,然后继续训练找到其中更好的配置。 |
|
[
Batch tuner
](
https://github.com/Microsoft/nni/blob/master/zh_CN/src/sdk/pynni/nni/batch_tuner/README.md
)
[
(用法)
]
(#Batch) | Batch Tuner 能让用户简单的提供几组配置(如,超参选项的组合)。 当所有配置都执行完后,Experiment 即结束。 Batch Tuner 仅支持 choice 类型。 |
|
[
Network Morphism
](
../src/sdk/pynni/nni/networkmorphism_tuner/README.md
)
[
(用法)
]
(#NetworkMorphism) | Network Morphism 提供了深度学习模型的自动架构搜索功能。 每个子网络都继承于父网络的知识和形态,并变换网络的不同形态,包括深度,宽度,跨层连接(skip-connection)。 然后使用历史的架构和指标,来估计子网络的值。 最后会选择最有希望的模型进行训练。 |
|
[
Grid Search
](
https://github.com/Microsoft/nni/blob/master/zh_CN/src/sdk/pynni/nni/gridsearch_tuner/README.md
)
[
(用法)
]
(#GridSearch) | 网格搜索会穷举定义在搜索空间文件中的所有超参组合。 网格搜索可以使用的类型有 choice, quniform, qloguniform。 quniform 和 qloguniform 中的数值 q 具有特别的含义(不同于搜索空间文档中的说明)。 它表示了在最高值与最低值之间采样的值的数量。 |
|
**Metis Tuner**
[
(用法)
](
#MetisTuner
)
| 大多数调参工具仅仅预测最优配置,而 Metis 的优势在于有两个输出:(a) 最优配置的当前预测结果, 以及 (b) 下一次 Trial 的建议。 它不进行随机取样。 大多数工具假设训练集没有噪声数据,但 Metis 会知道是否需要对某个超参重新采样。 |
|
[
Hyperband
](
https://github.com/Microsoft/nni/blob/master/zh_CN/src/sdk/pynni/nni/hyperband_advisor/README.md
)
[
(用法)
]
(#Hyperband) | Hyperband 试图用有限的资源来探索尽可能多的组合,并发现最好的结果。 它的基本思路是生成大量的配置,并运行少量的步骤来找到有可能好的配置,然后继续训练找到其中更好的配置。
[
参考论文
](
https://arxiv.org/pdf/1603.06560.pdf
)
|
|
[
Network Morphism
](
https://github.com/Microsoft/nni/blob/master/zh_CN/src/sdk/pynni/nni/networkmorphism_tuner/README.md
)
[
(用法)
]
(#NetworkMorphism) | Network Morphism 提供了深度学习模型的自动架构搜索功能。 每个子网络都继承于父网络的知识和形态,并变换网络的不同形态,包括深度,宽度,跨层连接(skip-connection)。 然后使用历史的架构和指标,来估计子网络的值。 最后会选择最有希望的模型进行训练。
[
参考论文
](
https://arxiv.org/abs/1806.10282
)
|
|
[
Metis Tuner
](
https://github.com/Microsoft/nni/blob/master/zh_CN/src/sdk/pynni/nni/metis_tuner/README.md
)
[
(用法)
]
(#MetisTuner) | 大多数调参工具仅仅预测最优配置,而 Metis 的优势在于有两个输出:(a) 最优配置的当前预测结果, 以及 (b) 下一次 Trial 的建议。 它不进行随机取样。 大多数工具假设训练集没有噪声数据,但 Metis 会知道是否需要对某个超参重新采样。
[
参考论文
](
https://www.microsoft.com/en-us/research/publication/metis-robustly-tuning-tail-latencies-cloud-systems/
)
|
<br
/>
<br
/>
...
@@ -109,7 +111,7 @@ tuner:
...
@@ -109,7 +111,7 @@ tuner:
**建议场景**
**建议场景**
此算法对计算资源的需求相对较高。 需要非常大的初始种群,以免落入局部最优中。 如果 Trial 时间很短,或者
利
用了 Assessor,就非常适合此算法。 如果 Trial 代码支持权重迁移,即每次 Trial 会从上一轮继承已经收敛的权重,建议使用此算法。 这会大大提高训练速度。
此算法对计算资源的需求相对较高。 需要非常大的初始种群,以免落入局部最优中。 如果 Trial 时间很短,或者
使
用了 Assessor,就非常适合此算法。 如果 Trial 代码支持权重迁移,即每次 Trial 会从上一轮继承已经收敛的权重,建议使用此算法。 这会大大提高训练速度。
**参数**
**参数**
...
@@ -169,7 +171,7 @@ tuner:
...
@@ -169,7 +171,7 @@ tuner:
**建议场景**
**建议场景**
如果 Experiment 配置已确定,可通过
Batch Tuner
将它们罗列到搜索空间中运行即可。
如果 Experiment 配置已确定,可通过
`choice`
将它们罗列到搜索空间
文件
中运行即可。
**使用样例:**
**使用样例:**
...
...
zh_CN/docs/img/bar.png
0 → 100644
View file @
41d19a53
517 Bytes
zh_CN/src/sdk/pynni/nni/batch_tuner/README.md
0 → 100644
View file @
41d19a53
# Batch Tuner
## Batch Tuner(批处理调参器)
Batch Tuner 能让用户简单的提供几组配置(如,超参选项的组合)。 当所有配置都执行完后,Experiment 即结束。 Batch Tuner 仅支持
[
搜索空间
](
../../../../../docs/SearchSpaceSpec.md
)
中的 choice。
建议场景:如果 Experiment 配置已确定,可通过 choice 将它们罗列到搜索空间文件中运行即可。
\ No newline at end of file
zh_CN/src/sdk/pynni/nni/evolution_tuner/README.md
0 → 100644
View file @
41d19a53
# Naive Evolution Tuner
## Naive Evolution(进化算法)
进化算法来自于
[
Large-Scale Evolution of Image Classifiers
](
https://arxiv.org/pdf/1703.01041.pdf
)
。 它会基于搜索空间随机生成一个种群。 在每一代中,会选择较好的结果,并对其下一代进行一些变异(例如,改动一个超参,增加或减少一层)。 进化算法需要很多次 Trial 才能有效,但它也非常简单,也很容易扩展新功能。
\ No newline at end of file
zh_CN/src/sdk/pynni/nni/gridsearch_tuner/README.md
0 → 100644
View file @
41d19a53
# Grid Search
## Grid Search(遍历搜索)
Grid Search 会穷举定义在搜索空间文件中的所有超参组合。 注意,搜索空间仅支持
`choice`
,
`quniform`
,
`qloguniform`
。
`quniform`
和
`qloguniform`
中的
**
数字
`q`
有不同的含义(与
[
搜索空间
](
../../../../../docs/SearchSpaceSpec.md
)
说明不同)。 这里的意义是在
`low`
和
`high`
之间均匀取值的数量。
</p>
\ No newline at end of file
zh_CN/src/sdk/pynni/nni/hyperopt_tuner/README.md
0 → 100644
View file @
41d19a53
# TPE, Random Search, Anneal Tuners
## TPE
Tree-structured Parzen Estimator (TPE) 是一种 sequential model-based optimization(SMBO,即基于序列模型优化)的方法。 SMBO 方法根据历史指标数据来按顺序构造模型,来估算超参的性能,随后基于此模型来选择新的超参。 TPE 方法对 P(x|y) 和 P(y) 建模,其中 x 表示超参,y 表示相关的评估指标。 P(x|y) 通过变换超参的生成过程来建模,用非参数密度(non-parametric densities)代替配置的先验分布。 细节可参考
[
Algorithms for Hyper-Parameter Optimization
](
https://papers.nips.cc/paper/4443-algorithms-for-hyper-parameter-optimization.pdf
)
。
## Random Search(随机搜索)
[
Random Search for Hyper-Parameter Optimization
](
http://www.jmlr.org/papers/volume13/bergstra12a/bergstra12a.pdf
)
中介绍了随机搜索惊人的简单和效果。 建议当不清楚超参的先验分布时,采用随机搜索作为基准。
## Anneal(退火算法)
这种简单的退火算法从先前的采样开始,会越来越靠近发现的最佳点取样。 此算法是随机搜索的简单变体,利用了响应面的平滑性。 退火率不是自适应的。
\ No newline at end of file
zh_CN/src/sdk/pynni/nni/medianstop_assessor/README.md
0 → 100644
View file @
41d19a53
# Medianstop Assessor
## Median Stop
Medianstop 是一种简单的提前终止 Trial 的策略,可参考
[
论文
](
https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/46180.pdf
)
。 如果 Trial X 的在步骤 S 的最好目标值比所有已完成 Trial 的步骤 S 的中位数值明显要低,这个 Trial 就会被提前停止。
\ No newline at end of file
zh_CN/src/sdk/pynni/nni/metis_tuner/README.md
0 → 100644
View file @
41d19a53
# Metis Tuner
## Metis Tuner
大多数调参工具仅仅预测最优配置,而
[
Metis
](
https://www.microsoft.com/en-us/research/publication/metis-robustly-tuning-tail-latencies-cloud-systems/
)
的优势在于有两个输出:(a) 最优配置的当前预测结果, 以及 (b) 下一次 Trial 的建议。 不再需要随机猜测!
大多数工具假设训练集没有噪声数据,但 Metis 会知道是否需要对某个超参重新采样。
大多数工具都有着重于在已有结果上继续发展的问题,而 Metis 的搜索策略可以在探索,发展和重新采样(可选)中进行平衡。
Metis 属于基于序列的贝叶斯优化 (SMBO) 的类别,它也基于贝叶斯优化框架。 为了对超参-性能空间建模,Metis 同时使用了高斯过程(Gaussian Process)和高斯混合模型(GMM)。 由于每次 Trial 都可能有很高的时间成本,Metis 大量使用了已有模型来进行推理计算。 在每次迭代中,Metis 执行两个任务:
在高斯过程空间中找到全局最优点。 这一点表示了最佳配置。
它会标识出下一个超参的候选项。 这是通过对隐含信息的探索、挖掘和重采样来实现的。
注意,搜索空间仅支持
`choice`
,
`quniform`
,
`uniform`
和
`randint`
。
更多详情,参考论文:https://www.microsoft.com/en-us/research/publication/metis-robustly-tuning-tail-latencies-cloud-systems/
\ No newline at end of file
zh_CN/src/sdk/pynni/nni/smac_tuner/README.md
View file @
41d19a53
# 集成文档:NNI 上使用 SMAC
# SMAC Tuner
\ No newline at end of file
## SMAC
[
SMAC
](
https://www.cs.ubc.ca/~hutter/papers/10-TR-SMAC.pdf
)
基于 Sequential Model-Based Optimization (SMBO). 它会利用使用过的结果好的模型(高斯随机过程模型),并将随机森林引入到 SMBO 中,来处理分类参数。 NNI 的 SMAC 通过包装
[
SMAC3
](
https://github.com/automl/SMAC3
)
来支持。
NNI 中的 SMAC 只支持部分类型的
[
搜索空间
](
../../../../../docs/SearchSpaceSpec.md
)
,包括
`choice`
,
`randint`
,
`uniform`
,
`loguniform`
,
`quniform(q=1)`
。
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment