Unverified Commit 346721be authored by kvartet's avatar kvartet Committed by GitHub
Browse files

Update Chinese translation (#3413)

parent b122c63d
......@@ -28,7 +28,7 @@ NNI API
"learning_rate":{"_type":"uniform","_value":[0.0001, 0.1]}
}
参考 `SearchSpaceSpec.md <../Tutorial/SearchSpaceSpec.rst>`__ 进一步了解搜索空间。 Tuner 会根据搜索空间来生成配置,即从每个超参的范围中选一个值。
参考 `SearchSpaceSpec.rst <../Tutorial/SearchSpaceSpec.rst>`__ 进一步了解搜索空间。 Tuner 会根据搜索空间来生成配置,即从每个超参的范围中选一个值。
第二步:更新模型代码
^^^^^^^^^^^^^^^^^^^^^^^^^^
......@@ -80,7 +80,7 @@ NNI API
参考 `这里 <../Tutorial/ExperimentConfig.rst>`__ 进一步了解如何配置 Experiment。
参考 `这里 </sdk_reference.html>`__ ,了解更多 NNI API (例如:``nni.get_sequence_id()``)。
参考 `这里 <../sdk_reference.rst>`__ ,了解更多 NNI API (例如:``nni.get_sequence_id()``)。
:raw-html:`<a name="nni-annotation"></a>`
......@@ -159,14 +159,15 @@ NNI 支持独立模式,使 Trial 代码无需启动 NNI 实验即可运行。
.. code-block:: python
# 注意:请为 Trial 代码中的超参分配默认值
nni.report_final_result # 已在 stdout 上打印日志,但不报告
nni.report_intermediate_result # 已在 stdout 上打印日志,但不报告
#注意:请为 Trial 代码中的超参分配默认值
nni.get_next_parameter # 返回 {}
nni.report_final_result #已在 stdout 上打印日志,但不报告
nni.report_intermediate_result # #已在 stdout 上打印日志,但不报告
nni.get_experiment_id # 返回 "STANDALONE"
nni.get_trial_id # 返回 "STANDALONE"
nni.get_sequence_id # 返回 0
可使用 :githublink:`mnist 示例 <examples/trials/mnist-tfv1>` 来尝试独立模式。 只需在代码目录下运行 ``python3 mnist.py``。 Trial 代码会使用默认超参成功运行。
可使用 :githublink:`mnist 示例 <examples/trials/mnist-pytorch>` 来尝试独立模式。 只需在代码目录下运行 ``python3 mnist.py``。 Trial 代码会使用默认超参成功运行。
更多调试的信息,可参考 `How to Debug <../Tutorial/HowToDebug.rst>`__。
......
......@@ -52,9 +52,11 @@ BOHB 的 BO 与 TPE 非常相似, 它们的主要区别是: BOHB 中使用一个
.. image:: ../../img/bohb_6.jpg
:target: ../../img/bohb_6.jpg
:alt:
以上这张图展示了 BOHB 的工作流程。 将每次训练的最大资源配置(max_budget)设为 9,最小资源配置设为(min_budget)1,逐次减半比例(eta)设为 3,其他的超参数为默认值。 那么在这个例子中,s_max 计算的值为 2, 所以会持续地进行 {s=2, s=1, s=0, s=2, s=1, s=0, ...} 的循环。 在“逐次减半”(SuccessiveHalving)算法的每一个阶段,即图中橙色框,都将选取表现最好的前 1/eta 个参数,并在赋予更多计算资源(budget)的情况下运行。不断重复“逐次减半” (SuccessiveHalving)过程,直到这个循环结束。 同时,收集这些试验的超参数组合,使用了计算资源(budget)和其表现(metrics),使用这些数据来建立一个以使用了多少计算资源(budget)为维度的多维核密度估计(KDE)模型。这个多维的核密度估计(KDE)模型将用于指导下一个循环的参数选择。
以上这张图展示了 BOHB 的工作流程。 将每次训练的最大资源配置(max_budget)设为 9,最小资源配置设为(min_budget)1,逐次减半比例(eta)设为 3,其他的超参数为默认值。 那么在这个例子中,s_max 计算的值为 2, 所以会持续地进行 {s=2, s=1, s=0, s=2, s=1, s=0, ...} 的循环。 在“逐次减半”(SuccessiveHalving)算法的每一个阶段,即图中橙色框,都将选取表现最好的前 1/eta 个参数,并在赋予更多计算资源(budget)的情况下运行。不断重复“逐次减半” (SuccessiveHalving)过程,直到这个循环结束。 同时,收集这些试验的超参数组合,使用了计算资源(budget)和其表现(metrics),使用这些数据来建立一个以使用了多少计算资源(budget)为维度的多维核密度估计(KDE)模型。
这个多维的核密度估计(KDE)模型将用于指导下一个循环的参数选择。
有关如何使用多维的 KDE 模型来指导参数选择的采样规程,用以下伪代码来描述。
......@@ -71,7 +73,7 @@ BOHB advisor 需要安装 `ConfigSpace <https://github.com/automl/ConfigSpace>`_
.. code-block:: bash
nnictl package install --name=BOHB
pip install nni[BOHB]
要使用 BOHB,需要在 Experiment 的 YAML 配置文件进行如下改动:
......@@ -120,7 +122,7 @@ Advisor 有大量的文件、函数和类。 这里只简单介绍最重要的
-------------
BOHB 在 MNIST 数据集上的表现
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
源码地址: :githublink:`examples/trials/mnist-advisor <examples/trials/>`
......
......@@ -26,7 +26,7 @@
* - `Naïve Evolution(朴素进化) <#Evolution>`__
- Naïve Evolution(朴素进化算法)来自于 Large-Scale Evolution of Image Classifiers。 它会基于搜索空间随机生成一个种群。 在每一代中,会选择较好的结果,并对其下一代进行一些变异(例如,改动一个超参,增加或减少一层)。 朴素进化算法需要很多次的 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>`__ `代码仓库 <https://github.com/automl/SMAC3>`__
- SMAC 基于 Sequential Model-Based Optimization (SMBO,即序列的基于模型优化方法)。 它会利用使用过的突出的模型(高斯随机过程模型),并将随机森林引入到SMBO中,来处理分类参数。 SMAC 算法包装了 Github 的 SMAC3。 注意:SMAC 需要通过 ``pip install nni[SMAC]`` 命令来安装。 `参考论文 <https://www.cs.ubc.ca/~hutter/papers/10-TR-SMAC.pdf>`__ `代码仓库 <https://github.com/automl/SMAC3>`__
* - `Batch tuner(批处理) <#Batch>`__
- Batch Tuner 能让用户简单的提供几组配置(如,超参选项的组合)。 当所有配置都完成后,Experiment 即结束。 Batch Tuner 仅支持 choice 类型。
* - `Grid Search(遍历) <#GridSearch>`__
......@@ -52,7 +52,7 @@
要使用 NNI 内置的 Assessor,需要在 ``config.yml`` 文件中添加 **builtinAssessorName** 和 **classArgs**。 本部分中,将介绍每个 Tuner 的用法和建议场景、参数要求,并提供配置示例。
注意:参考样例中的格式来创建新的 ``config.yml`` 文件。 一些内置 Tuner 还需要通过 ``nnictl package`` 命令先安装,如 SMAC。
注意:参考样例中的格式来创建新的 ``config.yml`` 文件。 一些内置 Tuner 因为依赖问题需要使用 ``pip install nni[<tuner>]`` 来安装,比如使用 ``pip install nni[SMAC]`` 来安装 SMAC。
:raw-html:`<a name="TPE"></a>`
......@@ -71,7 +71,7 @@ TPE 是一种黑盒优化方法,可以使用在各种场景中,通常情况
**classArgs 要求:**
* **optimize_mode** (*maximize 或 minimize, 可选项, 默认值为 maximize*) - 如果为 'maximize',表示 Tuner 会试着最大化指标。 如果为 'minimize',表示 Tuner 的目标是将指标最小化。
* **optimize_mode** (*maximize 或 minimize, 可选项, 默认值为 maximize*\ ) - 如果为 'maximize',表示 Tuner 会试着最大化指标。 如果为 'minimize',表示 Tuner 的目标是将指标最小化。
注意:为实现大规模并发 Trial,TPE 的并行性得到了优化。 有关优化原理或开启优化,参考 `TPE 文档 <./HyperoptTuner.rst>`__。
......@@ -128,7 +128,7 @@ Anneal(退火算法)
**classArgs 要求:**
* **optimize_mode** (*maximize 或 minimize, 可选项, 默认值为 maximize*) - 如果为 'maximize',表示 Tuner 会试着最大化指标。 如果为 'minimize',表示 Tuner 的目标是将指标最小化。
* **optimize_mode** (*maximize 或 minimize, 可选项, 默认值为 maximize*\ ) - 如果为 'maximize',表示 Tuner 会试着最大化指标。 如果为 'minimize',表示 Tuner 的目标是将指标最小化。
**配置示例:**
......@@ -196,7 +196,7 @@ SMAC 在第一次使用前,必须用下面的命令先安装。 注意:SMAC
.. code-block:: bash
nnictl package install --name=SMAC
pip install nni[SMAC]
**建议场景**
......@@ -306,7 +306,7 @@ Hyperband
**classArgs 要求:**
* **optimize_mode** (*maximize 或 minimize, 可选项, 默认值为 maximize*) - 如果为 'maximize',表示 Tuner 会试着最大化指标。 如果为 'minimize',表示 Tuner 的目标是将指标最小化。
* **optimize_mode** (*maximize 或 minimize, 可选项, 默认值为 maximize*\ ) - 如果为 'maximize',表示 Tuner 会试着最大化指标。 如果为 'minimize',表示 Tuner 的目标是将指标最小化。
* **R** (*int, 可选, 默认为 60*),分配给 Trial 的最大资源(可以是 mini-batches 或 epochs 的数值)。 每个 Trial 都需要用 TRIAL_BUDGET 来控制运行的步数。
* **eta** (*int,可选,默认为 3*),``(eta-1)/eta`` 是丢弃 Trial 的比例。
* **exec_mode** (*串行或并行,可选默认值是并行*\ ),如果是“并行”, Tuner 会尝试使用可用资源立即启动新的分组。 如果是“串行”, Tuner 只会在当前分组完成后启动新的分组。
......@@ -417,7 +417,7 @@ BOHB advisor 需要安装 `ConfigSpace <https://github.com/automl/ConfigSpace>`_
.. code-block:: bash
nnictl package install --name=BOHB
pip install nni[BOHB]
**建议场景**
......@@ -512,7 +512,7 @@ PPO Tuner
**建议场景**
PPO Tuner 是基于 PPO 算法的强化学习 Tuner。 PPOTuner 可用于使用 NNI NAS 接口进行的神经网络结构搜索。 一般来说,尽管 PPO 算法比其它强化学习算法效率更高,但强化学习算法需要更多的计算资源。 当有大量可用的计算资源时,才建议使用此 Tuner。 以在简单的任务上尝试,如 :githublink:`mnist-nas <examples/trials/mnist-nas>` 示例。 `查看详细信息 <./PPOTuner.rst>`__。
PPO Tuner 是基于 PPO 算法的强化学习 Tuner。 PPOTuner 可用于使用 NNI NAS 接口进行的神经网络结构搜索。 一般来说,尽管 PPO 算法比其它强化学习算法效率更高,但强化学习算法需要更多的计算资源。 当有大量可用的计算资源时,才建议使用此 Tuner。 以在简单的任务上尝试,如 :githublink:`mnist-nas <examples/nas/classic_nas>` 示例。 `查看详细信息 <./PPOTuner.rst>`__。
**classArgs 要求:**
......@@ -580,6 +580,6 @@ Population Based Training (PBT,基于种群的训练),将并扩展并行搜
* 在Github 中 `提交此功能的 Bug <https://github.com/microsoft/nni/issues/new?template=bug-report.rst>`__
* 在Github 中 `提交新功能或请求改进 <https://github.com/microsoft/nni/issues/new?template=enhancement.rst>`__
* 了解 NNI 中 `特征工程的更多信息 <../FeatureEngineering/Overview.rst>`__
* 了解 NNI 中 `NAS 的更多信息 <../NAS/Overview.rst>`__
* 了解 NNI 中 `模型压缩的更多信息 <../Compression/Overview.rst>`__
* 了解 NNI 中 :githublink:`特征工程的更多信息 <docs/zh_CN/FeatureEngineering/Overview.rst>`
* 了解 NNI 中 :githublink:`NAS 的更多信息 <docs/zh_CN/NAS/Overview.rst>`
* 了解 NNI 中 :githublink:`模型压缩的更多信息 <docs/zh_CN/Compression/Overview.rst>`
......@@ -17,7 +17,9 @@ Advisor 用于同时需要 Tuner 和 Assessor 方法的自动机器学习算法
def __init__(self, ...):
...
**2. 实现所有除了 ``handle_request`` 外的,以 ``handle_`` 前缀开始的方法**。 `此文档 </sdk_reference.html#nni.runtime.msg_dispatcher_base.MsgDispatcherBase>`__ 可帮助理解 ``MsgDispatcherBase``。
**2. 实现所有除了 "handle_request" 外的,以 "handle_" 前缀开始的方法**。
关于 ``MsgDispatcherBase`` 可以查询此 `文档 <../autotune_ref.rst#Advisor>`__ 。
**3. 在 Experiment 的 YAML 文件中配置好自定义的 Advisor** 。
......
......@@ -117,12 +117,12 @@ NNI 需要定位到自定义的 Tuner 类,并实例化它,因此需要指定
..
* :githublink:`evolution-tuner <src/sdk/pynni/nni/evolution_tuner>`
* :githublink:`hyperopt-tuner <src/sdk/pynni/nni/hyperopt_tuner>`
* :githublink:`evolution-tuner <nni/algorithms/hpo/evolution_tuner.py>`
* :githublink:`hyperopt-tuner <nni/algorithms/hpo/hyperopt_tuner.py>`
* :githublink:`evolution-based-customized-tuner <examples/tuners/ga_customer_tuner>`
实现更高级的自动机器学习算法
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
上述内容足够写出通用的 Tuner。 但有时可能需要更多的信息,例如,中间结果, Trial 的状态等等,从而能够实现更强大的自动机器学习算法。 因此,有另一个 ``Advisor`` 类,直接继承于 ``MsgDispatcherBase``,它在 :githublink:`src/sdk/pynni/nni/msg_dispatcher_base.py <src/sdk/pynni/nni/msg_dispatcher_base.py>` 。 参考 `这里 <CustomizeAdvisor.rst>`__ 来了解如何实现自定义的 Advisor。
上述内容足够写出通用的 Tuner。 但有时可能需要更多的信息,例如,中间结果, Trial 的状态等等,从而能够实现更强大的自动机器学习算法。 因此,有另一个 ``Advisor`` 类,直接继承于 ``MsgDispatcherBase``,它在 :githublink:`src/sdk/pynni/nni/msg_dispatcher_base.py <nni/runtime/msg_dispatcher_base.py>` 。 参考 `这里 <CustomizeAdvisor.rst>`__ 来了解如何实现自定义的 Advisor。
This diff is collapsed.
This diff is collapsed.
......@@ -52,14 +52,12 @@
--------------------------------
* NNI 遵循 `PEP8 <https://www.python.org/dev/peps/pep-0008/>`__ 的 Python 代码命名约定。在提交拉取请求时,请尽量遵循此规范。 可通过``flake8`` 或 ``pylint`` 的提示工具来帮助遵循规范。
* NNI 还遵循 `NumPy Docstring 风格 <https://www.sphinx-doc.org/en/master/usage/extensions/example_numpy.html#example-numpy>`__ 的 Python Docstring 命名方案。 Python API 使用了 `sphinx.ext.napoleon <https://www.sphinx-doc.org/en/master/usage/extensions/napoleon.html>`__ 来生成文档。
* NNI 还遵循 `NumPy Docstring 风格 <https://www.sphinx-doc.org/en/master/usage/extensions/example_numpy.html#example-numpy>`__ 的 Python Docstring 命名方案。 Python API 使用了 `sphinx.ext.napoleon <https://www.sphinx-doc.org/en/master/usage/extensions/napoleon.html>`__ 来 `生成文档 <Contributing.rst#documentation>`__
* 有关 docstrings,参考 `numpydoc docstring 指南 <https://numpydoc.readthedocs.io/en/latest/format.html>`__ 和 `pandas docstring 指南 <https://python-sprints.github.io/pandas/guide/pandas_docstring.html>`__
* 函数的 docstring, **description**, **Parameters**, 和 **Returns Yields** 是必需的。
* 类的 docstring, **description**, **Attributes** 是必需的。
* 描述 ``dict`` 的 docstring 在超参格式描述中多处用到
* 参考 `RiboKit 文档写作准则 <https://ribokit.github.io/docs/text/>`__
* 描述 ``dict`` 的 docstring 在超参格式描述中多处用到,请参考 `写作标准的内部准则 <https://ribokit.github.io/docs/text/>`__ 。
文档
-------------
......@@ -73,4 +71,4 @@
* 图片需要通过嵌入的 HTML 语法来格式化,则需要使用绝对链接,如 ``https://user-images.githubusercontent.com/44491713/51381727-e3d0f780-1b4f-11e9-96ab-d26b9198ba65.png``。可以通过将图片拖拽到 `Github Issue <https://github.com/Microsoft/nni/issues/new>`__ 框中来生成这样的链接。
* 如果不能被 sphinx 重新格式化,如源代码等,则需要使用绝对链接。 如果源码连接到本代码库,使用 ``https://github.com/Microsoft/nni/tree/master/`` 作为根目录 (例如 :githublink:`mnist.py <examples/trials/mnist-tfv1/mnist.py>` )。
* 如果不能被 sphinx 重新格式化,如源代码等,则需要使用绝对链接。 如果源码连接到本代码库,使用 ``https://github.com/Microsoft/nni/tree/master/`` 作为根目录 (例如 :githublink:`mnist.py <examples/trials/mnist-pytorch/mnist.py>` )。
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment