Unverified Commit 483232c8 authored by Chi Song's avatar Chi Song Committed by GitHub
Browse files

Chinese translation (#1554)

parent 76086583
......@@ -10,6 +10,7 @@ nnictl 支持的命令:
* [nnictl create](#create)
* [nnictl resume](#resume)
* [nnictl view](#view)
* [nnictl stop](#stop)
* [nnictl update](#update)
* [nnictl trial](#trial)
......@@ -104,6 +105,35 @@ nnictl 支持的命令:
nnictl resume [experiment_id] --port 8088
```
<a name="view"></a>
![](https://placehold.it/15/1589F0/000000?text=+) `nnictl view`
* 说明
使用此命令查看已停止的 Experiment。
* 用法
```bash
nnictl view [OPTIONS]
```
* 选项
| 参数及缩写 | 是否必需 | 默认值 | 说明 |
| ---------- | ----- | --- | -------------------------------- |
| id | True | | 要查看的 Experiment 标识 |
| --port, -p | False | | 要查看的 Experiment 使用的 RESTful 服务端口 |
* 示例
> 在指定的端口 8088 上查看 Experiment
```bash
nnictl view [experiment_id] --port 8088
```
<a name="stop"></a>
![](https://placehold.it/15/1589F0/000000?text=+) `nnictl stop`
......@@ -125,7 +155,7 @@ nnictl 支持的命令:
| --port, -p | False | | 要停止的 Experiment 使用的 RESTful 服务端口 |
| --all, -a | False | | 停止所有 Experiment |
* 详细信息及
* 详细信息及
1. 如果没有指定 id,并且当前有运行的 Experiment,则会停止该 Experiment,否则会输出错误信息。
......@@ -183,7 +213,7 @@ nnictl 支持的命令:
| id | False | | 需要设置的 Experiment 的 id |
| --filename, -f | True | | 新的搜索空间文件名 |
*
*
`使用 'examples/trials/mnist/search_space.json' 来更新 Experiment 的搜索空间`
......@@ -207,7 +237,7 @@ nnictl 支持的命令:
| 参数及缩写 | 是否必需 | 默认值 | 说明 |
| ----------- | ----- | --- | --------------------- |
| id | False | | 需要设置的 Experiment 的 id |
| id | False | | 需要设置的 Experiment 的 ID |
| --value, -v | True | | 允许同时运行的 Trial 的数量 |
* 样例
......@@ -233,11 +263,11 @@ nnictl 支持的命令:
* 选项
| 参数及缩写 | 是否必需 | 默认值 | 说明 |
| ----------- | ----- | --- | ----------------------------------------------------------------------- |
| id | False | | 需要设置的 Experiment 的 id |
| --value, -v | True | | Experiment 持续时间如没有单位,则为秒。 后缀可以为 's' 即秒 (默认值), 'm' 即分钟, 'h' 即小时或 'd' 即天。 |
| ----------- | ----- | --- | ------------------------------------------------------------------------ |
| id | False | | 需要设置的 Experiment 的 ID |
| --value, -v | True | | Experiment 持续时间如没有单位,则为秒。 后缀可以为 's' 即秒 (默认值), 'm' 即分钟, 'h' 即小时或 'd' 即天。 |
*
*
> 修改 Experiment 的执行时间
......@@ -264,7 +294,7 @@ nnictl 支持的命令:
| id | False | | 需要设置的 Experiment 的 id |
| --value, -v | True | | 需要设置的 maxtrialnum 的数量 |
*
*
> 更新 Experiment 的 Trial 数量
......@@ -312,7 +342,7 @@ nnictl 支持的命令:
| id | False | | Trial 的 Experiment ID |
| --trial_id, -T | True | | 需要终止的 Trial 的 ID。 |
*
*
> 结束 Trial 任务
......@@ -378,7 +408,7 @@ nnictl 支持的命令:
| 参数及缩写 | 是否必需 | 默认值 | 说明 |
| ----- | ----- | --- | --------------------- |
| id | False | | 需要设置的 Experiment 的 id |
| id | False | | 需要设置的 Experiment 的 ID |
* **nnictl experiment list**
......@@ -439,7 +469,7 @@ nnictl 支持的命令:
| --filename, -f | True | | 文件的输出路径 |
| --type | True | | 输出文件类型,仅支持 "csv" 和 "json" |
*
*
> 将 Experiment 中所有 Trial 数据导出为 JSON 格式
......@@ -478,7 +508,7 @@ nnictl 支持的命令:
]
```
最顶层列表的每个元素都是一个例。 对于内置的 Tuner 和 Advisor,每个样本至少需要两个主键:`parameter``value``parameter` 必须与 Experiment 的搜索空间相匹配,`parameter` 中的所有的主键(或超参)都必须与搜索空间中的主键相匹配。 否则, Tuner 或 Advisor 可能会有无法预期的行为。 `Value` 应当遵循与 `nni.report_final_result` 的输入值一样的规则,即要么时一个数字,或者是包含 `default` 主键的 dict。 对于自定义的 Tuner 或 Advisor,根据实现的不同,此文件可以是任意的 JSON 内容(例如,`import_data`)。
最顶层列表的每个元素都是一个例。 对于内置的 Tuner 和 Advisor,每个样本至少需要两个主键:`parameter``value``parameter` 必须与 Experiment 的搜索空间相匹配,`parameter` 中的所有的主键(或超参)都必须与搜索空间中的主键相匹配。 否则, Tuner 或 Advisor 可能会有无法预期的行为。 `Value` 应当遵循与 `nni.report_final_result` 的输入值一样的规则,即要么时一个数字,或者是包含 `default` 主键的 dict。 对于自定义的 Tuner 或 Advisor,根据实现的不同,此文件可以是任意的 JSON 内容(例如,`import_data`)。
也可以用 [nnictl experiment export](#export) 命令导出 Experiment 已经运行过的 Trial 超参和结果。
......@@ -489,7 +519,7 @@ nnictl 支持的命令:
内置 Advisor: BOHB
```
*如果要将数据导入到 BOHB Advisor,建议像 NNI 一样,增加 "TRIAL_BUDGET" 参数,否则,BOHB 会使用 max_budget 作为 "TRIAL_BUDGET"。 例如下:*
*如果要将数据导入到 BOHB Advisor,建议像 NNI 一样,增加 "TRIAL_BUDGET" 参数,否则,BOHB 会使用 max_budget 作为 "TRIAL_BUDGET"。 例如下:*
```json
[
......@@ -497,7 +527,7 @@ nnictl 支持的命令:
]
```
*
*
> 将数据导入运行中的 Experiment
......@@ -563,7 +593,7 @@ nnictl 支持的命令:
| 参数及缩写 | 是否必需 | 默认值 | 说明 |
| ---------- | ----- | --- | --------------------- |
| id | False | | 需要设置的 Experiment 的 ID |
| id | False | | 需要设置的 Experiment 的 id |
| --head, -h | False | | 显示 stdout 开始的若干行 |
| --tail, -t | False | | 显示 stdout 结尾的若干行 |
| --path, -p | False | | 显示 stdout 文件的路径 |
......@@ -592,7 +622,7 @@ nnictl 支持的命令:
| 参数及缩写 | 是否必需 | 默认值 | 说明 |
| ---------- | ----- | --- | --------------------- |
| id | False | | 需要设置的 Experiment 的 ID |
| id | False | | 需要设置的 Experiment 的 id |
| --head, -h | False | | 显示 stderr 开始的若干行 |
| --tail, -t | False | | 显示 stderr 结尾的若干行 |
| --path, -p | False | | 显示 stderr 文件的路径 |
......@@ -641,7 +671,7 @@ nnictl 支持的命令:
| 参数及缩写 | 是否必需 | 默认值 | 说明 |
| -------------- | ----- | ---- | --------------------- |
| id | False | | 需要设置的 Experiment 的 id |
| --trial_id, -T | False | | Trial 的 id |
| --trial_id, -T | False | | Trial 的 ID |
| --port | False | 6006 | Tensorboard 进程的端口 |
* 详细说明
......
......@@ -101,7 +101,7 @@
已知的局限:
* 注意 Metis Tuner 当前仅支持在 `choice`使用数值。
* GP Tuner 和 Metis Tuner 的搜索空间只支持**数值**,(`choice` 类型在其它 Tuner 中可以使用数值,如:字符串等)。 GP Tuner 和 Metis Tuner 都使用了高斯过程的回归(Gaussian Process Regressor, GPR)。 GPR 基于计算不同点距离的和函数来进行预测,其无法计算非数值值的距离
* 请注意,对于嵌套搜索空间:
......
......@@ -50,6 +50,9 @@ Assessor(评估器)
Advisor
------------------------
.. autoclass:: nni.msg_dispatcher_base.MsgDispatcherBase
:members:
.. autoclass:: nni.hyperband_advisor.hyperband_advisor.Hyperband
:members:
......
# 运行模型压缩示例
以 PyTorch 剪枝为例:
```bash
python main_torch_pruner.py
```
此示例使用了 AGP Pruner。 初始化 Pruner 需要通过以下两种方式来提供配置。
- 读取 `configure_example.yaml`,这样代码会更整洁,但配置会比较复杂。
- 直接在代码中配置
此例在代码中配置了模型压缩:
```python
configure_list = [{
'initial_sparsity': 0,
'final_sparsity': 0.8,
'start_epoch': 0,
'end_epoch': 10,
'frequency': 1,
'op_types': ['default']
}]
pruner = AGP_Pruner(configure_list)
```
当调用 `pruner(model)` 时,模型会被嵌入掩码操作。 例如,某层以权重作为输入,可在权重和层操作之间插入一个操作,此操作以权重为输入,并将其应用掩码后输出。 因此,计算过程中,只要通过此操作,就会应用掩码。 还可以**不做任何改动**,来对模型进行微调。
```python
for epoch in range(10):
# update_epoch 来让 Pruner 知道 Epoch 的数量,从而能够在训练过程中调整掩码。
pruner.update_epoch(epoch)
print('# Epoch {} #'.format(epoch))
train(model, device, train_loader, optimizer)
test(model, device, test_loader)
```
微调完成后,被修剪过的权重可通过以下代码获得:
```
masks = pruner.mask_list
layer_name = xxx
mask = masks[layer_name]
```
**在 NNI 中运行神经网络架构搜索**
===
# 在 NNI 中运行神经网络架构搜索
参考 [NNI-NAS-Example](https://github.com/Crysple/NNI-NAS-Example),来使用贡献者提供的 NAS 接口。
谢谢可爱的贡献者!
此目录中包含了 Trial 代码,并提供了示例的配置文件来展示如何使用 PPO Tuner 来调优此 Trial 代码。
欢迎越来越多的人加入我们!
\ No newline at end of file
运行下列代码来准备数据集 `cd data && . download.sh`.
感谢可爱的志愿者,欢迎更多的人加入我们!
\ No newline at end of file
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