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
9b154484
Unverified
Commit
9b154484
authored
Aug 05, 2019
by
Chi Song
Committed by
GitHub
Aug 05, 2019
Browse files
Chinese translation (#1278)
parent
22261192
Changes
80
Hide whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
241 additions
and
204 deletions
+241
-204
docs/zh_CN/Tuner/NetworkmorphismTuner.md
docs/zh_CN/Tuner/NetworkmorphismTuner.md
+0
-0
docs/zh_CN/Tuner/SmacTuner.md
docs/zh_CN/Tuner/SmacTuner.md
+1
-1
docs/zh_CN/Tutorial/AnnotationSpec.md
docs/zh_CN/Tutorial/AnnotationSpec.md
+4
-4
docs/zh_CN/Tutorial/Contributing.md
docs/zh_CN/Tutorial/Contributing.md
+1
-1
docs/zh_CN/Tutorial/ExperimentConfig.md
docs/zh_CN/Tutorial/ExperimentConfig.md
+48
-24
docs/zh_CN/Tutorial/FAQ.md
docs/zh_CN/Tutorial/FAQ.md
+0
-0
docs/zh_CN/Tutorial/HowToDebug.md
docs/zh_CN/Tutorial/HowToDebug.md
+5
-5
docs/zh_CN/Tutorial/HowToUseDocker.md
docs/zh_CN/Tutorial/HowToUseDocker.md
+2
-2
docs/zh_CN/Tutorial/Installation.md
docs/zh_CN/Tutorial/Installation.md
+6
-6
docs/zh_CN/Tutorial/NniOnWindows.md
docs/zh_CN/Tutorial/NniOnWindows.md
+0
-0
docs/zh_CN/Tutorial/Nnictl.md
docs/zh_CN/Tutorial/Nnictl.md
+27
-18
docs/zh_CN/Tutorial/QuickStart.md
docs/zh_CN/Tutorial/QuickStart.md
+26
-27
docs/zh_CN/Tutorial/SearchSpaceSpec.md
docs/zh_CN/Tutorial/SearchSpaceSpec.md
+11
-12
docs/zh_CN/Tutorial/SetupNniDeveloperEnvironment.md
docs/zh_CN/Tutorial/SetupNniDeveloperEnvironment.md
+2
-2
docs/zh_CN/Tutorial/WebUI.md
docs/zh_CN/Tutorial/WebUI.md
+100
-0
docs/zh_CN/Tutorials.rst
docs/zh_CN/Tutorials.rst
+0
-16
docs/zh_CN/WebUI.md
docs/zh_CN/WebUI.md
+0
-78
docs/zh_CN/advanced.rst
docs/zh_CN/advanced.rst
+3
-3
docs/zh_CN/assessors.rst
docs/zh_CN/assessors.rst
+2
-2
docs/zh_CN/builtin_assessor.rst
docs/zh_CN/builtin_assessor.rst
+3
-3
No files found.
docs/zh_CN/NetworkmorphismTuner.md
→
docs/zh_CN/
Tuner/
NetworkmorphismTuner.md
View file @
9b154484
File moved
docs/zh_CN/SmacTuner.md
→
docs/zh_CN/
Tuner/
SmacTuner.md
View file @
9b154484
...
@@ -4,4 +4,4 @@
...
@@ -4,4 +4,4 @@
[
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
)
来支持。
[
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 只支持部分类型的
[
搜索空间
](
SearchSpaceSpec.md
)
,包括
`choice`
,
`randint`
,
`uniform`
,
`loguniform`
,
`quniform(q=1)`
。
NNI 中的 SMAC 只支持部分类型的
[
搜索空间
](
../Tutorial/SearchSpaceSpec.md
)
,包括
`choice`
,
`randint`
,
`uniform`
,
`loguniform`
,
`quniform(q=1)`
。
\ No newline at end of file
\ No newline at end of file
docs/zh_CN/AnnotationSpec.md
→
docs/zh_CN/
Tutorial/
AnnotationSpec.md
View file @
9b154484
...
@@ -36,9 +36,9 @@ NNI 支持如下 10 种类型来表示搜索空间:
...
@@ -36,9 +36,9 @@ NNI 支持如下 10 种类型来表示搜索空间:
-
`@nni.variable(nni.choice(option1,option2,...,optionN),name=variable)`
变量值是选项中的一种,这些变量可以是任意的表达式。
-
`@nni.variable(nni.choice(option1,option2,...,optionN),name=variable)`
变量值是选项中的一种,这些变量可以是任意的表达式。
-
`@nni.variable(nni.randint(lower, upper),name=variable)`
变量值的公式为:round(uniform(low, high))。 目前,值的类型为 float。 如果要使用整数,需要显式转换。
-
`@nni.variable(nni.randint(lower, upper),name=variable)`
变量值的公式为:round(uniform(low, high))。 目前,值的类型为 float。 如果要使用整数,需要显式转换。
-
`@nni.variable(nni.uniform(low, high),name=variable)`
变量值会是 low 和 high 之间均匀分布的某个值。
-
`@nni.variable(nni.uniform(low, high),name=variable)`
变量值会是 low 和 high 之间均匀分布的某个值。
-
`@nni.variable(nni.quniform(low, high, q),name=variable)`
变量值
会是 low 和 high 之间均匀分布的某个值,公式为:
round(uniform(low, high) / q)
*
q
-
`@nni.variable(nni.quniform(low, high, q),name=variable)`
变量值
为 clip(
round(uniform(low, high) / q)
*
q
, low, high),clip 操作用于约束生成值的边界。
-
`@nni.variable(nni.loguniform(low, high),name=variable)`
变量值是 exp(uniform(low, high)) 的点,数值以对数均匀分布。
-
`@nni.variable(nni.loguniform(low, high),name=variable)`
变量值是 exp(uniform(low, high)) 的点,数值以对数均匀分布。
-
`@nni.variable(nni.qloguniform(low, high, q),name=variable)`
变量值
会是 low 和 high 之间均匀分布的某个值,公式为:
round(
exp(
uniform(low, high)
)
/ q)
*
q
-
`@nni.variable(nni.qloguniform(low, high, q),name=variable)`
变量值
为 clip(
round(
log
uniform(low, high) / q)
*
q
, low, high),clip 操作用于约束生成值的边界。
-
`@nni.variable(nni.normal(mu, sigma),name=variable)`
变量值为正态分布的实数值,平均值为 mu,标准方差为 sigma。
-
`@nni.variable(nni.normal(mu, sigma),name=variable)`
变量值为正态分布的实数值,平均值为 mu,标准方差为 sigma。
-
`@nni.variable(nni.qnormal(mu, sigma, q),name=variable)`
变量值分布的公式为: round(normal(mu, sigma) / q)
*
q
-
`@nni.variable(nni.qnormal(mu, sigma, q),name=variable)`
变量值分布的公式为: round(normal(mu, sigma) / q)
*
q
-
`@nni.variable(nni.lognormal(mu, sigma),name=variable)`
变量值分布的公式为: exp(normal(mu, sigma))
-
`@nni.variable(nni.lognormal(mu, sigma),name=variable)`
变量值分布的公式为: exp(normal(mu, sigma))
...
@@ -73,10 +73,10 @@ h_pooling = max_pool(hidden_layer, pool_size)
...
@@ -73,10 +73,10 @@ h_pooling = max_pool(hidden_layer, pool_size)
`'''@nni.report_intermediate_result(metrics)'''`
`'''@nni.report_intermediate_result(metrics)'''`
`@nni.report_intermediate_result`
用来返回中间结果,这和
<
Trials.md
>
中
的
`nni.report_intermediate_result`
用法一样。
`@nni.report_intermediate_result`
用来返回中间结果,这和
[
在 NNI 上实现 Trial
](
../TrialExample/
Trials.md
)
中
`nni.report_intermediate_result`
的
用法一样。
### 4. 最终结果
### 4. 最终结果
`'''@nni.report_final_result(metrics)'''`
`'''@nni.report_final_result(metrics)'''`
`@nni.report_final_result`
用来返回当前 Trial 的最终结果,这和
<Trials.md>
中的
`nni.report_final_result`
用法一样。
`@nni.report_final_result`
用来返回当前 Trial 的最终结果,这和
[
在 NNI 上实现 Trial
](
../TrialExample/Trials.md
)
中的
`nni.report_final_result`
用法一样。
\ No newline at end of file
\ No newline at end of file
docs/zh_CN/Contributing.md
→
docs/zh_CN/
Tutorial/
Contributing.md
View file @
9b154484
...
@@ -6,7 +6,7 @@
...
@@ -6,7 +6,7 @@
不管怎样,如果想要更有效的贡献代码,可以阅读以下内容。 本文档包括了所有在贡献中需要注意的要点,会加快合并代码、解决问题的速度。
不管怎样,如果想要更有效的贡献代码,可以阅读以下内容。 本文档包括了所有在贡献中需要注意的要点,会加快合并代码、解决问题的速度。
查看
[
快速入门
](
./
QuickStart.md
)
来初步了解。
查看
[
快速入门
](
QuickStart.md
)
来初步了解。
下面是一些简单的贡献指南。
下面是一些简单的贡献指南。
...
...
docs/zh_CN/ExperimentConfig.md
→
docs/zh_CN/
Tutorial/
ExperimentConfig.md
View file @
9b154484
...
@@ -14,32 +14,36 @@
...
@@ -14,32 +14,36 @@
-
**简化版(不包含 Annotation(标记)和 Assessor)**
-
**简化版(不包含 Annotation(标记)和 Assessor)**
```
yaml
```
yaml
authorName
:
authorName
:
experimentName
:
experimentName
:
trialConcurrency
:
trialConcurrency
:
maxExecDuration
:
maxExecDuration
:
maxTrialNum
:
maxTrialNum
:
#可选项: local, remote, pai, kubeflow
#可选项: local, remote, pai, kubeflow
trainingServicePlatform
:
trainingServicePlatform
:
searchSpacePath
:
searchSpacePath
:
#可选项: true, false
#可选项: true, false, 默认值: false
useAnnotation
:
useAnnotation
:
#可选项: true, false, 默认值: false
multiPhase
:
#可选项: true, false, 默认值: false
multiThread
:
tuner
:
tuner
:
#可选项: TPE, Random, Anneal, Evolution
#可选项: TPE, Random, Anneal, Evolution
builtinTunerName
:
builtinTunerName
:
classArgs
:
classArgs
:
#可选项: maximize, minimize
#可选项: maximize, minimize
optimize_mode
:
optimize_mode
:
gpuNum
:
gpuNum
:
trial
:
trial
:
command
:
command
:
codeDir
:
codeDir
:
gpuNum
:
gpuNum
:
#在本地使用时,machineList 可为空
#在本地使用时,machineList 可为空
machineList
:
machineList
:
-
ip
:
-
ip
:
port
:
port
:
username
:
username
:
passwd
:
passwd
:
```
```
...
@@ -54,8 +58,12 @@ maxTrialNum:
...
@@ -54,8 +58,12 @@ maxTrialNum:
#可选项: local, remote, pai, kubeflow
#可选项: local, remote, pai, kubeflow
trainingServicePlatform
:
trainingServicePlatform
:
searchSpacePath
:
searchSpacePath
:
#可选项: true, false
#可选项: true, false, 默认值: false
useAnnotation
:
useAnnotation
:
#可选项: true, false, 默认值: false
multiPhase
:
#可选项: true, false, 默认值: false
multiThread
:
tuner
:
tuner
:
#可选项: TPE, Random, Anneal, Evolution
#可选项: TPE, Random, Anneal, Evolution
builtinTunerName
:
builtinTunerName
:
...
@@ -92,8 +100,12 @@ maxExecDuration:
...
@@ -92,8 +100,12 @@ maxExecDuration:
maxTrialNum
:
maxTrialNum
:
#可选项: local, remote, pai, kubeflow
#可选项: local, remote, pai, kubeflow
trainingServicePlatform
:
trainingServicePlatform
:
#可选项: true, false
#可选项: true, false, 默认值: false
useAnnotation
:
useAnnotation
:
#可选项: true, false, 默认值: false
multiPhase
:
#可选项: true, false, 默认值: false
multiThread
:
tuner
:
tuner
:
#可选项: TPE, Random, Anneal, Evolution
#可选项: TPE, Random, Anneal, Evolution
builtinTunerName
:
builtinTunerName
:
...
@@ -184,9 +196,9 @@ machineList:
...
@@ -184,9 +196,9 @@ machineList:
-
**remote**
将任务提交到远程的 Ubuntu 上,必须用
**machineList**
来指定远程的 SSH 连接信息。
-
**remote**
将任务提交到远程的 Ubuntu 上,必须用
**machineList**
来指定远程的 SSH 连接信息。
-
**pai**
提交任务到微软开源的
[
OpenPAI
](
https://github.com/Microsoft/pai
)
上。 更多 OpenPAI 配置,参考
[
pai 模式
](
./PaiMode.md
)
。
-
**pai**
提交任务到微软开源的
[
OpenPAI
](
https://github.com/Microsoft/pai
)
上。 更多 OpenPAI 配置,参考
[
pai 模式
](
.
./TrainingService
/PaiMode.md
)
。
-
**kubeflow**
提交任务至
[
Kubeflow
](
https://www.kubeflow.org/docs/about/kubeflow/
)
。 NNI 支持基于 Kubeflow 的 Kubenetes,以及
[
Azure Kubernetes
](
https://azure.microsoft.com/en-us/services/kubernetes-service/
)
。
-
**kubeflow**
提交任务至
[
Kubeflow
](
https://www.kubeflow.org/docs/about/kubeflow/
)
。 NNI 支持基于 Kubeflow 的 Kubenetes,以及
[
Azure Kubernetes
](
https://azure.microsoft.com/en-us/services/kubernetes-service/
)
。
详情参考
[
Kubeflow 文档
](
../TrainingService/KubeflowMode.md
)
-
**searchSpacePath**
-
**searchSpacePath**
...
@@ -204,6 +216,18 @@ machineList:
...
@@ -204,6 +216,18 @@ machineList:
注意: 如果设置了 useAnnotation=True,searchSpacePath 字段必须被删除。
注意: 如果设置了 useAnnotation=True,searchSpacePath 字段必须被删除。
-
**multiPhase**
-
说明
**multiPhase**
启用
[
多阶段 Experiment
](
../AdvancedFeature/MultiPhase.md
)
。
-
**multiThread**
-
说明
**multiThread**
如果 multiThread 设为
`true`
,可启动 Dispatcher 的多线程模式。Dispatcher 会为来自 NNI 管理器的每个命令启动一个线程。
-
**nniManagerIp**
-
**nniManagerIp**
-
说明
-
说明
...
@@ -266,7 +290,7 @@ machineList:
...
@@ -266,7 +290,7 @@ machineList:
-
**gpuNum**
-
**gpuNum**
__gpuNum__ 指定了运行 Tuner 进程的 GPU 数量。 此字段的值必须是正整数。
__gpuNum__ 指定了运行 Tuner 进程的 GPU 数量。 此字段的值必须是正整数。
如果此字段没有设置,NNI不会在脚本中添加
`CUDA_VISIBLE_DEVICES`
(也就是说,不会通过
`CUDA_VISIBLE_DEVICES`
来控制 GPU 在 Trial 中是否可见),也不会管理 GPU 资源。
注意: 只能使用一种方法来指定 Tuner,例如:设置 {tunerName, optimizationMode} 或 {tunerCommand, tunerCwd},不能同时设置两者。
注意: 只能使用一种方法来指定 Tuner,例如:设置 {tunerName, optimizationMode} 或 {tunerCommand, tunerCwd},不能同时设置两者。
...
@@ -290,7 +314,7 @@ machineList:
...
@@ -290,7 +314,7 @@ machineList:
-
**classArgs**
-
**classArgs**
**classArgs**
指定了 Assessor 算法的参数
**classArgs**
指定了 Assessor 算法的参数
。
-
**codeDir**
,
**classFileName**
,
**className**
和
**classArgs**
-
**codeDir**
,
**classFileName**
,
**className**
和
**classArgs**
...
...
docs/zh_CN/FAQ.md
→
docs/zh_CN/
Tutorial/
FAQ.md
View file @
9b154484
File moved
docs/zh_CN/HowToDebug.md
→
docs/zh_CN/
Tutorial/
HowToDebug.md
View file @
9b154484
...
@@ -2,14 +2,14 @@
...
@@ -2,14 +2,14 @@
## 概述
## 概述
NNI 中的日志分为三部分。 包括 NNI Manager, Dispatcher 以及 Trial。 这里会简单介绍这些组件。 更多信息可参考
[
概述
](
Overview.md
)
。
NNI 中的日志分为三部分。 包括 NNI Manager, Dispatcher 以及 Trial。 这里会简单介绍这些组件。 更多信息可参考
[
概述
](
../
Overview.md
)
。
-
**NNI Controller**
:NNI Controller (nnictl) 是命令行工具,用来管理 Experiments(如:启动 Experiment)。
-
**NNI Controller**
:NNI Controller (nnictl) 是命令行工具,用来管理 Experiments(如:启动 Experiment)。
-
**NNI Manager**
:这是 NNI 的核心。当 Experiment 出现严重错误时,从它的日志中才能找到原因。(例如,Web 界面无法打开,或者训练
服务
失败)
-
**NNI Manager**
:这是 NNI 的核心。当 Experiment 出现严重错误时,从它的日志中才能找到原因。(例如,Web 界面无法打开,或者训练
平台
失败)
-
**Dispatcher**
: Dispatcher 调用
**Tuner**
和
**Assessor**
的方法。 它的日志与 Tuner 和 Assessor 代码有关。
-
**Dispatcher**
: Dispatcher 调用
**Tuner**
和
**Assessor**
的方法。 它的日志与 Tuner 和 Assessor 代码有关。
-
**Tuner**
: Tuner 是一个自动机器学习算法,会为下一个 Trial 生成新的配置。 新的 Trial 会使用这组配置来运行。
-
**Tuner**
: Tuner 是一个自动机器学习算法,会为下一个 Trial 生成新的配置。 新的 Trial 会使用这组配置来运行。
-
**Assessor**
:Assessor 分析 Trial 的中间结果(例如,测试数据集上定期的精度),来确定 Trial 是否应该被提前终止。
-
**Assessor**
:Assessor 分析 Trial 的中间结果(例如,测试数据集上定期的精度),来确定 Trial 是否应该被提前终止。
-
**Trial**
:Trial 的代码是用户
编写
的代码,每次 Trial 运行时会尝试一组新的配置(例如,一组新的超参值,或者某个神经网络结构)。
-
**Trial**
:Trial 的代码是用户
实现
的代码,每次 Trial 运行时会尝试一组新的配置(例如,一组新的超参值,或者某个神经网络结构)。
## 日志的位置
## 日志的位置
...
@@ -53,7 +53,7 @@ NNI 中有不同的错误类型。 根据严重程度,可分为三类。 当 N
...
@@ -53,7 +53,7 @@ NNI 中有不同的错误类型。 根据严重程度,可分为三类。 当 N
以后一种情况为例。 某自定义的 Tuner,
*\_init*
\_
函数有名为
`optimize_mode`
的参数,但配置文件中没有提供此参数。NNI 就会因为初始化 Tuner 失败而造成 Experiment 失败。 可在 Web 界面看到如下错误:
以后一种情况为例。 某自定义的 Tuner,
*\_init*
\_
函数有名为
`optimize_mode`
的参数,但配置文件中没有提供此参数。NNI 就会因为初始化 Tuner 失败而造成 Experiment 失败。 可在 Web 界面看到如下错误:


可以看到这是一个 Dispatcher 的错误。 因此,检查 Dispatcher 的日志,可找到如下信息:
可以看到这是一个 Dispatcher 的错误。 因此,检查 Dispatcher 的日志,可找到如下信息:
...
@@ -77,6 +77,6 @@ NNI 中有不同的错误类型。 根据严重程度,可分为三类。 当 N
...
@@ -77,6 +77,6 @@ NNI 中有不同的错误类型。 根据严重程度,可分为三类。 当 N
如,其中常见的一种错误是在运行 MNIST 示例时没有安装 TensorFlow。 因为导入模块的错误(没有安装 Tensorflow,但在 Trial 代码中有 import tensorflow 的语句),每次 Trial 都会运行失败。
如,其中常见的一种错误是在运行 MNIST 示例时没有安装 TensorFlow。 因为导入模块的错误(没有安装 Tensorflow,但在 Trial 代码中有 import tensorflow 的语句),每次 Trial 都会运行失败。


如图,每个 Trial 都有日志路径,可以从中找到 Trial 的日志和 stderr。
如图,每个 Trial 都有日志路径,可以从中找到 Trial 的日志和 stderr。
\ No newline at end of file
docs/zh_CN/HowToUseDocker.md
→
docs/zh_CN/
Tutorial/
HowToUseDocker.md
View file @
9b154484
...
@@ -51,7 +51,7 @@
...
@@ -51,7 +51,7 @@
## 在远程平台上运行docker
## 在远程平台上运行docker
NNI支持在
[
远程平台
](
RemoteMachineMode.md
)
上启动实验,在远程机器里运行任务。 因为docker可以运行独立的Ubuntu系统和SSH服务,因此docker容器可以作为远程平台来运行NNI.
NNI支持在
[
远程平台
](
../TrainingService/
RemoteMachineMode.md
)
上启动实验,在远程机器里运行任务。 因为docker可以运行独立的Ubuntu系统和SSH服务,因此docker容器可以作为远程平台来运行NNI.
### 步骤1:设置docker环境
### 步骤1:设置docker环境
...
@@ -82,7 +82,7 @@ SSH容器需要一个端口,你需要把docker的SSH服务端口暴露给NNI
...
@@ -82,7 +82,7 @@ SSH容器需要一个端口,你需要把docker的SSH服务端口暴露给NNI
### 步骤三:运行NNI实验
### 步骤三:运行NNI实验
你可以在你的配置文件中,设置训练平台为远程平台,然后设置
`machineList`
配置。
[
参考
](
RemoteMachineMode.md
)
。 注意你应该设置正确的
`port`
,
`username`
,
`passwd`
或者
`sshKeyPath`
。
你可以在你的配置文件中,设置训练平台为远程平台,然后设置
`machineList`
配置。
[
参考
](
../TrainingService/
RemoteMachineMode.md
)
。 注意你应该设置正确的
`port`
,
`username`
,
`passwd`
或者
`sshKeyPath`
。
`port`
: 主机的端口,映射到docker的SSH端口中。
`port`
: 主机的端口,映射到docker的SSH端口中。
...
...
docs/zh_CN/Installation.md
→
docs/zh_CN/
Tutorial/
Installation.md
View file @
9b154484
...
@@ -88,13 +88,13 @@
...
@@ -88,13 +88,13 @@
## 更多
## 更多
*
[
概述
](
Overview.md
)
*
[
概述
](
../
Overview.md
)
*
[
使用命令行工具 nnictl
](
Nnictl.md
)
*
[
使用命令行工具 nnictl
](
Nnictl.md
)
*
[
使用 NNIBoard
](
WebUI.md
)
*
[
使用 NNIBoard
](
WebUI.md
)
*
[
定制搜索空间
](
SearchSpaceSpec.md
)
*
[
定制搜索空间
](
SearchSpaceSpec.md
)
*
[
配置 Experiment
](
ExperimentConfig.md
)
*
[
配置 Experiment
](
ExperimentConfig.md
)
*
[
如何在本机运行 Experiment (支持多 GPU 卡)?
](
LocalMode.md
)
*
[
如何在本机运行 Experiment (支持多 GPU 卡)?
](
../TrainingService/LocalMode.md
)
*
[
如何在多机上运行 Experiment?
](
RemoteMachineMode.md
)
*
[
如何在多机上运行 Experiment?
](
../TrainingService/RemoteMachineMode.md
)
*
[
如何在 OpenPAI 上运行 Experiment?
](
PaiMode.md
)
*
[
如何在 OpenPAI 上运行 Experiment?
](
../TrainingService/PaiMode.md
)
*
[
如何通过 Kubeflow 在 Kubernetes 上运行 Experiment?
](
KubeflowMode.md
)
*
[
如何通过 Kubeflow 在 Kubernetes 上运行 Experiment?
](
../TrainingService/KubeflowMode.md
)
*
[
如何通过 FrameworkController 在 Kubernetes 上运行 Experiment?
](
FrameworkControllerMode.md
)
*
[
如何通过 FrameworkController 在 Kubernetes 上运行 Experiment?
](
../TrainingService/FrameworkControllerMode.md
)
\ No newline at end of file
\ No newline at end of file
docs/zh_CN/NniOnWindows.md
→
docs/zh_CN/
Tutorial/
NniOnWindows.md
View file @
9b154484
File moved
docs/zh_CN/Nnictl.md
→
docs/zh_CN/
Tutorial/
Nnictl.md
View file @
9b154484
...
@@ -112,17 +112,17 @@ nnictl 支持的命令:
...
@@ -112,17 +112,17 @@ nnictl 支持的命令:
使用此命令来停止正在运行的单个或多个 Experiment。
使用此命令来停止正在运行的单个或多个 Experiment。
*
用法
*
用法
```
bash
```
bash
nnictl stop
[
O
PTIONS
]
nnictl stop
[
O
ptions
]
```
```
*
选项
*
选项
| 参数及缩写
| 是否必需 | 默认值 | 说明 |
| 参数及缩写 | 是否必需 | 默认值 | 说明 |
| ----------
-
| ----- | --- | -------------------------------- |
| ---------- | ----- | --- | -------------------------------- |
| id
|
否
| | 要停止的 Experiment 标识 |
| id |
False
| | 要停止的 Experiment 标识 |
| --port, -p
|
否
| | 要停止的 Experiment 使用的 RESTful 服务端口 |
| --port, -p |
False
| | 要停止的 Experiment 使用的 RESTful 服务端口 |
*
详细信息及样例
*
详细信息及样例
...
@@ -138,13 +138,15 @@ nnictl 支持的命令:
...
@@ -138,13 +138,15 @@ nnictl 支持的命令:
```
bash
```
bash
nnictl stop
[
experiment_id]
nnictl stop
[
experiment_id]
```
```
3.
如果指定了端口,并且有运行中的 Experiment 正在使用该端口,那么这个 Experiment 将会停止。
3.
如果指定了端口,并且此端口有正在运行的 Experiment,则会停止此 Experiment。
```
bash
```
bash
nnictl stop
--port
8080
nnictl stop
--port
8080
````
```
4.
可使用 'nnictl stop all' 来停止所有的 Experiment。
4.
可使用 'nnictl stop all' 来停止所有的 Experiment。
```
bash
```
bash
...
@@ -386,8 +388,14 @@ nnictl 支持的命令:
...
@@ -386,8 +388,14 @@ nnictl 支持的命令:
*
用法
*
用法
```
bash
```
bash
nnictl experiment list
nnictl experiment list
[
OPTIONS]
```
```
*
选项
| 参数及缩写 | 是否必需 | 默认值 | 说明 |
| ----- | ----- | --- | --------------- |
| --all | False | | 列出所有 Experiment |
*
**nnictl experiment delete**
*
**nnictl experiment delete**
...
@@ -403,9 +411,10 @@ nnictl 支持的命令:
...
@@ -403,9 +411,10 @@ nnictl 支持的命令:
*
选项
*
选项
| 参数及缩写 | 是否必需 | 默认值 | 说明 |
| 参数及缩写 | 是否必需 | 默认值 | 说明 |
| ----- | ----- | --- | ------------- |
| ----- | ----- | --- | --------------- |
| id | False | | Experiment ID |
| id | False | | Experiment ID |
| --all | False | | 删除所有 Experiment |
<a
name=
"export"
></a>
<a
name=
"export"
></a>
...
@@ -474,7 +483,7 @@ nnictl 支持的命令:
...
@@ -474,7 +483,7 @@ nnictl 支持的命令:
当前,以下 Tuner 和 Advisor 支持导入数据:
当前,以下 Tuner 和 Advisor 支持导入数据:
```
yml
```
y
a
ml
内置 Tuner
:
TPE, Anneal, GridSearch, MetisTuner
内置 Tuner
:
TPE, Anneal, GridSearch, MetisTuner
内置 Advisor
:
BOHB
内置 Advisor
:
BOHB
```
```
...
@@ -716,4 +725,4 @@ nnictl 支持的命令:
...
@@ -716,4 +725,4 @@ nnictl 支持的命令:
```
bash
```
bash
nnictl
--version
nnictl
--version
```
```
\ No newline at end of file
docs/zh_CN/QuickStart.md
→
docs/zh_CN/
Tutorial/
QuickStart.md
View file @
9b154484
...
@@ -54,18 +54,17 @@ if __name__ == '__main__':
...
@@ -54,18 +54,17 @@ if __name__ == '__main__':
NNI 用来帮助超参调优。它的流程如下:
NNI 用来帮助超参调优。它的流程如下:
```
pseudo
输入: 搜索空间, Trial 代码, 配置文件
输入: 搜索空间, Trial 代码, 配置文件
输出: 一组最佳的超参配置
输出: 一组最佳的超参配置
1: For t = 0, 1, 2, ..., maxTrialNum,
1: For t = 0, 1, 2, ..., maxTrialNum,
2: hyperparameter = 从搜索空间选择一组参数
2: hyperparameter = 从搜索空间选择一组参数
3: final result = run_trial_and_evaluate(hyperparameter)
3: final result = run_trial_and_evaluate(hyperparameter)
4: 返回最终结果给 NNI
4: 返回最终结果给 NNI
5: If 时间达到上限,
5: If 时间达到上限,
6: 停止实验
6: 停止实验
7: return 最好的实验结果
7: return 最好的实验结果
```
如果需要使用 NNI 来自动训练模型,找到最佳超参,需要如下三步:
如果需要使用 NNI 来自动训练模型,找到最佳超参,需要如下三步:
...
@@ -208,28 +207,28 @@ Web 地址为:[IP 地址]:8080
...
@@ -208,28 +207,28 @@ Web 地址为:[IP 地址]:8080
Experiment 相关信息会显示在界面上,配置和搜索空间等。 可通过
**Download**
按钮来
`下载信息和参数`
。 可以在运行中或结束后,随时下载 Experiment 的结果。
Experiment 相关信息会显示在界面上,配置和搜索空间等。 可通过
**Download**
按钮来
`下载信息和参数`
。 可以在运行中或结束后,随时下载 Experiment 的结果。


前 10 个 Trial 结果也会列在 Overview 页面中,可以在 "Trials Detail" 部分浏览所有的 Trial。
前 10 个 Trial 结果也会列在 Overview 页面中,可以在 "Trials Detail" 部分浏览所有的 Trial。


#### 查看 Trial 详情页面
#### 查看 Trial 详情页面
点击 "Default Metric" 来查看所有 Trial 的点图。 悬停鼠标来查看默认指标和搜索空间信息。
点击 "Default Metric" 来查看所有 Trial 的点图。 悬停鼠标来查看默认指标和搜索空间信息。


点击 "Hyper Parameter" 标签查看图像。
点击 "Hyper Parameter" 标签查看图像。
*
可选择百分比查看最好的 Trial。
*
可选择百分比查看最好的 Trial。
*
选择两个轴来交换位置。
*
选择两个轴来交换位置。


点击 "Trial Duration" 标签来查看柱状图。
点击 "Trial Duration" 标签来查看柱状图。


下面是所有 Trial 的状态。 包括:
下面是所有 Trial 的状态。 包括:
...
@@ -238,20 +237,20 @@ Experiment 相关信息会显示在界面上,配置和搜索空间等。 可
...
@@ -238,20 +237,20 @@ Experiment 相关信息会显示在界面上,配置和搜索空间等。 可
*
Kill: 可终止正在运行的任务。
*
Kill: 可终止正在运行的任务。
*
支持搜索某个特定的 Trial。
*
支持搜索某个特定的 Trial。


*
中间结果图
*
中间结果图


## 相关主题
## 相关主题
*
[
尝试不同的 Tuner
](
BuiltinTuner.md
)
*
[
尝试不同的 Tuner
](
../Tuner/
BuiltinTuner.md
)
*
[
尝试不同的 Assessor
](
BuiltinAssessor
s
.md
)
*
[
尝试不同的 Assessor
](
../Assessor/
BuiltinAssessor.md
)
*
[
使用命令行工具 nnictl
](
Nnictl.md
)
*
[
使用命令行工具 nnictl
](
Nnictl.md
)
*
[
如何编写 Trial 代码
](
Trials.md
)
*
[
如何实现 Trial 代码
](
../TrialExample/Trials.md
)
*
[
如何在本机运行 Experiment (支持多 GPU 卡)?
](
LocalMode.md
)
*
[
如何在本机运行 Experiment (支持多 GPU 卡)?
](
../TrainingService/LocalMode.md
)
*
[
如何在多机上运行 Experiment?
](
RemoteMachineMode.md
)
*
[
如何在多机上运行 Experiment?
](
../TrainingService/RemoteMachineMode.md
)
*
[
如何在 OpenPAI 上运行 Experiment?
](
PaiMode.md
)
*
[
如何在 OpenPAI 上运行 Experiment?
](
../TrainingService/PaiMode.md
)
*
[
如何通过 Kubeflow 在 Kubernetes 上运行 Experiment?
](
KubeflowMode.md
)
*
[
如何通过 Kubeflow 在 Kubernetes 上运行 Experiment?
](
../TrainingService/KubeflowMode.md
)
*
[
如何通过 FrameworkController 在 Kubernetes 上运行 Experiment?
](
FrameworkControllerMode.md
)
*
[
如何通过 FrameworkController 在 Kubernetes 上运行 Experiment?
](
../TrainingService/FrameworkControllerMode.md
)
\ No newline at end of file
\ No newline at end of file
docs/zh_CN/SearchSpaceSpec.md
→
docs/zh_CN/
Tutorial/
SearchSpaceSpec.md
View file @
9b154484
...
@@ -47,7 +47,8 @@
...
@@ -47,7 +47,8 @@
*
{"_type":"quniform","_value":[low, high, q]}
*
{"_type":"quniform","_value":[low, high, q]}
*
这表示变量值会类似于 round(uniform(low, high) / q)
*
q
*
变量值为 clip(round(uniform(low, high) / q)
*
q, low, high),clip 操作用于约束生成值的边界。 例如,_value 为 [0, 10, 2.5],可取的值为 [0, 2.5, 5.0, 7.5, 10.0]; _value 为 [2, 10, 5],可取的值为 [2, 5, 10]。
*
适用于离散,同时反映了某种"平滑"的数值,但上下限都有限制。 如果需要从范围 [low, high] 中均匀选择整数,可以如下定义
`_value`
:
`[low, high, 1]`
。
*
适用于离散,同时反映了某种"平滑"的数值,但上下限都有限制。 如果需要从范围 [low, high] 中均匀选择整数,可以如下定义
`_value`
:
`[low, high, 1]`
。
*
{"_type":"loguniform","_value":[low, high]}
*
{"_type":"loguniform","_value":[low, high]}
...
@@ -57,7 +58,7 @@
...
@@ -57,7 +58,7 @@
*
{"_type":"qloguniform","_value":[low, high, q]}
*
{"_type":"qloguniform","_value":[low, high, q]}
*
这表示变量值会类似于
round(loguniform(low, high)
)
/ q)
*
q
*
变量值为 clip(
round(loguniform(low, high) / q)
*
q
, low, high),clip 操作用于约束生成值的边界。
*
适用于值是“平滑”的离散变量,但上下限均有限制。
*
适用于值是“平滑”的离散变量,但上下限均有限制。
*
{"_type":"normal","_value":[mu, sigma]}
*
{"_type":"normal","_value":[mu, sigma]}
...
@@ -78,6 +79,12 @@
...
@@ -78,6 +79,12 @@
*
这表示变量值会类似于 round(exp(normal(mu, sigma)) / q)
*
q
*
这表示变量值会类似于 round(exp(normal(mu, sigma)) / q)
*
q
*
适用于值是“平滑”的离散变量,但某一边有界。
*
适用于值是“平滑”的离散变量,但某一边有界。
*
{"_type":"mutable_layer","_value":{mutable_layer_infomation}}
*
[
神经网络架构搜索空间
](
../AdvancedFeature/GeneralNasInterfaces.md
)
的类型。 值是字典类型,键值对表示每个 mutable_layer 的名称和搜索空间。
*
当前,只能通过 Annotation 来使用这种类型的搜索空间。因此不需要为搜索空间定义 JSON 文件,它会通过 Trial 中的 Annotation 自动生成。
*
具体用法参考
[
通用 NAS 接口
](
../AdvancedFeature/GeneralNasInterfaces.md
)
。
## 每种 Tuner 支持的搜索空间类型
## 每种 Tuner 支持的搜索空间类型
| | choice | randint | uniform | quniform | loguniform | qloguniform | normal | qnormal | lognormal | qlognormal |
| | choice | randint | uniform | quniform | loguniform | qloguniform | normal | qnormal | lognormal | qlognormal |
...
@@ -88,24 +95,16 @@
...
@@ -88,24 +95,16 @@
| Evolution Tuner |
✓
|
✓
|
✓
|
✓
|
✓
|
✓
|
✓
|
✓
|
✓
|
✓
|
| Evolution Tuner |
✓
|
✓
|
✓
|
✓
|
✓
|
✓
|
✓
|
✓
|
✓
|
✓
|
| SMAC Tuner |
✓
|
✓
|
✓
|
✓
|
✓
| | | | | |
| SMAC Tuner |
✓
|
✓
|
✓
|
✓
|
✓
| | | | | |
| Batch Tuner |
✓
| | | | | | | | | |
| Batch Tuner |
✓
| | | | | | | | | |
| Grid Search Tuner |
✓
|
| |
✓
| |
✓
| | | | |
| Grid Search Tuner |
✓
|
✓
| |
✓
| |
| | | | |
| Hyperband Advisor |
✓
|
✓
|
✓
|
✓
|
✓
|
✓
|
✓
|
✓
|
✓
|
✓
|
| Hyperband Advisor |
✓
|
✓
|
✓
|
✓
|
✓
|
✓
|
✓
|
✓
|
✓
|
✓
|
| Metis Tuner |
✓
|
✓
|
✓
|
✓
| | | | | | |
| Metis Tuner |
✓
|
✓
|
✓
|
✓
| | | | | | |
| GP Tuner |
✓
|
✓
|
✓
|
✓
|
✓
|
✓
| | | | |
| GP Tuner |
✓
|
✓
|
✓
|
✓
|
✓
|
✓
| | | | |
已知的局限:
已知的局限:
*
注意,在 Grid Search Tuner 中,为了使用方便
`quniform`
和
`qloguniform`
的定义也有所改变,其中的 q 表示采样值的数量。 详情如下:
*
类型 'quniform' 接收三个值 [low, high, q], 其中 [low, high] 指定了范围,而 'q' 指定了会被均匀采样的值的数量。 注意 q 至少为 2。 它的第一个采样值为 'low',每个采样值都会比前一个大 (high-low)/q 。
*
类型 'qloguniform' 的行为与 'quniform' 类似,不同处在于首先将范围改为 [log(low), log(high)] 采样后,再将数值还原。
*
注意 Metis Tuner 当前仅支持在
`choice`
中使用数值。
*
注意 Metis Tuner 当前仅支持在
`choice`
中使用数值。
*
请注意,对于嵌套搜索空间:
*
请注意,对于嵌套搜索空间:
*
只有 随机搜索/TPE/Anneal/Evolution Tuner 支持嵌套搜索空间
*
只有 随机搜索/TPE/Anneal/Evolution Tuner 支持嵌套搜索空间
*
不支持嵌套搜索空间 "超参" 的可视化,对其的改进通过 #1110(https://github.com/microsoft/nni/issues/1110) 来跟踪 。欢迎任何建议和贡献。
*
不支持嵌套搜索空间 "超参" 并行图,对其的改进通过 #1110(https://github.com/microsoft/nni/issues/1110) 来跟踪 。欢迎任何建议和贡献。
\ No newline at end of file
\ No newline at end of file
docs/zh_CN/SetupNniDeveloperEnvironment.md
→
docs/zh_CN/
Tutorial/
SetupNniDeveloperEnvironment.md
View file @
9b154484
...
@@ -4,7 +4,7 @@
...
@@ -4,7 +4,7 @@
## 调试 NNI 源代码的最佳实践
## 调试 NNI 源代码的最佳实践
要调试 NNI 源代码,需要 Ubuntu 16.04 或更高版本系统的开发环境,并需要安装 Python 3
.x
以及 pip3,然后遵循以下步骤。
要调试 NNI 源代码,需要 Ubuntu 16.04 或更高版本系统的开发环境,并需要安装 Python 3 以及 pip
3,然后遵循以下步骤。
**1. 克隆源代码**
**1. 克隆源代码**
...
@@ -57,4 +57,4 @@ Trial 启动 Experiment 来检查环境。 例如,运行命令
...
@@ -57,4 +57,4 @@ Trial 启动 Experiment 来检查环境。 例如,运行命令
* * *
* * *
最后,希望一切顺利。 参考
[
贡献
](
./Contributing.md
)
文档,来了解更多创建拉取请求或问题的指南。
最后,希望一切顺利。 参考
[
贡献
](
Contributing.md
)
文档,来了解更多创建拉取请求或问题的指南。
\ No newline at end of file
\ No newline at end of file
docs/zh_CN/Tutorial/WebUI.md
0 → 100644
View file @
9b154484
# Web 界面
## 查看概要页面
点击标签 "Overview"。
*
查看 Experiment Trial 配置、搜索空间以及结果好的 Trial。


*
如果 Experiment 包含了较多 Trial,可改变刷新间隔。

*
支持查看并下载 Experiment 结果,以及 NNI Manager、Dispatcher 的日志文件。

*
如果 Experiment 状态为 ERROR,可点击图标,查看 Experiment 错误日志。


*
点击 "Feedback" 反馈问题。
## 查看任务默认指标
*
点击 "Default Metric" 来查看所有 Trial 的点图。 悬停鼠标来查看默认指标和搜索空间信息。

*
点击开关 "optimization curve" 来查看 Experiment 的优化曲线。

## 查看超参
点击 "Hyper Parameter" 标签查看图像。
*
可选择百分比查看最好的 Trial。
*
选择两个轴来交换位置。

## 查看 Trial 运行时间
点击 "Trial Duration" 标签来查看柱状图。

## 查看 Trial 中间结果
单击 "Intermediate Result" 标签查看折线图。

由于训练中可能有非常多的中间结果,因此中间结果图提供了过滤功能。 如果要使用过滤按钮查看部分 Trial,则需要提供数据。
第一个输入框应该填入什么? 可能会发现一个 Trial 的中间结果点变得更好或者更差。 换句话说,这可能是非常重要的中间结果点。 只需将其输入第一个输入框中。
选择了中间结果序号后,要输入需要了解的该中间结果序号的指标范围。 即其最小值和最大值。 如此图中,中间结果点为 9,指标范围为 60 至 80。
Trial 中指标范围在 20 至 60 的 13 个结果就被过滤掉了。

## 查看 Trial 状态
点击 "Trials Detail" 标签查看所有 Trial 的状态。 包括:
*
Trial 详情:Trial 的 id,持续时间,开始时间,结束时间,状态,精度和搜索空间。

*
"Add column" 按钮可选择在表格中显示的列。 如果 Experiment 的最终结果是 dict,则可以在表格中查看其它键。 可选择 "Intermediate count" 列来查看 Trial 进度。

*
如果要比较某些 Trial,可选择并点击 "Compare" 来查看结果。


*
支持通过 id,状态,Trial 编号, 以及参数来搜索。

*
可使用 "Copy as python" 按钮来拷贝 Trial 的参数。

*
如果在 OpenPAI 或 Kubeflow 平台上运行,还可以看到 hdfsLog。

*
中间结果图:可在此图中通过点击 operation 中的按钮来查看默认和其它键值。


*
Kill: 可终止正在运行的任务。


\ No newline at end of file
docs/zh_CN/Tutorials.rst
deleted
100644 → 0
View file @
22261192
######################
教程
######################
.. toctree::
:maxdepth: 2
安装<Installation>
实现 Trial<Trials>
Tuner<tuners>
Assessor<assessors>
Web 界面<WebUI>
训练平台<training_services>
如何使用 Docker <HowToUseDocker>
高级功能<advanced>
如何调试<HowToDebug>
\ No newline at end of file
docs/zh_CN/WebUI.md
deleted
100644 → 0
View file @
22261192
# Web 界面
## 查看概要页面
点击标签 "Overview"。
*
查看 Experiment 的配置和搜索空间内容。
*
支持下载 Experiment 结果。
*
支持导出 nni-manager 和 dispatcher 的日志文件。
*
如果有任何问题,可以点击 “Feedback” 告诉我们。
*
如果 Experiment 包含了超过 1000 个 Trial,可改变刷新间隔。

*
查看最好结果的 Trial。

## 查看任务默认指标
点击 "Default Metric" 来查看所有 Trial 的点图。 悬停鼠标来查看默认指标和搜索空间信息。

## 查看超参
点击 "Hyper Parameter" 标签查看图像。
*
可选择百分比查看最好的 Trial。
*
选择两个轴来交换位置。

## 查看 Trial 运行时间
点击 "Trial Duration" 标签来查看柱状图。

## 查看 Trial 中间结果
单击 "Intermediate Result" 标签查看折线图。

该图有筛选功能。 点击筛选按钮, 在第一个输入框中输入关注点的序号, 在第二个输入框中输入中间结果的范围,选出需要的数据。

## 查看 Trial 状态
点击 "Trials Detail" 标签查看所有 Trial 的状态。 特别是:
*
Trial 详情:Trial 的 id,持续时间,开始时间,结束时间,状态,精度和搜索空间。

*
"Add column" 按钮可选择在表格中显示的列。 如果 Experiment 的最终结果是 dict,则可以在表格中查看其它键。

*
如果要比较某些 Trial,可选择并点击 "Compare" 来查看结果。

*
可使用 "Copy as python" 按钮来拷贝 Trial 的参数。

*
如果在 OpenPAI 或 Kubeflow 平台上运行,还可以看到 hdfsLog。

*
Kill: 可终止正在运行的任务。
*
支持搜索某个特定的 Trial。
*
Intermediate Result Graph: 可看到图中默认和其它的键值。

\ No newline at end of file
docs/zh_CN/advanced.rst
View file @
9b154484
...
@@ -2,6 +2,6 @@
...
@@ -2,6 +2,6 @@
=====================
=====================
.. toctree::
.. toctree::
多阶段<MultiPhase>
多阶段<./AdvancedFeature/MultiPhase>
高级网络架构搜索<AdvancedNas>
高级网络架构搜索<./AdvancedFeature/AdvancedNas>
NAS 编程接口<GeneralNasInterfaces>
NAS 编程接口<./AdvancedFeature/GeneralNasInterfaces>
\ No newline at end of file
\ No newline at end of file
docs/zh_CN/assessors.rst
View file @
9b154484
...
@@ -15,5 +15,5 @@ Assessor 从 Trial 中接收中间结果,并通过指定的算法决定此 Tri
...
@@ -15,5 +15,5 @@ Assessor 从 Trial 中接收中间结果,并通过指定的算法决定此 Tri
.. toctree::
.. toctree::
:maxdepth: 2
:maxdepth: 2
内置 Assessor<
B
uiltin
A
ssessor>
内置 Assessor<
b
uiltin
_a
ssessor>
自定义 Assessor<CustomizeAssessor>
自定义 Assessor<
Assessor/
CustomizeAssessor>
docs/zh_CN/builtin_assessor.rst
View file @
9b154484
...
@@ -4,6 +4,6 @@
...
@@ -4,6 +4,6 @@
.. toctree::
.. toctree::
:maxdepth: 1
:maxdepth: 1
介绍<BuiltinAssessor>
概述<./Assessor/BuiltinAssessor>
Medianstop<MedianstopAssessor>
Medianstop<./Assessor/MedianstopAssessor>
Curvefitting<CurvefittingAssessor>
Curvefitting(曲线拟合)<./Assessor/CurvefittingAssessor>
\ No newline at end of file
\ No newline at end of file
Prev
1
2
3
4
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