Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
OpenDAS
nni
Commits
226aaef9
Unverified
Commit
226aaef9
authored
Jan 07, 2020
by
Chi Song
Committed by
GitHub
Jan 07, 2020
Browse files
Chinese Translation (#1914)
parent
ae81ec47
Changes
52
Show whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
80 additions
and
67 deletions
+80
-67
docs/zh_CN/TrialExample/Cifar10Examples.md
docs/zh_CN/TrialExample/Cifar10Examples.md
+6
-6
docs/zh_CN/TrialExample/GbdtExample.md
docs/zh_CN/TrialExample/GbdtExample.md
+1
-1
docs/zh_CN/TrialExample/MnistExamples.md
docs/zh_CN/TrialExample/MnistExamples.md
+10
-10
docs/zh_CN/TrialExample/SklearnExamples.md
docs/zh_CN/TrialExample/SklearnExamples.md
+3
-3
docs/zh_CN/TrialExample/SquadEvolutionExamples.md
docs/zh_CN/TrialExample/SquadEvolutionExamples.md
+5
-5
docs/zh_CN/TrialExample/Trials.md
docs/zh_CN/TrialExample/Trials.md
+4
-4
docs/zh_CN/Tuner/BuiltinTuner.md
docs/zh_CN/Tuner/BuiltinTuner.md
+15
-6
docs/zh_CN/Tuner/CustomizeAdvisor.md
docs/zh_CN/Tuner/CustomizeAdvisor.md
+3
-1
docs/zh_CN/Tuner/CustomizeTuner.md
docs/zh_CN/Tuner/CustomizeTuner.md
+3
-3
docs/zh_CN/Tuner/HyperbandAdvisor.md
docs/zh_CN/Tuner/HyperbandAdvisor.md
+3
-3
docs/zh_CN/Tuner/NetworkmorphismTuner.md
docs/zh_CN/Tuner/NetworkmorphismTuner.md
+3
-3
docs/zh_CN/Tutorial/AnnotationSpec.md
docs/zh_CN/Tutorial/AnnotationSpec.md
+3
-3
docs/zh_CN/Tutorial/ExperimentConfig.md
docs/zh_CN/Tutorial/ExperimentConfig.md
+1
-1
docs/zh_CN/Tutorial/Nnictl.md
docs/zh_CN/Tutorial/Nnictl.md
+4
-4
docs/zh_CN/Tutorial/QuickStart.md
docs/zh_CN/Tutorial/QuickStart.md
+1
-1
docs/zh_CN/Tutorial/SearchSpaceSpec.md
docs/zh_CN/Tutorial/SearchSpaceSpec.md
+2
-2
docs/zh_CN/conf.py
docs/zh_CN/conf.py
+8
-6
docs/zh_CN/examples.rst
docs/zh_CN/examples.rst
+1
-1
docs/zh_CN/index.rst
docs/zh_CN/index.rst
+3
-3
examples/assessors/README_zh_CN.md
examples/assessors/README_zh_CN.md
+1
-1
No files found.
docs/zh_CN/TrialExample/Cifar10Examples.md
View file @
226aaef9
# CIFAR-10
样
例
# CIFAR-10
示
例
## 概述
...
...
@@ -16,9 +16,9 @@
#### 准备
此
样
例需要安装 PyTorch。 PyTorch 安装包需要选择所基于的 Python 和 CUDA 版本。
此
示
例需要安装 PyTorch。 PyTorch 安装包需要选择所基于的 Python 和 CUDA 版本。
这是环境 python==3.5 且 cuda == 8.0 的
样
例,然后用下列命令来安装
[
PyTorch
](
https://pytorch.org/
)
:
这是环境 python==3.5 且 cuda == 8.0 的
示
例,然后用下列命令来安装
[
PyTorch
](
https://pytorch.org/
)
:
```
bash
python3
-m
pip
install
http://download.pytorch.org/whl/cu80/torch-0.4.1-cp35-cp35m-linux_x86_64.whl
...
...
@@ -55,15 +55,15 @@ python3 -m pip install torchvision
**配置**
这是在本机运行 Experiment 的
样
例(多GPU):
这是在本机运行 Experiment 的
示
例(多GPU):
代码:
[
examples/trials/cifar10_pytorch/config.yml
](
https://github.com/Microsoft/nni/blob/master/examples/trials/cifar10_pytorch/config.yml
)
这是在 OpenPAI 上运行 Experiment 的
样
例:
这是在 OpenPAI 上运行 Experiment 的
示
例:
代码:
[
examples/trials/cifar10_pytorch/config_pai.yml
](
https://github.com/Microsoft/nni/blob/master/examples/trials/cifar10_pytorch/config_pai.yml
)
*完整
样
例:[examples/trials/cifar10_pytorch/](https://github.com/Microsoft/nni/tree/master/examples/trials/cifar10_pytorch)*
*完整
示
例:[examples/trials/cifar10_pytorch/](https://github.com/Microsoft/nni/tree/master/examples/trials/cifar10_pytorch)*
#### 运行 Experiment
...
...
docs/zh_CN/TrialExample/GbdtExample.md
View file @
226aaef9
...
...
@@ -168,7 +168,7 @@ if __name__ == '__main__':
*
路径设置:
`searchSpacePath`
,
`trial codeDir`
,等等。
*
算法设置:选择
`Tuner`
算法,
`优化方向`
,等等。
config.yml
样
例:
config.yml
示
例:
```
yaml
authorName
:
default
...
...
docs/zh_CN/TrialExample/MnistExamples.md
View file @
226aaef9
# MNIST
样
例
# MNIST
示
例
在深度学习中,用 CNN 来分类 MNIST 数据,就像介绍编程语言中的
`hello world`
样
例。 因此,NNI 将 MNIST 作为
样
例来介绍功能。
样
例如下:
在深度学习中,用 CNN 来分类 MNIST 数据,就像介绍编程语言中的
`hello world`
示
例。 因此,NNI 将 MNIST 作为
示
例来介绍功能。
示
例如下:
-
[
MNIST 中使用 NNI API (TensorFlow v1.x)
](
#mnist-tfv1
)
-
[
MNIST 中使用 NNI API (TensorFlow v2.x)
](
#mnist-tfv2
)
...
...
@@ -15,7 +15,7 @@
<a
name=
"mnist-tfv1"
></a>
**MNIST 中使用 NNI API (TensorFlow v1.x)**
这是个简单的卷积网络,有两个卷积层,两个池化层和一个全连接层。 调优的超参包括 dropout 比率,卷积层大小,隐藏层(全连接层)大小等等。 它能用 NNI 中大部分内置的 Tuner 来调优,如 TPE,SMAC,Random。
样
例的 YAML 文件也启用了评估器来提前终止一些中间结果不好的尝试。
这是个简单的卷积网络,有两个卷积层,两个池化层和一个全连接层。 调优的超参包括 dropout 比率,卷积层大小,隐藏层(全连接层)大小等等。 它能用 NNI 中大部分内置的 Tuner 来调优,如 TPE,SMAC,Random。
示
例的 YAML 文件也启用了评估器来提前终止一些中间结果不好的尝试。
`代码目录: examples/trials/mnist-tfv1/`
...
...
@@ -29,48 +29,48 @@
<a
name=
"mnist-annotation"
></a>
**MNIST 中使用 NNI 标记(annotation)**
此
样
例与上例类似,上例使用的是 NNI API 来指定搜索空间并返回结果,而此例使用的是 NNI 标记。
此
示
例与上例类似,上例使用的是 NNI API 来指定搜索空间并返回结果,而此例使用的是 NNI 标记。
`代码目录: examples/trials/mnist-annotation/`
<a
name=
"mnist-keras"
></a>
**在 Keras 中使用 MNIST**
此
样
例由 Keras 实现。 这也是 MNIST 数据集的网络,包括两个卷积层,一个池化层和两个全连接层。
此
示
例由 Keras 实现。 这也是 MNIST 数据集的网络,包括两个卷积层,一个池化层和两个全连接层。
`代码目录: examples/trials/mnist-keras/`
<a
name=
"mnist-batch"
></a>
**MNIST -- 用批处理 Tuner 来调优**
此
样
例演示了如何使用批处理 Tuner。 只需要在搜索空间文件中列出所有要尝试的配置, NNI 会逐个尝试。
此
示
例演示了如何使用批处理 Tuner。 只需要在搜索空间文件中列出所有要尝试的配置, NNI 会逐个尝试。
`代码目录: examples/trials/mnist-batch-tune-keras/`
<a
name=
"mnist-hyperband"
></a>
**MNIST -- 用 hyperband 调优**
此
样
例演示了如何使用 hyperband 来调优模型。 在尝试收到的配置中,有个主键叫做
`STEPS`
,尝试要用它来控制运行多长时间(例如,控制迭代的次数)。
此
示
例演示了如何使用 hyperband 来调优模型。 在尝试收到的配置中,有个主键叫做
`STEPS`
,尝试要用它来控制运行多长时间(例如,控制迭代的次数)。
`代码目录: examples/trials/mnist-hyperband/`
<a
name=
"mnist-nested"
></a>
**MNIST -- 用嵌套搜索空间调优**
此
样
例演示了 NNI 如何支持嵌套的搜索空间。 搜索空间文件示了如何定义嵌套的搜索空间。
此
示
例演示了 NNI 如何支持嵌套的搜索空间。 搜索空间文件示了如何定义嵌套的搜索空间。
`代码目录: examples/trials/mnist-nested-search-space/`
<a
name=
"mnist-kubeflow-tf"
></a>
**用 Kubeflow 运行分布式的 MNIST (tensorflow)**
此
样
例展示了如何通过 NNI 来在 Kubeflow 上运行分布式训练。 只需要简单的提供分布式训练代码,并在配置文件中指定 kubeflow 模式。 例如,运行 ps 和 worker 的命令行,以及各自需要的资源。 此
样
例使用了 Tensorflow 来实现,因而,需要使用 Kubeflow 的 tf-operator。
此
示
例展示了如何通过 NNI 来在 Kubeflow 上运行分布式训练。 只需要简单的提供分布式训练代码,并在配置文件中指定 kubeflow 模式。 例如,运行 ps 和 worker 的命令行,以及各自需要的资源。 此
示
例使用了 Tensorflow 来实现,因而,需要使用 Kubeflow 的 tf-operator。
`代码目录: examples/trials/mnist-distributed/`
<a
name=
"mnist-kubeflow-pytorch"
></a>
**用 Kubeflow 运行分布式的 MNIST (PyTorch)**
与前面的
样
例类似,不同之处是此
样
例是 Pytorch 实现的,因而需要使用 Kubeflow 的 pytorch-operator。
与前面的
示
例类似,不同之处是此
示
例是 Pytorch 实现的,因而需要使用 Kubeflow 的 pytorch-operator。
`代码目录: examples/trials/mnist-distributed-pytorch/`
\ No newline at end of file
docs/zh_CN/TrialExample/SklearnExamples.md
View file @
226aaef9
...
...
@@ -4,7 +4,7 @@
NNI 支持多种调优算法来为 scikit-learn 搜索最好的模型和超参,并支持本机、远程服务器和云服务等多种环境。
## 1. 如何运行此
样
例
## 1. 如何运行此
示
例
安装 NNI 包,并使用命令行工具
`nnictl`
来启动 Experiment。 有关安装和环境准备的内容,参考
[
这里
](
../Tutorial/QuickStart.md
)
。
...
...
@@ -14,7 +14,7 @@ NNI 支持多种调优算法来为 scikit-learn 搜索最好的模型和超参
nnictl create
--config
./config.yml
```
## 2.
样
例概述
## 2.
示
例概述
### 2.1 分类
...
...
@@ -24,7 +24,7 @@ nnictl create --config ./config.yml
### 2.2 回归
此
样
例使用了波士顿房价数据,数据集由波士顿各地区房价所组成,还包括了房屋的周边信息,例如:犯罪率 (CRIM),非零售业务的面积 (INDUS),房主年龄 (AGE) 等等。这些信息可用来预测波士顿的房价。
此
示
例使用了波士顿房价数据,数据集由波士顿各地区房价所组成,还包括了房屋的周边信息,例如:犯罪率 (CRIM),非零售业务的面积 (INDUS),房主年龄 (AGE) 等等。这些信息可用来预测波士顿的房价。
本例中,尝试了不同的回归模型,包括
`"LinearRegression", "SVR", "KNeighborsRegressor", "DecisionTreeRegressor"`
和一些参数,如
`"svr_kernel", "knr_weights"`
。 关于这些模型算法和参数的更多信息,可参考
[
这里
](
https://scikit-learn.org/stable/supervised_learning.html#supervised-learning
)
。
...
...
docs/zh_CN/TrialExample/SquadEvolutionExamples.md
View file @
226aaef9
# 在阅读理解上使用自动模型架构搜索
该
样
例展示了如何使用遗传算法为阅读理解任务找到好的模型架构。
该
示
例展示了如何使用遗传算法为阅读理解任务找到好的模型架构。
## 1. 搜索空间
...
...
@@ -20,7 +20,7 @@
另一个时间更快,性能更好的版本正在开发中。 很快将发布。
## 2. 如何在本机运行此
样
例?
## 2. 如何在本机运行此
示
例?
### 2.1 使用下载脚本来下载数据
...
...
@@ -81,7 +81,7 @@ trial:
nnictl create
--config
~/nni/examples/trials/ga_squad/config.yml
```
## 3 在 OpenPAI 上运行此
样
例
## 3 在 OpenPAI 上运行此
示
例
根据上传大小的限制,仅上传源代码,并在训练过程中下载数据。 本 Experiment 需要的内存
`memoryMB >= 32G`
,训练过程可能需要数小时。
...
...
@@ -140,7 +140,7 @@ nnictl create --config ~/nni/examples/trials/ga_squad/config_pai.yml
### 4.1 实现方法
基于进化算法架构的问答和其它
样
例一样,有两个部分:Trial 和 Tuner。
基于进化算法架构的问答和其它
示
例一样,有两个部分:Trial 和 Tuner。
### 4.2 Trial
...
...
@@ -251,7 +251,7 @@ class CustomerTuner(Tuner):
### 4.4 模型配置格式
这是模型配置的
样
例,在架构搜索过程中,从 Tuner 传入 Trial 的代码。
这是模型配置的
示
例,在架构搜索过程中,从 Tuner 传入 Trial 的代码。
```
json
{
...
...
docs/zh_CN/TrialExample/Trials.md
View file @
226aaef9
...
...
@@ -2,7 +2,7 @@
**Trial(尝试)**
是将一组参数组合(例如,超参)在模型上独立的一次尝试。
定义 NNI 的 Trial,需要首先定义参数组,并更新模型代码。 NNI 有两种方法来实现 Trial:
[
NNI API
](
#nni-api
)
以及
[
NNI Python annotation
](
#nni-annotation
)
。 参考
[
这里的
](
#more-examples
)
更多 Trial
样
例。
定义 NNI 的 Trial,需要首先定义参数组,并更新模型代码。 NNI 有两种方法来实现 Trial:
[
NNI API
](
#nni-api
)
以及
[
NNI Python annotation
](
#nni-annotation
)
。 参考
[
这里的
](
#more-examples
)
更多 Trial
示
例。
<a
name=
"nni-api"
></a>
...
...
@@ -10,7 +10,7 @@
### 第一步:准备搜索空间参数文件。
样
例如下:
示
例如下:
```
json
{
...
...
@@ -156,7 +156,7 @@ nni.get_sequence_id#返回 0
每个 Trial 都有单独的目录来输出自己的数据。 在每次 Trial 运行后,环境变量
`NNI_OUTPUT_DIR`
定义的目录都会被导出。 在这个目录中可以看到 Trial 的代码、数据和日志。 此外,Trial 的日志(包括 stdout)还会被重定向到此目录中的
`trial.log`
文件。
如果使用了 Annotation 方法,转换后的 Trial 代码会存放在另一个临时目录中。 可以在
`run.sh`
文件中的
`NNI_OUTPUT_DIR`
变量找到此目录。 文件中的第二行(即:
`cd`
)会切换到代码所在的实际路径。 参考
`run.sh`
文件
样
例:
如果使用了 Annotation 方法,转换后的 Trial 代码会存放在另一个临时目录中。 可以在
`run.sh`
文件中的
`NNI_OUTPUT_DIR`
变量找到此目录。 文件中的第二行(即:
`cd`
)会切换到代码所在的实际路径。 参考
`run.sh`
文件
示
例:
```
bash
#!/bin/bash
...
...
@@ -182,7 +182,7 @@ echo $? `date +%s%3N` >/home/user_name/nni/experiments/$experiment_id$/trials/$t
## 更多 Trial 的示例
*
[
MNIST
样
例
](
MnistExamples.md
)
*
[
MNIST
示
例
](
MnistExamples.md
)
*
[
为 CIFAR 10 分类找到最佳的 optimizer
](
Cifar10Examples.md
)
*
[
如何在 NNI 调优 SciKit-learn 的参数
](
SklearnExamples.md
)
*
[
在阅读理解上使用自动模型架构搜索。
](
SquadEvolutionExamples.md
)
...
...
docs/zh_CN/Tuner/BuiltinTuner.md
View file @
226aaef9
# 内置 Tuner
# 内置
的超参调优
Tuner
NNI 提供了先进的调优算法,使用上也很简单。 下面是内置 Tuner 的简单介绍:
...
...
@@ -13,7 +13,7 @@ NNI 提供了先进的调优算法,使用上也很简单。 下面是内置 Tu
|
[
**Anneal(退火算法)**
](
#Anneal
)
| 这种简单的退火算法从先前的采样开始,会越来越靠近发现的最佳点取样。 此算法是随机搜索的简单变体,利用了反应曲面的平滑性。 退火率不是自适应的。 |
|
[
**Naïve Evolution(进化算法)**
](
#Evolution
)
| Naïve Evolution(朴素进化算法)来自于 Large-Scale Evolution of Image Classifiers。 它会基于搜索空间随机生成一个种群。 在每一代中,会选择较好的结果,并对其下一代进行一些变异(例如,改动一个超参,增加或减少一层)。 Naïve Evolution 需要很多次 Trial 才能有效,但它也非常简单,也很容易扩展新功能。
[
参考论文
](
https://arxiv.org/pdf/1703.01041.pdf
)
|
|
[
**SMAC**
](
#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) |
|
[
**Batch Tuner(批
量调参器
)**
](
#Batch
)
| Batch Tuner 能让用户简单的提供几组配置(如,超参选项的组合)。 当所有配置都执行完后,Experiment 即结束。 Batch Tuner 仅支持 choice 类型。 |
|
[
**Batch Tuner(批
处理 Tuner
)**
](
#Batch
)
| Batch Tuner 能让用户简单的提供几组配置(如,超参选项的组合)。 当所有配置都执行完后,Experiment 即结束。 Batch Tuner 仅支持 choice 类型。 |
|
[
**Grid Search(遍历搜索)**
](
#GridSearch
)
| Grid Search 会穷举定义在搜索空间文件中的所有超参组合。 遍历搜索可以使用的类型有 choice, quniform, randint。 |
|
[
**Hyperband**
](
#Hyperband
)
| Hyperband 试图用有限的资源来探索尽可能多的组合,并发现最好的结果。 它的基本思路是生成大量的配置,并使用少量的资源来找到有可能好的配置,然后继续训练找到其中更好的配置。
[
参考论文
](
https://arxiv.org/pdf/1603.06560.pdf
)
|
|
[
**Network Morphism**
](
#NetworkMorphism
)
| Network Morphism 提供了深度学习模型的自动架构搜索功能。 每个子网络都继承于父网络的知识和形态,并变换网络的不同形态,包括深度,宽度,跨层连接(skip-connection)。 然后使用历史的架构和指标,来估计子网络的值。 然后会选择最有希望的模型进行训练。
[
参考论文
](
https://arxiv.org/abs/1806.10282
)
|
...
...
@@ -26,7 +26,7 @@ NNI 提供了先进的调优算法,使用上也很简单。 下面是内置 Tu
要使用 NNI 内置的 Tuner,需要在
`config.yml`
文件中添加
**builtinTunerName**
和
**classArgs**
。 这一节会介绍推荐的场景、参数等详细用法以及示例。
注意:参考
样
例中的格式来创建新的
`config.yml`
文件。 一些内置的 Tuner 还需要通过
`nnictl package`
命令先安装,如 SMAC。
注意:参考
示
例中的格式来创建新的
`config.yml`
文件。 一些内置的 Tuner 还需要通过
`nnictl package`
命令先安装,如 SMAC。
<a
name=
"TPE"
></a>
...
...
@@ -158,6 +158,7 @@ nnictl package install --name=SMAC
**参数**
*
**optimize_mode**
(
*maximize 或 minimize, 可选项, 默认值为 maximize*
) - 如果为 'maximize',表示 Tuner 的目标是将指标最大化。 如果为 'minimize',表示 Tuner 的目标是将指标最小化。
*
**config_dedup**
(
*True 或 False, 可选, 默认为 False*
) - 如果为 True,则 Tuner 不会生成重复的配置。 如果为 False,则配置可能会重复生成,但对于相对较大的搜索空间,此概率较小。
**示例**
...
...
@@ -274,7 +275,7 @@ NetworkMorphism 需要先安装 [PyTorch](https://pytorch.org/get-started/locall
**建议场景**
需要将深度学习方法应用到自己的任务(自己的数据集)上,但不清楚该如何选择或设计网络。 可修改
[
样
例
](
https://github.com/Microsoft/nni/tree/master/examples/trials/network_morphism/cifar10/cifar10_keras.py
)
来适配自己的数据集和数据增强方法。 也可以修改批处理大小,学习率或优化器。 它可以为不同的任务找到好的网络架构。 当前,此 Tuner 仅支持视觉领域。
[
详细说明
](
./NetworkmorphismTuner.md
)
需要将深度学习方法应用到自己的任务(自己的数据集)上,但不清楚该如何选择或设计网络。 可修改
[
示
例
](
https://github.com/Microsoft/nni/tree/master/examples/trials/network_morphism/cifar10/cifar10_keras.py
)
来适配自己的数据集和数据增强方法。 也可以修改批处理大小,学习率或优化器。 它可以为不同的任务找到好的网络架构。 当前,此 Tuner 仅支持视觉领域。
[
详细说明
](
./NetworkmorphismTuner.md
)
**参数**
...
...
@@ -310,7 +311,7 @@ tuner:
**建议场景**
与 TPE 和 SMAC 类似,Metis 是黑盒 Tuner。 如果系统需要很长时间才能完成一次 Trial,Metis 就比随机搜索等其它方法要更合适。 此外,Metis 还为接下来的 Trial 提供了候选。 如何使用 Metis 的
[
样
例
](
https://github.com/Microsoft/nni/tree/master/examples/trials/auto-gbdt/search_space_metis.json
)
。 通过调用 NNI 的 SDK,用户只需要发送
`精度`
这样的最终结果给 Tuner。
[
详细说明
](
./MetisTuner.md
)
与 TPE 和 SMAC 类似,Metis 是黑盒 Tuner。 如果系统需要很长时间才能完成一次 Trial,Metis 就比随机搜索等其它方法要更合适。 此外,Metis 还为接下来的 Trial 提供了候选。 如何使用 Metis 的
[
示
例
](
https://github.com/Microsoft/nni/tree/master/examples/trials/auto-gbdt/search_space_metis.json
)
。 通过调用 NNI 的 SDK,用户只需要发送
`精度`
这样的最终结果给 Tuner。
[
详细说明
](
./MetisTuner.md
)
**参数**
...
...
@@ -450,3 +451,11 @@ tuner:
classArgs
:
optimize_mode
:
maximize
```
## **参考和反馈**
*
在 GitHub 中
[
提交此功能的 Bug
](
https://github.com/microsoft/nni/issues/new?template=bug-report.md
)
;
*
在 GitHub 中
[
提交新功能或改进请求
](
https://github.com/microsoft/nni/issues/new?template=enhancement.md
)
;
*
了解 NNI 中
[
特征工程的更多信息
](
https://github.com/microsoft/nni/blob/master/docs/zh_CN/FeatureEngineering/Overview.md
)
;
*
了解 NNI 中
[
NAS 的更多信息
](
https://github.com/microsoft/nni/blob/master/docs/zh_CN/NAS/Overview.md
)
;
*
了解 NNI 中
[
模型自动压缩的更多信息
](
https://github.com/microsoft/nni/blob/master/docs/zh_CN/Compressor/Overview.md
)
;
\ No newline at end of file
docs/zh_CN/Tuner/CustomizeAdvisor.md
View file @
226aaef9
...
...
@@ -16,7 +16,7 @@ class CustomizedAdvisor(MsgDispatcherBase):
...
```
**2. 实现所有除了 `handle_request` 外的,以 `handle_` 前缀开始的方法**
。
[
此文档
](
https://nni.readthedocs.io/
en
/latest/sdk_reference.html#nni.msg_dispatcher_base.MsgDispatcherBase
)
可帮助理解
`MsgDispatcherBase`
。
**2. 实现所有除了 `handle_request` 外的,以 `handle_` 前缀开始的方法**
。
[
此文档
](
https://nni.readthedocs.io/
zh
/latest/sdk_reference.html#nni.msg_dispatcher_base.MsgDispatcherBase
)
可帮助理解
`MsgDispatcherBase`
。
**3. 在 Experiment 的 YAML 文件中配置好自定义的 Advisor。**
...
...
@@ -33,6 +33,8 @@ advisor:
arg1
:
value1
```
**注意:**
Advisor 的工作目录是
`<home>/nni/experiments/<experiment_id>/log`
可从环境变量
`NNI_LOG_DIRECTORY`
中获取。
## 示例
参考
[
示例
](
https://github.com/microsoft/nni/tree/master/examples/tuners/mnist_keras_customized_advisor
)
。
\ No newline at end of file
docs/zh_CN/Tuner/CustomizeTuner.md
View file @
226aaef9
...
...
@@ -10,7 +10,7 @@ NNI 在内置的 Tuner 中提供了最新的调优算法。 NNI 同时也支持
2.
实现 receive_trial_result 和 generate_parameter 函数
3.
在 Experiment 的 YAML 文件中配置好自定义的 Tuner
样
例如下:
示
例如下:
**1. 继承 Tuner 基类**
...
...
@@ -76,7 +76,7 @@ parameters = {"dropout": 0.3, "learning_rate": 0.4}
value
=
0.93
```
**注意**
如果需要存取自定义的
Tuner 目录
里
的文件
(如,
`data.txt`
),不能
使用
`open('data.txt', 'r')`
。 要使用:
**注意
:
**
Tuner 的工作目录是
`<home>/nni/experiments/<experiment_id>/log`
,可使用环境变量
`NNI_LOG_DIRECTORY`
,因此 ,如果要访问自己
Tuner 目录
中
的文件
(如:
`data.txt`
)不能直接
使用
`open('data.txt', 'r')`
。 要使用:
```
python
_pwd
=
os
.
path
.
dirname
(
__file__
)
...
...
@@ -101,7 +101,7 @@ tuner:
```
更多
样
例,可参考:
更多
示
例,可参考:
> - [evolution-tuner](https://github.com/Microsoft/nni/tree/master/src/sdk/pynni/nni/evolution_tuner)
> - [hyperopt-tuner](https://github.com/Microsoft/nni/tree/master/src/sdk/pynni/nni/hyperopt_tuner)
...
...
docs/zh_CN/Tuner/HyperbandAdvisor.md
View file @
226aaef9
...
...
@@ -6,7 +6,7 @@
## 2. 实现并行
首先,此
样
例是基于 MsgDispatcherBase 来实现的自动机器学习算法,而不是基于 Tuner 和Assessor。 这种实现方法下,Hyperband 集成了 Tuner 和 Assessor 两者的功能,因而将它叫做 Advisor。
首先,此
示
例是基于 MsgDispatcherBase 来实现的自动机器学习算法,而不是基于 Tuner 和Assessor。 这种实现方法下,Hyperband 集成了 Tuner 和 Assessor 两者的功能,因而将它叫做 Advisor。
其次,本实现完全利用了 Hyperband 内部的并行性。 具体来说,下一个分组不会严格的在当前分组结束后再运行,只要有资源,就可以开始运行新的分组。
...
...
@@ -30,11 +30,11 @@
对于 Trial 代码中
`report_intermediate_result(metric)`
和
`report_final_result(metric)`
的
**`指标` 应该是数值,或者用一个 dict,并保证其中有键值为 default 的项目,其值也为数值型**
。 这是需要进行最大化或者最小化优化的数值,如精度或者损失度。
`R`
和
`eta`
是 Hyperband 中可以改动的参数。
`R`
表示可以分配给 Trial 的最大资源。 这里,资源可以代表 epoch 或 批处理数量。
`TRIAL_BUDGET`
应该被尝试代码用来控制运行的次数。 参考
样
例
`examples/trials/mnist-advisor/`
,了解详细信息。
`R`
和
`eta`
是 Hyperband 中可以改动的参数。
`R`
表示可以分配给 Trial 的最大资源。 这里,资源可以代表 epoch 或 批处理数量。
`TRIAL_BUDGET`
应该被尝试代码用来控制运行的次数。 参考
示
例
`examples/trials/mnist-advisor/`
,了解详细信息。
`eta`
表示
`n`
个配置中的
`n/eta`
个配置会留存下来,并用更多的资源来运行。
下面是
`R=81`
且
`eta=3`
时的
样
例:
下面是
`R=81`
且
`eta=3`
时的
示
例:
| | s=4 | s=3 | s=2 | s=1 | s=0 |
| - | ---- | ---- | ---- | ---- | ---- |
...
...
docs/zh_CN/Tuner/NetworkmorphismTuner.md
View file @
226aaef9
...
...
@@ -119,11 +119,11 @@ Tuner 有大量的文件、函数和类。 这里只简单介绍最重要的文
-
`layer_transformer.py`
包含了一些层转换,包括变宽,变深,或在层中增加跳跃连接。
-
`nn.py`
包含生成初始化网的类。
-
`metric.py`
包括了一些指标类,如 Accuracy 和 MSE。
-
`utils.py`
是使用 Keras 在数据集
`cifar10`
上搜索神经网络的
样
例。
-
`utils.py`
是使用 Keras 在数据集
`cifar10`
上搜索神经网络的
示
例。
## 4. 网络表示的 JSON
样
例
## 4. 网络表示的 JSON
示
例
这是定义的中间表示 JSON
样
例,在架构搜索过程中会从 Tuner 传到 Trial。 可调用 "json
\_
to
\_
graph()" 函数来将 JSON 文件转化为 Pytoch 或 Keras 模型。
样
例如下。
这是定义的中间表示 JSON
示
例,在架构搜索过程中会从 Tuner 传到 Trial。 可调用 "json
\_
to
\_
graph()" 函数来将 JSON 文件转化为 Pytoch 或 Keras 模型。
示
例如下。
```
json
{
...
...
docs/zh_CN/Tutorial/AnnotationSpec.md
View file @
226aaef9
...
...
@@ -4,7 +4,7 @@
为了获得良好的用户体验并减少对以后代码的影响,NNI 设计了通过 Annotation(标记)来使用的语法。 通过 Annotation,只需要在代码中加入一些注释字符串,就能启用 NNI,完全不影响代码原先的执行逻辑。
样
例如下:
示
例如下:
```
python
'''@nni.variable(nni.choice(0.1, 0.01, 0.001), name=learning_rate)'''
...
...
@@ -12,7 +12,7 @@ learning_rate = 0.1
```
此
样
例中,NNI 会从 (0.1, 0.01, 0.001) 中选择一个值赋给 learning_rate 变量。 第一行就是 NNI 的 Annotation,是 Python 中的一个字符串。 接下来的一行需要是赋值语句。 NNI 会根据 Annotation 行的信息,来给这一行的变量赋上相应的值。
此
示
例中,NNI 会从 (0.1, 0.01, 0.001) 中选择一个值赋给 learning_rate 变量。 第一行就是 NNI 的 Annotation,是 Python 中的一个字符串。 接下来的一行需要是赋值语句。 NNI 会根据 Annotation 行的信息,来给这一行的变量赋上相应的值。
通过这种方式,不需要修改任何代码,代码既可以直接运行,又可以使用 NNI 来调参。
...
...
@@ -44,7 +44,7 @@ NNI 支持如下 10 种类型来表示搜索空间:
-
`@nni.variable(nni.lognormal(mu, sigma),name=variable)`
变量值分布的公式为: exp(normal(mu, sigma))
-
`@nni.variable(nni.qlognormal(mu, sigma, q),name=variable)`
变量值分布的公式为: round(exp(normal(mu, sigma)) / q)
*
q
样
例如下:
示
例如下:
```
python
'''@nni.variable(nni.choice(0.1, 0.01, 0.001), name=learning_rate)'''
...
...
docs/zh_CN/Tutorial/ExperimentConfig.md
View file @
226aaef9
...
...
@@ -69,7 +69,7 @@
-
[
password
](
#password
)
-
[
token
](
#token
)
-
[
host
](
#host
)
-
[
样
例
](
#examples
)
-
[
示
例
](
#examples
)
-
[
本机模式
](
#local-mode
)
-
[
远程模式
](
#remote-mode
)
-
[
PAI 模式
](
#pai-mode
)
...
...
docs/zh_CN/Tutorial/Nnictl.md
View file @
226aaef9
...
...
@@ -50,7 +50,7 @@ nnictl 支持的命令:
| --port, -p | False | | RESTful 服务的端口 |
| --debug, -d | False | | 设置为调试模式 |
*
样
例
*
示
例
> 在默认端口 8080 上创建一个新的 Experiment
...
...
@@ -98,7 +98,7 @@ nnictl 支持的命令:
| --port, -p | False | | 要恢复的 Experiment 使用的 RESTful 服务端口 |
| --debug, -d | False | | 设置为调试模式 |
*
样
例
*
示
例
> 在指定的端口 8088 上恢复 Experiment
...
...
@@ -241,7 +241,7 @@ nnictl 支持的命令:
| id | False | | 需要设置的 Experiment 的 ID |
| --value, -v | True | | 允许同时运行的 Trial 的数量 |
*
样
例
*
示
例
> 更新 Experiment 的并发数量
...
...
@@ -499,7 +499,7 @@ nnictl 支持的命令:
*
详细说明
NNI 支持导入用户的数据,确保数据格式正确。
样
例如下:
NNI 支持导入用户的数据,确保数据格式正确。
示
例如下:
```
json
[
...
...
docs/zh_CN/Tutorial/QuickStart.md
View file @
226aaef9
...
...
@@ -26,7 +26,7 @@
NNI 是一个能进行自动机器学习实验的工具包。 它可以自动进行获取超参、运行 Trial,测试结果,调优超参的循环。 下面会展示如何使用 NNI 来找到最佳超参组合。
这是还
**没有 NNI**
的
样
例代码,用 CNN 在 MNIST 数据集上训练:
这是还
**没有 NNI**
的
示
例代码,用 CNN 在 MNIST 数据集上训练:
```
python
def
run_trial
(
params
):
...
...
docs/zh_CN/Tutorial/SearchSpaceSpec.md
View file @
226aaef9
...
...
@@ -6,7 +6,7 @@
要定义搜索空间,需要定义变量名称、采样策略的类型及其参数。
*
搜索空间
样
例如下:
*
搜索空间
示
例如下:
```
yaml
{
...
...
@@ -19,7 +19,7 @@
```
将第一行作为
样
例。
`dropout_rate`
定义了一个变量,先验分布为均匀分布,范围从
`0.1`
到
`0.5`
。
将第一行作为
示
例。
`dropout_rate`
定义了一个变量,先验分布为均匀分布,范围从
`0.1`
到
`0.5`
。
注意,搜索空间的效果与 Tuner 高度相关。 此处列出了内置 Tuner 所支持的类型。 对于自定义的 Tuner,不必遵循鞋标,可使用任何的类型。
...
...
docs/zh_CN/conf.py
View file @
226aaef9
...
...
@@ -12,23 +12,23 @@
# add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here.
#
from
recommonmark.transform
import
AutoStructify
from
recommonmark.parser
import
CommonMarkParser
import
os
import
sys
sys
.
path
.
insert
(
0
,
os
.
path
.
abspath
(
'../../src/sdk/pynni'
))
from
recommonmark.parser
import
CommonMarkParser
from
recommonmark.transform
import
AutoStructify
# -- Project information ---------------------------------------------------
project
=
'N
eural Network Intelligence
'
copyright
=
'20
19
, Microsoft'
project
=
'N
NI
'
copyright
=
'20
20
, Microsoft'
author
=
'Microsoft'
# The short X.Y version
version
=
''
# The full version, including alpha/beta/rc tags
release
=
'v1.
2
'
release
=
'v1.
3
'
# -- General configuration ---------------------------------------------------
...
...
@@ -109,6 +109,8 @@ html_static_path = ['../static']
# html_sidebars = {}
html_logo
=
'../img/nni_logo_dark.png'
html_title
=
'支持神经网络结构搜索、模型压缩、超参调优的开源自动机器学习工具 (%s %s)'
%
\
(
project
,
release
)
# -- Options for HTMLHelp output ---------------------------------------------
...
...
docs/zh_CN/examples.rst
View file @
226aaef9
######################
样
例
示
例
######################
.. toctree::
...
...
docs/zh_CN/index.rst
View file @
226aaef9
###########################
##############
Neural Network Intelligence
(NNI)文档
###########################
##############
###########################
Neural Network Intelligence
###########################
********
内容
...
...
examples/assessors/README_zh_CN.md
View file @
226aaef9
...
...
@@ -56,6 +56,6 @@ main()
也可以重载 Assessor 的
`run`
函数来控制过程逻辑。
更多
样
例,可参考:
更多
示
例,可参考:
> - [Base-Assessor](https://msrasrg.visualstudio.com/NeuralNetworkIntelligenceOpenSource/_git/Default?_a=contents&path=%2Fsrc%2Fsdk%2Fpynni%2Fnni%2Fassessor.py&version=GBadd_readme)
\ No newline at end of file
Prev
1
2
3
Next
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