From 796f0b6da7fe575455d6b6c37e3c0575ec1709a1 Mon Sep 17 00:00:00 2001
From: Chi Song <27178119+squirrelsc@users.noreply.github.com>
Date: Fri, 30 Aug 2019 12:50:41 +0800
Subject: [PATCH] Chinese translation (#1468)
New translations (Chinese Simplified) for v1.0
---
README_zh_CN.md | 124 +++++++++++++-----
.../AdvancedFeature/GeneralNasInterfaces.md | 12 +-
.../zh_CN/CommunitySharings/HpoComparision.md | 2 +-
docs/zh_CN/SupportedFramework_Library.md | 60 +++++++++
docs/zh_CN/TrainingService/LocalMode.md | 2 +-
docs/zh_CN/TrainingService/PaiMode.md | 2 +-
.../TrainingService/SupportTrainingService.md | 39 ++++++
docs/zh_CN/Tutorial/Nnictl.md | 5 +-
docs/zh_CN/Tutorial/SearchSpaceSpec.md | 51 ++++---
docs/zh_CN/Tutorial/WebUI.md | 10 +-
docs/zh_CN/conf.py | 2 +-
11 files changed, 233 insertions(+), 76 deletions(-)
create mode 100644 docs/zh_CN/SupportedFramework_Library.md
create mode 100644 docs/zh_CN/TrainingService/SupportTrainingService.md
diff --git a/README_zh_CN.md b/README_zh_CN.md
index ede61f51fd..05b1273666 100644
--- a/README_zh_CN.md
+++ b/README_zh_CN.md
@@ -19,8 +19,10 @@ NNI (Neural Network Intelligence) 是自动机器学习(AutoML)的工具包
+
+ |
- 支持的框架
+ 框架和库
|
@@ -34,26 +36,52 @@ NNI (Neural Network Intelligence) 是自动机器学习(AutoML)的工具包
|
+
+ 内置
+ |
+ - 支持的框架
- PyTorch
- - TensorFlow
- Keras
+ - TensorFlow
- MXNet
- Caffe2
- - CNTK (Python 语言)
- - Chainer
- - Theano
+ 更多...
+
+
+
+ - 支持的库
+
+ - Scikit-learn
+ - XGBoost
+ - LightGBM
+ 更多...
+
+
+
|
-
+ |
Tuner(调参器)
-
- 通用 Tuner
+ - 通用 Tuner
+
+ - 超参调优 Tuner
+
+ - 网络结构搜索 Tuner
+
+
Assessor(评估器)
|
@@ -85,6 +118,33 @@ NNI (Neural Network Intelligence) 是自动机器学习(AutoML)的工具包
|
+
+
+
+
+
+ 参考
+ |
+
+
+ |
+
+
+ |
+
+
+ |
+
@@ -227,48 +287,50 @@ You can use these commands to get more information about the experiment
* [NNI 概述](docs/zh_CN/Overview.md)
* [快速入门](docs/zh_CN/Tutorial/QuickStart.md)
-* [贡献](docs/zh_CN/Tutorial/Contributing.md)
-* [示例](docs/zh_CN/examples.rst)
-* [参考](docs/zh_CN/reference.rst)
* [Web 界面教程](docs/zh_CN/Tutorial/WebUI.md)
+* [贡献](docs/zh_CN/Tutorial/Contributing.md)
## **入门**
* [安装 NNI](docs/zh_CN/Tutorial/Installation.md)
* [使用命令行工具 nnictl](docs/zh_CN/Tutorial/Nnictl.md)
-* [使用 NNIBoard](docs/zh_CN/Tutorial/WebUI.md)
-* [如何定义搜索空间](docs/zh_CN/Tutorial/SearchSpaceSpec.md)
-* [如何实现 Trial 代码](docs/zh_CN/TrialExample/Trials.md)
-* [如何选择 Tuner、搜索算法](docs/zh_CN/Tuner/BuiltinTuner.md)
+* [实现 Trial](docs/zh_CN/TrialExample/Trials.md)
* [配置 Experiment](docs/zh_CN/Tutorial/ExperimentConfig.md)
-* [如何使用 Annotation](docs/zh_CN/TrialExample/Trials.md#nni-python-annotation)
+* [定制搜索空间](docs/zh_CN/Tutorial/SearchSpaceSpec.md)
+* [选择 Tuner、搜索算法](docs/zh_CN/Tuner/BuiltinTuner.md)
+* [使用 Annotation](docs/zh_CN/TrialExample/Trials.md#nni-python-annotation)
+* [使用 NNIBoard](docs/zh_CN/Tutorial/WebUI.md)
## **教程**
+* [在本机运行 Experiment (支持多 GPU 卡)](docs/zh_CN/TrainingService/LocalMode.md)
* [在 OpenPAI 上运行 Experiment](docs/zh_CN/TrainingService/PaiMode.md)
* [在 Kubeflow 上运行 Experiment](docs/zh_CN/TrainingService/KubeflowMode.md)
-* [在本机运行 Experiment (支持多 GPU 卡)](docs/zh_CN/TrainingService/LocalMode.md)
* [在多机上运行 Experiment](docs/zh_CN/TrainingService/RemoteMachineMode.md)
* [尝试不同的 Tuner](docs/zh_CN/Tuner/BuiltinTuner.md)
* [尝试不同的 Assessor](docs/zh_CN/Assessor/BuiltinAssessor.md)
* [实现自定义 Tuner](docs/zh_CN/Tuner/CustomizeTuner.md)
* [实现自定义 Assessor](docs/zh_CN/Assessor/CustomizeAssessor.md)
+* [实现 NNI 训练平台](docs/zh_CN/TrainingService/HowToImplementTrainingService.md)
* [使用进化算法为阅读理解任务找到好模型](docs/zh_CN/TrialExample/SquadEvolutionExamples.md)
+* [高级神经网络架构搜索](docs/zh_CN/AdvancedFeature/AdvancedNas.md)
## **贡献**
非常欢迎通过各种方式参与此项目,例如:
-* 审查[源代码改动](https://github.com/microsoft/nni/pulls)
-* 审查[文档](https://github.com/microsoft/nni/tree/master/docs)中从拼写错误到新内容的任何内容,并提交拉取请求。
+* [报告 Bug](https://github.com/microsoft/nni/issues/new/choose)。
+* [请求新功能](https://github.com/microsoft/nni/issues/new/choose).
+* 建议或询问[如何调试](docs/zh_CN/Tutorial/HowToDebug.md)文档相关的问题。
* 找到标有 ['good first issue'](https://github.com/Microsoft/nni/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) 或 ['help-wanted'](https://github.com/microsoft/nni/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22) 标签的 Issue。这些都是简单的 Issue,新的贡献者可以从这些问题开始。
-在提交代码前,需要遵循以下的简单准则:
+在编写代码前,可以先看看[贡献指南](docs/zh_CN/Tutorial/Contributing.md)来了解更多信息。 此外,还提供了以下文档:
+* [NNI 开发环境安装教程](docs/zh_CN/Tutorial/SetupNniDeveloperEnvironment.md)
* [如何调试](docs/zh_CN/Tutorial/HowToDebug.md)
-* [代码风格和命名约定](docs/zh_CN/Tutorial/Contributing.md)
-* 如何设置 [NNI 开发环境](docs/zh_CN/Tutorial/SetupNniDeveloperEnvironment.md)
-* 查看[贡献说明](docs/zh_CN/Tutorial/Contributing.md)并熟悉 NNI 的代码贡献指南
+* [自定义 Advisor](docs/zh_CN/Tuner/CustomizeAdvisor.md)
+* [自定义 Tuner](docs/zh_CN/Tuner/CustomizeTuner.md)
+* [实现定制的训练平台](docs/zh_CN/TrainingService/HowToImplementTrainingService.md)
## **外部代码库**
@@ -276,15 +338,13 @@ You can use these commands to get more information about the experiment
* 在 NNI 中运行 [ENAS](examples/tuners/enas_nni/README_zh_CN.md)
* 在 NNI 中运行 [神经网络架构结构搜索](examples/trials/nas_cifar10/README_zh_CN.md)
+* [NNI 中的自动特征工程](examples/trials/auto-feature-engineering/README_zh_CN.md)
## **反馈**
-* [报告 Bug](https://github.com/microsoft/nni/issues/new/choose)。
-
-* [请求新功能](https://github.com/microsoft/nni/issues/new/choose).
* 在 [Gitter](https://gitter.im/Microsoft/nni?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) 中参与讨论
-* 在 [Stack Overflow](https://stackoverflow.com/questions/tagged/nni?sort=Newest&edited=true) 上使用 nni 的标签提问,或[在 Github 上提交 Issue](https://github.com/microsoft/nni/issues/new/choose)。
-* 我们正在实现[如何调试](docs/zh_CN/Tutorial/HowToDebug.md)的页面,欢迎提交建议和问题。
+* 在 [Stack Overflow](https://stackoverflow.com/questions/tagged/nni?sort=Newest&edited=true) 上使用 NNI 标签提问
+* [在 GitHub 上提交问题](https://github.com/microsoft/nni/issues/new/choose)。
## **许可协议**
diff --git a/docs/zh_CN/AdvancedFeature/GeneralNasInterfaces.md b/docs/zh_CN/AdvancedFeature/GeneralNasInterfaces.md
index 1fa699cb3b..71c05b2da9 100644
--- a/docs/zh_CN/AdvancedFeature/GeneralNasInterfaces.md
+++ b/docs/zh_CN/AdvancedFeature/GeneralNasInterfaces.md
@@ -125,7 +125,7 @@ for _ in range(num):
***oneshot_mode***: 遵循[论文](http://proceedings.mlr.press/v80/bender18a/bender18a.pdf)中的训练方法。 与 enas_mode 通过训练大量子图来训练全图有所不同,oneshot_mode 中构建了全图,并将 dropout 添加到候选的输入以及候选的输出操作中。 然后像其它深度学习模型一样进行训练。 [详细说明](#OneshotMode)。 (当前仅支持 TensorFlow)。
-要使用 oneshot_mode,需要在配置的 `trial` 部分增加如下字段。 此模式不需要 Tuner,因此不用在配置文件中指定 Tuner。 (注意,当前仍然需要在配置文件中指定任一一个 Tuner。)此模式下也不需要添加 `nni.training_update`,因为在训练过程中不需要特别的更新过程。
+要使用 oneshot_mode,需要在配置的 `trial` 部分增加如下字段。 在此模式中,不需要使用 Tuner,只需要在配置文件中添加任意一个Tuner。 此外,也不需要增加 `nni.training_update`,因为在训练过程中不需要更新。
```diff
trial:
@@ -139,7 +139,7 @@ trial:
***darts_mode***: 参考 [论文](https://arxiv.org/abs/1806.09055)中的训练方法。 与 oneshot_mode 类似。 有两个不同之处,首先 darts_mode 只将架构权重添加到候选操作的输出中,另外是交错的来训练模型权重和架构权重。 [详细说明](#DartsMode)。
-要使用 darts_mode,需要在配置的 `trial` 部分增加如下字段。 此模式不需要 Tuner,因此不用在配置文件中指定 Tuner。 (注意,当前仍需要在配置文件中指定任意一个 Tuner。)
+要使用 darts_mode,需要在配置的 `trial` 部分增加如下字段。 在此模式中,不需要使用 Tuner,只需要在配置文件中添加任意一个Tuner。
```diff
trial:
@@ -166,9 +166,9 @@ for _ in range(num):
### enas_mode
-在 enas_mode 中,编译后的 Trial 代码会构建完整的图形(而不是子图),会接收所选择的架构,并在完整的图形上对此体系结构进行小型的批处理训练,然后再请求另一个架构。 它通过 [NNI 多阶段 Experiment](./multiPhase.md) 来支持。
+在 enas_mode 中,编译后的 Trial 代码会构建完整的图形(而不是子图),会接收所选择的架构,并在完整的图形上对此体系结构进行小型的批处理训练,然后再请求另一个架构。 通过 [NNI 多阶段 Experiment](./MultiPhase.md) 来支持。
-具体来说,使用 TensorFlow 的 Trial,通过 TensorFlow 变量来作为信号,并使用 TensorFlow 的条件函数来控制搜索空间(全图)来提高灵活性。这意味着根据这些信号,可以变为不同的多个子图。 [这是 enas_mode]() 的示例。
+具体来说,使用 TensorFlow 的 Trial,通过 TensorFlow 变量来作为信号,并使用 TensorFlow 的条件函数来控制搜索空间(全图)来提高灵活性。这意味着根据这些信号,可以变为不同的多个子图。 [这里](https://github.com/microsoft/nni/tree/master/examples/trials/mnist-nas/enas_mode)是 enas_mode 的示例。
@@ -178,7 +178,7 @@ for _ in range(num):

-如[论文](http://proceedings.mlr.press/v80/bender18a/bender18a.pdf)中的建议,应该为每层的输入实现 Dropout 方法。 当 0 < r < 1 是模型超参的取值范围(默认值为 0.01),k 是某层可选超参的数量,Dropout 比率设为 r^(1/k)。 fan-in 越高,每个输入被丢弃的可能性越大。 但某层丢弃所有可选输入的概率是常数,与 fan-in 无关。 假设 r = 0.05。 如果某层有 k = 2 个可选的输入,每个输入都会以独立的 0.051/2 ≈ 0.22 的概率被丢弃,也就是说有 0.78 的概率被保留。 如果某层有 k = 7 个可选的输入,每个输入都会以独立的 0.051/7 ≈ 0.65 的概率被丢弃,也就是说有 0.35 的概率被保留。 在这两种情况下,丢弃所有可选输入的概率是 5%。 候选操作的输出会通过同样的方法被丢弃。 [这里]()是 oneshot_mode 的示例。
+如[论文](http://proceedings.mlr.press/v80/bender18a/bender18a.pdf)中的建议,应该为每层的输入实现 Dropout 方法。 当 0 < r < 1 是模型超参的取值范围(默认值为 0.01),k 是某层可选超参的数量,Dropout 比率设为 r^(1/k)。 fan-in 越高,每个输入被丢弃的可能性越大。 但某层丢弃所有可选输入的概率是常数,与 fan-in 无关。 假设 r = 0.05。 如果某层有 k = 2 个可选的输入,每个输入都会以独立的 0.051/2 ≈ 0.22 的概率被丢弃,也就是说有 0.78 的概率被保留。 如果某层有 k = 7 个可选的输入,每个输入都会以独立的 0.051/7 ≈ 0.65 的概率被丢弃,也就是说有 0.35 的概率被保留。 在这两种情况下,丢弃所有可选输入的概率是 5%。 候选操作的输出会通过同样的方法被丢弃。 [这里](https://github.com/microsoft/nni/tree/master/examples/trials/mnist-nas/oneshot_mode)是 oneshot_mode 的示例。
@@ -188,7 +188,7 @@ for _ in range(num):

-在 `nni.training_update` 中,TensorFlow 的 MomentumOptimizer 通过传递的 `loss` 和 `feed_dict` 来训练架构权重。 [这是 darts_mode]() 的示例。
+在 `nni.training_update` 中,TensorFlow 的 MomentumOptimizer 通过传递的 `loss` 和 `feed_dict` 来训练架构权重。 [这里](https://github.com/microsoft/nni/tree/master/examples/trials/mnist-nas/darts_mode)是 darts_mode 的示例。
### [**待实现**] One-Shot NAS 的多 Trial 任务。
diff --git a/docs/zh_CN/CommunitySharings/HpoComparision.md b/docs/zh_CN/CommunitySharings/HpoComparision.md
index 428d6264ea..bbe0895131 100644
--- a/docs/zh_CN/CommunitySharings/HpoComparision.md
+++ b/docs/zh_CN/CommunitySharings/HpoComparision.md
@@ -2,7 +2,7 @@
*匿名作者*
-超参优化算法在几个问题上的对比。
+超参优化算法(HPO)在几个问题上的对比。
超参数优化算法如下:
diff --git a/docs/zh_CN/SupportedFramework_Library.md b/docs/zh_CN/SupportedFramework_Library.md
new file mode 100644
index 0000000000..8e54791a4d
--- /dev/null
+++ b/docs/zh_CN/SupportedFramework_Library.md
@@ -0,0 +1,60 @@
+# 框架和库的支持
+
+通过内置的 Python API,NNI 天然支持所有 Python (` 版本 >= 3.5`) 语言的 AI 框架,可使用所有超参调优和神经网络搜索算法。 NNI 还为常见场景提供了一些示例和教程,使上手更容易。
+
+## 支持的 AI 框架
+
+* **[PyTorch]** https://github.com/pytorch/pytorch
+
+* [MNIST-pytorch](../../examples/trials/mnist-distributed-pytorch)
+
+* [CIFAR-10](TrialExample/Cifar10Examples.md)
+
+* [TGS salt identification chanllenge](../../examples/trials/kaggle-tgs-salt/README.md)
+
+* [Network morphism](../../examples/trials/network_morphism/README_zh_CN.md)
+
+
+* **[TensorFlow]** https://github.com/tensorflow/tensorflow
+
+* [MNIST-tensorflow](../../examples/trials/mnist-distributed)
+
+* [Squad](../../examples/trials/ga_squad/README_zh_CN.md)
+
+
+* **[Keras]** https://github.com/keras-team/keras
+
+* [MNIST-keras](../../examples/trials/mnist-keras)
+
+* [Network morphism](../../examples/trials/network_morphism/README_zh_CN.md)
+
+
+* **[MXNet]** https://github.com/apache/incubator-mxnet
+* **[Caffe2]** https://github.com/BVLC/caffe
+* **[CNTK (Python 语言)]** https://github.com/microsoft/CNTK
+* **[Spark MLlib]** http://spark.apache.org/mllib/
+* **[Chainer]** https://chainer.org/
+* **[Theano]** https://pypi.org/project/Theano/
+
+
+如果能[贡献更多示例](Tutorial/Contributing.md),会对其他 NNI 用户有很大的帮助。
+
+## 支持的库
+
+NNI 也支持其它 Python 库,包括一些基于 GBDT 的算法:XGBoost, CatBoost 以及 lightGBM。
+
+* **[Scikit-learn]** https://scikit-learn.org/stable/
+
+* [Scikit-learn](TrialExample/SklearnExamples.md)
+
+
+* **[XGBoost]** https://xgboost.readthedocs.io/en/latest/
+* **[CatBoost]** https://catboost.ai/
+* **[LightGBM]** https://lightgbm.readthedocs.io/en/latest/
+
+* [Auto-gbdt](TrialExample/GbdtExample.md)
+
+
+这只是 NNI 支持的一小部分库。 如果对 NNI 感兴趣,可参考[教程](TrialExample/Trials.md)来继续学习。
+
+除了这些案例,也欢迎更多的用户将 NNI 应用到自己的工作中,如果有任何疑问,请参考[实现 Trial](TrialExample/Trials.md)。 如果想成为 NNI 的贡献者,无论是分享示例,还是实现 Tuner 或其它内容,我们都非常期待您的参与。更多信息请[参考这里](Tutorial/Contributing.md)。
\ No newline at end of file
diff --git a/docs/zh_CN/TrainingService/LocalMode.md b/docs/zh_CN/TrainingService/LocalMode.md
index 3156e3a45c..1aec4e3e9b 100644
--- a/docs/zh_CN/TrainingService/LocalMode.md
+++ b/docs/zh_CN/TrainingService/LocalMode.md
@@ -57,7 +57,7 @@
}
-参考 [SearchSpaceSpec.md](../Tutorial/SearchSpaceSpec.md) 进一步了解搜索空间。
+参考[定义搜索空间](../Tutorial/SearchSpaceSpec.md)进一步了解。
> 第三步:定义 Experiment
>
diff --git a/docs/zh_CN/TrainingService/PaiMode.md b/docs/zh_CN/TrainingService/PaiMode.md
index 47d6b1531a..5ac564f15a 100644
--- a/docs/zh_CN/TrainingService/PaiMode.md
+++ b/docs/zh_CN/TrainingService/PaiMode.md
@@ -57,7 +57,7 @@ paiConfig:
* shmMB
* 可选。 设置 OpenPAI 的 shmMB,即 Docker 中的共享内存。
* authFile
- * 可选,设置在使用 OpenPAI 时的私有 Docker 认证文件路径。[参考文档](https://github.com/microsoft/pai/blob/2ea69b45faa018662bc164ed7733f6fdbb4c42b3/docs/faq.md#q-how-to-use-private-docker-registry-job-image-when-submitting-an-openpai-job)。
+ * 可选。在使用 pai 模式时,为私有 Docker 仓库设置认证文件,[见参考文档](https://github.com/microsoft/pai/blob/2ea69b45faa018662bc164ed7733f6fdbb4c42b3/docs/faq.md#q-how-to-use-private-docker-registry-job-image-when-submitting-an-openpai-job)。提供 authFile 的本地路径即可, NNI 会上传此文件。
完成并保存 NNI Experiment 配置文件后(例如可保存为:exp_pai.yml),运行以下命令:
diff --git a/docs/zh_CN/TrainingService/SupportTrainingService.md b/docs/zh_CN/TrainingService/SupportTrainingService.md
new file mode 100644
index 0000000000..0e85797863
--- /dev/null
+++ b/docs/zh_CN/TrainingService/SupportTrainingService.md
@@ -0,0 +1,39 @@
+# 训练平台
+
+NNI 为 Trial 任务实现了训练平台。 NNI 支持[本机](./LocalMode.md), [远程](./RemoteMachineMode.md), [OpenPAI](./PaiMode.md), [Kubeflow](./KubeflowMode.md) 和 [FrameworkController](./FrameworkControllerMode.md) 这些内置的训练平台。
+NNI 不仅提供了这些内置的训练平台,还提供了轻松连接自己训练平台的方法。
+
+## 内置训练平台
+
+| 训练平台 | 简介 |
+| ------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| [**本机**](./LocalMode.md) | NNI 支持在本机运行实验,称为 local 模式。 local 模式表示 NNI 会在运行 NNI Manager 进程计算机上运行 Trial 任务,支持 GPU 调度功能。 |
+| [**远程计算机**](./RemoteMachineMode.md) | NNI 支持通过 SSH 通道在多台计算机上运行 Experiment,称为 remote 模式。 NNI 需要这些计算机的访问权限,并假定已配置好了深度学习训练环境。 NNI 将在远程计算机上中提交 Trial 任务,并根据 GPU 资源调度 Trial 任务。 |
+| [**OpenPAI**](./PaiMode.md) | NNI 支持在 [OpenPAI](https://github.com/Microsoft/pai) (简称 pai)上运行 Experiment,即 pai 模式。 在使用 NNI 的 pai 模式前, 需要有 [OpenPAI](https://github.com/Microsoft/pai) 群集及其账户。 如果没有 OpenPAI,参考[这里](https://github.com/Microsoft/pai#how-to-deploy)来进行部署。 在 pai 模式中,会在 Docker 创建的容器中运行 Trial 程序。 |
+| [**Kubeflow**](./KubeflowMode.md) | NNI 支持在 [Kubeflow](https://github.com/kubeflow/kubeflow)上运行,称为 kubeflow 模式。 在开始使用 NNI 的 Kubeflow 模式前,需要有一个 Kubernetes 集群,可以是私有部署的,或者是 [Azure Kubernetes Service(AKS)](https://azure.microsoft.com/zh-cn/services/kubernetes-service/),并需要一台配置好 [kubeconfig](https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/) 的 Ubuntu 计算机连接到此 Kubernetes 集群。 如果不熟悉 Kubernetes,可先浏览[这里](https://kubernetes.io/docs/tutorials/kubernetes-basics/)。 在 kubeflow 模式下,每个 Trial 程序会在 Kubernetes 集群中作为一个 Kubeflow 作业来运行。 |
+| [**FrameworkController**](./FrameworkControllerMode.md) | NNI 支持使用 [FrameworkController](https://github.com/Microsoft/frameworkcontroller),来运行 Experiment,称之为 frameworkcontroller 模式。 FrameworkController 构建于 Kubernetes 上,用于编排各种应用。这样,可以不用为某个深度学习框架安装 Kubeflow 的 tf-operator 或 pytorch-operator 等。 而直接用 FrameworkController 作为 NNI Experiment 的训练平台。 |
+
+
+## 实现训练平台
+
+TrainingService 在设计上为了便于实现,将平台相关的公共属性抽象成类。用户只需要继承这个抽象类,并根据平台特点实现子类,便能够实现 TrainingService。
+TrainingService 的声明如下:
+
+ abstract class TrainingService {
+ public abstract listTrialJobs(): Promise;
+ public abstract getTrialJob(trialJobId: string): Promise;
+ public abstract addTrialJobMetricListener(listener: (metric: TrialJobMetric) => void): void;
+ public abstract removeTrialJobMetricListener(listener: (metric: TrialJobMetric) => void): void;
+ public abstract submitTrialJob(form: JobApplicationForm): Promise;
+ public abstract updateTrialJob(trialJobId: string, form: JobApplicationForm): Promise;
+ public abstract get isMultiPhaseJobSupported(): boolean;
+ public abstract cancelTrialJob(trialJobId: string, isEarlyStopped?: boolean): Promise;
+ public abstract setClusterMetadata(key: string, value: string): Promise;
+ public abstract getClusterMetadata(key: string): Promise;
+ public abstract cleanUp(): Promise;
+ public abstract run(): Promise;
+ }
+
+
+TrainingService 的父类有一些抽象函数,用户需要继承父类并实现所有这些抽象函数。
+有关如何实现 TrainingService 的更多信息,[参考这里](HowToImplementTrainingService.md)。
\ No newline at end of file
diff --git a/docs/zh_CN/Tutorial/Nnictl.md b/docs/zh_CN/Tutorial/Nnictl.md
index db4adeea01..a363c0f5c6 100644
--- a/docs/zh_CN/Tutorial/Nnictl.md
+++ b/docs/zh_CN/Tutorial/Nnictl.md
@@ -123,6 +123,7 @@ nnictl 支持的命令:
| ---------- | ----- | --- | -------------------------------- |
| id | False | | 要停止的 Experiment 标识 |
| --port, -p | False | | 要停止的 Experiment 使用的 RESTful 服务端口 |
+ | --all, -a | False | | 停止所有 Experiment |
* 详细信息及样例
@@ -147,10 +148,10 @@ nnictl 支持的命令:
```
- 4. 可使用 'nnictl stop all' 来停止所有的 Experiment。
+ 4. 可使用 'nnictl stop --all' 来停止所有的 Experiment。
```bash
- nnictl stop all
+ nnictl stop --all
```
diff --git a/docs/zh_CN/Tutorial/SearchSpaceSpec.md b/docs/zh_CN/Tutorial/SearchSpaceSpec.md
index 7e2f6777f5..238d640e01 100644
--- a/docs/zh_CN/Tutorial/SearchSpaceSpec.md
+++ b/docs/zh_CN/Tutorial/SearchSpaceSpec.md
@@ -10,11 +10,11 @@
```yaml
{
- "dropout_rate":{"_type":"uniform","_value":[0.1,0.5]},
- "conv_size":{"_type":"choice","_value":[2,3,5,7]},
- "hidden_size":{"_type":"choice","_value":[124, 512, 1024]},
- "batch_size":{"_type":"choice","_value":[50, 250, 500]},
- "learning_rate":{"_type":"uniform","_value":[0.0001, 0.1]}
+ "dropout_rate": {"_type": "uniform", "_value": [0.1, 0.5]},
+ "conv_size": {"_type": "choice", "_value": [2, 3, 5, 7]},
+ "hidden_size": {"_type": "choice", "_value": [124, 512, 1024]},
+ "batch_size": {"_type": "choice", "_value": [50, 250, 500]},
+ "learning_rate": {"_type": "uniform", "_value": [0.0001, 0.1]}
}
```
@@ -25,61 +25,60 @@
所有采样策略和参数如下:
-* {"_type":"choice","_value":options}
+* `{"_type": "choice", "_value": options}`
- * 表示变量的值是选项之一。 这里的 'options' 是一个数组。 选项的每个元素都是字符串。 也可以是嵌套的子搜索空间。此子搜索空间仅在相应的元素选中后才起作用。 该子搜索空间中的变量可看作是条件变量。
-
- * [nested] 搜索空间定义的简单[示例](https://github.com/microsoft/nni/tree/master/examples/trials/mnist-nested-search-space/search_space.json)。 如果选项列表中的元素是 dict,则它是一个子搜索空间,对于内置的 Tuner,必须在此 dict 中添加键 “_name”,这有助于标识选中的元素。 相应的,这是使用从 NNI 获得的嵌套搜索空间的[示例](https://github.com/microsoft/nni/tree/master/examples/trials/mnist-nested-search-space/sample.json)。 以下 Tuner 支持嵌套搜索空间:
+ * 表示变量的值是选项之一。 这里的 `options` 应该是字符串或数值的列表。 可将任意对象(如子数组,数字与字符串的混合值或者空值)存入此数组中,但可能会产生不可预料的行为。
+ * `options` 也可以是嵌套的子搜索空间。此子搜索空间仅在相应的元素选中后才起作用。 该子搜索空间中的变量可看作是条件变量。