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(调参器) -
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): ![](../../img/oneshot_mode.png) -如[论文](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): ![](../../img/darts_mode.png) -在 `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` 也可以是嵌套的子搜索空间。此子搜索空间仅在相应的元素选中后才起作用。 该子搜索空间中的变量可看作是条件变量。