Unverified Commit 0e49e659 authored by Junwei Sun's avatar Junwei Sun Committed by GitHub
Browse files

Update Chinese Translation (#2871)



* New Crowdin translations by Github Action

* remove removed files in en_US
Co-authored-by: default avatarCrowdin Bot <support+bot@crowdin.com>
parent 171400ee
# 内置的超参调优 Tuner # 使用 NNI 内置 Tuner 进行超参数调优
NNI 提供了先进的调优算法,使用上也很简单。 下面是内置 Tuner 的简单介绍: 为了让机器学习/深度学习模型适应不同的任务/问题,超参数总是需要调优。 自动化超参数调优的过程需要好的调优算法。 NNI 提供了先进的调优算法,使用上也很简单。 下面是内置 Tuner 的简单介绍:
注意:点击 **Tuner 的名称**可看到 Tuner 的安装需求,建议的场景以及示例。 算法的详细说明在每个 Tuner 建议场景的最后。 [本文](../CommunitySharings/HpoComparision.md)对比了不同 Tuner 在几个问题下的不同效果。 注意:点击 **Tuner 的名称**可看到 Tuner 的安装需求,建议的场景以及示例。 算法的详细说明在每个 Tuner 建议场景的最后。 [本文](../CommunitySharings/HpoComparison.md)对比了不同 Tuner 在几个问题下的不同效果。
当前支持的算法: 当前支持的算法:
...@@ -386,7 +386,7 @@ advisor: ...@@ -386,7 +386,7 @@ advisor:
**classArgs 要求:** **classArgs 要求:**
* **optimize_mode** (*'maximize' 或 'minimize', 可选项, 默认值为 'maximize'*) - 如果为 'maximize',表示 Tuner 的目标是将指标最大化。 如果为 'minimize',表示 Tuner 的目标是将指标最小化。 * **optimize_mode** (*'maximize' 或 'minimize', 可选项, 默认值为 'maximize'*) - 如果为 'maximize',表示 Tuner 的目标是将指标最大化。 如果为 'minimize',表示 Tuner 的目标是将指标最小化。
* **utility** (*'ei', 'ucb' 或 'poi', 可选, 默认值为 'ei'*) - 工具函数的类型(采集函数)。 'ei', 'ucb' 和 'poi' 分别对应 '期望的改进(Expected Improvement)', '上限置信度边界(Upper Confidence Bound)' 和 '改进概率(Probability of Improvement)'。 * **utility** (*'ei', 'ucb' 或 'poi', 可选, 默认值为 'ei'*) - 工具函数的类型(采集函数)。 'ei', 'ucb' 和 'poi' 分别对应 '期望的改进(Expected Improvement)', '上限置信度边界(Upper Confidence Bound)' 和 '改进概率(Probability of Improvement)'。
* **kappa** (*float, 可选, 默认值为 5*) - 用于 'ucb' 函数。 `kappa` 越大, Tuner 的探索性越强。 * **kappa** (*float, 可选, 默认值为 5*) - 用于 'ucb' 函数。 `kappa` 越大, Tuner 的探索性越强。
* **xi** (*float, 可选, 默认为 0*) - 用于 'ei' 和 'poi' 工具函数。 `xi` 越大, Tuner 的探索性越强。 * **xi** (*float, 可选, 默认为 0*) - 用于 'ei' 和 'poi' 工具函数。 `xi` 越大, Tuner 的探索性越强。
* **nu** (*float, 可选, 默认为 2.5*) - 用于指定 Matern 核。 nu 越小,近似函数的平滑度越低。 * **nu** (*float, 可选, 默认为 2.5*) - 用于指定 Matern 核。 nu 越小,近似函数的平滑度越低。
......
...@@ -33,7 +33,7 @@ advisor: ...@@ -33,7 +33,7 @@ advisor:
arg1: value1 arg1: value1
``` ```
**注意:**Advisor 的工作目录是`<home>/nni/experiments/<experiment_id>/log` 可从环境变量 `NNI_LOG_DIRECTORY` 中获取。 **注意:**Advisor 的工作目录是`<home>/nni-experiments/<experiment_id>/log` 可从环境变量 `NNI_LOG_DIRECTORY` 中获取。
## 示例 ## 示例
......
...@@ -86,7 +86,7 @@ parameters = {"dropout": 0.3, "learning_rate": 0.4} ...@@ -86,7 +86,7 @@ parameters = {"dropout": 0.3, "learning_rate": 0.4}
value = 0.93 value = 0.93
``` ```
**注意:**Tuner 的工作目录是 `<home>/nni/experiments/<experiment_id>/log`,可使用环境变量 `NNI_LOG_DIRECTORY`,因此 ,如果要访问自己 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 ```python
_pwd = os.path.dirname(__file__) _pwd = os.path.dirname(__file__)
......
...@@ -56,10 +56,10 @@ nni.report_final_result(best_acc) ...@@ -56,10 +56,10 @@ nni.report_final_result(best_acc)
```python ```python
# 1. 使用 NNI API # 1. 使用 NNI API
## Web 界面获取最佳模型的 ID ## 可以通过 Web 界面获取最佳模型
## 或查看 `nni/experiments/experiment_id/log/model_path/best_model.txt' 文件 ## 或者通过 `nni-experiments/experiment_id/log/model_path/best_model.txt'
## 从 JSON 文件中读取,并使用 NNI API 加载 ## 从模型文件中读取 json 字符串并使用 NNI API 加载
with open("best-model.json") as json_file: with open("best-model.json") as json_file:
json_of_model = json_file.read() json_of_model = json_file.read()
model = build_graph_from_json(json_of_model) model = build_graph_from_json(json_of_model)
......
...@@ -293,7 +293,7 @@ NNI 会校验 remote, pai 和 Kubernetes 模式下 NNIManager 与 trialKeeper ...@@ -293,7 +293,7 @@ NNI 会校验 remote, pai 和 Kubernetes 模式下 NNIManager 与 trialKeeper
### logDir ### logDir
可选。 目录的路径。 默认值:`<user home directory>/nni/experiment` 可选。 目录的路径。 默认值:`<user home directory>/nni-experiments`
配置目录以存储 Experiment 的日志和数据。 配置目录以存储 Experiment 的日志和数据。
...@@ -575,7 +575,7 @@ NNI 会校验 remote, pai 和 Kubernetes 模式下 NNIManager 与 trialKeeper ...@@ -575,7 +575,7 @@ NNI 会校验 remote, pai 和 Kubernetes 模式下 NNIManager 与 trialKeeper
#### maxTrialNumPerGpu #### maxTrialNumPerGpu
可选。 整数。 默认值:99999 可选。 整数。 默认值: 1
用于指定 GPU 设备上的最大并发 Trial 的数量。 用于指定 GPU 设备上的最大并发 Trial 的数量。
......
...@@ -43,7 +43,7 @@ nnictl 在执行时,使用 tmp 目录作为临时目录来复制 codeDir 下 ...@@ -43,7 +43,7 @@ nnictl 在执行时,使用 tmp 目录作为临时目录来复制 codeDir 下
* `http://127.0.0.1``http://172.17.0.1` 以及 `http://10.0.0.15` 都是 localhost。如果在服务器或远程计算机上启动 Experiment, 可将此 IP 替换为所连接的 IP 来查看 Web 界面,如 `http://[远程连接的地址]:8080` * `http://127.0.0.1``http://172.17.0.1` 以及 `http://10.0.0.15` 都是 localhost。如果在服务器或远程计算机上启动 Experiment, 可将此 IP 替换为所连接的 IP 来查看 Web 界面,如 `http://[远程连接的地址]:8080`
* 如果使用服务器 IP 后还是无法看到 Web 界面,可检查此服务器上是否有防火墙或需要代理。 或使用此运行 NNI Experiment 的服务器上的浏览器来查看 Web 界面。 * 如果使用服务器 IP 后还是无法看到 Web 界面,可检查此服务器上是否有防火墙或需要代理。 或使用此运行 NNI Experiment 的服务器上的浏览器来查看 Web 界面。
* 另一个可能的原因是 Experiment 启动失败了,NNI 无法读取 Experiment 的信息。 可在如下目录中查看 NNIManager 的日志: `~/nni/experiment/[your_experiment_id]` `/log/nnimanager.log` * 另一个可能的原因是 Experiment 启动失败了,NNI 无法读取 Experiment 的信息。 可在如下目录中查看 NNIManager 的日志: `~/nni-experiments/[your_experiment_id]` `/log/nnimanager.log`
### RESTful 服务器启动失败 ### RESTful 服务器启动失败
......
...@@ -23,9 +23,9 @@ NNI 中有三种日志。 在创建 Experiment 时,可增加命令行参数 `- ...@@ -23,9 +23,9 @@ NNI 中有三种日志。 在创建 Experiment 时,可增加命令行参数 `-
### Experiment 根目录 ### Experiment 根目录
每个 Experiment 都有一个根目录,会显示在 Web 界面的右上角。 如果无法打开 Web 界面,可将 `~/nni/experiment/experiment_id/` 中的 `experiment_id` 替换为实际的 Experiment ID,来组合出根目录。 `experiment_id` 可以在运行 `nnictl create ...` 来创建新 Experiment 的输出中找到。 每个 Experiment 都有一个根目录,会显示在 Web 界面的右上角。 如果无法打开 Web 界面,可将 `~/nni-experiments/experiment_id/` 中的 `experiment_id` 替换为实际的 Experiment ID,来组合出根目录。 `experiment_id` 可以在运行 `nnictl create ...` 来创建新 Experiment 的输出中找到。
> 如有需要,可以在配置文件中修改 `logDir`,来指定存储 Experiment 的目录。(默认为 `~/nni/experiment`)。 参考[配置](ExperimentConfig.md)文档,了解更多信息。 > 如有需要,可以在配置文件中修改 `logDir`,来指定存储 Experiment 的目录。(默认为 `~/nni-experiments`)。 参考[配置](ExperimentConfig.md)文档,了解更多信息。
在此目录下,还会有另一个叫做 `log` 的目录,`nnimanager.log``dispatcher.log` 都在此目录中。 在此目录下,还会有另一个叫做 `log` 的目录,`nnimanager.log``dispatcher.log` 都在此目录中。
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
### 通过 pip 命令安装 NNI ### 通过 pip 命令安装 NNI
先决条件:`python 64-bit >= 3.5` 先决条件:`python 64-bit >= 3.6`
bash bash
python3 -m pip install --upgrade nni python3 -m pip install --upgrade nni
...@@ -15,10 +15,10 @@ ...@@ -15,10 +15,10 @@
如果对某个或最新版本的代码感兴趣,可通过源代码安装 NNI。 如果对某个或最新版本的代码感兴趣,可通过源代码安装 NNI。
先决条件:`python 64-bit >=3.5`, `git`, `wget` 先决条件:`python 64-bit >=3.6`, `git`, `wget`
bash bash
git clone -b v1.6 https://github.com/Microsoft/nni.git git clone -b v1.8 https://github.com/Microsoft/nni.git
cd nni cd nni
./install.sh ./install.sh
...@@ -33,7 +33,7 @@ ...@@ -33,7 +33,7 @@
* 通过克隆源代码下载示例。 * 通过克隆源代码下载示例。
```bash ```bash
git clone -b v1.6 https://github.com/Microsoft/nni.git git clone -b v1.8 https://github.com/Microsoft/nni.git
``` ```
* 运行 MNIST 示例。 * 运行 MNIST 示例。
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
## 先决条件 ## 先决条件
* Python 3.5(或以上)64 位。 在 Windows 上推荐使用 [Anaconda](https://www.anaconda.com/products/individual)[Miniconda](https://docs.conda.io/en/latest/miniconda.html) 来管理多个 Python 环境。 * Python 3.6(或以上)64 位。 在 Windows 上推荐使用 [Anaconda](https://www.anaconda.com/products/individual)[Miniconda](https://docs.conda.io/en/latest/miniconda.html) 来管理多个 Python 环境。
* 如果是新安装的 Python 环境,需要安装 [Microsoft C++ Build Tools](https://visualstudio.microsoft.com/visual-cpp-build-tools/) 来支持 NNI 的依赖项,如 `scikit-learn` * 如果是新安装的 Python 环境,需要安装 [Microsoft C++ Build Tools](https://visualstudio.microsoft.com/visual-cpp-build-tools/) 来支持 NNI 的依赖项,如 `scikit-learn`
...@@ -29,7 +29,7 @@ ...@@ -29,7 +29,7 @@
* 从源代码安装 * 从源代码安装
```bat ```bat
git clone -b v1.6 https://github.com/Microsoft/nni.git git clone -b v1.8 https://github.com/Microsoft/nni.git
cd nni cd nni
powershell -ExecutionPolicy Bypass -file install.ps1 powershell -ExecutionPolicy Bypass -file install.ps1
``` ```
...@@ -41,7 +41,7 @@ ...@@ -41,7 +41,7 @@
* 克隆源代码中的示例。 * 克隆源代码中的示例。
```bat ```bat
git clone -b v1.6 https://github.com/Microsoft/nni.git git clone -b v1.8 https://github.com/Microsoft/nni.git
``` ```
* 运行 MNIST 示例。 * 运行 MNIST 示例。
......
...@@ -267,10 +267,10 @@ nnictl 支持的命令: ...@@ -267,10 +267,10 @@ nnictl 支持的命令:
* 选项 * 选项
| 参数及缩写 | 是否必需 | 默认值 | 说明 | | 参数及缩写 | 是否必需 | 默认值 | 说明 |
| ----------- | ----- | --- | ------------------------------------------------------------------------ | | ----------- | ----- | --- | ---------------------------------------------------------------------- |
| id | False | | 需要设置的 Experiment 的 ID | | id | False | | 需要设置的 Experiment 的 ID |
| --value, -v | True | | Experiment 持续时间,如没有单位,则为秒。 后缀可以为 's' 即秒 (默认值), 'm'分钟, 'h'小时或 'd' 即天。 | | --value, -v | True | | 形如 '1m' (一分钟)或 '2h' (两小时)的字符串。 后缀可以为 's'(秒), 'm'分钟, 'h'小时或 'd'(天)。 |
* 示例 * 示例
...@@ -315,19 +315,23 @@ nnictl 支持的命令: ...@@ -315,19 +315,23 @@ nnictl 支持的命令:
* 说明 * 说明
使用此命令来查看 Trial 的信息。 使用此命令来查看 Trial 的信息。 注意如果 `head``tail` 被设置, 则只有完成的 Trial 会被展示。
* 用法 * 用法
```bash ```bash
nnictl trial ls nnictl trial ls
nnictl trial ls --head 10
nnictl trial ls --tail 10
``` ```
* 选项 * 选项
| 参数及缩写 | 是否必需 | 默认值 | 说明 | | 参数及缩写 | 是否必需 | 默认值 | 说明 |
| ----- | ----- | --- | --------------------- | | ------ | ----- | --- | --------------------- |
| id | False | | 需要设置的 Experiment 的 id | | id | False | | 需要设置的 Experiment 的 id |
| --head | False | | 依据最高默认指标列出的项数。 |
| --tail | False | | 依据最低默认指标列出的项数。 |
* **nnictl trial kill** * **nnictl trial kill**
...@@ -454,8 +458,6 @@ nnictl 支持的命令: ...@@ -454,8 +458,6 @@ nnictl 支持的命令:
| id | False | | Experiment ID | | id | False | | Experiment ID |
| --all | False | | 删除所有 Experiment | | --all | False | | 删除所有 Experiment |
<a name="export"></a>
* **nnictl experiment export** * **nnictl experiment export**
* 说明 * 说明
...@@ -470,18 +472,19 @@ nnictl 支持的命令: ...@@ -470,18 +472,19 @@ nnictl 支持的命令:
* 选项 * 选项
| 参数及缩写 | 是否必需 | 默认值 | 说明 | | 参数及缩写 | 是否必需 | 默认值 | 说明 |
| -------------- | ----- | --- | ------------------------- | | ------------------ | ----- | --- | ------------------------- |
| id | False | | Experiment ID | | id | False | | Experiment ID |
| --filename, -f | True | | 文件的输出路径 | | --filename, -f | True | | 文件的输出路径 |
| --type | True | | 输出文件类型,仅支持 "csv" 和 "json" | | --type | True | | 输出文件类型,仅支持 "csv" 和 "json" |
| --intermediate, -i | False | | 是否保存中间结果 |
* 示例 * 示例
> 将 Experiment 中所有 Trial 数据导出为 JSON 格式 > 将 Experiment 中所有 Trial 数据导出为 JSON 格式
```bash ```bash
nnictl experiment export [experiment_id] --filename [file_path] --type json nnictl experiment export [experiment_id] --filename [file_path] --type json --intermediate
``` ```
* **nnictl experiment import** * **nnictl experiment import**
...@@ -542,6 +545,62 @@ nnictl 支持的命令: ...@@ -542,6 +545,62 @@ nnictl 支持的命令:
nnictl experiment import [experiment_id] -f experiment_data.json nnictl experiment import [experiment_id] -f experiment_data.json
``` ```
* **nnictl experiment save**
* 说明
保存 NNI Experiment 的元数据及代码数据
* 用法
```bash
nnictl experiment save [OPTIONS]
```
* 选项
| 参数及缩写 | 是否必需 | 默认值 | 说明 |
| ----------------- | ----- | --- | ---------------------------------- |
| id | True | | 要保存的 Experiment 标识 |
| --path, -p | False | | 保存 NNI Experiment 数据的路径,默认为当前工作目录 |
| --saveCodeDir, -s | False | | 是否保存 Experiment 的代码目录的数据,默认为 False |
* 示例
> 保存 Experiment
```bash
nnictl experiment save [experiment_id] --saveCodeDir
```
* **nnictl experiment load**
* 说明
加载 NNI Experiment
* 用法
```bash
nnictl experiment load [OPTIONS]
```
* 选项
| 参数及缩写 | 是否必需 | 默认值 | 说明 |
| ------------- | ----- | --- | ---------------------------------- |
| --path, -p | True | | NNI 包的文件路径 |
| --codeDir, -c | True | | 要加载的实验的代码目录,加载的 NNI 包中的代码也会放到此目录下。 |
| --logDir, -l | False | | 存放加载的实验的日志的目录。 |
* 示例
> 加载 Experiment
```bash
nnictl experiment load --path [path] --codeDir [codeDir]
```
<a name="platform"></a> <a name="platform"></a>
### 管理平台信息 ### 管理平台信息
...@@ -631,7 +690,7 @@ nnictl 支持的命令: ...@@ -631,7 +690,7 @@ nnictl 支持的命令:
| 参数及缩写 | 是否必需 | 默认值 | 说明 | | 参数及缩写 | 是否必需 | 默认值 | 说明 |
| ---------- | ----- | --- | --------------------- | | ---------- | ----- | --- | --------------------- |
| id | False | | 需要设置的 Experiment 的 id | | id | False | | 需要设置的 Experiment 的 ID |
| --head, -h | False | | 显示 stderr 开始的若干行 | | --head, -h | False | | 显示 stderr 开始的若干行 |
| --tail, -t | False | | 显示 stderr 结尾的若干行 | | --tail, -t | False | | 显示 stderr 结尾的若干行 |
| --path, -p | False | | 显示 stderr 文件的路径 | | --path, -p | False | | 显示 stderr 文件的路径 |
...@@ -681,7 +740,7 @@ nnictl 支持的命令: ...@@ -681,7 +740,7 @@ nnictl 支持的命令:
| 参数及缩写 | 是否必需 | 默认值 | 说明 | | 参数及缩写 | 是否必需 | 默认值 | 说明 |
| -------------- | ----- | ---- | --------------------- | | -------------- | ----- | ---- | --------------------- |
| id | False | | 需要设置的 Experiment 的 id | | id | False | | 需要设置的 Experiment 的 ID |
| --trial_id, -T | False | | Trial 的 ID | | --trial_id, -T | False | | Trial 的 ID |
| --port | False | 6006 | Tensorboard 进程的端口 | | --port | False | 6006 | Tensorboard 进程的端口 |
...@@ -690,7 +749,7 @@ nnictl 支持的命令: ...@@ -690,7 +749,7 @@ nnictl 支持的命令:
1. NNICTL 当前仅支持本机和远程平台的 Tensorboard,其它平台暂不支持。 1. NNICTL 当前仅支持本机和远程平台的 Tensorboard,其它平台暂不支持。
2. 如果要使用 Tensorboard,需要将 Tensorboard 日志输出到环境变量 [NNI_OUTPUT_DIR] 路径下。 2. 如果要使用 Tensorboard,需要将 Tensorboard 日志输出到环境变量 [NNI_OUTPUT_DIR] 路径下。
3. 在 local 模式中,nnictl 会直接设置 --logdir=[NNI_OUTPUT_DIR] 并启动 Tensorboard 进程。 3. 在 local 模式中,nnictl 会直接设置 --logdir=[NNI_OUTPUT_DIR] 并启动 Tensorboard 进程。
4. 在 remote 模式中,nnictl 会创建一个 SSH 客户端来将日志数据从远程计算机复制到本机临时目录中,然后在本机开始 Tensorboard 进程。 需要注意的是,nnictl 只在使用此命令时复制日志数据,如果要查看最新的 tensorboard 结果,需要再次执行 nnictl tensorboard 命令。 4. 在 remote 模式中,nnictl 会创建一个 SSH 客户端来将日志数据从远程计算机复制到本机临时目录中,然后在本机开始 Tensorboard 进程。 需要注意的是,nnictl 只在使用此命令时复制日志数据,如果要查看最新的 Tensorboard 结果,需要再次执行 nnictl tensorboard 命令。
5. 如果只有一个 Trial 任务,不需要设置 Trial ID。 如果有多个运行的 Trial 任务,需要设置 Trial ID,或使用 [nnictl tensorboard start --trial_id all] 来将 --logdir 映射到所有 Trial 的路径。 5. 如果只有一个 Trial 任务,不需要设置 Trial ID。 如果有多个运行的 Trial 任务,需要设置 Trial ID,或使用 [nnictl tensorboard start --trial_id all] 来将 --logdir 映射到所有 Trial 的路径。
* **nnictl tensorboard stop** * **nnictl tensorboard stop**
...@@ -729,7 +788,7 @@ nnictl 支持的命令: ...@@ -729,7 +788,7 @@ nnictl 支持的命令:
可通过 `nnictl package list` 命令查看可用的`<包名称>` 可通过 `nnictl package list` 命令查看可用的`<包名称>`
```bash ```bash
nnictl package install <安装源> nnictl package install <安装源>
...@@ -773,7 +832,7 @@ nnictl 支持的命令: ...@@ -773,7 +832,7 @@ nnictl 支持的命令:
* 说明 * 说明
列出安装的所有包。 列出安装的包 / 所有包。
* 用法 * 用法
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
## 安装 ## 安装
目前支持 Linux、macOS 和 Windows。 Ubuntu 16.04 或更高版本、macOS 10.14.1 和 Windows 10.1809 均经过测试并支持。 在 `python >= 3.5` 的环境中,只需要运行 `pip install` 即可完成安装。 目前支持 Linux、macOS 和 Windows。 Ubuntu 16.04 或更高版本、macOS 10.14.1 和 Windows 10.1809 均经过测试并支持。 在 `python >= 3.6` 的环境中,只需要运行 `pip install` 即可完成安装。
### Linux 和 macOS ### Linux 和 macOS
......
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
将第一行作为示例。 `dropout_rate` 定义了一个变量,先验分布为均匀分布,范围从 `0.1``0.5` 将第一行作为示例。 `dropout_rate` 定义了一个变量,先验分布为均匀分布,范围从 `0.1``0.5`
注意搜索空间的效果与 Tuner 高度相关。 此处列出了内置 Tuner 所支持的类型。 对于自定义的 Tuner,不必遵循鞋标,可使用任何的类型。 注意搜索空间中可用的取样策略取决于要使用的 Tuner 。 此处列出了内置 Tuner 所支持的类型。 对于自定义的 Tuner,不必遵循这些约定,可使用任何的类型。
## 类型 ## 类型
...@@ -29,13 +29,8 @@ ...@@ -29,13 +29,8 @@
* `{"_type": "choice", "_value": options}` * `{"_type": "choice", "_value": options}`
* 表示变量的值是选项之一。 这里的 `options` 应该是字符串或数值的列表。 可将任意对象(如子数组,数字与字符串的混合值或者空值)存入此数组中,但可能会产生不可预料的行为。 * 变量值为 options 中之一。 这里的 `options` 应该是字符串或数值的列表。 可将任意对象(如子数组,数字与字符串的混合值或者空值)存入此数组中,但可能会产生不可预料的行为。
* `options` 也可以是嵌套的子搜索空间。此子搜索空间仅在相应的元素选中后才起作用。 该子搜索空间中的变量可看作是条件变量。 <a [嵌套搜索空间的简单示例](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` 也可以是嵌套的子搜索空间。此子搜索空间仅在相应的元素选中后才起作用。 该子搜索空间中的变量可看作是条件变量。 <a [嵌套搜索空间的简单示例](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 。
* Random Search(随机搜索)
* TPE
* Anneal(退火算法)
* Evolution
* `{"_type": "randint", "_value": [lower, upper]}` * `{"_type": "randint", "_value": [lower, upper]}`
...@@ -44,7 +39,7 @@ ...@@ -44,7 +39,7 @@
* `{"_type": "uniform", "_value": [low, high]}` * `{"_type": "uniform", "_value": [low, high]}`
* 变量 low 和 high 之间均匀分布的值 * 变量值在 low 和 high 之间均匀采样
* 当优化时,此变量值会在两侧区间内。 * 当优化时,此变量值会在两侧区间内。
* `{"_type": "quniform", "_value": [low, high, q]}` * `{"_type": "quniform", "_value": [low, high, q]}`
...@@ -68,7 +63,7 @@ ...@@ -68,7 +63,7 @@
* `{"_type": "qnormal", "_value": [mu, sigma, q]}` * `{"_type": "qnormal", "_value": [mu, sigma, q]}`
* 这表示变量值会类似于 `round(normal(mu, sigma) / q) * q` * 变量的值由 `round(normal(mu, sigma) / q) * q` 确定。
* 适用于在 mu 周围的离散变量,且没有上下限限制。 * 适用于在 mu 周围的离散变量,且没有上下限限制。
* `{"_type": "lognormal", "_value": [mu, sigma]}` * `{"_type": "lognormal", "_value": [mu, sigma]}`
...@@ -77,23 +72,23 @@ ...@@ -77,23 +72,23 @@
* `{"_type": "qlognormal", "_value": [mu, sigma, q]}` * `{"_type": "qlognormal", "_value": [mu, sigma, q]}`
* 这表示变量值会类似于 `round(exp(normal(mu, sigma)) / q) * q` * 变量的值由 `round(exp(normal(mu, sigma)) / q) * q` 确定。
* 适用于值是“平滑”的离散变量,但某一边有界。 * 适用于值是“平滑”的离散变量,但某一边有界。
## 每种 Tuner 支持的搜索空间类型 ## 每种 Tuner 支持的搜索空间类型
| | choice | randint | uniform | quniform | loguniform | qloguniform | normal | qnormal | lognormal | qlognormal | | | choice | choice(nested) | randint | uniform | quniform | loguniform | qloguniform | normal | qnormal | lognormal | qlognormal |
|:-------------------:|:--------:|:--------:|:--------:|:--------:|:----------:|:-----------:|:--------:|:--------:|:---------:|:----------:| |:-------------------:|:--------:|:--------------:|:--------:|:--------:|:--------:|:----------:|:-----------:|:--------:|:--------:|:---------:|:----------:|
| TPE Tuner | &#10003; | &#10003; | &#10003; | &#10003; | &#10003; | &#10003; | &#10003; | &#10003; | &#10003; | &#10003; | | TPE Tuner | &#10003; | &#10003; | &#10003; | &#10003; | &#10003; | &#10003; | &#10003; | &#10003; | &#10003; | &#10003; | &#10003; |
| Random Search Tuner | &#10003; | &#10003; | &#10003; | &#10003; | &#10003; | &#10003; | &#10003; | &#10003; | &#10003; | &#10003; | | Random Search Tuner | &#10003; | &#10003; | &#10003; | &#10003; | &#10003; | &#10003; | &#10003; | &#10003; | &#10003; | &#10003; | &#10003; |
| Anneal Tuner | &#10003; | &#10003; | &#10003; | &#10003; | &#10003; | &#10003; | &#10003; | &#10003; | &#10003; | &#10003; | | Anneal Tuner | &#10003; | &#10003; | &#10003; | &#10003; | &#10003; | &#10003; | &#10003; | &#10003; | &#10003; | &#10003; | &#10003; |
| Evolution Tuner | &#10003; | &#10003; | &#10003; | &#10003; | &#10003; | &#10003; | &#10003; | &#10003; | &#10003; | &#10003; | | Evolution Tuner | &#10003; | &#10003; | &#10003; | &#10003; | &#10003; | &#10003; | &#10003; | &#10003; | &#10003; | &#10003; | &#10003; |
| SMAC Tuner | &#10003; | &#10003; | &#10003; | &#10003; | &#10003; | | | | | | | SMAC Tuner | &#10003; | | &#10003; | &#10003; | &#10003; | &#10003; | | | | | |
| Batch Tuner | &#10003; | | | | | | | | | | | Batch Tuner | &#10003; | | | | | | | | | | |
| Grid Search Tuner | &#10003; | &#10003; | | &#10003; | | | | | | | | Grid Search Tuner | &#10003; | | &#10003; | | &#10003; | | | | | | |
| Hyperband Advisor | &#10003; | &#10003; | &#10003; | &#10003; | &#10003; | &#10003; | &#10003; | &#10003; | &#10003; | &#10003; | | Hyperband Advisor | &#10003; | | &#10003; | &#10003; | &#10003; | &#10003; | &#10003; | &#10003; | &#10003; | &#10003; | &#10003; |
| Metis Tuner | &#10003; | &#10003; | &#10003; | &#10003; | | | | | | | | Metis Tuner | &#10003; | | &#10003; | &#10003; | &#10003; | | | | | | |
| GP Tuner | &#10003; | &#10003; | &#10003; | &#10003; | &#10003; | &#10003; | | | | | | GP Tuner | &#10003; | | &#10003; | &#10003; | &#10003; | &#10003; | &#10003; | | | | |
已知的局限: 已知的局限:
...@@ -101,5 +96,4 @@ ...@@ -101,5 +96,4 @@
* 请注意,对于嵌套搜索空间: * 请注意,对于嵌套搜索空间:
* 只有 随机搜索/TPE/Anneal/Evolution Tuner 支持嵌套搜索空间 * 只有 随机搜索/TPE/Anneal/Evolution Tuner 支持嵌套搜索空间
* 不支持嵌套搜索空间 "超参" 的可视化,对其的改进通过 [#1110](https://github.com/microsoft/nni/issues/1110) 来跟踪 。欢迎任何建议和贡献。 \ No newline at end of file
\ No newline at end of file
...@@ -47,7 +47,8 @@ nnictl create --config examples/trials/mnist-tfv1/config.yml ...@@ -47,7 +47,8 @@ nnictl create --config examples/trials/mnist-tfv1/config.yml
#### TypeScript #### TypeScript
* 如改动了 `src/nni_manager`,在此目录下运行 `yarn watch` 可持续编译改动。 它将持续的监视并编译代码。 可能需要重启 `nnictl` 来重新加载 NNI 管理器。 * 如改动了 `src/nni_manager`,在此目录下运行 `yarn watch` 可持续编译改动。 它将持续的监视并编译代码。 可能需要重启 `nnictl` 来重新加载 NNI 管理器。
* 如果改动了 `src/webui``src/nasui`,在相应目录下运行 `yarn start`。 Web 界面会在代码修改后自动刷新。 * 如改动了 `src/webui`, 运行 `yarn dev`, 该命令将同时运行一个 模拟 API 服务器和一个 webpack 开发服务器。 使用环境变量 `EXPERIMENT`(例如 `mnist-tfv1-running`)来指定要用到的模拟数据。 内置的模拟实验列在 `src/webui/mock`。 完整示例: `EXPERIMENT=mnist-tfv1-running yarn dev`
* 如改动了 `src/webui``src/nasui`,在相应目录下运行 `yarn start`。 Web 界面会在代码修改后自动刷新。 还有一个在开发时有用的模拟 API 服务器, 可以通过 `node server.js` 来启动。
### 5. 提交拉取请求 ### 5. 提交拉取请求
......
...@@ -18,8 +18,10 @@ ...@@ -18,8 +18,10 @@
<a href="{{ pathto('TrainingService/RemoteMachineMode') }}">远程服务器</a>, <a href="{{ pathto('TrainingService/RemoteMachineMode') }}">远程服务器</a>,
<a href="{{ pathto('TrainingService/PaiMode') }}">OpenPAI</a>, <a href="{{ pathto('TrainingService/PaiMode') }}">OpenPAI</a>,
<a href="{{ pathto('TrainingService/KubeflowMode') }}">Kubeflow</a>, <a href="{{ pathto('TrainingService/KubeflowMode') }}">Kubeflow</a>,
<a href="{{ pathto('TrainingService/FrameworkControllerMode') }}">基于 K8S 的 FrameworkController(如,AKS 等)</a> <a href="{{ pathto('TrainingService/FrameworkControllerMode') }}">基于 K8S 的 FrameworkController(如,AKS 等)</a>,
<a href="{{ pathto('TrainingService/DLTSMode') }}">DLWorkspace (又称 DLTS)</a>,以及其它云服务。 <a href="{{ pathto('TrainingService/DLTSMode') }}">DLWorkspace (又称 DLTS)</a>,
<a href="{{ pathto('TrainingService/AMLMode') }}">AML (Azure Machine Learning)</a>
以及其它云服务。
</p> </p>
<!-- Who should consider using NNI --> <!-- Who should consider using NNI -->
<div> <div>
...@@ -185,6 +187,7 @@ ...@@ -185,6 +187,7 @@
<li><a href="{{ pathto('TrainingService/FrameworkControllerMode') }}">基于 K8S 的 FrameworkController (如 AKS 等)</a> <li><a href="{{ pathto('TrainingService/FrameworkControllerMode') }}">基于 K8S 的 FrameworkController (如 AKS 等)</a>
</li> </li>
<li><a href="{{ pathto('TrainingService/DLTSMode') }}">DLWorkspace (又称 DLTS)</a></li> <li><a href="{{ pathto('TrainingService/DLTSMode') }}">DLWorkspace (又称 DLTS)</a></li>
<li><a href="{{ pathto('TrainingService/AMLMode') }}">AML (Azure Machine Learning)</a></li>
</ul> </ul>
</ul> </ul>
</td> </td>
...@@ -221,7 +224,7 @@ ...@@ -221,7 +224,7 @@
<div> <div>
<h2 class="second-title">安装</h2> <h2 class="second-title">安装</h2>
<p> <p>
NNI 支持并在 Ubuntu >= 16.04, macOS >= 10.14.1, 和 Windows 10 >= 1809 通过了测试。 在 `python 64 位 >= 3.5` 的环境中,只需要运行 `pip install` 即可完成安装。 NNI 支持并在 Ubuntu >= 16.04, macOS >= 10.14.1, 和 Windows 10 >= 1809 通过了测试。 在 `python 64 位 >= 3.6` 的环境中,只需要运行 `pip install` 即可完成安装。
</p> </p>
<div class="command-intro">Linux 或 macOS</div> <div class="command-intro">Linux 或 macOS</div>
<div class="command">python3 -m pip install --upgrade nni</div> <div class="command">python3 -m pip install --upgrade nni</div>
...@@ -249,7 +252,7 @@ ...@@ -249,7 +252,7 @@
<ul> <ul>
<li> <li>
<p>通过克隆源代码下载示例。</p> <p>通过克隆源代码下载示例。</p>
<div class="command">git clone -b v{{ release }} https://github.com/Microsoft/nni.git</div> <div class="command">git clone -b {{ release }} https://github.com/Microsoft/nni.git</div>
</li> </li>
<li> <li>
<p>运行 MNIST 示例。</p> <p>运行 MNIST 示例。</p>
......
...@@ -17,6 +17,7 @@ from recommonmark.parser import CommonMarkParser ...@@ -17,6 +17,7 @@ from recommonmark.parser import CommonMarkParser
import os import os
import sys import sys
sys.path.insert(0, os.path.abspath('../../src/sdk/pynni')) sys.path.insert(0, os.path.abspath('../../src/sdk/pynni'))
sys.path.insert(1, os.path.abspath('../../src/sdk/pycli'))
# -- Project information --------------------------------------------------- # -- Project information ---------------------------------------------------
...@@ -28,7 +29,7 @@ author = 'Microsoft' ...@@ -28,7 +29,7 @@ author = 'Microsoft'
# The short X.Y version # The short X.Y version
version = '' version = ''
# The full version, including alpha/beta/rc tags # The full version, including alpha/beta/rc tags
release = 'v1.6' release = 'v1.8'
# -- General configuration --------------------------------------------------- # -- General configuration ---------------------------------------------------
......
...@@ -16,7 +16,7 @@ Neural Network Intelligence ...@@ -16,7 +16,7 @@ Neural Network Intelligence
模型压缩<model_compression> 模型压缩<model_compression>
特征工程<feature_engineering> 特征工程<feature_engineering>
参考<reference> 参考<reference>
社区分享 <CommunitySharings/community_sharings> 示例与解决方案<CommunitySharings/community_sharings>
常见问题 <Tutorial/FAQ> 常见问题 <Tutorial/FAQ>
如何贡献 <contribution> 如何贡献 <contribution>
更改日志 <Release> 更改日志 <Release>
\ No newline at end of file
...@@ -8,9 +8,4 @@ ...@@ -8,9 +8,4 @@
MNIST<./TrialExample/MnistExamples> MNIST<./TrialExample/MnistExamples>
Cifar10<./TrialExample/Cifar10Examples> Cifar10<./TrialExample/Cifar10Examples>
Scikit-learn<./TrialExample/SklearnExamples> Scikit-learn<./TrialExample/SklearnExamples>
EvolutionSQuAD<./TrialExample/SquadEvolutionExamples> GBDT<./TrialExample/GbdtExample>
GBDT<./TrialExample/GbdtExample> \ No newline at end of file
RocksDB <./TrialExample/RocksdbExamples>
OpEvo <./TrialExample/OpEvoExamples>
KD 示例 <./TrialExample/KDExample>
EfficientNet <./TrialExample/EfficientNet>
###########################
Neural Network Intelligence
###########################
.. toctree::
:caption: 目录
:maxdepth: 2
:titlesonly:
概述<Overview>
安装 <installation>
入门<Tutorial/QuickStart>
自动(超参数)调优 <hyperparameter_tune>
神经网络架构搜索<nas>
模型压缩<model_compression>
特征工程<feature_engineering>
参考<reference>
社区分享 <CommunitySharings/community_sharings>
常见问题 <Tutorial/FAQ>
如何贡献 <contribution>
更改日志 <Release>
\ No newline at end of file
...@@ -23,5 +23,6 @@ ...@@ -23,5 +23,6 @@
One-Shot NAS <NAS/one_shot_nas> One-Shot NAS <NAS/one_shot_nas>
自定义 NAS 算法 <NAS/Advanced> 自定义 NAS 算法 <NAS/Advanced>
NAS 可视化 <NAS/Visualization> NAS 可视化 <NAS/Visualization>
Search Space Zoo <NAS/SearchSpaceZoo>
NAS 基准测试 <NAS/Benchmarks> NAS 基准测试 <NAS/Benchmarks>
API 参考 <NAS/NasReference> API 参考 <NAS/NasReference>
# NNI 客户端
NNI client 是 `nnictl` 的python API,提供了对常用命令的实现。 相比于命令行,用户可以通过此 API 来在 python 代码中直接操控实验,收集实验结果并基于实验结果进行更加高级的分析。 示例如下:
```
from nnicli import Experiment
# 创建 Experiment 实例
exp = Experiment()
# 启动 Experiment,并将实例连接到该 Experiment
# 也可以使用 `resume_experiment`, `view_experiment` 或 `connect_experiment`
# 同一实例中只有上面中的一个函数应该被调用
exp.start_experiment('nni/examples/trials/mnist-pytorch/config.yml', port=9090)
# 更新 Experiment 的并发设置
exp.update_concurrency(3)
# 获取 Experiment 的信息
print(exp.get_experiment_status())
print(exp.get_job_statistics())
print(exp.list_trial_jobs())
# 关闭 Experiment,并将实例与 Experiment 解除关联
exp.stop_experiment()
```
## 参考
```eval_rst
.. autoclass:: nnicli.Experiment
:members:
.. autoclass:: nnicli.TrialJob
:members:
.. autoclass:: nnicli.TrialHyperParameters
:members:
.. autoclass:: nnicli.TrialMetricData
:members:
.. autoclass:: nnicli.TrialResult
:members:
```
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