From 82830e984aefb048341389e67f3d54ad39c8350d Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Sat, 29 Dec 2018 11:03:55 +0800
Subject: [PATCH 0001/1573] Update Crowdin configuration file
---
crowdin.yml | 3 +++
1 file changed, 3 insertions(+)
create mode 100644 crowdin.yml
diff --git a/crowdin.yml b/crowdin.yml
new file mode 100644
index 0000000000..90d82530f1
--- /dev/null
+++ b/crowdin.yml
@@ -0,0 +1,3 @@
+files:
+ - source: /**/*.md
+ translation: /%locale_with_underscore%/%original_path%/%original_file_name%
From 81c6ea88c043d2813ddcbb2c9a980daaba95bf7d Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Sat, 29 Dec 2018 11:04:20 +0800
Subject: [PATCH 0002/1573] New translations AnnotationSpec.md (Chinese
Simplified)
---
zh_CN/docs/AnnotationSpec.md | 57 ++++++++++++++++++++++++++++++++++++
1 file changed, 57 insertions(+)
create mode 100644 zh_CN/docs/AnnotationSpec.md
diff --git a/zh_CN/docs/AnnotationSpec.md b/zh_CN/docs/AnnotationSpec.md
new file mode 100644
index 0000000000..3c087665cc
--- /dev/null
+++ b/zh_CN/docs/AnnotationSpec.md
@@ -0,0 +1,57 @@
+# NNI Annotation
+
+For good user experience and reduce user effort, we need to design a good annotation grammar.
+
+If users use NNI system, they only need to:
+
+1. Use nni.get_next_parameter() to retrieve hyper parameters from Tuner, before using other annotation, use following annotation at the begining of trial code: '''@nni.get_next_parameter()'''
+
+2. Annotation variable in code as:
+
+ '''@nni.variable(nni.choice(2,3,5,7),name=self.conv_size)'''
+
+3. Annotation intermediate in code as:
+
+ '''@nni.report_intermediate_result(test_acc)'''
+
+4. Annotation output in code as:
+
+ '''@nni.report_final_result(test_acc)'''
+
+5. Annotation `function_choice` in code as:
+
+ '''@nni.function_choice(max_pool(h_conv1, self.pool_size),avg_pool(h_conv1, self.pool_size),name=max_pool)'''
+
+In this way, they can easily implement automatic tuning on NNI.
+
+For `@nni.variable`, `nni.choice` is the type of search space and there are 10 types to express your search space as follows:
+
+1. `@nni.variable(nni.choice(option1,option2,...,optionN),name=variable)`
+ Which means the variable value is one of the options, which should be a list The elements of options can themselves be stochastic expressions
+
+2. `@nni.variable(nni.randint(upper),name=variable)`
+ Which means the variable value is a random integer in the range [0, upper).
+
+3. `@nni.variable(nni.uniform(low, high),name=variable)`
+ Which means the variable value is a value uniformly between low and high.
+
+4. `@nni.variable(nni.quniform(low, high, q),name=variable)`
+ Which means the variable value is a value like round(uniform(low, high) / q) * q
+
+5. `@nni.variable(nni.loguniform(low, high),name=variable)`
+ Which means the variable value is a value drawn according to exp(uniform(low, high)) so that the logarithm of the return value is uniformly distributed.
+
+6. `@nni.variable(nni.qloguniform(low, high, q),name=variable)`
+ Which means the variable value is a value like round(exp(uniform(low, high)) / q) * q
+
+7. `@nni.variable(nni.normal(label, mu, sigma),name=variable)`
+ Which means the variable value is a real value that's normally-distributed with mean mu and standard deviation sigma.
+
+8. `@nni.variable(nni.qnormal(label, mu, sigma, q),name=variable)`
+ Which means the variable value is a value like round(normal(mu, sigma) / q) * q
+
+9. `@nni.variable(nni.lognormal(label, mu, sigma),name=variable)`
+ Which means the variable value is a value drawn according to exp(normal(mu, sigma))
+
+ 10. `@nni.variable(nni.qlognormal(label, mu, sigma, q),name=variable)`
+ Which means the variable value is a value like round(exp(normal(mu, sigma)) / q) * q
\ No newline at end of file
From 2ef0a25bb9ba730daee0decd788cee084fda9453 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Sat, 29 Dec 2018 11:04:21 +0800
Subject: [PATCH 0003/1573] New translations README.md (Chinese Simplified)
---
zh_CN/examples/trials/README.md | 281 ++++++++++++++++++++++++++++++++
1 file changed, 281 insertions(+)
create mode 100644 zh_CN/examples/trials/README.md
diff --git a/zh_CN/examples/trials/README.md b/zh_CN/examples/trials/README.md
new file mode 100644
index 0000000000..70065a8c13
--- /dev/null
+++ b/zh_CN/examples/trials/README.md
@@ -0,0 +1,281 @@
+# How to write a Trial running on NNI?
+
+*Trial receive the hyper-parameter/architecture configure from Tuner, and send intermediate result to Assessor and final result to Tuner.*
+
+So when user want to write a Trial running on NNI, she/he should:
+
+**1)Have an original Trial could run**,
+
+Trial's code could be any machine learning code that could run in local. Here we use ```mnist-keras.py``` as example:
+
+```python
+import argparse
+import logging
+import keras
+import numpy as np
+from keras import backend as K
+from keras.datasets import mnist
+from keras.layers import Conv2D, Dense, Flatten, MaxPooling2D
+from keras.models import Sequential
+
+K.set_image_data_format('channels_last')
+
+H, W = 28, 28
+NUM_CLASSES = 10
+
+def create_mnist_model(hyper_params, input_shape=(H, W, 1), num_classes=NUM_CLASSES):
+ layers = [
+ Conv2D(32, kernel_size=(3, 3), activation='relu', input_shape=input_shape),
+ Conv2D(64, (3, 3), activation='relu'),
+ MaxPooling2D(pool_size=(2, 2)),
+ Flatten(),
+ Dense(100, activation='relu'),
+ Dense(num_classes, activation='softmax')
+ ]
+
+ model = Sequential(layers)
+
+ if hyper_params['optimizer'] == 'Adam':
+ optimizer = keras.optimizers.Adam(lr=hyper_params['learning_rate'])
+ else:
+ optimizer = keras.optimizers.SGD(lr=hyper_params['learning_rate'], momentum=0.9)
+ model.compile(loss=keras.losses.categorical_crossentropy, optimizer=optimizer, metrics=['accuracy'])
+
+ return model
+
+def load_mnist_data(args):
+ (x_train, y_train), (x_test, y_test) = mnist.load_data()
+
+ x_train = (np.expand_dims(x_train, -1).astype(np.float) / 255.)[:args.num_train]
+ x_test = (np.expand_dims(x_test, -1).astype(np.float) / 255.)[:args.num_test]
+ y_train = keras.utils.to_categorical(y_train, NUM_CLASSES)[:args.num_train]
+ y_test = keras.utils.to_categorical(y_test, NUM_CLASSES)[:args.num_test]
+
+ return x_train, y_train, x_test, y_test
+
+class SendMetrics(keras.callbacks.Callback):
+ def on_epoch_end(self, epoch, logs={}):
+ pass
+
+def train(args, params):
+ x_train, y_train, x_test, y_test = load_mnist_data(args)
+ model = create_mnist_model(params)
+
+ model.fit(x_train, y_train, batch_size=args.batch_size, epochs=args.epochs, verbose=1,
+ validation_data=(x_test, y_test), callbacks=[SendMetrics()])
+
+ _, acc = model.evaluate(x_test, y_test, verbose=0)
+
+def generate_default_params():
+ return {
+ 'optimizer': 'Adam',
+ 'learning_rate': 0.001
+ }
+
+if __name__ == '__main__':
+ PARSER = argparse.ArgumentParser()
+ PARSER.add_argument("--batch_size", type=int, default=200, help="batch size", required=False)
+ PARSER.add_argument("--epochs", type=int, default=10, help="Train epochs", required=False)
+ PARSER.add_argument("--num_train", type=int, default=1000, help="Number of train samples to be used, maximum 60000", required=False)
+ PARSER.add_argument("--num_test", type=int, default=1000, help="Number of test samples to be used, maximum 10000", required=False)
+
+ ARGS, UNKNOWN = PARSER.parse_known_args()
+ PARAMS = generate_default_params()
+ train(ARGS, PARAMS)
+```
+
+**2)Get configure from Tuner**
+
+User import ```nni``` and use ```nni.get_next_parameter()``` to receive configure. Please noted **10**, **24** and **25** line in the following code.
+
+```python
+import argparse
+import logging
+import keras
+import numpy as np
+from keras import backend as K
+from keras.datasets import mnist
+from keras.layers import Conv2D, Dense, Flatten, MaxPooling2D
+from keras.models import Sequential
+
+import nni
+
+...
+
+if __name__ == '__main__':
+ PARSER = argparse.ArgumentParser()
+ PARSER.add_argument("--batch_size", type=int, default=200, help="batch size", required=False)
+ PARSER.add_argument("--epochs", type=int, default=10, help="Train epochs", required=False)
+ PARSER.add_argument("--num_train", type=int, default=1000, help="Number of train samples to be used, maximum 60000", required=False)
+ PARSER.add_argument("--num_test", type=int, default=1000, help="Number of test samples to be used, maximum 10000", required=False)
+
+ ARGS, UNKNOWN = PARSER.parse_known_args()
+
+ PARAMS = generate_default_params()
+ RECEIVED_PARAMS = nni.get_next_parameter()
+ PARAMS.update(RECEIVED_PARAMS)
+ train(ARGS, PARAMS)
+```
+
+**3) Send intermediate result**
+
+Use ```nni.report_intermediate_result``` to send intermediate result to Assessor. Please noted **5** line in the following code.
+
+```python
+...
+
+class SendMetrics(keras.callbacks.Callback):
+ def on_epoch_end(self, epoch, logs={}):
+ nni.report_intermediate_result(logs)
+
+def train(args, params):
+ x_train, y_train, x_test, y_test = load_mnist_data(args)
+ model = create_mnist_model(params)
+
+ model.fit(x_train, y_train, batch_size=args.batch_size, epochs=args.epochs, verbose=1,
+ validation_data=(x_test, y_test), callbacks=[SendMetrics()])
+
+ _, acc = model.evaluate(x_test, y_test, verbose=0)
+
+...
+```
+
+**4) Send final result**
+
+Use ```nni.report_final_result``` to send final result to Trial. Please noted **15** line in the following code.
+
+```python
+...
+
+class SendMetrics(keras.callbacks.Callback):
+ def on_epoch_end(self, epoch, logs={}):
+ nni.report_intermediate_result(logs)
+
+def train(args, params):
+ x_train, y_train, x_test, y_test = load_mnist_data(args)
+ model = create_mnist_model(params)
+
+ model.fit(x_train, y_train, batch_size=args.batch_size, epochs=args.epochs, verbose=1,
+ validation_data=(x_test, y_test), callbacks=[SendMetrics()])
+
+ _, acc = model.evaluate(x_test, y_test, verbose=0)
+ nni.report_final_result(acc)
+...
+```
+
+Here is the complete example:
+
+```python
+import argparse
+import logging
+
+import keras
+import numpy as np
+from keras import backend as K
+from keras.datasets import mnist
+from keras.layers import Conv2D, Dense, Flatten, MaxPooling2D
+from keras.models import Sequential
+
+import nni
+
+LOG = logging.getLogger('mnist_keras')
+K.set_image_data_format('channels_last')
+
+H, W = 28, 28
+NUM_CLASSES = 10
+
+def create_mnist_model(hyper_params, input_shape=(H, W, 1), num_classes=NUM_CLASSES):
+ '''
+ Create simple convolutional model
+ '''
+ layers = [
+ Conv2D(32, kernel_size=(3, 3), activation='relu', input_shape=input_shape),
+ Conv2D(64, (3, 3), activation='relu'),
+ MaxPooling2D(pool_size=(2, 2)),
+ Flatten(),
+ Dense(100, activation='relu'),
+ Dense(num_classes, activation='softmax')
+ ]
+
+ model = Sequential(layers)
+
+ if hyper_params['optimizer'] == 'Adam':
+ optimizer = keras.optimizers.Adam(lr=hyper_params['learning_rate'])
+ else:
+ optimizer = keras.optimizers.SGD(lr=hyper_params['learning_rate'], momentum=0.9)
+ model.compile(loss=keras.losses.categorical_crossentropy, optimizer=optimizer, metrics=['accuracy'])
+
+ return model
+
+def load_mnist_data(args):
+ '''
+ Load MNIST dataset
+ '''
+ (x_train, y_train), (x_test, y_test) = mnist.load_data()
+
+ x_train = (np.expand_dims(x_train, -1).astype(np.float) / 255.)[:args.num_train]
+ x_test = (np.expand_dims(x_test, -1).astype(np.float) / 255.)[:args.num_test]
+ y_train = keras.utils.to_categorical(y_train, NUM_CLASSES)[:args.num_train]
+ y_test = keras.utils.to_categorical(y_test, NUM_CLASSES)[:args.num_test]
+
+ LOG.debug('x_train shape: %s', (x_train.shape,))
+ LOG.debug('x_test shape: %s', (x_test.shape,))
+
+ return x_train, y_train, x_test, y_test
+
+class SendMetrics(keras.callbacks.Callback):
+ '''
+ Keras callback to send metrics to NNI framework
+ '''
+ def on_epoch_end(self, epoch, logs={}):
+ '''
+ Run on end of each epoch
+ '''
+ LOG.debug(logs)
+ nni.report_intermediate_result(logs)
+
+def train(args, params):
+ '''
+ Train model
+ '''
+ x_train, y_train, x_test, y_test = load_mnist_data(args)
+ model = create_mnist_model(params)
+
+ model.fit(x_train, y_train, batch_size=args.batch_size, epochs=args.epochs, verbose=1,
+ validation_data=(x_test, y_test), callbacks=[SendMetrics()])
+
+ _, acc = model.evaluate(x_test, y_test, verbose=0)
+ LOG.debug('Final result is: %d', acc)
+ nni.report_final_result(acc)
+
+def generate_default_params():
+ '''
+ Generate default hyper parameters
+ '''
+ return {
+ 'optimizer': 'Adam',
+ 'learning_rate': 0.001
+ }
+
+if __name__ == '__main__':
+ PARSER = argparse.ArgumentParser()
+ PARSER.add_argument("--batch_size", type=int, default=200, help="batch size", required=False)
+ PARSER.add_argument("--epochs", type=int, default=10, help="Train epochs", required=False)
+ PARSER.add_argument("--num_train", type=int, default=1000, help="Number of train samples to be used, maximum 60000", required=False)
+ PARSER.add_argument("--num_test", type=int, default=1000, help="Number of test samples to be used, maximum 10000", required=False)
+
+ ARGS, UNKNOWN = PARSER.parse_known_args()
+
+ try:
+ # get parameters from tuner
+ RECEIVED_PARAMS = nni.get_next_parameter()
+ LOG.debug(RECEIVED_PARAMS)
+ PARAMS = generate_default_params()
+ PARAMS.update(RECEIVED_PARAMS)
+ # train
+ train(ARGS, PARAMS)
+ except Exception as e:
+ LOG.exception(e)
+ raise
+
+```
\ No newline at end of file
From 456259fca08f7884f97ed525cb9bd54bc3e29811 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Sat, 29 Dec 2018 11:04:22 +0800
Subject: [PATCH 0004/1573] New translations README.md (Chinese Simplified)
---
zh_CN/deployment/docker/README.md | 46 +++++++++++++++++++++++++++++++
1 file changed, 46 insertions(+)
create mode 100644 zh_CN/deployment/docker/README.md
diff --git a/zh_CN/deployment/docker/README.md b/zh_CN/deployment/docker/README.md
new file mode 100644
index 0000000000..bc05e3c0c1
--- /dev/null
+++ b/zh_CN/deployment/docker/README.md
@@ -0,0 +1,46 @@
+# Dockerfile
+
+## 1.Description
+
+This is the Dockerfile of nni project. It includes serveral popular deep learning frameworks and NNI. It is tested on `Ubuntu 16.04 LTS`:
+
+ CUDA 9.0, CuDNN 7.0
+ numpy 1.14.3,scipy 1.1.0
+ TensorFlow 1.5.0
+ Keras 2.1.6
+ PyTorch 0.4.1
+ scikit-learn 0.20.0
+ NNI v0.3
+
+
+You can take this Dockerfile as a reference for your own customized Dockerfile.
+
+## 2.How to build and run
+
+**Use the following command from `nni/deployment/docker` to build docker image**
+
+ docker build -t nni/nni .
+
+
+**Run the docker image**
+
+* If does not use GPU in docker container, simply run the following command
+
+ docker run -it nni/nni
+
+
+* If use GPU in docker container, make sure you have installed [NVIDIA Container Runtime](https://github.com/NVIDIA/nvidia-docker), then run the following command
+
+ nvidia-docker run -it nni/nni
+
+
+or
+
+ docker run --runtime=nvidia -it nni/nni
+
+
+## 3.Directly retrieve the docker image
+
+Use the following command to retrieve the NNI docker image from Docker Hub
+
+ docker pull msranni/nni:latest
\ No newline at end of file
From fa6ca17ae6097cf033072bdd936b952130a281e9 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Sat, 29 Dec 2018 11:04:23 +0800
Subject: [PATCH 0005/1573] New translations README.md (Chinese Simplified)
---
zh_CN/deployment/pypi/README.md | 32 ++++++++++++++++++++++++++++++++
1 file changed, 32 insertions(+)
create mode 100644 zh_CN/deployment/pypi/README.md
diff --git a/zh_CN/deployment/pypi/README.md b/zh_CN/deployment/pypi/README.md
new file mode 100644
index 0000000000..4b309c65ac
--- /dev/null
+++ b/zh_CN/deployment/pypi/README.md
@@ -0,0 +1,32 @@
+# Python Package Index (PyPI) for NNI
+
+## 1.Description
+
+This is the PyPI build and upload tool for NNI project.
+
+## 2.Prepare environment
+
+Before build and upload NNI package, make sure the below OS and tools are available.
+
+ Ubuntu 16.04 LTS
+ make
+ wget
+ Python >= 3.5
+ Pip
+ Node.js
+ Yarn
+
+
+## 2.How to build
+
+```bash
+make
+```
+
+## 3.How to upload
+
+```bash
+make upload
+```
+
+You may need to input the account and password of https://pypi.org during this process.
\ No newline at end of file
From 366f21fd9ff1973ef4af9496277a3327da26b5f3 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Sat, 29 Dec 2018 11:04:24 +0800
Subject: [PATCH 0006/1573] New translations README.md (Chinese Simplified)
---
zh_CN/examples/assessors/README.md | 61 ++++++++++++++++++++++++++++++
1 file changed, 61 insertions(+)
create mode 100644 zh_CN/examples/assessors/README.md
diff --git a/zh_CN/examples/assessors/README.md b/zh_CN/examples/assessors/README.md
new file mode 100644
index 0000000000..1a2903fab5
--- /dev/null
+++ b/zh_CN/examples/assessors/README.md
@@ -0,0 +1,61 @@
+# Define your own Assessor
+
+*Assessor receive intermediate result from Trial and decide whether the Trial should be killed. Once the Trial experiment meets the early stop conditions, the assessor will kill the Trial.*
+
+So, if users want to implement a customized Assessor, they only need to:
+
+**1) Inherit an assessor of a base Assessor class**
+
+```python
+from nni.assessor import Assessor
+
+class CustomizedAssessor(Assessor):
+ def __init__(self, ...):
+ ...
+```
+
+**2) Implement assess trial function**
+
+```python
+from nni.assessor import Assessor, AssessResult
+
+class CustomizedAssessor(Assessor):
+ def __init__(self, ...):
+ ...
+
+ def assess_trial(self, trial_history):
+ """
+ Determines whether a trial should be killed. Must override.
+ trial_history: a list of intermediate result objects.
+ Returns AssessResult.Good or AssessResult.Bad.
+ """
+ # you code implement here.
+ ...
+```
+
+**3) Write a script to run Assessor**
+
+```python
+import argparse
+
+import CustomizedAssesor
+
+def main():
+ parser = argparse.ArgumentParser(description='parse command line parameters.')
+ # parse your assessor arg here.
+ ...
+ FLAGS, unparsed = parser.parse_known_args()
+
+ tuner = CustomizedAssessor(...)
+ tuner.run()
+
+main()
+```
+
+Please noted in 2). The object ```trial_history``` are exact the object that Trial send to Assesor by using SDK ```report_intermediate_result``` function.
+
+Also, user could override the ```run``` function in Assessor to control the process logic.
+
+More detail example you could see:
+
+> - [Base-Assessor](https://msrasrg.visualstudio.com/NeuralNetworkIntelligenceOpenSource/_git/Default?_a=contents&path=%2Fsrc%2Fsdk%2Fpynni%2Fnni%2Fassessor.py&version=GBadd_readme)
\ No newline at end of file
From 7315107c57f0606a14f7f4a136add8bee2e0976f Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Sat, 29 Dec 2018 11:04:25 +0800
Subject: [PATCH 0007/1573] New translations README.md (Chinese Simplified)
---
zh_CN/examples/trials/cifar10_pytorch/README.md | 3 +++
1 file changed, 3 insertions(+)
create mode 100644 zh_CN/examples/trials/cifar10_pytorch/README.md
diff --git a/zh_CN/examples/trials/cifar10_pytorch/README.md b/zh_CN/examples/trials/cifar10_pytorch/README.md
new file mode 100644
index 0000000000..e5b6c87ec2
--- /dev/null
+++ b/zh_CN/examples/trials/cifar10_pytorch/README.md
@@ -0,0 +1,3 @@
+This example requires pytorch. pytorch install package should be chosen based on python version and cuda version.
+
+Here is an example of the environment python==3.5 and cuda == 8.0, then using the following commands to install pytorch: python3 -m pip install http://download.pytorch.org/whl/cu80/torch-0.4.1-cp35-cp35m-linux_x86_64.whl python3 -m pip install torchvision
\ No newline at end of file
From 25f7dd8e7d6989ec765567635e74a9eeb753f026 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Sat, 29 Dec 2018 11:04:26 +0800
Subject: [PATCH 0008/1573] New translations README.md (Chinese Simplified)
---
zh_CN/examples/trials/ga_squad/README.md | 244 +++++++++++++++++++++++
1 file changed, 244 insertions(+)
create mode 100644 zh_CN/examples/trials/ga_squad/README.md
diff --git a/zh_CN/examples/trials/ga_squad/README.md b/zh_CN/examples/trials/ga_squad/README.md
new file mode 100644
index 0000000000..d6fd21162c
--- /dev/null
+++ b/zh_CN/examples/trials/ga_squad/README.md
@@ -0,0 +1,244 @@
+# Automatic Model Architecture Search for Reading Comprehension
+
+This example shows us how to use Genetic Algorithm to find good model architectures for Reading Comprehension task.
+
+## Search Space
+
+Since attention and recurrent neural network (RNN) module have been proven effective in Reading Comprehension. We conclude the search space as follow:
+
+1. IDENTITY (Effectively means keep training).
+2. INSERT-RNN-LAYER (Inserts a LSTM. Comparing the performance of GRU and LSTM in our experiment, we decided to use LSTM here.)
+3. REMOVE-RNN-LAYER
+4. INSERT-ATTENTION-LAYER(Inserts a attention layer.)
+5. REMOVE-ATTENTION-LAYER
+6. ADD-SKIP (Identity between random layers).
+7. REMOVE-SKIP (Removes random skip).
+
+![ga-squad-logo](./ga_squad.png)
+
+## New version
+
+Also we have another version which time cost is less and performance is better. We will release soon.
+
+# How to run this example?
+
+## Use downloading script to download data
+
+Execute the following command to download needed files using the downloading script:
+
+ chmod +x ./download.sh
+ ./download.sh
+
+
+## Download manually
+
+1. download "dev-v1.1.json" and "train-v1.1.json" in https://rajpurkar.github.io/SQuAD-explorer/
+
+ wget https://rajpurkar.github.io/SQuAD-explorer/dataset/train-v1.1.json
+ wget https://rajpurkar.github.io/SQuAD-explorer/dataset/dev-v1.1.json
+
+
+2. download "glove.840B.300d.txt" in https://nlp.stanford.edu/projects/glove/
+
+ wget http://nlp.stanford.edu/data/glove.840B.300d.zip
+ unzip glove.840B.300d.zip
+
+
+## Update configuration
+
+Modify `nni/examples/trials/ga_squad/config.yaml`, here is the default configuration:
+
+ authorName: default
+ experimentName: example_ga_squad
+ trialConcurrency: 1
+ maxExecDuration: 1h
+ maxTrialNum: 1
+ #choice: local, remote
+ trainingServicePlatform: local
+ #choice: true, false
+ useAnnotation: false
+ tuner:
+ codeDir: ~/nni/examples/tuners/ga_customer_tuner
+ classFileName: customer_tuner.py
+ className: CustomerTuner
+ classArgs:
+ optimize_mode: maximize
+ trial:
+ command: python3 trial.py
+ codeDir: ~/nni/examples/trials/ga_squad
+ gpuNum: 0
+
+
+In the "trial" part, if you want to use GPU to perform the architecture search, change `gpuNum` from `0` to `1`. You need to increase the `maxTrialNum` and `maxExecDuration`, according to how long you want to wait for the search result.
+
+`trialConcurrency` is the number of trials running concurrently, which is the number of GPUs you want to use, if you are setting `gpuNum` to 1.
+
+## submit this job
+
+ nnictl create --config ~/nni/examples/trials/ga_squad/config.yaml
+
+
+# Techinal details about the trial
+
+## How does it works
+
+The evolution-algorithm based architecture for question answering has two different parts just like any other examples: the trial and the tuner.
+
+### The trial
+
+The trial has a lot of different files, functions and classes. Here we will only give most of those files a brief introduction:
+
+* `attention.py` contains an implementation for attention mechanism in Tensorflow.
+* `data.py` contains functions for data preprocessing.
+* `evaluate.py` contains the evaluation script.
+* `graph.py` contains the definition of the computation graph.
+* `rnn.py` contains an implementation for GRU in Tensorflow.
+* `train_model.py` is a wrapper for the whole question answering model.
+
+Among those files, `trial.py` and `graph_to_tf.py` is special.
+
+`graph_to_tf.py` has a function named as `graph_to_network`, here is its skelton code:
+
+ def graph_to_network(input1,
+ input2,
+ input1_lengths,
+ input2_lengths,
+ graph,
+ dropout_rate,
+ is_training,
+ num_heads=1,
+ rnn_units=256):
+ topology = graph.is_topology()
+ layers = dict()
+ layers_sequence_lengths = dict()
+ num_units = input1.get_shape().as_list()[-1]
+ layers[0] = input1*tf.sqrt(tf.cast(num_units, tf.float32)) + \
+ positional_encoding(input1, scale=False, zero_pad=False)
+ layers[1] = input2*tf.sqrt(tf.cast(num_units, tf.float32))
+ layers[0] = dropout(layers[0], dropout_rate, is_training)
+ layers[1] = dropout(layers[1], dropout_rate, is_training)
+ layers_sequence_lengths[0] = input1_lengths
+ layers_sequence_lengths[1] = input2_lengths
+ for _, topo_i in enumerate(topology):
+ if topo_i == '|':
+ continue
+ if graph.layers[topo_i].graph_type == LayerType.input.value:
+ # ......
+ elif graph.layers[topo_i].graph_type == LayerType.attention.value:
+ # ......
+ # More layers to handle
+
+
+As we can see, this function is actually a compiler, that converts the internal model DAG configuration (which will be introduced in the `Model configuration format` section) `graph`, to a Tensorflow computation graph.
+
+ topology = graph.is_topology()
+
+
+performs topological sorting on the internal graph representation, and the code inside the loop:
+
+ for _, topo_i in enumerate(topology):
+
+
+performs actually conversion that maps each layer to a part in Tensorflow computation graph.
+
+### The tuner
+
+The tuner is much more simple than the trial. They actually share the same `graph.py`. Besides, the tuner has a `customer_tuner.py`, the most important class in which is `CustomerTuner`:
+
+ class CustomerTuner(Tuner):
+ # ......
+
+ def generate_parameters(self, parameter_id):
+ """Returns a set of trial graph config, as a serializable object.
+ parameter_id : int
+ """
+ if len(self.population) <= 0:
+ logger.debug("the len of poplution lower than zero.")
+ raise Exception('The population is empty')
+ pos = -1
+ for i in range(len(self.population)):
+ if self.population[i].result == None:
+ pos = i
+ break
+ if pos != -1:
+ indiv = copy.deepcopy(self.population[pos])
+ self.population.pop(pos)
+ temp = json.loads(graph_dumps(indiv.config))
+ else:
+ random.shuffle(self.population)
+ if self.population[0].result > self.population[1].result:
+ self.population[0] = self.population[1]
+ indiv = copy.deepcopy(self.population[0])
+ self.population.pop(1)
+ indiv.mutation()
+ graph = indiv.config
+ temp = json.loads(graph_dumps(graph))
+
+ # ......
+
+
+As we can see, the overloaded method `generate_parameters` implements a pretty naive mutation algorithm. The code lines:
+
+ if self.population[0].result > self.population[1].result:
+ self.population[0] = self.population[1]
+ indiv = copy.deepcopy(self.population[0])
+
+
+controls the mutation process. It will always take two random individuals in the population, only keeping and mutating the one with better result.
+
+## Model configuration format
+
+Here is an example of the model configuration, which is passed from the tuner to the trial in the architecture search procedure.
+
+ {
+ "max_layer_num": 50,
+ "layers": [
+ {
+ "input_size": 0,
+ "type": 3,
+ "output_size": 1,
+ "input": [],
+ "size": "x",
+ "output": [4, 5],
+ "is_delete": false
+ },
+ {
+ "input_size": 0,
+ "type": 3,
+ "output_size": 1,
+ "input": [],
+ "size": "y",
+ "output": [4, 5],
+ "is_delete": false
+ },
+ {
+ "input_size": 1,
+ "type": 4,
+ "output_size": 0,
+ "input": [6],
+ "size": "x",
+ "output": [],
+ "is_delete": false
+ },
+ {
+ "input_size": 1,
+ "type": 4,
+ "output_size": 0,
+ "input": [5],
+ "size": "y",
+ "output": [],
+ "is_delete": false
+ },
+ {"Comment": "More layers will be here for actual graphs."}
+ ]
+ }
+
+
+Every model configuration will has a "layers" section, which is a JSON list of layer definitions. The definition of each layer is also a JSON object, where:
+
+* `type` is the type of the layer. 0, 1, 2, 3, 4 correspond to attention, self-attention, RNN, input and output layer respectively.
+* `size` is the length of the output. "x", "y" correspond to document length / question length, respectively.
+* `input_size` is the number of inputs the layer has.
+* `input` is the indices of layers taken as input of this layer.
+* `output` is the indices of layers use this layer's output as their input.
+* `is_delete` means whether the layer is still available.
\ No newline at end of file
From c7ed398b05ccd52c6c55d6f42644bdd102d9bb28 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Sat, 29 Dec 2018 11:04:27 +0800
Subject: [PATCH 0009/1573] New translations README.md (Chinese Simplified)
---
.../examples/trials/kaggle-tgs-salt/README.md | 50 +++++++++++++++++++
1 file changed, 50 insertions(+)
create mode 100644 zh_CN/examples/trials/kaggle-tgs-salt/README.md
diff --git a/zh_CN/examples/trials/kaggle-tgs-salt/README.md b/zh_CN/examples/trials/kaggle-tgs-salt/README.md
new file mode 100644
index 0000000000..835bc9329b
--- /dev/null
+++ b/zh_CN/examples/trials/kaggle-tgs-salt/README.md
@@ -0,0 +1,50 @@
+## 33rd place solution code for Kaggle [TGS Salt Identification Chanllenge](https://www.kaggle.com/c/tgs-salt-identification-challenge)
+
+This example shows how to enable AutoML for competition code by running it on NNI without any code change. To run this code on NNI, firstly you need to run it standalone, then configure the config.yml and:
+
+ nnictl create --config config.yml
+
+
+This code can still run standalone, the code is for reference, it requires at least one week effort to reproduce the competition result.
+
+[Solution summary](https://www.kaggle.com/c/tgs-salt-identification-challenge/discussion/69593)
+
+Preparation:
+
+Download competition data, run preprocess.py to prepare training data.
+
+Stage 1:
+
+Train fold 0-3 for 100 epochs, for each fold, train 3 models:
+
+ python3 train.py --ifolds 0 --epochs 100 --model_name UNetResNetV4
+ python3 train.py --ifolds 0 --epochs 100 --model_name UNetResNetV5 --layers 50
+ python3 train.py --ifolds 0 --epochs 100 --model_name UNetResNetV6
+
+
+Stage 2:
+
+Fine tune stage 1 models for 300 epochs with cosine annealing lr scheduler:
+
+ python3 train.py --ifolds 0 --epochs 300 --lrs cosine --lr 0.001 --min_lr 0.0001 --model_name UNetResNetV4
+
+
+Stage 3:
+
+Fine tune Stage 2 models with depths channel:
+
+ python3 train.py --ifolds 0 --epochs 300 --lrs cosine --lr 0.001 --min_lr 0.0001 --model_name UNetResNetV4 --depths
+
+
+Stage 4:
+
+Make prediction for each model, then ensemble the result to generate peasdo labels.
+
+Stage 5:
+
+Fine tune stage 3 models with pseudo labels
+
+ python3 train.py --ifolds 0 --epochs 300 --lrs cosine --lr 0.001 --min_lr 0.0001 --model_name UNetResNetV4 --depths --pseudo
+
+
+Stage 6: Ensemble all stage 3 and stage 5 models.
\ No newline at end of file
From 0927ca38c2202584629171479cf061c4428b71ff Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Sat, 29 Dec 2018 11:04:28 +0800
Subject: [PATCH 0010/1573] New translations README.md (Chinese Simplified)
---
zh_CN/examples/tuners/ga_customer_tuner/README.md | 14 ++++++++++++++
1 file changed, 14 insertions(+)
create mode 100644 zh_CN/examples/tuners/ga_customer_tuner/README.md
diff --git a/zh_CN/examples/tuners/ga_customer_tuner/README.md b/zh_CN/examples/tuners/ga_customer_tuner/README.md
new file mode 100644
index 0000000000..95b9238278
--- /dev/null
+++ b/zh_CN/examples/tuners/ga_customer_tuner/README.md
@@ -0,0 +1,14 @@
+# How to use ga_customer_tuner?
+
+This tuner is a customized tuner which only suitable for trial whose code path is "~/nni/examples/trials/ga_squad", type `cd ~/nni/examples/trials/ga_squad` and check readme.md to get more information for ga_squad trial.
+
+# config
+
+If you want to use ga_customer_tuner in your experiment, you could set config file as following format:
+
+ tuner:
+ codeDir: ~/nni/examples/tuners/ga_customer_tuner
+ classFileName: customer_tuner.py
+ className: CustomerTuner
+ classArgs:
+ optimize_mode: maximize
\ No newline at end of file
From 049b37579fe61a00c12b7983924c78684e889ab0 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Sat, 29 Dec 2018 11:04:29 +0800
Subject: [PATCH 0011/1573] New translations tutorial_2_RemoteMachineMode.md
(Chinese Simplified)
---
zh_CN/docs/tutorial_2_RemoteMachineMode.md | 70 ++++++++++++++++++++++
1 file changed, 70 insertions(+)
create mode 100644 zh_CN/docs/tutorial_2_RemoteMachineMode.md
diff --git a/zh_CN/docs/tutorial_2_RemoteMachineMode.md b/zh_CN/docs/tutorial_2_RemoteMachineMode.md
new file mode 100644
index 0000000000..db8be9295d
--- /dev/null
+++ b/zh_CN/docs/tutorial_2_RemoteMachineMode.md
@@ -0,0 +1,70 @@
+# **Tutorial: Run an experiment on multiple machines**
+
+NNI supports running an experiment on multiple machines through SSH channel, called `remote` mode. NNI assumes that you have access to those machines, and already setup the environment for running deep learning training code.
+
+e.g. Three machines and you login in with account `bob` (Note: the account is not necessarily the same on different machine):
+
+| IP | Username | Password |
+| -------- | -------- | -------- |
+| 10.1.1.1 | bob | bob123 |
+| 10.1.1.2 | bob | bob123 |
+| 10.1.1.3 | bob | bob123 |
+
+## Setup NNI environment
+
+Install NNI on each of your machines following the install guide [here](GetStarted.md).
+
+For remote machines that are used only to run trials but not the nnictl, you can just install python SDK:
+
+* **Install python SDK through pip**
+
+ python3 -m pip install --user --upgrade nni-sdk
+
+## Run an experiment
+
+Install NNI on another machine which has network accessibility to those three machines above, or you can just use any machine above to run nnictl command line tool.
+
+We use `examples/trials/mnist-annotation` as an example here. `cat ~/nni/examples/trials/mnist-annotation/config_remote.yml` to see the detailed configuration file:
+
+ authorName: default
+ experimentName: example_mnist
+ trialConcurrency: 1
+ maxExecDuration: 1h
+ maxTrialNum: 10
+ #choice: local, remote, pai
+ trainingServicePlatform: remote
+ #choice: true, false
+ useAnnotation: true
+ tuner:
+ #choice: TPE, Random, Anneal, Evolution, BatchTuner
+ #SMAC (SMAC should be installed through nnictl)
+ builtinTunerName: TPE
+ classArgs:
+ #choice: maximize, minimize
+ optimize_mode: maximize
+ trial:
+ command: python3 mnist.py
+ codeDir: .
+ gpuNum: 0
+ #machineList can be empty if the platform is local
+ machineList:
+
+ - ip: 10.1.1.1
+ username: bob
+ passwd: bob123
+ #port can be skip if using default ssh port 22
+ #port: 22
+ - ip: 10.1.1.2
+ username: bob
+ passwd: bob123
+ - ip: 10.1.1.3
+ username: bob
+ passwd: bob123
+
+
+Simply filling the `machineList` section and then run:
+
+ nnictl create --config ~/nni/examples/trials/mnist-annotation/config_remote.yml
+
+
+to start the experiment.
\ No newline at end of file
From eb2d5a3813806304f25c1de29006e0e8f9d581cb Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Sat, 29 Dec 2018 11:04:30 +0800
Subject: [PATCH 0012/1573] New translations README.md (Chinese Simplified)
---
zh_CN/src/sdk/pynni/nni/smac_tuner/README.md | 1 +
1 file changed, 1 insertion(+)
create mode 100644 zh_CN/src/sdk/pynni/nni/smac_tuner/README.md
diff --git a/zh_CN/src/sdk/pynni/nni/smac_tuner/README.md b/zh_CN/src/sdk/pynni/nni/smac_tuner/README.md
new file mode 100644
index 0000000000..a1a8b37190
--- /dev/null
+++ b/zh_CN/src/sdk/pynni/nni/smac_tuner/README.md
@@ -0,0 +1 @@
+# Integration doc: SMAC on nni
\ No newline at end of file
From cc108eefa2be9896370931c486796786ee4ba39c Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Sat, 29 Dec 2018 11:04:31 +0800
Subject: [PATCH 0013/1573] New translations README.md (Chinese Simplified)
---
zh_CN/src/sdk/pynni/nni/README.md | 78 +++++++++++++++++++++++++++++++
1 file changed, 78 insertions(+)
create mode 100644 zh_CN/src/sdk/pynni/nni/README.md
diff --git a/zh_CN/src/sdk/pynni/nni/README.md b/zh_CN/src/sdk/pynni/nni/README.md
new file mode 100644
index 0000000000..929ebb08e7
--- /dev/null
+++ b/zh_CN/src/sdk/pynni/nni/README.md
@@ -0,0 +1,78 @@
+# How to use Tuner that NNI supports?
+
+For now, NNI has supported the following tuner algorithms. Note that NNI installation only installs a subset of those algorithms, other algorithms should be installed through `nnictl package install` before you use them. For example, for SMAC the installation command is `nnictl package install --name=SMAC`.
+
+* TPE
+* Random Search
+* Anneal
+* Naive Evolution
+* Grid Search
+* SMAC (to install through `nnictl`)
+* ENAS (ongoing)
+* Batch (ongoing)
+
+ ## 1. Tuner algorithm introduction
+
+We will introduce some basic knowledge about tuner algorithm here. If you are an expert, you could skip this part and jump to how to use.
+
+**TPE**
+
+The Tree-structured Parzen Estimator (TPE) is a sequential model-based optimization (SMBO) approach. SMBO methods sequentially construct models to approximate the performance of hyperparameters based on historical measurements, and then subsequently choose new hyperparameters to test based on this model.
+
+The TPE approach models P(x|y) and P(y) where x represents hyperparameters and y the associated evaluate matric. P(x|y) is modeled by transforming the generative process of hyperparameters, replacing the distributions of the configuration prior with non-parametric densities. This optimization approach is described in detail in [Algorithms for Hyper-Parameter Optimization](https://papers.nips.cc/paper/4443-algorithms-for-hyper-parameter-optimization.pdf).
+
+Comparing with other algorithm, TPE could be achieve better result when the number of trial experiment is small. Also TPE support continuous or discrete hyper-parameters. From a large amount of experiments, we could found that TPE is far better than Random Search.
+
+**Random Search**
+
+In [Random Search for Hyper-Parameter Optimization](http://www.jmlr.org/papers/volume13/bergstra12a/bergstra12a.pdf) show that Random Search might be surprisingly simple and effective. We suggests that we could use Random Search as baseline when we have no knowledge about the prior distribution of hyper-parameters.
+
+**Anneal**
+
+**Naive Evolution**
+
+Naive Evolution comes from [Large-Scale Evolution of Image Classifiers](https://arxiv.org/pdf/1703.01041.pdf). Naive Evolution require more experiments to works, but it's very simple and easily to expand new features. There are some tips for user:
+
+1) large initial population could avoid to fall into local optimum 2) use some strategies to keep the diversity of population could be better.
+
+**SMAC**
+
+[SMAC](https://www.cs.ubc.ca/~hutter/papers/10-TR-SMAC.pdf) is based on Sequential Model-Based Optimization (SMBO). It adapts the most prominent previously used model class (Gaussian stochastic process models) and introduces the model class of random forests to SMBO, in order to handle categorical parameters. The SMAC supported by nni is a wrapper on [the SMAC3 github repo](https://github.com/automl/SMAC3).
+
+Note that SMAC only supports a subset of the types in [search space spec](../../../../docs/SearchSpaceSpec.md), including `choice`, `randint`, `uniform`, `loguniform`, `quniform(q=1)`.
+
+**Batch**
+
+Batch allows users to simply provide several configurations (i.e., choices of hyper-parameters) for their trial code. After finishing all the configurations, the experiment is done.
+
+**Gridsearch**
+
+Gridsearch performs an exhaustive searching through a manually specified subset of the hyperparameter space defined in the searchspace file
+
+Note that the only acceptable types of search space are 'quniform', 'qloguniform' and 'choice':
+
+* Type 'choice' will select one of the options. Note that it can also be nested.
+* Type 'quniform' will receive three values [low, high, q], where [low, high] specifies a range and 'q' specifies the number of values that will be sampled evenly. It will be sampled in a way that the first sampled value is 'low', and each of the following values is (high-low)/q larger that the value in front of it.
+* Type 'qloguniform' behaves like 'quniform' except that it will first change the range to [log10(low), log10(high)] and sample and then change the sampled value back.
+
+ ## 2. How to use the tuner algorithm in NNI?
+
+User only need to do one thing: choose a Tuner```config.yaml```. Here is an example:
+
+ ```
+ # config.yaml
+ tuner:
+ # choice: TPE, Random, Anneal, Evolution, ...
+ builtinTunerName: TPE
+ classArgs:
+ # choice: maximize, minimize
+ optimize_mode: maximize
+ ```
+
+
+There are two filed you need to set:
+
+ builtinTunerName and ```optimize_mode```.
+
+ builtinTunerName: TPE / Random / Anneal / Evolution
+ optimize_mode: maximize / minimize
\ No newline at end of file
From dfb486624c40b8e0f81d740ff28a537e65911c20 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Sat, 29 Dec 2018 11:04:32 +0800
Subject: [PATCH 0014/1573] New translations README.md (Chinese Simplified)
---
zh_CN/src/sdk/pynni/README.md | 15 +++++++++++++++
1 file changed, 15 insertions(+)
create mode 100644 zh_CN/src/sdk/pynni/README.md
diff --git a/zh_CN/src/sdk/pynni/README.md b/zh_CN/src/sdk/pynni/README.md
new file mode 100644
index 0000000000..2c855fecab
--- /dev/null
+++ b/zh_CN/src/sdk/pynni/README.md
@@ -0,0 +1,15 @@
+## Install
+
+Install for current user:
+
+ pip install --user -e .
+
+
+Install for all users:
+
+ pip install -e .
+
+
+## Test
+
+ python setup.py test
\ No newline at end of file
From 82ec44db32adeb99c3d339ac5788c789b04dd47d Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Sat, 29 Dec 2018 11:04:33 +0800
Subject: [PATCH 0015/1573] New translations README.md (Chinese Simplified)
---
zh_CN/src/webui/README.md | 37 +++++++++++++++++++++++++++++++++++++
1 file changed, 37 insertions(+)
create mode 100644 zh_CN/src/webui/README.md
diff --git a/zh_CN/src/webui/README.md b/zh_CN/src/webui/README.md
new file mode 100644
index 0000000000..8e9a279f2e
--- /dev/null
+++ b/zh_CN/src/webui/README.md
@@ -0,0 +1,37 @@
+# WebUI
+
+## View summary page
+
+Click the tab "Overview".
+
+* See the experiment parameters.
+* See good performance trial.
+* See search_space json.
+
+## View job accuracy
+
+Click the tab "Optimization Progress" to see the point graph of all trials. Hover every point to see its specific accuracy.
+
+## View hyper parameter
+
+Click the tab "Hyper Parameter" to see the parallel graph.
+
+* You can select the percentage to see top trials.
+* Choose two axis to swap its positions
+
+## View trial status
+
+Click the tab "Trial Status" to see the status of the all trials. Specifically:
+
+* Trial duration: trial's duration in the bar graph.
+* Trial detail: trial's id, trial's duration, start time, end time, status, accuracy and search space file.
+* Kill: you can kill a job that status is running.
+* Tensor: you can see a job in the tensorflow graph, it will link to the Tensorboard page.
+
+## Control
+
+Click the tab "Control" to add a new trial or update the search_space file and some experiment parameters.
+
+## Feedback
+
+[Known Issues](https://github.com/Microsoft/nni/issues).
\ No newline at end of file
From d437ced3eb4879df53b07e87a1abc79c827eff66 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Sat, 29 Dec 2018 11:04:34 +0800
Subject: [PATCH 0016/1573] New translations README.md (Chinese Simplified)
---
zh_CN/test/naive_test/README.md | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
create mode 100644 zh_CN/test/naive_test/README.md
diff --git a/zh_CN/test/naive_test/README.md b/zh_CN/test/naive_test/README.md
new file mode 100644
index 0000000000..1d80aa7eb4
--- /dev/null
+++ b/zh_CN/test/naive_test/README.md
@@ -0,0 +1,20 @@
+## Usage
+
+* To test before installing: `python3 run.py --preinstall`
+* To test the integrity of installation: `python3 run.py`
+* It will print `PASS` in green eventually if everything works well.
+
+## Details
+
+* This test case tests the communication between trials and tuner/assessor.
+* The naive trials receive an integer `x` as parameter, and reports `x`, `x²`, `x³`, ... , `x¹⁰` as metrics.
+* The naive tuner simply generates the sequence of natural numbers, and print received metrics to `tuner_result.txt`.
+* The naive assessor kills trials when `sum(metrics) % 11 == 1`, and print killed trials to `assessor_result.txt`.
+* When tuner and assessor exit with exception, they will append `ERROR` to corresponding result file.
+* When the experiment is done, meaning it is successfully done in this case, `Experiment done` can be detected in the nni_manager.log file.
+
+## Issues
+
+* Private APIs are used to detect whether tuner and assessor have terminated successfully.
+* The output of REST server is not tested.
+* Remote machine training service is not tested.
\ No newline at end of file
From c326400cf3a1404f13b8bb7a24dc550721657cb4 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Sat, 29 Dec 2018 11:04:35 +0800
Subject: [PATCH 0017/1573] New translations README.md (Chinese Simplified)
---
zh_CN/tools/nni_annotation/README.md | 55 ++++++++++++++++++++++++++++
1 file changed, 55 insertions(+)
create mode 100644 zh_CN/tools/nni_annotation/README.md
diff --git a/zh_CN/tools/nni_annotation/README.md b/zh_CN/tools/nni_annotation/README.md
new file mode 100644
index 0000000000..220f44c462
--- /dev/null
+++ b/zh_CN/tools/nni_annotation/README.md
@@ -0,0 +1,55 @@
+# Introduction
+
+For good user experience and reduce user effort, we need to design a good annotation grammar.
+
+If users use NNI system, they only need to:
+
+1. Annotation variable in code as:
+
+ '''@nni.variable(nni.choice(2,3,5,7),name=self.conv_size)'''
+
+2. Annotation intermediate in code as:
+
+ '''@nni.report_intermediate_result(test_acc)'''
+
+3. Annotation output in code as:
+
+ '''@nni.report_final_result(test_acc)'''
+
+4. Annotation `function_choice` in code as:
+
+ '''@nni.function_choice(max_pool(h_conv1, self.pool_size),avg_pool(h_conv1, self.pool_size),name=max_pool)'''
+
+In this way, they can easily realize automatic tuning on NNI.
+
+For `@nni.variable`, `nni.choice` is the type of search space and there are 10 types to express your search space as follows:
+
+1. `@nni.variable(nni.choice(option1,option2,...,optionN),name=variable)`
+ Which means the variable value is one of the options, which should be a list The elements of options can themselves be stochastic expressions
+
+2. `@nni.variable(nni.randint(upper),name=variable)`
+ Which means the variable value is a random integer in the range [0, upper).
+
+3. `@nni.variable(nni.uniform(low, high),name=variable)`
+ Which means the variable value is a value uniformly between low and high.
+
+4. `@nni.variable(nni.quniform(low, high, q),name=variable)`
+ Which means the variable value is a value like round(uniform(low, high) / q) * q
+
+5. `@nni.variable(nni.loguniform(low, high),name=variable)`
+ Which means the variable value is a value drawn according to exp(uniform(low, high)) so that the logarithm of the return value is uniformly distributed.
+
+6. `@nni.variable(nni.qloguniform(low, high, q),name=variable)`
+ Which means the variable value is a value like round(exp(uniform(low, high)) / q) * q
+
+7. `@nni.variable(nni.normal(label, mu, sigma),name=variable)`
+ Which means the variable value is a real value that's normally-distributed with mean mu and standard deviation sigma.
+
+8. `@nni.variable(nni.qnormal(label, mu, sigma, q),name=variable)`
+ Which means the variable value is a value like round(normal(mu, sigma) / q) * q
+
+9. `@nni.variable(nni.lognormal(label, mu, sigma),name=variable)`
+ Which means the variable value is a value drawn according to exp(normal(mu, sigma))
+
+ 10. `@nni.variable(nni.qlognormal(label, mu, sigma, q),name=variable)`
+ Which means the variable value is a value like round(exp(normal(mu, sigma)) / q) * q
\ No newline at end of file
From c4ce8aad8b4ea3482ca87d3944e46a39954b810e Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Sat, 29 Dec 2018 11:04:36 +0800
Subject: [PATCH 0018/1573] New translations README.md (Chinese Simplified)
---
zh_CN/tools/README.md | 49 +++++++++++++++++++++++++++++++++++++++++++
1 file changed, 49 insertions(+)
create mode 100644 zh_CN/tools/README.md
diff --git a/zh_CN/tools/README.md b/zh_CN/tools/README.md
new file mode 100644
index 0000000000..42b54d54c2
--- /dev/null
+++ b/zh_CN/tools/README.md
@@ -0,0 +1,49 @@
+## NNI CTL
+
+The NNI CTL module is used to control Neural Network Intelligence, including start a new experiment, stop an experiment and update an experiment etc.
+
+## Environment
+
+ Ubuntu 16.04 or other Linux OS
+ python >= 3.5
+
+
+## Installation
+
+1. Enter tools directory
+
+2. Use pip to install packages
+
+ - Install for current user:
+
+ python3 -m pip install --user -e .
+
+ - Install for all users:
+
+ python3 -m pip install -e .
+
+ 1. Change the mode of nnictl file
+
+ chmod +x ./nnictl
+
+ 2. Add nnictl to your PATH system environment variable.
+ - You could use `export` command to set PATH variable temporary.
+
+ export PATH={your nnictl path}:$PATH
+
+ - Or you could edit your `/etc/profile` file.
+
+ 1.sudo vim /etc/profile
+
+ 2.At the end of the file, add
+
+ export PATH={your nnictl path}:$PATH
+
+ save and exit.
+
+
+ 3.source /etc/profile
+
+## To start using NNI CTL
+
+please reference to the [NNI CTL document](../docs/NNICTLDOC.md).
\ No newline at end of file
From c79cb2552acce4e18f4eb3f5477cfadcd372c56d Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Sat, 29 Dec 2018 11:04:37 +0800
Subject: [PATCH 0019/1573] New translations
tutorial_3_tryTunersAndAccessors.md (Chinese Simplified)
---
.../docs/tutorial_3_tryTunersAndAccessors.md | 45 +++++++++++++++++++
1 file changed, 45 insertions(+)
create mode 100644 zh_CN/docs/tutorial_3_tryTunersAndAccessors.md
diff --git a/zh_CN/docs/tutorial_3_tryTunersAndAccessors.md b/zh_CN/docs/tutorial_3_tryTunersAndAccessors.md
new file mode 100644
index 0000000000..7473623f9a
--- /dev/null
+++ b/zh_CN/docs/tutorial_3_tryTunersAndAccessors.md
@@ -0,0 +1,45 @@
+# Tutorial - Try different Tuners and Accessors
+
+NNI provides an easy to adopt approach to set up parameter tuning algorithms as well as early stop policies, we call them **Tuners** and **Accessors**.
+
+**Tuner** specifies the algorithm you use to generate hyperparameter sets for each trial. In NNI, we support two approaches to set the tuner.
+
+1. Directly use tuner provided by nni sdk
+
+ required fields: builtinTunerName and classArgs.
+
+
+2. Customize your own tuner file
+
+ required fields: codeDirectory, classFileName, className and classArgs.
+
+
+### **Learn More about tuners**
+
+* For detailed defintion and usage aobut the required field, please refer to [Config an experiment](ExperimentConfig.md)
+* [Tuners in the latest NNI release](../src/sdk/pynni/nni/README.md)
+* [How to implement your own tuner](howto_2_CustomizedTuner.md)
+
+**Assessor** specifies the algorithm you use to apply early stop policy. In NNI, there are two approaches to set theassessor.
+
+1. Directly use accessor provided by nni sdk
+
+ required fields: builtinAssessorName and classArgs.
+
+
+2. Customize your own tuner file
+
+ required fields: codeDirectory, classFileName, className and classArgs.
+
+
+### **Learn More about assessor**
+
+* For detailed defintion and usage aobut the required field, please refer to [Config an experiment](ExperimentConfig.md)
+* Find more about the detailed instruction about [enable accessor](EnableAssessor.md)
+* [How to implement your own assessor](../examples/assessors/README.md)
+
+## **Learn More**
+
+* [How to run an experiment on local (with multiple GPUs)?](tutorial_1_CR_exp_local_api.md)
+* [How to run an experiment on multiple machines?](tutorial_2_RemoteMachineMode.md)
+* [How to run an experiment on OpenPAI?](PAIMode.md)
\ No newline at end of file
From 4ddfac64b4df98d52ab7d89bbc45fad873728ec0 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Sat, 29 Dec 2018 11:04:38 +0800
Subject: [PATCH 0020/1573] New translations tutorial_1_CR_exp_local_api.md
(Chinese Simplified)
---
zh_CN/docs/tutorial_1_CR_exp_local_api.md | 166 ++++++++++++++++++++++
1 file changed, 166 insertions(+)
create mode 100644 zh_CN/docs/tutorial_1_CR_exp_local_api.md
diff --git a/zh_CN/docs/tutorial_1_CR_exp_local_api.md b/zh_CN/docs/tutorial_1_CR_exp_local_api.md
new file mode 100644
index 0000000000..fa2f4a1986
--- /dev/null
+++ b/zh_CN/docs/tutorial_1_CR_exp_local_api.md
@@ -0,0 +1,166 @@
+# **Tutorial: Create and Run an Experiment on local with NNI API**
+
+In this tutorial, we will use the example in [~/examples/trials/mnist] to explain how to create and run an experiment on local with NNI API.
+
+> Before starts
+
+You have an implementation for MNIST classifer using convolutional layers, the Python code is in `mnist_before.py`.
+
+> Step 1 - Update model codes
+
+To enable NNI API, make the following changes:
+
+ 1.1 Declare NNI API
+ Include `import nni` in your trial code to use NNI APIs.
+
+ 1.2 Get predefined parameters
+ Use the following code snippet:
+
+ RECEIVED_PARAMS = nni.get_next_parameter()
+
+ to get hyper-parameters' values assigned by tuner. `RECEIVED_PARAMS` is an object, for example:
+
+ {"conv_size": 2, "hidden_size": 124, "learning_rate": 0.0307, "dropout_rate": 0.2029}
+
+ 1.3 Report NNI results
+ Use the API:
+
+ `nni.report_intermediate_result(accuracy)`
+
+ to send `accuracy` to assessor.
+
+ Use the API:
+
+ `nni.report_final_result(accuracy)`
+
+ to send `accuracy` to tuner.
+
+
+We had made the changes and saved it to `mnist.py`.
+
+**NOTE**:
+
+ accuracy - The `accuracy` could be any python object, but if you use NNI built-in tuner/assessor, `accuracy` should be a numerical variable (e.g. float, int).
+ assessor - The assessor will decide which trial should early stop based on the history performance of trial (intermediate result of one trial).
+ tuner - The tuner will generate next parameters/architecture based on the explore history (final result of all trials).
+
+
+> Step 2 - Define SearchSpace
+
+The hyper-parameters used in `Step 1.2 - Get predefined parameters` is defined in a `search_space.json` file like below:
+
+ {
+ "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]},
+ "learning_rate":{"_type":"uniform","_value":[0.0001, 0.1]}
+ }
+
+
+Refer to to learn more about search space.
+
+> Step 3 - Define Experiment
+>
+> > 3.1 enable NNI API mode
+
+To enable NNI API mode, you need to set useAnnotation to *false* and provide the path of SearchSpace file (you just defined in step 1):
+
+ useAnnotation: false
+ searchSpacePath: /path/to/your/search_space.json
+
+
+To run an experiment in NNI, you only needed:
+
+* Provide a runnable trial
+* Provide or choose a tuner
+* Provide a yaml experiment configure file
+* (optional) Provide or choose an assessor
+
+**Prepare trial**:
+
+> A set of examples can be found in ~/nni/examples after your installation, run `ls ~/nni/examples/trials` to see all the trial examples.
+
+Let's use a simple trial example, e.g. mnist, provided by NNI. After you installed NNI, NNI examples have been put in ~/nni/examples, run `ls ~/nni/examples/trials` to see all the trial examples. You can simply execute the following command to run the NNI mnist example:
+
+ python ~/nni/examples/trials/mnist-annotation/mnist.py
+
+
+This command will be filled in the yaml configure file below. Please refer to [here](howto_1_WriteTrial) for how to write your own trial.
+
+**Prepare tuner**: NNI supports several popular automl algorithms, including Random Search, Tree of Parzen Estimators (TPE), Evolution algorithm etc. Users can write their own tuner (refer to [here](CustomizedTuner.md)), but for simplicity, here we choose a tuner provided by NNI as below:
+
+ tuner:
+ builtinTunerName: TPE
+ classArgs:
+ optimize_mode: maximize
+
+
+*builtinTunerName* is used to specify a tuner in NNI, *classArgs* are the arguments pass to the tuner (the spec of builtin tuners can be found [here]()), *optimization_mode* is to indicate whether you want to maximize or minimize your trial's result.
+
+**Prepare configure file**: Since you have already known which trial code you are going to run and which tuner you are going to use, it is time to prepare the yaml configure file. NNI provides a demo configure file for each trial example, `cat ~/nni/examples/trials/mnist-annotation/config.yml` to see it. Its content is basically shown below:
+
+ authorName: your_name
+ experimentName: auto_mnist
+
+ # how many trials could be concurrently running
+ trialConcurrency: 1
+
+ # maximum experiment running duration
+ maxExecDuration: 3h
+
+ # empty means never stop
+ maxTrialNum: 100
+
+ # choice: local, remote
+ trainingServicePlatform: local
+
+ # choice: true, false
+ useAnnotation: true
+ tuner:
+ builtinTunerName: TPE
+ classArgs:
+ optimize_mode: maximize
+ trial:
+ command: python mnist.py
+ codeDir: ~/nni/examples/trials/mnist-annotation
+ gpuNum: 0
+
+
+Here *useAnnotation* is true because this trial example uses our python annotation (refer to [here](../tools/annotation/README.md) for details). For trial, we should provide *trialCommand* which is the command to run the trial, provide *trialCodeDir* where the trial code is. The command will be executed in this directory. We should also provide how many GPUs a trial requires.
+
+With all these steps done, we can run the experiment with the following command:
+
+ nnictl create --config ~/nni/examples/trials/mnist-annotation/config.yml
+
+
+You can refer to [here](NNICTLDOC.md) for more usage guide of *nnictl* command line tool.
+
+## View experiment results
+
+The experiment has been running now. Oher than *nnictl*, NNI also provides WebUI for you to view experiment progress, to control your experiment, and some other appealing features.
+
+## Using multiple local GPUs to speed up search
+
+The following steps assume that you have 4 NVIDIA GPUs installed at local and [tensorflow with GPU support](https://www.tensorflow.org/install/gpu). The demo enables 4 concurrent trail jobs and each trail job uses 1 GPU.
+
+**Prepare configure file**: NNI provides a demo configuration file for the setting above, `cat ~/nni/examples/trials/mnist-annotation/config_gpu.yml` to see it. The trailConcurrency and gpuNum are different from the basic configure file:
+
+ ...
+
+ # how many trials could be concurrently running
+ trialConcurrency: 4
+
+ ...
+
+ trial:
+ command: python mnist.py
+ codeDir: ~/nni/examples/trials/mnist-annotation
+ gpuNum: 1
+
+
+We can run the experiment with the following command:
+
+ nnictl create --config ~/nni/examples/trials/mnist-annotation/config_gpu.yml
+
+
+You can use *nnictl* command line tool or WebUI to trace the training progress. *nvidia_smi* command line tool can also help you to monitor the GPU usage during training.
\ No newline at end of file
From 135df0afb74bc3d674f93b8a54b57e348278c1ae Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Sat, 29 Dec 2018 11:11:36 +0800
Subject: [PATCH 0021/1573] New translations PAIMode.md (Chinese Simplified)
---
zh_CN/docs/PAIMode.md | 80 +++++++++++++++++++++++++++++++++++++++++++
1 file changed, 80 insertions(+)
create mode 100644 zh_CN/docs/PAIMode.md
diff --git a/zh_CN/docs/PAIMode.md b/zh_CN/docs/PAIMode.md
new file mode 100644
index 0000000000..eaa8110770
--- /dev/null
+++ b/zh_CN/docs/PAIMode.md
@@ -0,0 +1,80 @@
+# **Run an Experiment on OpenPAI**
+
+NNI supports running an experiment on [OpenPAI](https://github.com/Microsoft/pai) (aka pai), called pai mode. Before starting to use NNI pai mode, you should have an account to access an [OpenPAI](https://github.com/Microsoft/pai) cluster. See [here](https://github.com/Microsoft/pai#how-to-deploy) if you don't have any OpenPAI account and want to deploy an OpenPAI cluster. In pai mode, your trial program will run in pai's container created by Docker.
+
+## Setup environment
+
+Install NNI, follow the install guide [here](GetStarted.md).
+
+## Run an experiment
+
+Use `examples/trials/mnist-annotation` as an example. The nni config yaml file's content is like:
+
+ authorName: your_name
+ experimentName: auto_mnist
+ # how many trials could be concurrently running
+ trialConcurrency: 2
+ # maximum experiment running duration
+ maxExecDuration: 3h
+ # empty means never stop
+ maxTrialNum: 100
+ # choice: local, remote, pai
+ trainingServicePlatform: pai
+ # choice: true, false
+ useAnnotation: true
+ tuner:
+ builtinTunerName: TPE
+ classArgs:
+ optimize_mode: maximize
+ trial:
+ command: python3 mnist.py
+ codeDir: ~/nni/examples/trials/mnist-annotation
+ gpuNum: 0
+ cpuNum: 1
+ memoryMB: 8196
+ image: openpai/pai.example.tensorflow
+ dataDir: hdfs://10.1.1.1:9000/nni
+ outputDir: hdfs://10.1.1.1:9000/nni
+ # Configuration to access OpenPAI Cluster
+ paiConfig:
+ userName: your_pai_nni_user
+ passWord: your_pai_password
+ host: 10.1.1.1
+
+
+Note: You should set `trainingServicePlatform: pai` in nni config yaml file if you want to start experiment in pai mode.
+
+Compared with LocalMode and [RemoteMachineMode](RemoteMachineMode.md), trial configuration in pai mode have five additional keys:
+
+* cpuNum
+ * Required key. Should be positive number based on your trial program's CPU requirement
+* memoryMB
+ * Required key. Should be positive number based on your trial program's memory requirement
+* image
+ * Required key. In pai mode, your trial program will be scheduled by OpenPAI to run in [Docker container](https://www.docker.com/). This key is used to specify the Docker image used to create the container in which your traill will run.
+ * We already build a docker image [nnimsra/nni](https://hub.docker.com/r/msranni/nni/) on [Docker Hub](https://hub.docker.com/). It contains NNI python packages, Node modules and javascript artifact files required to start experiment, and all of NNI dependencies. The docker file used to build this image can be found at [here](../deployment/Dockerfile.build.base). You can either use this image directly in your config file, or build your own image based on it.
+* dataDir
+ * Optional key. It specifies the HDFS data direcotry for trial to download data. The format should be something like hdfs://{your HDFS host}:9000/{your data directory}
+* outputDir
+ * Optional key. It specifies the HDFS output direcotry for trial. Once the trial is completed (either succeed or fail), trial's stdout, stderr will be copied to this directory by NNI sdk automatically. The format should be something like hdfs://{your HDFS host}:9000/{your output directory}
+
+Once complete to fill nni experiment config file and save (for example, save as exp_pai.yaml), then run the following command
+
+ nnictl create --config exp_pai.yaml
+
+
+to start the experiment in pai mode. NNI will create OpanPAI job for each trial, and the job name format is something like `nni_exp_{experiment_id}_trial_{trial_id}`. You can see the pai jobs created by NNI in your OpenPAI cluster's web portal, like: ![](./nni_pai_joblist.jpg)
+
+Notice: In pai mode, NNIManager will start a rest server and listen on `51189` port, to receive metrics from trial job running in PAI container. So you should `enable 51189` TCP port in your firewall rule to allow incoming traffic.
+
+Once a trial job is completed, you can goto NNI WebUI's overview page (like http://localhost:51188/oview) to check trial's information.
+
+Expand a trial information in trial list view, click the logPath link like: ![](./nni_webui_joblist.jpg)
+
+And you will be redirected to HDFS web portal to browse the output files of that trial in HDFS: ![](./nni_trial_hdfs_output.jpg)
+
+You can see there're three fils in output folder: stderr, stdout, and trial.log
+
+If you also want to save trial's other output into HDFS, like model files, you can use environment variable `NNI_OUTPUT_DIR` in your trial code to save your own output files, and NNI SDK will copy all the files in `NNI_OUTPUT_DIR` from trial's container to HDFS.
+
+Any problems when using NNI in pai mode, plesae create issues on [NNI github repo](https://github.com/Microsoft/nni), or send mail to nni@microsoft.com
\ No newline at end of file
From e2904e4b7d8670ee2a216b7e421c1cd10a70b0ee Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Sat, 29 Dec 2018 11:11:41 +0800
Subject: [PATCH 0022/1573] New translations RELEASE.md (Chinese Simplified)
---
zh_CN/docs/RELEASE.md | 84 +++++++++++++++++++++++++++++++++++++++++++
1 file changed, 84 insertions(+)
create mode 100644 zh_CN/docs/RELEASE.md
diff --git a/zh_CN/docs/RELEASE.md b/zh_CN/docs/RELEASE.md
new file mode 100644
index 0000000000..0b12458323
--- /dev/null
+++ b/zh_CN/docs/RELEASE.md
@@ -0,0 +1,84 @@
+# Release 0.3.0 - 11/2/2018
+
+## NNICTL new features and updates
+
+* Support running multiple experiments simultaneously.
+
+ Before v0.3, NNI only supports running single experiment once a time. After this realse, users are able to run multiple experiments simultaneously. Each experiment will require a unique port, the 1st experiment will be set to the default port as previous versions. You can specify a unique port for the rest experiments as below:
+
+ nnictl create --port 8081 --config
+
+* Support updating max trial number. use ```nnictl update --help``` to learn more. Or refer to [NNICTL Spec](https://github.com/Microsoft/nni/blob/master/docs/NNICTLDOC.md) for the fully usage of NNICTL.
+
+## API new features and updates
+
+* breaking change: nn.get_parameters() is refactored to nni.get_next_parameter. All examples of prior releases can not run on v0.3, please clone nni repo to get new examples. If you had applied NNI to your own codes, please update the API accordingly.
+
+* New API **nni.get_sequence_id()**. Each trial job is allocated a unique sequence number, which can be retrieved by nni.get_sequence_id() API.
+
+ git clone -b v0.3 https://github.com/Microsoft/nni.git
+
+* **nni.report_final_result(result)** API supports more data types for result parameter. It can be of following types:
+ * int
+ * float
+ * A python dict containing 'default' key, the value of 'default' key should be of type int or float. The dict can contain any other key value pairs.
+
+## New tuner support
+
+* **Batch Tuner** which iterates all parameter combination, can be used to submit batch trial jobs.
+
+## New examples
+
+* A NNI Docker image for public usage: ```docker pull msranni/nni:latest```
+* New trial example: [NNI Sklearn Example](https://github.com/Microsoft/nni/tree/master/examples/trials/sklearn)
+* New competition example: [Kaggle Competition TGS Salt Example](https://github.com/Microsoft/nni/tree/master/examples/trials/kaggle-tgs-salt)
+
+## Others
+
+* UI refactoring, refer to [WebUI doc](WebUI.md) for how to work with the new UI.
+* Continuous Integration: NNI had switched to Azure pipelines
+* [Known Issues in release 0.3.0](https://github.com/Microsoft/nni/labels/nni030knownissues).
+
+# Release 0.2.0 - 9/29/2018
+
+## Major Features
+
+* Support [OpenPAI](https://github.com/Microsoft/pai) (aka pai) Training Service (See [here](./PAIMode.md) for instructions about how to submit NNI job in pai mode)
+ * Support training services on pai mode. NNI trials will be scheduled to run on OpenPAI cluster
+ * NNI trial's output (including logs and model file) will be copied to OpenPAI HDFS for further debugging and checking
+* Support [SMAC](https://www.cs.ubc.ca/~hutter/papers/10-TR-SMAC.pdf) tuner (See [here](../src/sdk/pynni/nni/README.md) for instructions about how to use SMAC tuner)
+ * [SMAC](https://www.cs.ubc.ca/~hutter/papers/10-TR-SMAC.pdf) is based on Sequential Model-Based Optimization (SMBO). It adapts the most prominent previously used model class (Gaussian stochastic process models) and introduces the model class of random forests to SMBO to handle categorical parameters. The SMAC supported by NNI is a wrapper on [SMAC3](https://github.com/automl/SMAC3)
+* Support NNI installation on [conda](https://conda.io/docs/index.html) and python virtual environment
+* Others
+ * Update ga squad example and related documentation
+ * WebUI UX small enhancement and bug fix
+
+## Known Issues
+
+[Known Issues in release 0.2.0](https://github.com/Microsoft/nni/labels/nni020knownissues).
+
+# Release 0.1.0 - 9/10/2018 (initial release)
+
+Initial release of Neural Network Intelligence (NNI).
+
+## Major Features
+
+* Installation and Deployment
+ * Support pip install and source codes install
+ * Support training services on local mode(including Multi-GPU mode) as well as multi-machines mode
+* Tuners, Accessors and Trial
+ * Support AutoML algorithms including: hyperopt_tpe, hyperopt_annealing, hyperopt_random, and evolution_tuner
+ * Support assessor(early stop) algorithms including: medianstop algorithm
+ * Provide Python API for user defined tuners and accessors
+ * Provide Python API for user to wrap trial code as NNI deployable codes
+* Experiments
+ * Provide a command line toolkit 'nnictl' for experiments management
+ * Provide a WebUI for viewing experiments details and managing experiments
+* Continuous Integration
+ * Support CI by providing out-of-box integration with [travis-ci](https://github.com/travis-ci) on ubuntu
+* Others
+ * Support simple GPU job scheduling
+
+## Known Issues
+
+[Known Issues in release 0.1.0](https://github.com/Microsoft/nni/labels/nni010knownissues).
\ No newline at end of file
From 03f085e86c7de363d2fa31202252408d7c6fc014 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Sat, 29 Dec 2018 11:11:44 +0800
Subject: [PATCH 0023/1573] New translations howto_2_CustomizedTuner.md
(Chinese Simplified)
---
zh_CN/docs/howto_2_CustomizedTuner.md | 100 ++++++++++++++++++++++++++
1 file changed, 100 insertions(+)
create mode 100644 zh_CN/docs/howto_2_CustomizedTuner.md
diff --git a/zh_CN/docs/howto_2_CustomizedTuner.md b/zh_CN/docs/howto_2_CustomizedTuner.md
new file mode 100644
index 0000000000..a89c16c824
--- /dev/null
+++ b/zh_CN/docs/howto_2_CustomizedTuner.md
@@ -0,0 +1,100 @@
+# **How To** - Customize Your Own Tuner
+
+*Tuner receive result from Trial as a matric to evaluate the performance of a specific parameters/architecture configure. And tuner send next hyper-parameter or architecture configure to Trial.*
+
+So, if user want to implement a customized Tuner, she/he only need to:
+
+1) Inherit a tuner of a base Tuner class 2) Implement receive_trial_result and generate_parameter function 3) Write a script to run Tuner
+
+Here ia an example:
+
+**1) Inherit a tuner of a base Tuner class**
+
+```python
+from nni.tuner import Tuner
+
+class CustomizedTuner(Tuner):
+ def __init__(self, ...):
+ ...
+```
+
+**2) Implement receive_trial_result and generate_parameter function**
+
+```python
+from nni.tuner import Tuner
+
+class CustomizedTuner(Tuner):
+ def __init__(self, ...):
+ ...
+
+ def receive_trial_result(self, parameter_id, parameters, value):
+ '''
+ Record an observation of the objective function and Train
+ parameter_id: int
+ parameters: object created by 'generate_parameters()'
+ value: final metrics of the trial, including reward
+ '''
+ # your code implements here.
+ ...
+
+ def generate_parameters(self, parameter_id):
+ '''
+ Returns a set of trial (hyper-)parameters, as a serializable object
+ parameter_id: int
+ '''
+ # your code implements here.
+ return your_parameters
+ ...
+```
+
+ receive_trial_result will receive ```the parameter_id, parameters, value``` as parameters input. Also, Tuner will receive the ```value``` object are exactly same value that Trial send.
+
+The ```your_parameters``` return from ```generate_parameters``` function, will be package as json object by NNI SDK. NNI SDK will unpack json object so the Trial will receive the exact same ```your_parameters``` from Tuner.
+
+For example: If the you implement the ```generate_parameters``` like this:
+
+```python
+ def generate_parameters(self, parameter_id):
+ '''
+ Returns a set of trial (hyper-)parameters, as a serializable object
+ parameter_id: int
+ '''
+ # your code implements here.
+ return {"dropout": 0.3, "learning_rate": 0.4}
+```
+
+It means your Tuner will always generate parameters ```{"dropout": 0.3, "learning_rate": 0.4}```. Then Trial will receive ```{"dropout": 0.3, "learning_rate": 0.4}``` by calling API ```nni.get_next_parameter()```. Once the trial ends with a result (normally some kind of metrics), it can send the result to Tuner by calling API ```nni.report_final_result()```, for example ```nni.report_final_result(0.93)```. Then your Tuner's ```receive_trial_result``` function will receied the result like:
+
+ parameter_id = 82347
+ parameters = {"dropout": 0.3, "learning_rate": 0.4}
+ value = 0.93
+
+
+**Note that** if you want to access a file (e.g., ```data.txt```) in the directory of your own tuner, you cannot use ```open('data.txt', 'r')```. Instead, you should use the following:
+
+ _pwd = os.path.dirname(__file__)
+ _fd = open(os.path.join(_pwd, 'data.txt'), 'r')
+
+
+This is because your tuner is not executed in the directory of your tuner (i.e., ```pwd``` is not the directory of your own tuner).
+
+**3) Configure your customized tuner in experiment yaml config file**
+
+NNI needs to locate your customized tuner class and instantiate the class, so you need to specify the location of the customized tuner class and pass literal values as parameters to the \_\_init__ constructor.
+
+```yaml
+tuner:
+ codeDir: /home/abc/mytuner
+ classFileName: my_customized_tuner.py
+ className: CustomizedTuner
+ # Any parameter need to pass to your tuner class __init__ constructor
+ # can be specified in this optional classArgs field, for example
+ classArgs:
+ arg1: value1
+```
+
+More detail example you could see:
+
+> - [evolution-tuner](../src/sdk/pynni/nni/evolution_tuner)
+> - [hyperopt-tuner](../src/sdk/pynni/nni/hyperopt_tuner)
+> - [evolution-based-customized-tuner](../examples/tuners/ga_customer_tuner)
\ No newline at end of file
From f0d236522e86f50c9cc56ef0ddd63906fcbe89c2 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Sat, 29 Dec 2018 11:11:45 +0800
Subject: [PATCH 0024/1573] New translations howto_1_WriteTrial.md (Chinese
Simplified)
---
zh_CN/docs/howto_1_WriteTrial.md | 129 +++++++++++++++++++++++++++++++
1 file changed, 129 insertions(+)
create mode 100644 zh_CN/docs/howto_1_WriteTrial.md
diff --git a/zh_CN/docs/howto_1_WriteTrial.md b/zh_CN/docs/howto_1_WriteTrial.md
new file mode 100644
index 0000000000..0e783e0f3c
--- /dev/null
+++ b/zh_CN/docs/howto_1_WriteTrial.md
@@ -0,0 +1,129 @@
+# **Write a Trial Run on NNI**
+
+A **Trial** in NNI is an individual attempt at applying a set of parameters on a model.
+
+To define a NNI trial, you need to firstly define the set of parameters and then update the model. NNI provide two approaches for you to define a trial: `NNI API` and `NNI Python annotation`.
+
+## NNI API
+
+> Step 1 - Prepare a SearchSpace parameters file.
+
+An example is shown below:
+
+ {
+ "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]},
+ "learning_rate":{"_type":"uniform","_value":[0.0001, 0.1]}
+ }
+
+
+Refer to to learn more about search space.
+
+> Step 2 - Update model codes
+
+ 2.1 Declare NNI API
+ Include `import nni` in your trial code to use NNI APIs.
+
+ 2.2 Get predefined parameters
+ Use the following code snippet:
+
+ RECEIVED_PARAMS = nni.get_next_parameter()
+
+ to get hyper-parameters' values assigned by tuner. `RECEIVED_PARAMS` is an object, for example:
+
+ {"conv_size": 2, "hidden_size": 124, "learning_rate": 0.0307, "dropout_rate": 0.2029}
+
+ 2.3 Report NNI results
+ Use the API:
+
+ `nni.report_intermediate_result(accuracy)`
+
+ to send `accuracy` to assessor.
+
+ Use the API:
+
+ `nni.report_final_result(accuracy)`
+
+ to send `accuracy` to tuner.
+
+
+**NOTE**:
+
+ accuracy - The `accuracy` could be any python object, but if you use NNI built-in tuner/assessor, `accuracy` should be a numerical variable (e.g. float, int).
+ assessor - The assessor will decide which trial should early stop based on the history performance of trial (intermediate result of one trial).
+ tuner - The tuner will generate next parameters/architecture based on the explore history (final result of all trials).
+
+
+> Step 3 - Enable NNI API
+
+To enable NNI API mode, you need to set useAnnotation to *false* and provide the path of SearchSpace file (you just defined in step 1):
+
+ useAnnotation: false
+ searchSpacePath: /path/to/your/search_space.json
+
+
+You can refer to [here](ExperimentConfig.md) for more information about how to set up experiment configurations.
+
+(../examples/trials/README.md) for more information about how to write trial code using NNI APIs.
+
+## NNI Python Annotation
+
+An alternative to write a trial is to use NNI's syntax for python. Simple as any annotation, NNI annotation is working like comments in your codes. You don't have to make structure or any other big changes to your existing codes. With a few lines of NNI annotation, you will be able to:
+
+* annotate the variables you want to tune
+* specify in which range you want to tune the variables
+* annotate which variable you want to report as intermediate result to `assessor`
+* annotate which variable you want to report as the final result (e.g. model accuracy) to `tuner`.
+
+Again, take MNIST as an example, it only requires 2 steps to write a trial with NNI Annotation.
+
+> Step 1 - Update codes with annotations
+
+Please refer the following tensorflow code snippet for NNI Annotation, the highlighted 4 lines are annotations that help you to: (1) tune batch\_size and (2) dropout\_rate, (3) report test\_acc every 100 steps, and (4) at last report test\_acc as final result.
+
+> What noteworthy is: as these new added codes are annotations, it does not actually change your previous codes logic, you can still run your code as usual in environments without NNI installed.
+
+```diff
+with tf.Session() as sess:
+ sess.run(tf.global_variables_initializer())
++ """@nni.variable(nni.choice(50, 250, 500), name=batch_size)"""
+ batch_size = 128
+ for i in range(10000):
+ batch = mnist.train.next_batch(batch_size)
++ """@nni.variable(nni.choice(1, 5), name=dropout_rate)"""
+ dropout_rate = 0.5
+ mnist_network.train_step.run(feed_dict={mnist_network.images: batch[0],
+ mnist_network.labels: batch[1],
+ mnist_network.keep_prob: dropout_rate})
+ if i % 100 == 0:
+ test_acc = mnist_network.accuracy.eval(
+ feed_dict={mnist_network.images: mnist.test.images,
+ mnist_network.labels: mnist.test.labels,
+ mnist_network.keep_prob: 1.0})
++ """@nni.report_intermediate_result(test_acc)"""
+
+ test_acc = mnist_network.accuracy.eval(
+ feed_dict={mnist_network.images: mnist.test.images,
+ mnist_network.labels: mnist.test.labels,
+ mnist_network.keep_prob: 1.0})
+
++ """@nni.report_final_result(test_acc)"""
+```
+
+> NOTE
+>
+> > `@nni.variable` will take effect on its following line
+> >
+> > `@nni.report_intermediate_result`/`@nni.report_final_result` will send the data to assessor/tuner at that line.
+> >
+> > Please refer to [Annotation README](../tools/annotation/README.md) for more information about annotation syntax and its usage.
+>
+> Step 2 - Enable NNI Annotation In the yaml configure file, you need to set *useAnnotation* to true to enable NNI annotation:
+
+ useAnnotation: true
+
+
+## More Trial Example
+
+* [Automatic Model Architecture Search for Reading Comprehension.](../examples/trials/ga_squad/README.md)
\ No newline at end of file
From 27526e8efc72c9982f7b87e0e52dcda156b57458 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Sat, 29 Dec 2018 11:11:45 +0800
Subject: [PATCH 0025/1573] New translations WebUI.md (Chinese Simplified)
---
zh_CN/docs/WebUI.md | 49 +++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 49 insertions(+)
create mode 100644 zh_CN/docs/WebUI.md
diff --git a/zh_CN/docs/WebUI.md b/zh_CN/docs/WebUI.md
new file mode 100644
index 0000000000..db53fea472
--- /dev/null
+++ b/zh_CN/docs/WebUI.md
@@ -0,0 +1,49 @@
+# WebUI
+
+## View summary page
+
+Click the tab "Overview".
+
+* See the experiment trial profile and search space message.
+* Support to download the experiment message.
+
+![](./img/over1.png)
+
+* See good performance trials.
+
+![](./img/over2.png)
+
+## View job accuracy
+
+Click the tab "Trial Accuracy" to see the point graph of all trials. Hover every point to see its specific accuracy.
+
+![](./img/accuracy.png)
+
+## View hyper parameter
+
+Click the tab "Hyper Parameter" to see the parallel graph.
+
+* You can select the percentage to see top trials.
+* Choose two axis to swap its positions
+
+![](./img/hyperPara.png)
+
+## View Trial Duration
+
+Click the tab "Trial Duration" to see the bar graph.
+
+![](./img/trial_duration.png)
+
+## View trials status
+
+Click the tab "Trials Detail" to see the status of the all trials. Specifically:
+
+* Trial detail: trial's id, trial's duration, start time, end time, status, accuracy and search space file.
+
+![](./img/table_openrow.png)
+
+* Kill: you can kill a job that status is running.
+* Intermediate Result Graph.
+* Support to search for a specific trial.
+
+![](./img/intermediate.png)
\ No newline at end of file
From fa4c1f89c6aa9214683bbc0cb1ca4b3874e5b124 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Sat, 29 Dec 2018 11:11:46 +0800
Subject: [PATCH 0026/1573] New translations StartExperiment.md (Chinese
Simplified)
---
zh_CN/docs/StartExperiment.md | 41 +++++++++++++++++++++++++++++++++++
1 file changed, 41 insertions(+)
create mode 100644 zh_CN/docs/StartExperiment.md
diff --git a/zh_CN/docs/StartExperiment.md b/zh_CN/docs/StartExperiment.md
new file mode 100644
index 0000000000..521d25cb8a
--- /dev/null
+++ b/zh_CN/docs/StartExperiment.md
@@ -0,0 +1,41 @@
+# How to start an experiment
+
+## 1.Introduce
+
+There are few steps to start an new experiment of nni, here are the process.
+
+## 2.Details
+
+### 2.1 Check environment
+
+1. Check if there is an old experiment running
+2. Check if the port of restfurl server is free.
+3. Validate the content of config yaml file.
+4. Prepare a config file to to record the information of this experiment.
+
+### 2.2 Start restful server
+
+Start an restful server process to manage nni experiment, the default port is 8080.
+
+### 2.3 Check restful server
+
+Check whether restful server process is successfully started and could get a response when send message to restful server.
+
+### 2.4 Set experiment config
+
+Call restful server to set experiment config before starting an experiment, experiment config includes the config values in config yaml file.
+
+### 2.5 Check experiment cofig
+
+Check the response content of restful srver, if the status code of response is 200, the config is successfully set.
+
+### 2.6 Start Experiment
+
+Call restful server process to setup an experiment.
+
+### 2.7 Check experiment
+
+1. Check the response of restful server.
+2. Handle error information.
+3. Print success or error information to screen.
+4. Save configuration information to config file of nnictl.
\ No newline at end of file
From 126dcd4a24347f94c060a98f5872633ea7cfc61f Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Sat, 29 Dec 2018 11:11:47 +0800
Subject: [PATCH 0027/1573] New translations SetupNNIDeveloperEnvironment.md
(Chinese Simplified)
---
zh_CN/docs/SetupNNIDeveloperEnvironment.md | 58 ++++++++++++++++++++++
1 file changed, 58 insertions(+)
create mode 100644 zh_CN/docs/SetupNNIDeveloperEnvironment.md
diff --git a/zh_CN/docs/SetupNNIDeveloperEnvironment.md b/zh_CN/docs/SetupNNIDeveloperEnvironment.md
new file mode 100644
index 0000000000..3b877bb32a
--- /dev/null
+++ b/zh_CN/docs/SetupNNIDeveloperEnvironment.md
@@ -0,0 +1,58 @@
+# **Set up NNI developer environment**
+
+## Best practice for debug NNI source code
+
+For debugging NNI source code, your development environment should be under Ubuntu 16.04 (or above) system with python 3 and pip 3 installed, then follow the below steps.
+
+**1. Clone the source code**
+
+Run the command
+
+ git clone https://github.com/Microsoft/nni.git
+
+
+to clone the source code
+
+**2. Prepare the debug environment and install dependencies**
+
+Change directory to the source code folder, then run the command
+
+ make install-dependencies
+
+
+to install the dependent tools for the environment
+
+**3. Build source code**
+
+Run the command
+
+ make build
+
+
+to build the source code
+
+**4. Install NNI to development environment**
+
+Run the command
+
+ make dev-install
+
+
+to install the distribution content to development environment, and create cli scripts
+
+**5. Check if the environment is ready**
+
+Now, you can try to start an experiment to check if your environment is ready. For example, run the command
+
+ nnictl create --config ~/nni/examples/trials/mnist/config.yml
+
+
+And open WebUI to check if everything is OK
+
+**6. Redeploy**
+
+After the code changes, use **step 3** to rebuild your codes, then the changes will take effect immediately.
+
+* * *
+
+At last, wish you have a wonderful day. For more contribution guidelines on making PR's or issues to NNI source code, you can refer to our [CONTRIBUTING](./CONTRIBUTING.md) document.
\ No newline at end of file
From f09c6b7fdf185012caaff9cdd89198f64b650f69 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Sat, 29 Dec 2018 11:11:48 +0800
Subject: [PATCH 0028/1573] New translations SearchSpaceSpec.md (Chinese
Simplified)
---
zh_CN/docs/SearchSpaceSpec.md | 78 +++++++++++++++++++++++++++++++++++
1 file changed, 78 insertions(+)
create mode 100644 zh_CN/docs/SearchSpaceSpec.md
diff --git a/zh_CN/docs/SearchSpaceSpec.md b/zh_CN/docs/SearchSpaceSpec.md
new file mode 100644
index 0000000000..67450b0a6c
--- /dev/null
+++ b/zh_CN/docs/SearchSpaceSpec.md
@@ -0,0 +1,78 @@
+## How to define search space?
+
+### Hyper-parameter Search Space
+
+* A search space configure example as follow:
+
+```python
+{
+ "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]}
+}
+
+```
+
+The example define ```dropout_rate``` as variable which priori distribution is uniform distribution, and its value from ```0.1``` and ```0.5```. The tuner will sample parameters/architecture by understanding the search space first.
+
+User should define the name of variable, type and candidate value of variable. The candidate type and value for variable is here:
+
+* {"_type":"choice","_value":options}
+
+ * Which means the variable value is one of the options, which should be a list The elements of options can themselves be [nested] stochastic expressions. In this case, the stochastic choices that only appear in some of the options become conditional parameters.
+
+
+* {"_type":"randint","_value":[upper]}
+
+ * Which means the variable value is a random integer in the range [0, upper). The semantics of this distribution is that there is no more correlation in the loss function between nearby integer values, as compared with more distant integer values. This is an appropriate distribution for describing random seeds for example. If the loss function is probably more correlated for nearby integer values, then you should probably use one of the "quantized" continuous distributions, such as either quniform, qloguniform, qnormal or qlognormal. Note that if you want to change lower bound, you can use `quniform` for now.
+
+
+* {"_type":"uniform","_value":[low, high]}
+
+ * Which means the variable value is a value uniformly between low and high.
+ * When optimizing, this variable is constrained to a two-sided interval.
+
+
+* {"_type":"quniform","_value":[low, high, q]}
+
+ * Which means the variable value is a value like round(uniform(low, high) / q) * q
+ * Suitable for a discrete value with respect to which the objective is still somewhat "smooth", but which should be bounded both above and below. If you want to uniformly choose integer from a range [low, high], you can write `_value` like this: `[low, high, 1]`.
+
+
+* {"_type":"loguniform","_value":[low, high]}
+
+ * Which means the variable value is a value drawn according to exp(uniform(low, high)) so that the logarithm of the return value is uniformly distributed.
+ * When optimizing, this variable is constrained to the interval [exp(low), exp(high)].
+
+
+* {"_type":"qloguniform","_value":[low, high, q]}
+
+ * Which means the variable value is a value like round(exp(uniform(low, high)) / q) * q
+ * Suitable for a discrete variable with respect to which the objective is "smooth" and gets smoother with the size of the value, but which should be bounded both above and below.
+
+
+* {"_type":"normal","_value":[label, mu, sigma]}
+
+ * Which means the variable value is a real value that's normally-distributed with mean mu and standard deviation sigma. When optimizing, this is an unconstrained variable.
+
+
+* {"_type":"qnormal","_value":[label, mu, sigma, q]}
+
+ * Which means the variable value is a value like round(normal(mu, sigma) / q) * q
+ * Suitable for a discrete variable that probably takes a value around mu, but is fundamentally unbounded.
+
+
+* {"_type":"lognormal","_value":[label, mu, sigma]}
+
+ * Which means the variable value is a value drawn according to exp(normal(mu, sigma)) so that the logarithm of the return value is normally distributed. When optimizing, this variable is constrained to be positive.
+
+
+* {"_type":"qlognormal","_value":[label, mu, sigma, q]}
+
+ * Which means the variable value is a value like round(exp(normal(mu, sigma)) / q) * q
+ * Suitable for a discrete variable with respect to which the objective is smooth and gets smoother with the size of the variable, which is bounded from one side.
+
+
+Note that SMAC only supports a subset of the types above, including `choice`, `randint`, `uniform`, `loguniform`, `quniform(q=1)`. In the current version, SMAC does not support cascaded search space (i.e., conditional variable in SMAC).
\ No newline at end of file
From 15ce0c2fc1065fa0cda418c7cb6c55897c5ebe84 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Sat, 29 Dec 2018 11:11:49 +0800
Subject: [PATCH 0029/1573] New translations RemoteMachineMode.md (Chinese
Simplified)
---
zh_CN/docs/RemoteMachineMode.md | 70 +++++++++++++++++++++++++++++++++
1 file changed, 70 insertions(+)
create mode 100644 zh_CN/docs/RemoteMachineMode.md
diff --git a/zh_CN/docs/RemoteMachineMode.md b/zh_CN/docs/RemoteMachineMode.md
new file mode 100644
index 0000000000..657b15f48a
--- /dev/null
+++ b/zh_CN/docs/RemoteMachineMode.md
@@ -0,0 +1,70 @@
+# **Run an Experiment on Multiple Machines**
+
+NNI supports running an experiment on multiple machines through SSH channel, called `remote` mode. NNI assumes that you have access to those machines, and already setup the environment for running deep learning training code.
+
+e.g. Three machines and you login in with account `bob` (Note: the account is not necessarily the same on different machine):
+
+| IP | Username | Password |
+| -------- | -------- | -------- |
+| 10.1.1.1 | bob | bob123 |
+| 10.1.1.2 | bob | bob123 |
+| 10.1.1.3 | bob | bob123 |
+
+## Setup NNI environment
+
+Install NNI on each of your machines following the install guide [here](GetStarted.md).
+
+For remote machines that are used only to run trials but not the nnictl, you can just install python SDK:
+
+* **Install python SDK through pip**
+
+ python3 -m pip install --user --upgrade nni-sdk
+
+## Run an experiment
+
+Install NNI on another machine which has network accessibility to those three machines above, or you can just use any machine above to run nnictl command line tool.
+
+We use `examples/trials/mnist-annotation` as an example here. `cat ~/nni/examples/trials/mnist-annotation/config_remote.yml` to see the detailed configuration file:
+
+ authorName: default
+ experimentName: example_mnist
+ trialConcurrency: 1
+ maxExecDuration: 1h
+ maxTrialNum: 10
+ #choice: local, remote, pai
+ trainingServicePlatform: remote
+ #choice: true, false
+ useAnnotation: true
+ tuner:
+ #choice: TPE, Random, Anneal, Evolution, BatchTuner
+ #SMAC (SMAC should be installed through nnictl)
+ builtinTunerName: TPE
+ classArgs:
+ #choice: maximize, minimize
+ optimize_mode: maximize
+ trial:
+ command: python3 mnist.py
+ codeDir: .
+ gpuNum: 0
+ #machineList can be empty if the platform is local
+ machineList:
+
+ - ip: 10.1.1.1
+ username: bob
+ passwd: bob123
+ #port can be skip if using default ssh port 22
+ #port: 22
+ - ip: 10.1.1.2
+ username: bob
+ passwd: bob123
+ - ip: 10.1.1.3
+ username: bob
+ passwd: bob123
+
+
+Simply filling the `machineList` section and then run:
+
+ nnictl create --config ~/nni/examples/trials/mnist-annotation/config_remote.yml
+
+
+to start the experiment.
\ No newline at end of file
From 4baa77a8437c1654d89a189b9c9d11492943fcf6 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Sat, 29 Dec 2018 11:11:50 +0800
Subject: [PATCH 0030/1573] New translations README.Makefile.md (Chinese
Simplified)
---
zh_CN/README.Makefile.md | 82 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 82 insertions(+)
create mode 100644 zh_CN/README.Makefile.md
diff --git a/zh_CN/README.Makefile.md b/zh_CN/README.Makefile.md
new file mode 100644
index 0000000000..c3269718b4
--- /dev/null
+++ b/zh_CN/README.Makefile.md
@@ -0,0 +1,82 @@
+# Makefile and Installation Setup
+
+NNI uses GNU make for building and installing.
+
+The `Makefile` offers standard targets `build`, `install`, and `uninstall`, as well as alternative installation targets for different setup:
+
+* `easy-install`: target for non-expert users, which handles everything automatically;
+* `dev-easy-install`: target for developer users, which handles everything automatically;
+* `install`: target for NNI normal users, which installs NNI by copying files;
+* `dev-install`: target for NNI contributors, which installs NNI as symlinks instead of copying files;
+* `pip-install`: target in favor of `setup.py`;
+
+The targets will be detailed later.
+
+## Dependencies
+
+NNI requires at least Node.js, Yarn, and pip to build, while TypeScript is also recommended.
+
+NNI requires Node.js, and all dependency libraries to run. Required Node.js libraries (including TypeScript) can be installed by Yarn, and required Python libraries can be installed by setuptools or PIP.
+
+For NNI *users*, `make install-dependencies` can be used to install Node.js and Yarn. This will install Node.js to NNI's installation directory, and install Yarn to `/tmp/nni-yarn`. This target requires wget to work.
+
+For NNI *developers*, it is recommended to install Node.js and Yarn manually. See their official sites for installation guide.
+
+## Building NNI
+
+Simply run `make` when dependencies are ready.
+
+## Installation
+
+### Directory Hierarchy
+
+The main parts of NNI project consist of two Node.js modules (`nni_manager`, `webui`) and two Python packages (`nni`, `nnictl`).
+
+By default the Node.js modules are installed to `/usr/share/nni` for all users or installed to `~/.local/nni` for current user.
+
+The Python packages are installed with setuptools and therefore the location depends on Python configuration. When install as non-priviledged user and virtualenv is not detected, `--user` flag will be used.
+
+In addition, `nnictl` offers a bash completion scripts, which will be installed to `/usr/share/bash-completion/completions` or `~/.bash_completion.d`.
+
+In some configuration, NNI will also install Node.js to `/usr/share/nni`.
+
+All directories mentioned above are configurable. See next section for details.
+
+### Configuration
+
+The `Makefile` uses environment variables to override default settings.
+
+Available variables are listed below:
+
+| Name | Description | Default for normal user | Default for root |
+| ------------------ | ------------------------------------------------------- | --------------------------------- | ----------------------------------------------- |
+| `BIN_PATH` | Path for executables | `~/.local/bin` | `/usr/bin` |
+| `INSTALL_PREFIX` | Path for Node.js modules (a suffix `nni` will be added) | `~/.local` | `/usr/share` |
+| `BASH_COMP_SCRIPT` | Path of bash completion script | `~/.bash_completion.d/nnictl` | `/usr/share/bash-completion/completions/nnictl` |
+| `PIP_MODE` | Arguments for `python3 setup.py install` | `--user` if `VIRTUAL_ENV` not set | (empty) |
+| `NODE_PATH` | Path to install Node.js runtime | `$INSTALL_PREFIX/nni/node` | `$INSTALL_PREFIX/nni/node` |
+| `YARN_PATH` | Path to install Yarn | `/tmp/nni-yarn` | `/tmp/nni-yarn` |
+| `NODE` | Node.js command | see source file | see source file |
+| `YARN` | Yarn command | see source file | see source file |
+
+Note that these variables will influence installation destination as well as generated `nnictl` and `nnimanager` scripts. If the path to copy files is different from where they will run (e.g. when creating a distro package), please generate `nnictl` and `nnimanager` manually.
+
+### Targets
+
+The workflow of each installation targets is listed below:
+
+| Target | Workflow |
+| ------------------ | -------------------------------------------------------------------------- |
+| `easy-install` | Install dependencies, build, install NNI, and edit `~/.bashrc` |
+| `dev-easy-install` | Install dependencies, build, install NNI as symlinks, and edit `~/.bashrc` |
+| `install` | Install Python packages, Node.js modules, NNI scripts, and examples |
+| `dev-install` | Install Python and Node.js modules as symlinks, then install scripts |
+| `pip-install` | Install dependencies, build, install NNI excluding Python packages |
+
+## TODO
+
+* `clean` target
+* `test` target
+* `lint` target
+* Test cases for each target
+* Review variables
\ No newline at end of file
From 48ff3681d6654f7f40b16328d412235a7bb4146a Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Sat, 29 Dec 2018 11:03:55 +0800
Subject: [PATCH 0031/1573] Update Crowdin configuration file
---
crowdin.yml | 3 +++
1 file changed, 3 insertions(+)
create mode 100644 crowdin.yml
diff --git a/crowdin.yml b/crowdin.yml
new file mode 100644
index 0000000000..90d82530f1
--- /dev/null
+++ b/crowdin.yml
@@ -0,0 +1,3 @@
+files:
+ - source: /**/*.md
+ translation: /%locale_with_underscore%/%original_path%/%original_file_name%
From a5841aa1fbf04794e6ea9dc4f3249d03ecc6d2b6 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Sat, 29 Dec 2018 11:24:08 +0800
Subject: [PATCH 0032/1573] New translations README.Makefile.md (Chinese
Simplified)
---
zh_CN/README.Makefile.md | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/zh_CN/README.Makefile.md b/zh_CN/README.Makefile.md
index c3269718b4..437d11fc03 100644
--- a/zh_CN/README.Makefile.md
+++ b/zh_CN/README.Makefile.md
@@ -1,11 +1,11 @@
-# Makefile and Installation Setup
+# Makefile 文件和安装配置
NNI uses GNU make for building and installing.
-The `Makefile` offers standard targets `build`, `install`, and `uninstall`, as well as alternative installation targets for different setup:
+`Makefile` 提供标准的目标 `生成`、`安装` 和 `卸载`, 以及不同设置的安装对象:
-* `easy-install`: target for non-expert users, which handles everything automatically;
-* `dev-easy-install`: target for developer users, which handles everything automatically;
+* `dev-easy-install`: 针对非专家用户,自动处理所有内容;
+* `dev-easy-install`: 针对专家用户,自动处理所有内容;
* `install`: target for NNI normal users, which installs NNI by copying files;
* `dev-install`: target for NNI contributors, which installs NNI as symlinks instead of copying files;
* `pip-install`: target in favor of `setup.py`;
From ad3c6e7a75b883044ebbbd295561ca7159308eb3 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Sat, 29 Dec 2018 11:33:06 +0800
Subject: [PATCH 0033/1573] New translations PAIMode.md (Chinese Simplified)
---
zh_CN/docs/PAIMode.md | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/zh_CN/docs/PAIMode.md b/zh_CN/docs/PAIMode.md
index eaa8110770..5818d18181 100644
--- a/zh_CN/docs/PAIMode.md
+++ b/zh_CN/docs/PAIMode.md
@@ -63,15 +63,15 @@ Once complete to fill nni experiment config file and save (for example, save as
nnictl create --config exp_pai.yaml
-to start the experiment in pai mode. NNI will create OpanPAI job for each trial, and the job name format is something like `nni_exp_{experiment_id}_trial_{trial_id}`. You can see the pai jobs created by NNI in your OpenPAI cluster's web portal, like: ![](./nni_pai_joblist.jpg)
+to start the experiment in pai mode. NNI will create OpanPAI job for each trial, and the job name format is something like `nni_exp_{experiment_id}_trial_{trial_id}`. You can see the pai jobs created by NNI in your OpenPAI cluster's web portal, like: ![](./img/nni_pai_joblist.jpg)
-Notice: In pai mode, NNIManager will start a rest server and listen on `51189` port, to receive metrics from trial job running in PAI container. So you should `enable 51189` TCP port in your firewall rule to allow incoming traffic.
+Notice: In pai mode, NNIManager will start a rest server and listen on a port which is your NNI WebUI's port plus 1. For example, if your WebUI port is `8080`, the rest server will listen on `8081`, to receive metrics from trial job running in Kubernetes. So you should `enable 8081` TCP port in your firewall rule to allow incoming traffic.
-Once a trial job is completed, you can goto NNI WebUI's overview page (like http://localhost:51188/oview) to check trial's information.
+Once a trial job is completed, you can goto NNI WebUI's overview page (like http://localhost:8080/oview) to check trial's information.
-Expand a trial information in trial list view, click the logPath link like: ![](./nni_webui_joblist.jpg)
+Expand a trial information in trial list view, click the logPath link like: ![](./img/nni_webui_joblist.jpg)
-And you will be redirected to HDFS web portal to browse the output files of that trial in HDFS: ![](./nni_trial_hdfs_output.jpg)
+And you will be redirected to HDFS web portal to browse the output files of that trial in HDFS: ![](./img/nni_trial_hdfs_output.jpg)
You can see there're three fils in output folder: stderr, stdout, and trial.log
From b69248a3e4ea6ca6d4fb8812fd71c9f75bd4b402 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Sat, 29 Dec 2018 11:33:07 +0800
Subject: [PATCH 0034/1573] New translations README.md (Chinese Simplified)
---
zh_CN/tools/nni_annotation/README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/zh_CN/tools/nni_annotation/README.md b/zh_CN/tools/nni_annotation/README.md
index 220f44c462..d2013a92c7 100644
--- a/zh_CN/tools/nni_annotation/README.md
+++ b/zh_CN/tools/nni_annotation/README.md
@@ -1,4 +1,4 @@
-# Introduction
+# NNI Annotation Introduction
For good user experience and reduce user effort, we need to design a good annotation grammar.
From ff532d21f6f0c9dbef9e47cb995f1f26ac785207 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Sat, 29 Dec 2018 11:33:10 +0800
Subject: [PATCH 0035/1573] New translations README.md (Chinese Simplified)
---
zh_CN/examples/trials/ga_squad/README.md | 73 +++++++++++++++++++++---
1 file changed, 66 insertions(+), 7 deletions(-)
diff --git a/zh_CN/examples/trials/ga_squad/README.md b/zh_CN/examples/trials/ga_squad/README.md
index d6fd21162c..9ba6f34a43 100644
--- a/zh_CN/examples/trials/ga_squad/README.md
+++ b/zh_CN/examples/trials/ga_squad/README.md
@@ -22,7 +22,9 @@ Also we have another version which time cost is less and performance is better.
# How to run this example?
-## Use downloading script to download data
+## Run this example on local or remote
+
+### Use downloading script to download data
Execute the following command to download needed files using the downloading script:
@@ -30,7 +32,7 @@ Execute the following command to download needed files using the downloading scr
./download.sh
-## Download manually
+### Download manually
1. download "dev-v1.1.json" and "train-v1.1.json" in https://rajpurkar.github.io/SQuAD-explorer/
@@ -44,9 +46,9 @@ Execute the following command to download needed files using the downloading scr
unzip glove.840B.300d.zip
-## Update configuration
+### Update configuration
-Modify `nni/examples/trials/ga_squad/config.yaml`, here is the default configuration:
+Modify `nni/examples/trials/ga_squad/config.yml`, here is the default configuration:
authorName: default
experimentName: example_ga_squad
@@ -73,9 +75,66 @@ In the "trial" part, if you want to use GPU to perform the architecture search,
`trialConcurrency` is the number of trials running concurrently, which is the number of GPUs you want to use, if you are setting `gpuNum` to 1.
-## submit this job
+### submit this job
+
+ nnictl create --config ~/nni/examples/trials/ga_squad/config.yml
+
+
+## Run this example on OpenPAI
+
+Due to the memory limitation of upload, we only upload the source code and complete the data download and training on OpenPAI. This experiment requires sufficient memory that `memoryMB >= 32G`, and the training may last for several hours.
+
+### Update configuration
+
+Modify `nni/examples/trials/ga_squad/config_pai.yaml`, here is the default configuration:
+
+ authorName: default
+ experimentName: example_ga_squad
+ trialConcurrency: 1
+ maxExecDuration: 1h
+ maxTrialNum: 10
+ #choice: local, remote, pai
+ trainingServicePlatform: pai
+ #choice: true, false
+ useAnnotation: false
+ #Your nni_manager ip
+ nniManagerIp: 10.10.10.10
+ tuner:
+ codeDir: ../../tuners/ga_customer_tuner
+ classFileName: customer_tuner.py
+ className: CustomerTuner
+ classArgs:
+ optimize_mode: maximize
+ trial:
+ command: chmod +x ./download.sh && ./download.sh && python3 trial.py
+ codeDir: .
+ gpuNum: 0
+ cpuNum: 1
+ memoryMB: 32869
+ #The docker image to run nni job on pai
+ image: msranni/nni:latest
+ #The hdfs directory to store data on pai, format 'hdfs://host:port/directory'
+ dataDir: hdfs://10.10.10.10:9000/username/nni
+ #The hdfs directory to store output data generated by nni, format 'hdfs://host:port/directory'
+ outputDir: hdfs://10.10.10.10:9000/username/nni
+ paiConfig:
+ #The username to login pai
+ userName: username
+ #The password to login pai
+ passWord: password
+ #The host of restful server of pai
+ host: 10.10.10.10
+
+
+Please change the default value to your personal account and machine information. Including `nniManagerIp`, `dataDir`, `outputDir`, `userName`, `passWord` and `host`.
+
+In the "trial" part, if you want to use GPU to perform the architecture search, change `gpuNum` from `0` to `1`. You need to increase the `maxTrialNum` and `maxExecDuration`, according to how long you want to wait for the search result.
+
+`trialConcurrency` is the number of trials running concurrently, which is the number of GPUs you want to use, if you are setting `gpuNum` to 1.
+
+### submit this job
- nnictl create --config ~/nni/examples/trials/ga_squad/config.yaml
+ nnictl create --config ~/nni/examples/trials/ga_squad/config_pai.yml
# Techinal details about the trial
@@ -97,7 +156,7 @@ The trial has a lot of different files, functions and classes. Here we will only
Among those files, `trial.py` and `graph_to_tf.py` is special.
-`graph_to_tf.py` has a function named as `graph_to_network`, here is its skelton code:
+`graph_to_tf.py` has a function named as `graph_to_network`, here is its skeleton code:
def graph_to_network(input1,
input2,
From 460d84b4741b296d485330ba8bb4f1aa4fac60b9 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Sat, 29 Dec 2018 11:33:12 +0800
Subject: [PATCH 0036/1573] New translations RELEASE.md (Chinese Simplified)
---
zh_CN/docs/RELEASE.md | 36 +++++++++++++++++++++++++++++++++---
1 file changed, 33 insertions(+), 3 deletions(-)
diff --git a/zh_CN/docs/RELEASE.md b/zh_CN/docs/RELEASE.md
index 0b12458323..b19a9b9800 100644
--- a/zh_CN/docs/RELEASE.md
+++ b/zh_CN/docs/RELEASE.md
@@ -1,3 +1,33 @@
+# Release 0.4 - 12/6/2018
+
+## Major Features
+
+* [Kubeflow Training service](./KubeflowMode.md)
+ * Support tf-operator
+ * [Distributed trial example](../examples/trials/mnist-distributed/dist_mnist.py) on Kubeflow
+* [Grid search tuner](../src/sdk/pynni/nni/README.md#Grid)
+* [Hyperband tuner](../src/sdk/pynni/nni/README.md#Hyperband)
+* Support launch NNI experiment on MAC
+* WebUI
+ * UI support for hyperband tuner
+ * Remove tensorboard button
+ * Show experiment error message
+ * Show line numbers in search space and trial profile
+ * Support search a specific trial by trial number
+ * Show trial's hdfsLogPath
+ * Download experiment parameters
+
+## Others
+
+* Asynchronous dispatcher
+* Docker file update, add pytorch library
+* Refactor 'nnictl stop' process, send SIGTERM to nni manager process, rather than calling stop Rest API.
+* OpenPAI training service bug fix
+ * Support NNI Manager IP configuration(nniManagerIp) in PAI cluster config file, to fix the issue that user’s machine has no eth0 device
+ * File number in codeDir is capped to 1000 now, to avoid user mistakenly fill root dir for codeDir
+ * Don’t print useless ‘metrics is empty’ log int PAI job’s stdout. Only print useful message once new metrics are recorded, to reduce confusion when user checks PAI trial’s output for debugging purpose
+ * Add timestamp at the beginning of each log entry in trial keeper.
+
# Release 0.3.0 - 11/2/2018
## NNICTL new features and updates
@@ -46,7 +76,7 @@
* Support [OpenPAI](https://github.com/Microsoft/pai) (aka pai) Training Service (See [here](./PAIMode.md) for instructions about how to submit NNI job in pai mode)
* Support training services on pai mode. NNI trials will be scheduled to run on OpenPAI cluster
* NNI trial's output (including logs and model file) will be copied to OpenPAI HDFS for further debugging and checking
-* Support [SMAC](https://www.cs.ubc.ca/~hutter/papers/10-TR-SMAC.pdf) tuner (See [here](../src/sdk/pynni/nni/README.md) for instructions about how to use SMAC tuner)
+* Support [SMAC](https://www.cs.ubc.ca/~hutter/papers/10-TR-SMAC.pdf) tuner (See [here](HowToChooseTuner.md) for instructions about how to use SMAC tuner)
* [SMAC](https://www.cs.ubc.ca/~hutter/papers/10-TR-SMAC.pdf) is based on Sequential Model-Based Optimization (SMBO). It adapts the most prominent previously used model class (Gaussian stochastic process models) and introduces the model class of random forests to SMBO to handle categorical parameters. The SMAC supported by NNI is a wrapper on [SMAC3](https://github.com/automl/SMAC3)
* Support NNI installation on [conda](https://conda.io/docs/index.html) and python virtual environment
* Others
@@ -66,10 +96,10 @@ Initial release of Neural Network Intelligence (NNI).
* Installation and Deployment
* Support pip install and source codes install
* Support training services on local mode(including Multi-GPU mode) as well as multi-machines mode
-* Tuners, Accessors and Trial
+* Tuners, Assessors and Trial
* Support AutoML algorithms including: hyperopt_tpe, hyperopt_annealing, hyperopt_random, and evolution_tuner
* Support assessor(early stop) algorithms including: medianstop algorithm
- * Provide Python API for user defined tuners and accessors
+ * Provide Python API for user defined tuners and assessors
* Provide Python API for user to wrap trial code as NNI deployable codes
* Experiments
* Provide a command line toolkit 'nnictl' for experiments management
From b5e7f446be4dd52525997f8855f3ef89d079a881 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Sat, 29 Dec 2018 11:33:13 +0800
Subject: [PATCH 0037/1573] New translations README.md (Chinese Simplified)
---
zh_CN/deployment/pypi/README.md | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/zh_CN/deployment/pypi/README.md b/zh_CN/deployment/pypi/README.md
index 4b309c65ac..43f23fe78c 100644
--- a/zh_CN/deployment/pypi/README.md
+++ b/zh_CN/deployment/pypi/README.md
@@ -25,6 +25,16 @@ make
## 3.How to upload
+### upload for testing
+
+```bash
+TWINE_REPOSITORY_URL=https://test.pypi.org/legacy/ make upload
+```
+
+You may need to input the account and password of https://test.pypi.org during this process.
+
+### upload for release
+
```bash
make upload
```
From c3e6b00d78cd0fe4f865bb0f38131e2e0ab94dd2 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Sat, 29 Dec 2018 11:33:15 +0800
Subject: [PATCH 0038/1573] New translations howto_2_CustomizedTuner.md
(Chinese Simplified)
---
zh_CN/docs/howto_2_CustomizedTuner.md | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/zh_CN/docs/howto_2_CustomizedTuner.md b/zh_CN/docs/howto_2_CustomizedTuner.md
index a89c16c824..5f619ea1f4 100644
--- a/zh_CN/docs/howto_2_CustomizedTuner.md
+++ b/zh_CN/docs/howto_2_CustomizedTuner.md
@@ -4,7 +4,7 @@
So, if user want to implement a customized Tuner, she/he only need to:
-1) Inherit a tuner of a base Tuner class 2) Implement receive_trial_result and generate_parameter function 3) Write a script to run Tuner
+1) Inherit a tuner of a base Tuner class 2) Implement receive_trial_result and generate_parameter function 3) Configure your customized tuner in experiment yaml config file
Here ia an example:
@@ -97,4 +97,8 @@ More detail example you could see:
> - [evolution-tuner](../src/sdk/pynni/nni/evolution_tuner)
> - [hyperopt-tuner](../src/sdk/pynni/nni/hyperopt_tuner)
-> - [evolution-based-customized-tuner](../examples/tuners/ga_customer_tuner)
\ No newline at end of file
+> - [evolution-based-customized-tuner](../examples/tuners/ga_customer_tuner)
+
+## Write a more advanced automl algorithm
+
+The methods above are usually enough to write a general tuner. However, users may also want more methods, for example, intermediate results, trials' state (e.g., the methods in assessor), in order to have a more powerful automl algorithm. Therefore, we have another concept called `advisor` which directly inherits from `MsgDispatcherBase` in [`src/sdk/pynni/nni/msg_dispatcher_base.py`](../src/sdk/pynni/nni/msg_dispatcher_base.py). Please refer to [here](./howto_3_CustomizedAdvisor.md) for how to write a customized advisor.
\ No newline at end of file
From 5486ba2c58fcc0b442b91018a275a82def80615d Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Sat, 29 Dec 2018 11:33:16 +0800
Subject: [PATCH 0039/1573] New translations howto_1_WriteTrial.md (Chinese
Simplified)
---
zh_CN/docs/howto_1_WriteTrial.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/zh_CN/docs/howto_1_WriteTrial.md b/zh_CN/docs/howto_1_WriteTrial.md
index 0e783e0f3c..4d3eb4ea24 100644
--- a/zh_CN/docs/howto_1_WriteTrial.md
+++ b/zh_CN/docs/howto_1_WriteTrial.md
@@ -117,7 +117,7 @@ with tf.Session() as sess:
> >
> > `@nni.report_intermediate_result`/`@nni.report_final_result` will send the data to assessor/tuner at that line.
> >
-> > Please refer to [Annotation README](../tools/annotation/README.md) for more information about annotation syntax and its usage.
+> > Please refer to [Annotation README](../tools/nni_annotation/README.md) for more information about annotation syntax and its usage.
>
> Step 2 - Enable NNI Annotation In the yaml configure file, you need to set *useAnnotation* to true to enable NNI annotation:
From 0ca43d2bd6efbfda8ead7a775346a5526112e596 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Sat, 29 Dec 2018 11:33:17 +0800
Subject: [PATCH 0040/1573] New translations WebUI.md (Chinese Simplified)
---
zh_CN/docs/WebUI.md | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/zh_CN/docs/WebUI.md b/zh_CN/docs/WebUI.md
index db53fea472..7583b9bc21 100644
--- a/zh_CN/docs/WebUI.md
+++ b/zh_CN/docs/WebUI.md
@@ -5,7 +5,7 @@
Click the tab "Overview".
* See the experiment trial profile and search space message.
-* Support to download the experiment message.
+* Support to download the experiment result.
![](./img/over1.png)
@@ -13,9 +13,9 @@ Click the tab "Overview".
![](./img/over2.png)
-## View job accuracy
+## View job default metric
-Click the tab "Trial Accuracy" to see the point graph of all trials. Hover every point to see its specific accuracy.
+Click the tab "Default Metric" to see the point graph of all trials. Hover to see its specific default metric and search space message.
![](./img/accuracy.png)
@@ -39,11 +39,12 @@ Click the tab "Trial Duration" to see the bar graph.
Click the tab "Trials Detail" to see the status of the all trials. Specifically:
* Trial detail: trial's id, trial's duration, start time, end time, status, accuracy and search space file.
+* If you run a pai experiment, you can also see the hdfsLogPath.
![](./img/table_openrow.png)
* Kill: you can kill a job that status is running.
-* Intermediate Result Graph.
* Support to search for a specific trial.
+* Intermediate Result Graph.
![](./img/intermediate.png)
\ No newline at end of file
From 0517d8cf67706ee7ff5cdfce1d7a476652d82207 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Sat, 29 Dec 2018 11:33:19 +0800
Subject: [PATCH 0041/1573] New translations SearchSpaceSpec.md (Chinese
Simplified)
---
zh_CN/docs/SearchSpaceSpec.md | 13 +++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)
diff --git a/zh_CN/docs/SearchSpaceSpec.md b/zh_CN/docs/SearchSpaceSpec.md
index 67450b0a6c..0a153145a3 100644
--- a/zh_CN/docs/SearchSpaceSpec.md
+++ b/zh_CN/docs/SearchSpaceSpec.md
@@ -43,13 +43,13 @@ User should define the name of variable, type and candidate value of variable. T
* {"_type":"loguniform","_value":[low, high]}
- * Which means the variable value is a value drawn according to exp(uniform(low, high)) so that the logarithm of the return value is uniformly distributed.
- * When optimizing, this variable is constrained to the interval [exp(low), exp(high)].
+ * Which means the variable value is a value drawn from a range [low, high] according to a loguniform distribution like exp(uniform(log(low), log(high))), so that the logarithm of the return value is uniformly distributed.
+ * When optimizing, this variable is constrained to be positive.
* {"_type":"qloguniform","_value":[low, high, q]}
- * Which means the variable value is a value like round(exp(uniform(low, high)) / q) * q
+ * Which means the variable value is a value like round(loguniform(low, high)) / q) * q
* Suitable for a discrete variable with respect to which the objective is "smooth" and gets smoother with the size of the value, but which should be bounded both above and below.
@@ -75,4 +75,9 @@ User should define the name of variable, type and candidate value of variable. T
* Suitable for a discrete variable with respect to which the objective is smooth and gets smoother with the size of the variable, which is bounded from one side.
-Note that SMAC only supports a subset of the types above, including `choice`, `randint`, `uniform`, `loguniform`, `quniform(q=1)`. In the current version, SMAC does not support cascaded search space (i.e., conditional variable in SMAC).
\ No newline at end of file
+Note that SMAC only supports a subset of the types above, including `choice`, `randint`, `uniform`, `loguniform`, `quniform(q=1)`. In the current version, SMAC does not support cascaded search space (i.e., conditional variable in SMAC).
+
+Note that GridSearch Tuner only supports a subset of the types above, including `choic`, `quniform` and `qloguniform`, where q here specifies the number of values that will be sampled. Details about the last two type as follows
+
+* Type 'quniform' will receive three values [low, high, q], where [low, high] specifies a range and 'q' specifies the number of values that will be sampled evenly. Note that q should be at least 2. It will be sampled in a way that the first sampled value is 'low', and each of the following values is (high-low)/q larger that the value in front of it.
+* Type 'qloguniform' behaves like 'quniform' except that it will first change the range to [log(low), log(high)] and sample and then change the sampled value back.
\ No newline at end of file
From 9316b2b7f03cde38f3d8838a15ac024b525c1f48 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Sat, 29 Dec 2018 11:41:39 +0800
Subject: [PATCH 0042/1573] New translations GetStarted.md (Chinese Simplified)
---
zh_CN/docs/GetStarted.md | 100 +++++++++++++++++++++++++++++++++++++++
1 file changed, 100 insertions(+)
create mode 100644 zh_CN/docs/GetStarted.md
diff --git a/zh_CN/docs/GetStarted.md b/zh_CN/docs/GetStarted.md
new file mode 100644
index 0000000000..e03a7c1a74
--- /dev/null
+++ b/zh_CN/docs/GetStarted.md
@@ -0,0 +1,100 @@
+# **Get Started with NNI**
+
+## **Installation**
+
+* **Dependencies**
+
+ python >= 3.5 git wget
+
+ python pip should also be correctly installed. You could use "python3 -m pip -v" to check in Linux.
+
+ * Note: we don't support virtual environment in current releases.
+
+* **Install NNI through pip**
+
+ python3 -m pip install --user --upgrade nni
+
+* **Install NNI through source code**
+
+ git clone -b v0.4.1 https://github.com/Microsoft/nni.git cd nni source install.sh
+
+## **Quick start: run a customized experiment**
+
+An experiment is to run multiple trial jobs, each trial job tries a configuration which includes a specific neural architecture (or model) and hyper-parameter values. To run an experiment through NNI, you should:
+
+* Provide a runnable trial
+* Provide or choose a tuner
+* Provide a yaml experiment configure file
+* (optional) Provide or choose an assessor
+
+**Prepare trial**: Let's use a simple trial example, e.g. mnist, provided by NNI. After you installed NNI, NNI examples have been put in ~/nni/examples, run `ls ~/nni/examples/trials` to see all the trial examples. You can simply execute the following command to run the NNI mnist example:
+
+ python3 ~/nni/examples/trials/mnist-annotation/mnist.py
+
+
+This command will be filled in the yaml configure file below. Please refer to [here](howto_1_WriteTrial.md) for how to write your own trial.
+
+**Prepare tuner**: NNI supports several popular automl algorithms, including Random Search, Tree of Parzen Estimators (TPE), Evolution algorithm etc. Users can write their own tuner (refer to [here](howto_2_CustomizedTuner.md), but for simplicity, here we choose a tuner provided by NNI as below:
+
+ tuner:
+ builtinTunerName: TPE
+ classArgs:
+ optimize_mode: maximize
+
+
+*builtinTunerName* is used to specify a tuner in NNI, *classArgs* are the arguments pass to the tuner, *optimization_mode* is to indicate whether you want to maximize or minimize your trial's result.
+
+**Prepare configure file**: Since you have already known which trial code you are going to run and which tuner you are going to use, it is time to prepare the yaml configure file. NNI provides a demo configure file for each trial example, `cat ~/nni/examples/trials/mnist-annotation/config.yml` to see it. Its content is basically shown below:
+
+ authorName: your_name
+ experimentName: auto_mnist
+
+ # how many trials could be concurrently running
+ trialConcurrency: 2
+
+ # maximum experiment running duration
+ maxExecDuration: 3h
+
+ # empty means never stop
+ maxTrialNum: 100
+
+ # choice: local, remote, pai
+ trainingServicePlatform: local
+
+ # choice: true, false
+ useAnnotation: true
+ tuner:
+ builtinTunerName: TPE
+ classArgs:
+ optimize_mode: maximize
+ trial:
+ command: python mnist.py
+ codeDir: ~/nni/examples/trials/mnist-annotation
+ gpuNum: 0
+
+
+Here *useAnnotation* is true because this trial example uses our python annotation (refer to [here](../tools/annotation/README.md) for details). For trial, we should provide *trialCommand* which is the command to run the trial, provide *trialCodeDir* where the trial code is. The command will be executed in this directory. We should also provide how many GPUs a trial requires.
+
+With all these steps done, we can run the experiment with the following command:
+
+ nnictl create --config ~/nni/examples/trials/mnist-annotation/config.yml
+
+
+You can refer to [here](NNICTLDOC.md) for more usage guide of *nnictl* command line tool.
+
+## View experiment results
+
+The experiment has been running now, NNI provides WebUI for you to view experiment progress, to control your experiment, and some other appealing features. The WebUI is opened by default by `nnictl create`.
+
+## Read more
+
+* [Tuners supported in the latest NNI release](./HowToChooseTuner.md)
+* [Overview](Overview.md)
+* [Installation](Installation.md)
+* [Use command line tool nnictl](NNICTLDOC.md)
+* [Use NNIBoard](WebUI.md)
+* [Define search space](SearchSpaceSpec.md)
+* [Config an experiment](ExperimentConfig.md)
+* [How to run an experiment on local (with multiple GPUs)?](tutorial_1_CR_exp_local_api.md)
+* [How to run an experiment on multiple machines?](tutorial_2_RemoteMachineMode.md)
+* [How to run an experiment on OpenPAI?](PAIMode.md)
\ No newline at end of file
From e3bbbd682286677658ac111bd426ed6fd8bcc388 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Sat, 29 Dec 2018 11:41:41 +0800
Subject: [PATCH 0043/1573] New translations KubeflowMode.md (Chinese
Simplified)
---
zh_CN/docs/KubeflowMode.md | 122 +++++++++++++++++++++++++++++++++++++
1 file changed, 122 insertions(+)
create mode 100644 zh_CN/docs/KubeflowMode.md
diff --git a/zh_CN/docs/KubeflowMode.md b/zh_CN/docs/KubeflowMode.md
new file mode 100644
index 0000000000..0662dc1621
--- /dev/null
+++ b/zh_CN/docs/KubeflowMode.md
@@ -0,0 +1,122 @@
+# **Run an Experiment on Kubeflow**
+
+Now NNI supports running experiment on [Kubeflow](https://github.com/kubeflow/kubeflow), called kubeflow mode. Before starting to use NNI kubeflow mode, you should have a kubernetes cluster, either on-prem or [Azure Kubernetes Service(AKS)](https://azure.microsoft.com/en-us/services/kubernetes-service/), a Ubuntu machine on which [kubeconfig](https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/) is setup to connect to your kubernetes cluster. If you are not familiar with kubernetes, [here](https://kubernetes.io/docs/tutorials/kubernetes-basics/) is a goot start. In kubeflow mode, your trial program will run as kubeflow job in kubernetes cluster.
+
+## Prerequisite for on-premises Kubernetes Service
+
+1. A **Kubernetes** cluster using Kubernetes 1.8 or later. Follow this [guideline](https://kubernetes.io/docs/setup/) to set up Kubernetes
+2. Download, set up, and deploy **Kubelow** to your Kubernetes cluster. Follow this [guideline](https://www.kubeflow.org/docs/started/getting-started/) to set up Kubeflow
+3. Prepare a **kubeconfig** file, which will be used by NNI to interact with your kubernetes API server. By default, NNI manager will use $(HOME)/.kube/config as kubeconfig file's path. You can also specify other kubeconfig files by setting the **KUBECONFIG** environment variable. Refer this [guideline](https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig) to learn more about kubeconfig.
+4. If your NNI trial job needs GPU resource, you should follow this [guideline](https://github.com/NVIDIA/k8s-device-plugin) to configure **Nvidia device plugin for Kubernetes**.
+5. Prepare a **NFS server** and export a general purpose mount (we recommend to map your NFS server path in `root_squash option`, otherwise permission issue may raise when nni copy files to NFS. Refer this [page](https://linux.die.net/man/5/exports) to learn what root_squash option is), or **Azure File Storage**.
+6. Install **NFS client** on the machine where you install NNI and run nnictl to create experiment. Run this command to install NFSv4 client:
+
+ apt-get install nfs-common
+
+
+7. Install **NNI**, follow the install guide [here](GetStarted.md).
+
+## Prerequisite for Azure Kubernetes Service
+
+1. NNI support kubeflow based on Azure Kubernetes Service, follow the [guideline](https://azure.microsoft.com/en-us/services/kubernetes-service/) to set up Azure Kubernetes Service.
+2. Install [Azure CLI](https://docs.microsoft.com/en-us/cli/azure/install-azure-cli?view=azure-cli-latest) and **kubectl**. Use `az login` to set azure account, and connect kubectl client to AKS, refer this [guideline](https://docs.microsoft.com/en-us/azure/aks/kubernetes-walkthrough#connect-to-the-cluster).
+3. Deploy kubeflow on Azure Kubernetes Service, follow the [guideline](https://www.kubeflow.org/docs/started/getting-started/).
+4. Follow the [guideline](https://docs.microsoft.com/en-us/azure/storage/common/storage-quickstart-create-account?tabs=portal) to create azure file storage account. If you use Azure Kubernetes Service, nni need Azure Storage Service to store code files and the output files.
+5. To access Azure storage service, nni need the access key of the storage account, and nni use [Azure Key Vault](https://azure.microsoft.com/en-us/services/key-vault/) Service to protect your private key. Set up Azure Key Vault Service, add a secret to Key Vault to store the access key of Azure storage account. Follow this [guideline](https://docs.microsoft.com/en-us/azure/key-vault/quick-create-cli) to store the access key.
+
+## Design
+
+![](./img/kubeflow_training_design.png) Kubeflow training service instantiates a kubernetes rest client to interact with your K8s cluster's API server.
+
+For each trial, we will upload all the files in your local codeDir path (configured in nni_config.yaml) together with NNI generated files like parameter.cfg into a storage volumn. Right now we support two kinds of storage volumns: [nfs](https://en.wikipedia.org/wiki/Network_File_System) and [azure file storage](https://azure.microsoft.com/en-us/services/storage/files/), you should configure the storage volumn in nni config yaml file. After files are prepared, Kubeflow training service will call K8S rest API to create kubeflow jobs ([tf-operator](https://github.com/kubeflow/tf-operator) job or [pytorch-operator](https://github.com/kubeflow/pytorch-operator) job) in K8S, and mount your storage volumn into the job's pod. Output files of kubeflow job, like stdout, stderr, trial.log or model files, will also be copied back to the storage volumn. NNI will show the storage volumn's URL for each trial in WebUI, to allow user browse the log files and job's output files.
+
+## Run an experiment
+
+Use `examples/trials/mnist` as an example. The nni config yaml file's content is like:
+
+ authorName: your_name
+ experimentName: example_mnist
+ # how many trials could be concurrently running
+ trialConcurrency: 4
+ # maximum experiment running duration
+ maxExecDuration: 3h
+ # empty means never stop
+ maxTrialNum: 100
+ # choice: local, remote, pai, kubeflow
+ trainingServicePlatform: kubeflow
+ # choice: true, false
+ useAnnotation: false
+ tuner:
+ builtinTunerName: TPE
+ classArgs:
+ #choice: maximize, minimize
+ optimize_mode: maximize
+ trial:
+ codeDir: ~/nni/examples/trials/mnist
+ ps:
+ replicas: 1
+ command: python mnist-keras.py
+ gpuNum: 0
+ cpuNum: 1
+ memoryMB: 8196
+ image: {your_docker_image_for_tensorflow_ps}
+ worker:
+ replicas: 1
+ command: python mnist-keras.py
+ gpuNum: 2
+ cpuNum: 1
+ memoryMB: 8196
+ image: {your_docker_image_for_tensorflow_worker}
+ kubeflowConfig:
+ operator: tf-operator
+ storage: nfs
+ nfs:
+ server: {your_nfs_server}
+ path: {your_nfs_server_exported_path}
+
+
+If you use Azure Kubernetes Service, you should set `kubeflowConfig` in your config yaml file as follows:
+
+ kubeflowConfig:
+ operator: tf-operator
+ storage: azureStorage
+ keyVault:
+ vaultName: {your_vault_name}
+ name: {your_secert_name}
+ azureStorage:
+ accountName: {your_storage_account_name}
+ azureShare: {your_azure_share_name}
+
+
+Note: You should explicitly set `trainingServicePlatform: kubeflow` in nni config yaml file if you want to start experiment in kubeflow mode.
+
+Trial configuration in kubeflow mode have the following configuration keys:
+
+* codeDir
+ * code directory, where you put training code and config files
+* worker (required). This config section is used to configure tensorflow worker role
+ * replicas
+ * Required key. Should be positive number depends on how many replication your want to run for tensorflow worker role.
+ * command
+ * Required key. Command to launch your trial job, like ```python mnist.py```
+ * memoryMB
+ * Required key. Should be positive number based on your trial program's memory requirement
+ * cpuNum
+ * gpuNum
+ * image
+ * Required key. In kubeflow mode, your trial program will be scheduled by Kubernetes to run in [Pod](https://kubernetes.io/docs/concepts/workloads/pods/pod/). This key is used to specify the Docker image used to create the pod where your trail program will run.
+ * We already build a docker image [nnimsra/nni](https://hub.docker.com/r/msranni/nni/) on [Docker Hub](https://hub.docker.com/). It contains NNI python packages, Node modules and javascript artifact files required to start experiment, and all of NNI dependencies. The docker file used to build this image can be found at [here](../deployment/Dockerfile.build.base). You can either use this image directly in your config file, or build your own image based on it.
+* ps (optional). This config section is used to configure tensorflow parameter server role.
+
+Once complete to fill nni experiment config file and save (for example, save as exp_kubeflow.yaml), then run the following command
+
+ nnictl create --config exp_kubeflow.yaml
+
+
+to start the experiment in kubeflow mode. NNI will create Kubeflow tfjob for each trial, and the job name format is something like `nni_exp_{experiment_id}_trial_{trial_id}`. You can see the kubeflow tfjob created by NNI in your Kubernetes dashboard.
+
+Notice: In kubeflow mode, NNIManager will start a rest server and listen on a port which is your NNI WebUI's port plus 1. For example, if your WebUI port is `8080`, the rest server will listen on `8081`, to receive metrics from trial job running in Kubernetes. So you should `enable 8081` TCP port in your firewall rule to allow incoming traffic.
+
+Once a trial job is completed, you can goto NNI WebUI's overview page (like http://localhost:8080/oview) to check trial's information.
+
+Any problems when using NNI in kubeflow mode, plesae create issues on [NNI github repo](https://github.com/Microsoft/nni), or send mail to nni@microsoft.com
\ No newline at end of file
From b54080e2b7cf430c0290b2a84e1abbd3cd103426 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Sat, 29 Dec 2018 11:41:43 +0800
Subject: [PATCH 0044/1573] New translations ExperimentConfig.md (Chinese
Simplified)
---
zh_CN/docs/ExperimentConfig.md | 727 +++++++++++++++++++++++++++++++++
1 file changed, 727 insertions(+)
create mode 100644 zh_CN/docs/ExperimentConfig.md
diff --git a/zh_CN/docs/ExperimentConfig.md b/zh_CN/docs/ExperimentConfig.md
new file mode 100644
index 0000000000..6e8b90e143
--- /dev/null
+++ b/zh_CN/docs/ExperimentConfig.md
@@ -0,0 +1,727 @@
+# Experiment config reference
+
+A config file is needed when create an experiment, the path of the config file is provide to nnictl. The config file is written in yaml format, and need to be written correctly. This document describes the rule to write config file, and will provide some examples and templates.
+
+## Template
+
+* **light weight(without Annotation and Assessor)**
+
+ authorName:
+ experimentName:
+ trialConcurrency:
+ maxExecDuration:
+ maxTrialNum:
+ #choice: local, remote, pai, kubeflow
+ trainingServicePlatform:
+ searchSpacePath:
+ #choice: true, false
+ useAnnotation:
+ tuner:
+ #choice: TPE, Random, Anneal, Evolution
+ builtinTunerName:
+ classArgs:
+ #choice: maximize, minimize
+ optimize_mode:
+ gpuNum:
+ trial:
+ command:
+ codeDir:
+ gpuNum:
+ #machineList can be empty if the platform is local
+ machineList:
+ - ip:
+ port:
+ username:
+ passwd:
+
+
+* **Use Assessor**
+
+ authorName:
+ experimentName:
+ trialConcurrency:
+ maxExecDuration:
+ maxTrialNum:
+ #choice: local, remote, pai, kubeflow
+ trainingServicePlatform:
+ searchSpacePath:
+ #choice: true, false
+ useAnnotation:
+ tuner:
+ #choice: TPE, Random, Anneal, Evolution
+ builtinTunerName:
+ classArgs:
+ #choice: maximize, minimize
+ optimize_mode:
+ gpuNum:
+ assessor:
+ #choice: Medianstop
+ builtinAssessorName:
+ classArgs:
+ #choice: maximize, minimize
+ optimize_mode:
+ gpuNum:
+ trial:
+ command:
+ codeDir:
+ gpuNum:
+ #machineList can be empty if the platform is local
+ machineList:
+ - ip:
+ port:
+ username:
+ passwd:
+
+
+* **Use Annotation**
+
+ authorName:
+ experimentName:
+ trialConcurrency:
+ maxExecDuration:
+ maxTrialNum:
+ #choice: local, remote, pai, kubeflow
+ trainingServicePlatform:
+ #choice: true, false
+ useAnnotation:
+ tuner:
+ #choice: TPE, Random, Anneal, Evolution
+ builtinTunerName:
+ classArgs:
+ #choice: maximize, minimize
+ optimize_mode:
+ gpuNum:
+ assessor:
+ #choice: Medianstop
+ builtinAssessorName:
+ classArgs:
+ #choice: maximize, minimize
+ optimize_mode:
+ gpuNum:
+ trial:
+ command:
+ codeDir:
+ gpuNum:
+ #machineList can be empty if the platform is local
+ machineList:
+ - ip:
+ port:
+ username:
+ passwd:
+
+
+## Configuration
+
+* **authorName**
+
+ * Description
+
+ **authorName** is the name of the author who create the experiment. TBD: add default value
+
+* **experimentName**
+
+ * Description
+
+ **experimentName** is the name of the experiment created.
+ TBD: add default value
+
+* **trialConcurrency**
+
+ * Description
+
+ **trialConcurrency** specifies the max num of trial jobs run simultaneously.
+
+ Note: if trialGpuNum is bigger than the free gpu numbers, and the trial jobs running simultaneously can not reach trialConcurrency number, some trial jobs will be put into a queue to wait for gpu allocation.
+
+
+* **maxExecDuration**
+
+ * Description
+
+ **maxExecDuration** specifies the max duration time of an experiment.The unit of the time is {**s**, **m**, **h**, **d**}, which means {*seconds*, *minutes*, *hours*, *days*}.
+
+* **maxTrialNum**
+
+ * Description
+
+ **maxTrialNum** specifies the max number of trial jobs created by nni, including succeeded and failed jobs.
+
+* **trainingServicePlatform**
+
+ * Description
+
+ **trainingServicePlatform** specifies the platform to run the experiment, including {**local**, **remote**, **pai**, **kubeflow**}.
+
+ * **local** run an experiment on local ubuntu machine.
+
+ * **remote** submit trial jobs to remote ubuntu machines, and **machineList** field should be filed in order to set up SSH connection to remote machine.
+
+ * **pai** submit trial jobs to [OpenPai](https://github.com/Microsoft/pai) of Microsoft. For more details of pai configuration, please reference [PAIMOdeDoc](./PAIMode.md)
+
+ * **kubeflow** submit trial jobs to [kubeflow](https://www.kubeflow.org/docs/about/kubeflow/), nni support kubeflow based on normal kubernetes and [azure kubernetes](https://azure.microsoft.com/en-us/services/kubernetes-service/).
+
+* **searchSpacePath**
+
+ * Description
+
+ **searchSpacePath** specifies the path of search space file, which should be a valid path in the local linux machine.
+
+ Note: if set useAnnotation=True, the searchSpacePath field should be removed.
+
+
+* **useAnnotation**
+
+ * Description
+
+ **useAnnotation** use annotation to analysis trial code and generate search space.
+
+ Note: if set useAnnotation=True, the searchSpacePath field should be removed.
+
+
+* **nniManagerIp**
+
+ * Description
+
+ **nniManagerIp** set the IP address of the machine on which nni manager process runs. This field is optional, and if it's not set, eth0 device IP will be used instead.
+
+ Note: run ifconfig on NNI manager's machine to check if eth0 device exists. If not, we recommend to set nnimanagerIp explicitly.
+
+
+* **tuner**
+
+ * Description
+
+ **tuner** specifies the tuner algorithm in the experiment, there are two kinds of ways to set tuner. One way is to use tuner provided by nni sdk, need to set **builtinTunerName** and **classArgs**. Another way is to use users' own tuner file, and need to set **codeDirectory**, **classFileName**, **className** and **classArgs**.
+
+ * **builtinTunerName** and **classArgs**
+
+ * **builtinTunerName**
+
+ **builtinTunerName** specifies the name of system tuner, nni sdk provides four kinds of tuner, including {**TPE**, **Random**, **Anneal**, **Evolution**, **BatchTuner**, **GridSearch**}
+
+ * **classArgs**
+
+ **classArgs** specifies the arguments of tuner algorithm. If the **builtinTunerName** is in {**TPE**, **Random**, **Anneal**, **Evolution**}, user should set **optimize_mode**.
+
+ * **codeDir**, **classFileName**, **className** and **classArgs** * **codeDir**
+
+ **codeDir** specifies the directory of tuner code.
+
+ * __classFileName__
+
+
+ **classFileName** specifies the name of tuner file.
+
+ * **className**
+
+ **className** specifies the name of tuner class.
+
+ * **classArgs**
+
+ **classArgs** specifies the arguments of tuner algorithm.
+
+ * **gpuNum**
+
+ **gpuNum** specifies the gpu number to run the tuner process. The value of this field should be a positive number.
+
+ Note: users could only specify one way to set tuner, for example, set {tunerName, optimizationMode} or {tunerCommand, tunerCwd}, and could not set them both.
+
+
+* **assessor**
+
+ * Description
+
+ **assessor** specifies the assessor algorithm to run an experiment, there are two kinds of ways to set assessor. One way is to use assessor provided by nni sdk, users need to set **builtinAssessorName** and **classArgs**. Another way is to use users' own tuner file, and need to set **codeDirectory**, **classFileName**, **className** and **classArgs**.
+
+ * **builtinAssessorName** and **classArgs**
+
+ * **builtinAssessorName**
+
+ **builtinAssessorName** specifies the name of system assessor, nni sdk provides four kinds of tuner, including {**TPE**, **Random**, **Anneal**, **Evolution**}
+
+ * **classArgs**
+
+ **classArgs** specifies the arguments of tuner algorithm
+
+ * **codeDir**, **classFileName**, **className** and **classArgs** * **codeDir**
+
+ **codeDir** specifies the directory of tuner code.
+
+ * __classFileName__
+
+
+ **classFileName** specifies the name of tuner file.
+
+ * **className**
+
+ **className** specifies the name of tuner class.
+
+ * **classArgs**
+
+ **classArgs** specifies the arguments of tuner algorithm.
+
+ * **gpuNum**
+
+ **gpuNum** specifies the gpu number to run the assessor process. The value of this field should be a positive number.
+
+ Note: users' could only specify one way to set assessor, for example,set {assessorName, optimizationMode} or {assessorCommand, assessorCwd}, and users could not set them both.If users do not want to use assessor, assessor fileld should leave to empty.
+
+
+* **trial(local, remote)**
+
+ * **command**
+
+ __command__ specifies the command to run trial process.
+
+
+ * **codeDir**
+
+ **codeDir** specifies the directory of your own trial file.
+
+ * **gpuNum**
+
+ **gpuNum** specifies the num of gpu to run the trial process. Default value is 0.
+
+* **trial(pai)**
+
+ * **command**
+
+ __command__ specifies the command to run trial process.
+
+
+ * **codeDir**
+
+ **codeDir** specifies the directory of the own trial file.
+
+ * **gpuNum**
+
+ **gpuNum** specifies the num of gpu to run the trial process. Default value is 0.
+
+ * **cpuNum**
+
+ **cpuNum** is the cpu number of cpu to be used in pai container.
+
+ * **memoryMB**
+
+ **memoryMB** set the momory size to be used in pai's container.
+
+ * **image**
+
+ **image** set the image to be used in pai.
+
+ * **dataDir**
+
+ **dataDir** is the data directory in hdfs to be used.
+
+ * **outputDir**
+
+ **outputDir** is the output directory in hdfs to be used in pai, the stdout and stderr files are stored in the directory after job finished.
+
+* **trial(kubeflow)**
+
+ * **codeDir**
+
+ **codeDir** is the local directory where the code files in.
+
+ * **ps(optional)**
+
+ **ps** is the configuration for kubeflow's tensorflow-operator.
+
+ * **replicas**
+
+ **replicas** is the replica number of **ps** role.
+
+ * **command**
+
+ **command** is the run script in **ps**'s container.
+
+ * **gpuNum**
+
+ **gpuNum** set the gpu number to be used in **ps** container.
+
+ * **cpuNum**
+
+ **cpuNum** set the cpu number to be used in **ps** container.
+
+ * **memoryMB**
+
+ **memoryMB** set the memory size of the container.
+
+ * **image**
+
+ **iamge** set the image to be used in **ps**.
+
+ * **worker**
+
+ **worker** is the configuration for kubeflow's tensorflow-operator.
+
+ * **replicas**
+
+ **replicas** is the replica number of **worker** role.
+
+ * **command**
+
+ **command** is the run script in **worker**'s container.
+
+ * **gpuNum**
+
+ **gpuNum** set the gpu number to be used in **worker** container.
+
+ * **cpuNum**
+
+ **cpuNum** set the cpu number to be used in **worker** container.
+
+ * **memoryMB**
+
+ **memoryMB** set the memory size of the container.
+
+ * **image**
+
+ **iamge** set the image to be used in **worker**.
+
+* **machineList**
+
+ __machineList__ should be set if users set __trainingServicePlatform__=remote, or it could be empty.
+
+
+ * **ip**
+
+ **ip** is the ip address of remote machine.
+
+ * **port**
+
+ **port** is the ssh port to be used to connect machine.
+
+ Note: if users set port empty, the default value will be 22.
+
+
+ * **username**
+
+ **username** is the account of remote machine.
+
+ * **passwd**
+
+ **passwd** specifies the password of the account.
+
+ * **sshKeyPath**
+
+ If users use ssh key to login remote machine, could set **sshKeyPath** in config file. **sshKeyPath** is the path of ssh key file, which should be valid.
+
+ Note: if users set passwd and sshKeyPath simultaneously, nni will try passwd.
+
+
+ * **passphrase**
+
+ **passphrase** is used to protect ssh key, which could be empty if users don't have passphrase.
+
+* **kubeflowConfig**:
+
+ * **operator**
+
+ **operator** specify the kubeflow's operator to be used, nni support **tf-operator** in current version.
+
+ * **storage**
+
+ **storage** specify the storage type of kubeflow, including {**nfs**, **azureStorage**}. This field is optional, and the default value is **nfs**. If the config use azureStorage, this field must be completed.
+
+ * **nfs**
+
+ **server** is the host of nfs server
+
+ **path** is the mounted path of nfs
+
+ * **keyVault**
+
+ If users want to use azure kubernetes service, they should set keyVault to storage the private key of your azure storage account. Refer: https://docs.microsoft.com/en-us/azure/key-vault/key-vault-manage-with-cli2
+
+ * **vaultName**
+
+ **vaultName** is the value of ```--vault-name``` used in az command.
+
+ * **name**
+
+ **name** is the value of ```--name``` used in az command.
+
+ * **azureStorage**
+
+ If users use azure kubernetes service, they should set azure storage account to store code files.
+
+ * **accountName**
+
+ **accountName** is the name of azure storage account.
+
+ * **azureShare**
+
+ **azureShare** is the share of the azure file storage.
+
+* **paiConfig**
+
+ * **userName**
+
+ **userName** is the user name of your pai account.
+
+ * **password**
+
+ **password** is the password of the pai account.
+
+ * **host**
+
+ **host** is the host of pai.
+
+## Examples
+
+* **local mode**
+
+ If users want to run trial jobs in local machine, and use annotation to generate search space, could use the following config:
+
+ authorName: test
+ experimentName: test_experiment
+ trialConcurrency: 3
+ maxExecDuration: 1h
+ maxTrialNum: 10
+ #choice: local, remote, pai, kubeflow
+ trainingServicePlatform: local
+ #choice: true, false
+ useAnnotation: true
+ tuner:
+ #choice: TPE, Random, Anneal, Evolution
+ builtinTunerName: TPE
+ classArgs:
+ #choice: maximize, minimize
+ optimize_mode: maximize
+ gpuNum: 0
+ trial:
+ command: python3 mnist.py
+ codeDir: /nni/mnist
+ gpuNum: 0
+
+
+ Could add assessor configuration in config file if set assessor.
+
+
+ authorName: test
+ experimentName: test_experiment
+ trialConcurrency: 3
+ maxExecDuration: 1h
+ maxTrialNum: 10
+ #choice: local, remote, pai, kubeflow
+ trainingServicePlatform: local
+ searchSpacePath: /nni/search_space.json
+ #choice: true, false
+ useAnnotation: false
+ tuner:
+ #choice: TPE, Random, Anneal, Evolution
+ builtinTunerName: TPE
+ classArgs:
+ #choice: maximize, minimize
+ optimize_mode: maximize
+ gpuNum: 0
+ assessor:
+ #choice: Medianstop
+ builtinAssessorName: Medianstop
+ classArgs:
+ #choice: maximize, minimize
+ optimize_mode: maximize
+ gpuNum: 0
+ trial:
+ command: python3 mnist.py
+ codeDir: /nni/mnist
+ gpuNum: 0
+
+
+ Or you could specify your own tuner and assessor file as following:
+
+
+ authorName: test
+ experimentName: test_experiment
+ trialConcurrency: 3
+ maxExecDuration: 1h
+ maxTrialNum: 10
+ #choice: local, remote, pai, kubeflow
+ trainingServicePlatform: local
+ searchSpacePath: /nni/search_space.json
+ #choice: true, false
+ useAnnotation: false
+ tuner:
+ codeDir: /nni/tuner
+ classFileName: mytuner.py
+ className: MyTuner
+ classArgs:
+ #choice: maximize, minimize
+ optimize_mode: maximize
+ gpuNum: 0
+ assessor:
+ codeDir: /nni/assessor
+ classFileName: myassessor.py
+ className: MyAssessor
+ classArgs:
+ #choice: maximize, minimize
+ optimize_mode: maximize
+ gpuNum: 0
+ trial:
+ command: python3 mnist.py
+ codeDir: /nni/mnist
+ gpuNum: 0
+
+
+* **remote mode**
+
+If run trial jobs in remote machine, users could specify the remote mahcine information as fllowing format:
+
+ authorName: test
+ experimentName: test_experiment
+ trialConcurrency: 3
+ maxExecDuration: 1h
+ maxTrialNum: 10
+ #choice: local, remote, pai, kubeflow
+ trainingServicePlatform: remote
+ searchSpacePath: /nni/search_space.json
+ #choice: true, false
+ useAnnotation: false
+ tuner:
+ #choice: TPE, Random, Anneal, Evolution
+ builtinTunerName: TPE
+ classArgs:
+ #choice: maximize, minimize
+ optimize_mode: maximize
+ gpuNum: 0
+ trial:
+ command: python3 mnist.py
+ codeDir: /nni/mnist
+ gpuNum: 0
+ #machineList can be empty if the platform is local
+ machineList:
+
+ - ip: 10.10.10.10
+ port: 22
+ username: test
+ passwd: test
+ - ip: 10.10.10.11
+ port: 22
+ username: test
+ passwd: test
+ - ip: 10.10.10.12
+ port: 22
+ username: test
+ sshKeyPath: /nni/sshkey
+ passphrase: qwert
+
+
+* **pai mode**
+
+ authorName: test
+ experimentName: nni_test1
+ trialConcurrency: 1
+ maxExecDuration:500h
+ maxTrialNum: 1
+ #choice: local, remote, pai, kubeflow
+ trainingServicePlatform: pai
+ searchSpacePath: search_space.json
+ #choice: true, false
+ useAnnotation: false
+ tuner:
+ #choice: TPE, Random, Anneal, Evolution, BatchTuner
+ #SMAC (SMAC should be installed through nnictl)
+ builtinTunerName: TPE
+ classArgs:
+ #choice: maximize, minimize
+ optimize_mode: maximize
+ trial:
+ command: python3 main.py
+ codeDir: .
+ gpuNum: 4
+ cpuNum: 2
+ memoryMB: 10000
+ #The docker image to run nni job on pai
+ image: msranni/nni:latest
+ #The hdfs directory to store data on pai, format 'hdfs://host:port/directory'
+ dataDir: hdfs://10.11.12.13:9000/test
+ #The hdfs directory to store output data generated by nni, format 'hdfs://host:port/directory'
+ outputDir: hdfs://10.11.12.13:9000/test
+ paiConfig:
+ #The username to login pai
+ userName: test
+ #The password to login pai
+ passWord: test
+ #The host of restful server of pai
+ host: 10.10.10.10
+
+
+
+* **kubeflow mode**
+
+kubeflow use nfs as storage.
+
+ authorName: default
+ experimentName: example_mni
+ trialConcurrency: 1
+ maxExecDuration: 1h
+ maxTrialNum: 1
+ #choice: local, remote, pai, kubeflow
+ trainingServicePlatform: kubeflow
+ searchSpacePath: search_space.json
+ #choice: true, false
+ useAnnotation: false
+ tuner:
+ #choice: TPE, Random, Anneal, Evolution
+ builtinTunerName: TPE
+ classArgs:
+ #choice: maximize, minimize
+ optimize_mode: maximize
+ trial:
+ codeDir: .
+ worker:
+ replicas: 1
+ command: python3 mnist.py
+ gpuNum: 0
+ cpuNum: 1
+ memoryMB: 8192
+ image: msranni/nni:latest
+ kubeflowConfig:
+ operator: tf-operator
+ nfs:
+ server: 10.10.10.10
+ path: /var/nfs/general
+
+
+kubeflow use azure storage
+
+ authorName: default
+ experimentName: example_mni
+ trialConcurrency: 1
+ maxExecDuration: 1h
+ maxTrialNum: 1
+ #choice: local, remote, pai, kubeflow
+ trainingServicePlatform: kubeflow
+ searchSpacePath: search_space.json
+ #choice: true, false
+ useAnnotation: false
+ #nniManagerIp: 10.10.10.10
+ tuner:
+ #choice: TPE, Random, Anneal, Evolution
+ builtinTunerName: TPE
+ classArgs:
+ #choice: maximize, minimize
+ optimize_mode: maximize
+ assessor:
+ builtinAssessorName: Medianstop
+ classArgs:
+ optimize_mode: maximize
+ gpuNum: 0
+ trial:
+ codeDir: .
+ worker:
+ replicas: 1
+ command: python3 mnist.py
+ gpuNum: 0
+ cpuNum: 1
+ memoryMB: 4096
+ image: msranni/nni:latest
+ kubeflowConfig:
+ operator: tf-operator
+ keyVault:
+ vaultName: Contoso-Vault
+ name: AzureStorageAccountKey
+ azureStorage:
+ accountName: storage
+ azureShare: share01
\ No newline at end of file
From cf10b4dc443558c880dcd5640384845df4fa68f8 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Sat, 29 Dec 2018 11:41:44 +0800
Subject: [PATCH 0045/1573] New translations howto_3_CustomizedAdvisor.md
(Chinese Simplified)
---
zh_CN/docs/howto_3_CustomizedAdvisor.md | 38 +++++++++++++++++++++++++
1 file changed, 38 insertions(+)
create mode 100644 zh_CN/docs/howto_3_CustomizedAdvisor.md
diff --git a/zh_CN/docs/howto_3_CustomizedAdvisor.md b/zh_CN/docs/howto_3_CustomizedAdvisor.md
new file mode 100644
index 0000000000..02bfcab587
--- /dev/null
+++ b/zh_CN/docs/howto_3_CustomizedAdvisor.md
@@ -0,0 +1,38 @@
+# **How To** - Customize Your Own Advisor
+
+*Advisor targets the scenario that the automl algorithm wants the methods of both tuner and assessor. Advisor is similar to tuner on that it receives trial configuration request, final results, and generate trial configurations. Also, it is similar to assessor on that it receives intermediate results, trial's end state, and could send trial kill command. Note that, if you use Advisor, tuner and assessor are not allowed to be used at the same time.*
+
+So, if user want to implement a customized Advisor, she/he only need to:
+
+1) Define an Advisor inheriting from the MsgDispatcherBase class 2) Implement the methods with prefix `handle_` except `handle_request` 3) Configure your customized Advisor in experiment yaml config file
+
+Here ia an example:
+
+**1) Define an Advisor inheriting from the MsgDispatcherBase class**
+
+```python
+from nni.msg_dispatcher_base import MsgDispatcherBase
+
+class CustomizedAdvisor(MsgDispatcherBase):
+ def __init__(self, ...):
+ ...
+```
+
+**2) Implement the methods with prefix `handle_` except `handle_request`**
+
+Please refer to the implementation of Hyperband ([src/sdk/pynni/nni/hyperband_advisor/hyperband_advisor.py](../src/sdk/pynni/nni/hyperband_advisor/hyperband_advisor.py)) for how to implement the methods.
+
+**3) Configure your customized Advisor in experiment yaml config file**
+
+Similar to tuner and assessor. NNI needs to locate your customized Advisor class and instantiate the class, so you need to specify the location of the customized Advisor class and pass literal values as parameters to the \_\_init__ constructor.
+
+```yaml
+advisor:
+ codeDir: /home/abc/myadvisor
+ classFileName: my_customized_advisor.py
+ className: CustomizedAdvisor
+ # Any parameter need to pass to your advisor class __init__ constructor
+ # can be specified in this optional classArgs field, for example
+ classArgs:
+ arg1: value1
+```
\ No newline at end of file
From fa7f06c6bd07a51ced194aa7693ec0059dade0b1 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Sat, 29 Dec 2018 11:41:45 +0800
Subject: [PATCH 0046/1573] New translations Overview.md (Chinese Simplified)
---
zh_CN/docs/Overview.md | 55 ++++++++++++++++++++++++++++++++++++++++++
1 file changed, 55 insertions(+)
create mode 100644 zh_CN/docs/Overview.md
diff --git a/zh_CN/docs/Overview.md b/zh_CN/docs/Overview.md
new file mode 100644
index 0000000000..6fb6e3979d
--- /dev/null
+++ b/zh_CN/docs/Overview.md
@@ -0,0 +1,55 @@
+# NNI Overview
+
+NNI (Neural Network Intelligence) is a toolkit to help users run automated machine learning experiments. For each experiment, user only need to define a search space and update a few lines of code, and then leverage NNI build-in algorithms and training services to search the best hyper parameters and/or neural architecture.
+
+> Step 1: [Define search space](SearchSpaceSpec.md)
+>
+> Step 2: [Update model codes](howto_1_WriteTrial.md)
+>
+> Step 3: [Define Experiment](ExperimentConfig.md)
+
+
+
+
+
+After user submits the experiment through a command line tool [nnictl](../tools/README.md), a demon process (NNI manager) take care of search process. NNI manager continuously get search settings that generated by tuning algorithms, then NNI manager asks the training service component to dispatch and run trial jobs in a targeted training environment (e.g. local machine, remote servers and cloud). The results of trials jobs such as model accurate will send back to tuning algorithms for generating more meaningful search settings. NNI manager stops the search process after it find the best models.
+
+## Architecture Overview
+
+
+
+
+
+User can use the nnictl and/or a visualized Web UI nniboard to monitor and debug a given experiment.
+
+NNI provides a set of examples in the package to get you familiar with the above process. In the following example [/examples/trials/mnist], we had already set up the configuration and updated the training codes for you. You can directly run the following command to start an experiment.
+
+## Key Concepts
+
+**Experiment** in NNI is a method for testing different assumptions (hypotheses) by Trials under conditions constructed and controlled by NNI. During the experiment, one or more conditions are allowed to change in an organized manner and effects of these changes on associated conditions.
+
+### **Trial**
+
+**Trial** in NNI is an individual attempt at applying a set of parameters on a model.
+
+### **Tuner**
+
+**Tuner** in NNI is an implementation of Tuner API for a special tuning algorithm. [Read more about the Tuners supported in the latest NNI release](HowToChooseTuner.md)
+
+### **Assessor**
+
+**Assessor** in NNI is an implementation of Assessor API for optimizing the execution of experiment.
+
+## Learn More
+
+* [Get started](GetStarted.md)
+* [Install NNI](Installation.md)
+* [Use command line tool nnictl](NNICTLDOC.md)
+* [Use NNIBoard](WebUI.md)
+* [Use annotation](howto_1_WriteTrial.md#nni-python-annotation)
+
+### **Tutorials**
+
+* [How to run an experiment on local (with multiple GPUs)?](tutorial_1_CR_exp_local_api.md)
+* [How to run an experiment on multiple machines?](tutorial_2_RemoteMachineMode.md)
+* [How to run an experiment on OpenPAI?](PAIMode.md)
\ No newline at end of file
From a0238e9df76c19903afc2aeff93230f8aa4dda89 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Sat, 29 Dec 2018 11:41:47 +0800
Subject: [PATCH 0047/1573] New translations HowToChooseTuner.md (Chinese
Simplified)
---
zh_CN/docs/HowToChooseTuner.md | 273 +++++++++++++++++++++++++++++++++
1 file changed, 273 insertions(+)
create mode 100644 zh_CN/docs/HowToChooseTuner.md
diff --git a/zh_CN/docs/HowToChooseTuner.md b/zh_CN/docs/HowToChooseTuner.md
new file mode 100644
index 0000000000..ddfae2d979
--- /dev/null
+++ b/zh_CN/docs/HowToChooseTuner.md
@@ -0,0 +1,273 @@
+# How to use Tuner that NNI supports?
+
+For now, NNI has supported the following tuner algorithms. Note that NNI installation only installs a subset of those algorithms, other algorithms should be installed through `nnictl package install` before you use them. For example, for SMAC the installation command is `nnictl package install --name=SMAC`.
+
+* [TPE](#TPE)
+* [Random Search](#Random)
+* [Anneal](#Anneal)
+* [Naive Evolution](#Evolution)
+* [SMAC](#SMAC) (to install through `nnictl`)
+* [Batch Tuner](#Batch)
+* [Grid Search](#Grid)
+* [Hyperband](#Hyperband)
+* [Network Morphism](#NetworkMorphism) (require pyTorch)
+
+ ## Supported tuner algorithms
+
+We will introduce some basic knowledge about the tuner algorithms, suggested scenarios for each tuner, and their example usage (for complete usage spec, please refer to [here]()).
+
+
+**TPE**
+
+The Tree-structured Parzen Estimator (TPE) is a sequential model-based optimization (SMBO) approach. SMBO methods sequentially construct models to approximate the performance of hyperparameters based on historical measurements, and then subsequently choose new hyperparameters to test based on this model. The TPE approach models P(x|y) and P(y) where x represents hyperparameters and y the associated evaluate matric. P(x|y) is modeled by transforming the generative process of hyperparameters, replacing the distributions of the configuration prior with non-parametric densities. This optimization approach is described in detail in [Algorithms for Hyper-Parameter Optimization](https://papers.nips.cc/paper/4443-algorithms-for-hyper-parameter-optimization.pdf).
+*Suggested scenario*: TPE, as a black-box optimization, can be used in various scenarios, and shows good performance in general. Especially when you have limited computation resource and can only try a small number of trials. From a large amount of experiments, we could found that TPE is far better than Random Search.
+
+*Usage*:
+
+```yaml
+ # config.yaml
+ tuner:
+ builtinTunerName: TPE
+ classArgs:
+ # choice: maximize, minimize
+ optimize_mode: maximize
+```
+
+
+**Random Search**
+
+In [Random Search for Hyper-Parameter Optimization](http://www.jmlr.org/papers/volume13/bergstra12a/bergstra12a.pdf) show that Random Search might be surprisingly simple and effective. We suggests that we could use Random Search as baseline when we have no knowledge about the prior distribution of hyper-parameters.
+
+*Suggested scenario*: Random search is suggested when each trial does not take too long (e.g., each trial can be completed very soon, or early stopped by assessor quickly), and you have enough computation resource. Or you want to uniformly explore the search space. Random Search could be considered as baseline of search algorithm.
+
+*Usage*:
+
+```yaml
+ # config.yaml
+ tuner:
+ builtinTunerName: Random
+```
+
+
+**Anneal**
+
+This simple annealing algorithm begins by sampling from the prior, but tends over time to sample from points closer and closer to the best ones observed. This algorithm is a simple variation on random search that leverages smoothness in the response surface. The annealing rate is not adaptive.
+
+*Suggested scenario*: Anneal is suggested when each trial does not take too long, and you have enough computation resource(almost same with Random Search). Or the variables in search space could be sample from some prior distribution.
+
+*Usage*:
+
+```yaml
+ # config.yaml
+ tuner:
+ builtinTunerName: Anneal
+ classArgs:
+ # choice: maximize, minimize
+ optimize_mode: maximize
+```
+
+
+**Naive Evolution**
+
+Naive Evolution comes from [Large-Scale Evolution of Image Classifiers](https://arxiv.org/pdf/1703.01041.pdf). It randomly initializes a population based on search space. For each generation, it chooses better ones and do some mutation (e.g., change a hyperparameter, add/remove one layer) on them to get the next generation. Naive Evolution requires many trials to works, but it's very simple and easily to expand new features.
+
+*Suggested scenario*: Its requirement of computation resource is relatively high. Specifically, it requires large inital population to avoid falling into local optimum. If your trial is short or leverages assessor, this tuner is a good choice. And, it is more suggested when your trial code supports weight transfer, that is, the trial could inherit the converged weights from its parent(s). This can greatly speed up the training progress.
+
+*Usage*:
+
+```yaml
+ # config.yaml
+ tuner:
+ builtinTunerName: Evolution
+ classArgs:
+ # choice: maximize, minimize
+ optimize_mode: maximize
+```
+
+
+**SMAC**
+
+[SMAC](https://www.cs.ubc.ca/~hutter/papers/10-TR-SMAC.pdf) is based on Sequential Model-Based Optimization (SMBO). It adapts the most prominent previously used model class (Gaussian stochastic process models) and introduces the model class of random forests to SMBO, in order to handle categorical parameters. The SMAC supported by nni is a wrapper on [the SMAC3 github repo](https://github.com/automl/SMAC3).
+
+Note that SMAC on nni only supports a subset of the types in [search space spec](./SearchSpaceSpec.md), including `choice`, `randint`, `uniform`, `loguniform`, `quniform(q=1)`.
+
+*Installation*:
+
+* Install swig first. (`sudo apt-get install swig` for Ubuntu users)
+* Run `nnictl package install --name=SMAC`
+
+*Suggested scenario*: Similar to TPE, SMAC is also a black-box tuner which can be tried in various scenarios, and is suggested when computation resource is limited. It is optimized for discrete hyperparameters, thus, suggested when most of your hyperparameters are discrete.
+
+*Usage*:
+
+```yaml
+ # config.yaml
+ tuner:
+ builtinTunerName: SMAC
+ classArgs:
+ # choice: maximize, minimize
+ optimize_mode: maximize
+```
+
+
+**Batch tuner**
+
+Batch tuner allows users to simply provide several configurations (i.e., choices of hyper-parameters) for their trial code. After finishing all the configurations, the experiment is done. Batch tuner only supports the type `choice` in [search space spec](./SearchSpaceSpec.md).
+
+*Suggested sceanrio*: If the configurations you want to try have been decided, you can list them in searchspace file (using `choice`) and run them using batch tuner.
+
+*Usage*:
+
+```yaml
+ # config.yaml
+ tuner:
+ builtinTunerName: BatchTuner
+```
+
+Note that the search space that BatchTuner supported like:
+
+```json
+{
+ "combine_params":
+ {
+ "_type" : "choice",
+ "_value" : [{"optimizer": "Adam", "learning_rate": 0.00001},
+ {"optimizer": "Adam", "learning_rate": 0.0001},
+ {"optimizer": "Adam", "learning_rate": 0.001},
+ {"optimizer": "SGD", "learning_rate": 0.01},
+ {"optimizer": "SGD", "learning_rate": 0.005},
+ {"optimizer": "SGD", "learning_rate": 0.0002}]
+ }
+}
+```
+
+The search space file including the high-level key `combine_params`. The type of params in search space must be `choice` and the `values` including all the combined-params value.
+
+
+**Grid Search**
+
+Grid Search performs an exhaustive searching through a manually specified subset of the hyperparameter space defined in the searchspace file. Note that the only acceptable types of search space are `choice`, `quniform`, `qloguniform`. **The number `q` in `quniform` and `qloguniform` has special meaning (different from the spec in [search space spec](./SearchSpaceSpec.md)). It means the number of values that will be sampled evenly from the range `low` and `high`.**
+
+*Suggested scenario*: It is suggested when search space is small, it is feasible to exhaustively sweeping the whole search space.
+
+*Usage*:
+
+```yaml
+ # config.yaml
+ tuner:
+ builtinTunerName: GridSearch
+```
+
+
+**Hyperband**
+
+[Hyperband](https://arxiv.org/pdf/1603.06560.pdf) tries to use limited resource to explore as many configurations as possible, and finds out the promising ones to get the final result. The basic idea is generating many configurations and to run them for small number of STEPs to find out promising one, then further training those promising ones to select several more promising one. More detail can be referred to [here](../src/sdk/pynni/nni/hyperband_advisor/README.md).
+
+*Suggested scenario*: It is suggested when you have limited computation resource but have relatively large search space. It performs good in the scenario that intermediate result (e.g., accuracy) can reflect good or bad of final result (e.g., accuracy) to some extent.
+
+*Usage*:
+
+```yaml
+ # config.yaml
+ advisor:
+ builtinAdvisorName: Hyperband
+ classArgs:
+ # choice: maximize, minimize
+ optimize_mode: maximize
+ # R: the maximum STEPS (could be the number of mini-batches or epochs) can be
+ # allocated to a trial. Each trial should use STEPS to control how long it runs.
+ R: 60
+ # eta: proportion of discarded trials
+ eta: 3
+```
+
+
+**Network Morphism**
+
+[Network Morphism](7) provides functions to automatically search for architecture of deep learning models. Every child network inherits the knowledge from its parent network and morphs into diverse types of networks, including changes of depth, width and skip-connection. Next, it estimates the value of child network using the history architecture and metric pairs. Then it selects the most promising one to train. More detail can be referred to [here](../src/sdk/pynni/nni/networkmorphism_tuner/README.md).
+
+*Installation*: NetworkMorphism requires [pyTorch](https://pytorch.org/get-started/locally), so users should install it first.
+
+*Suggested scenario*: It is suggested that you want to apply deep learning methods to your task (your own dataset) but you have no idea of how to choose or design a network. You modify the [example](../examples/trials/network_morphism/cifar10/cifar10_keras.py) to fit your own dataset and your own data augmentation method. Also you can change the batch size, learning rate or optimizer. It is feasible for different tasks to find a good network architecture. Now this tuner only supports the cv domain.
+
+*Usage*:
+
+```yaml
+ # config.yaml
+ tuner:
+ builtinTunerName: NetworkMorphism
+ classArgs:
+ #choice: maximize, minimize
+ optimize_mode: maximize
+ #for now, this tuner only supports cv domain
+ task: cv
+ #input image width
+ input_width: 32
+ #input image channel
+ input_channel: 3
+ #number of classes
+ n_output_node: 10
+```
+
+# How to use Assessor that NNI supports?
+
+For now, NNI has supported the following assessor algorithms.
+
+* [Medianstop](#Medianstop)
+* [Curvefitting](#Curvefitting)
+
+## Supported Assessor Algorithms
+
+
+**Medianstop**
+
+Medianstop is a simple early stopping rule mentioned in the [paper](https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/46180.pdf). It stops a pending trial X at step S if the trial’s best objective value by step S is strictly worse than the median value of the running averages of all completed trials’ objectives reported up to step S.
+
+*Suggested scenario*: It is applicable in a wide range of performance curves, thus, can be used in various scenarios to speed up the tuning progress.
+
+*Usage*:
+
+```yaml
+ assessor:
+ builtinAssessorName: Medianstop
+ classArgs:
+ #choice: maximize, minimize
+ optimize_mode: maximize
+ # (optional) A trial is determined to be stopped or not,
+
+ * only after receiving start_step number of reported intermediate results.
+ * The default value of start_step is 0.
+ start_step: 5
+```
+
+
+**Curvefitting**
+
+Curve Fitting Assessor is a LPA(learning, predicting, assessing) algorithm. It stops a pending trial X at step S if the prediction of final epoch's performance worse than the best final performance in the trial history. In this algorithm, we use 12 curves to fit the accuracy curve, the large set of parametric curve models are chosen from [reference paper](http://aad.informatik.uni-freiburg.de/papers/15-IJCAI-Extrapolation_of_Learning_Curves.pdf). The learning curves' shape coincides with our prior knowlwdge about the form of learning curves: They are typically increasing, saturating functions.
+
+*Suggested scenario*: It is applicable in a wide range of performance curves, thus, can be used in various scenarios to speed up the tuning progress. Even better, it's able to handle and assess curves with similar performance.
+
+*Usage*:
+
+```yaml
+ assessor:
+ builtinAssessorName: Curvefitting
+ classArgs:
+ # (required)The total number of epoch.
+ # We need to know the number of epoch to determine which point we need to predict.
+ epoch_num: 20
+ # (optional) choice: maximize, minimize
+ # Kindly reminds that if you choose minimize mode, please adjust the value of threshold >= 1.0 (e.g threshold=1.1)
+
+ * The default value of optimize_mode is maximize
+ optimize_mode: maximize
+ # (optional) A trial is determined to be stopped or not
+ # In order to save our computing resource, we start to predict when we have more than start_step(default=6) accuracy points.
+ # only after receiving start_step number of reported intermediate results.
+ * The default value of start_step is 6.
+ start_step: 6
+ # (optional) The threshold that we decide to early stop the worse performance curve.
+ # For example: if threshold = 0.95, optimize_mode = maximize, best performance in the history is 0.9, then we will stop the trial which predict value is lower than 0.95 * 0.9 = 0.855.
+ * The default value of threshold is 0.95.
+ threshold: 0.95
+```
\ No newline at end of file
From fdcd971b9641debc3c0bdae51819204fb02c0629 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Sat, 29 Dec 2018 11:41:48 +0800
Subject: [PATCH 0048/1573] New translations Installation.md (Chinese
Simplified)
---
zh_CN/docs/Installation.md | 60 ++++++++++++++++++++++++++++++++++++++
1 file changed, 60 insertions(+)
create mode 100644 zh_CN/docs/Installation.md
diff --git a/zh_CN/docs/Installation.md b/zh_CN/docs/Installation.md
new file mode 100644
index 0000000000..5dcfcf60b2
--- /dev/null
+++ b/zh_CN/docs/Installation.md
@@ -0,0 +1,60 @@
+# **Installation of NNI**
+
+Currently we only support installation on Linux & Mac.
+
+## **Installation**
+
+* **Dependencies**
+
+ python >= 3.5 git wget
+
+ python pip should also be correctly installed. You could use "python3 -m pip -v" to check pip version.
+
+* **Install NNI through pip**
+
+ python3 -m pip install --user --upgrade nni
+
+* **Install NNI through source code**
+
+ git clone -b v0.4.1 https://github.com/Microsoft/nni.git cd nni source install.sh
+
+* **Install NNI in docker image**
+
+ You can also install NNI in a docker image. Please follow the instructions [here](../deployment/docker/README.md) to build NNI docker image. The NNI docker image can also be retrieved from Docker Hub through the command `docker pull msranni/nni:latest`.
+
+## **System requirements**
+
+Below are the minimum system requirements for NNI on Linux. Due to potential programming changes, the minimum system requirements for NNI may change over time.
+
+| | Minimum Requirements | Recommended Specifications |
+| -------------------- | -------------------------------------- | ---------------------------------------------- |
+| **Operating System** | Ubuntu 16.04 or above | Ubuntu 16.04 or above |
+| **CPU** | Intel® Core™ i3 or AMD Phenom™ X3 8650 | Intel® Core™ i5 or AMD Phenom™ II X3 or better |
+| **GPU** | NVIDIA® GeForce® GTX 460 | NVIDIA® GeForce® GTX 660 or better |
+| **Memory** | 4 GB RAM | 6 GB RAM |
+| **Storage** | 30 GB available hare drive space | |
+| **Internet** | Boardband internet connection | |
+| **Resolution** | 1024 x 768 minimum display resolution | |
+
+Below are the minimum system requirements for NNI on macOS. Due to potential programming changes, the minimum system requirements for NNI may change over time.
+
+| | Minimum Requirements | Recommended Specifications |
+| -------------------- | --------------------------------------------------------- | ------------------------------ |
+| **Operating System** | macOS 10.14.1 (latest version) | macOS 10.14.1 (latest version) |
+| **CPU** | Intel® Core™ i5-760 or better | Intel® Core™ i7-4770 or better |
+| **GPU** | NVIDIA® GeForce® GT 750M or AMD Radeon™ R9 M290 or better | AMD Radeon™ R9 M395X or better |
+| **Memory** | 4 GB RAM | 8 GB RAM |
+| **Storage** | 70GB available space 7200 RPM HDD | 70GB available space SSD |
+| **Internet** | Boardband internet connection | |
+| **Resolution** | 1024 x 768 minimum display resolution | |
+
+## Further reading
+
+* [Overview](Overview.md)
+* [Use command line tool nnictl](NNICTLDOC.md)
+* [Use NNIBoard](WebUI.md)
+* [Define search space](SearchSpaceSpec.md)
+* [Config an experiment](ExperimentConfig.md)
+* [How to run an experiment on local (with multiple GPUs)?](tutorial_1_CR_exp_local_api.md)
+* [How to run an experiment on multiple machines?](tutorial_2_RemoteMachineMode.md)
+* [How to run an experiment on OpenPAI?](PAIMode.md)
\ No newline at end of file
From 06f6dd73486e3adac956c6e3509342d6e7f534f5 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Sat, 29 Dec 2018 11:41:49 +0800
Subject: [PATCH 0049/1573] New translations NNICTLDOC.md (Chinese Simplified)
---
zh_CN/docs/NNICTLDOC.md | 379 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 379 insertions(+)
create mode 100644 zh_CN/docs/NNICTLDOC.md
diff --git a/zh_CN/docs/NNICTLDOC.md b/zh_CN/docs/NNICTLDOC.md
new file mode 100644
index 0000000000..1b7c188198
--- /dev/null
+++ b/zh_CN/docs/NNICTLDOC.md
@@ -0,0 +1,379 @@
+# nnictl
+
+## Introduction
+
+**nnictl** is a command line tool, which can be used to control experiments, such as start/stop/resume an experiment, start/stop NNIBoard, etc.
+
+## Commands
+
+nnictl support commands:
+
+ nnictl create
+ nnictl stop
+ nnictl update
+ nnictl resume
+ nnictl trial
+ nnictl experiment
+ nnictl config
+ nnictl log
+ nnictl webui
+ nnictl tensorboard
+ nnictl top
+
+
+### Manage an experiment
+
+* **nnictl create**
+
+ * Description
+
+ You can use this command to create a new experiment, using the configuration specified in config file. After this command is successfully done, the context will be set as this experiment, which means the following command you issued is associated with this experiment, unless you explicitly changes the context(not supported yet).
+
+ * Usage
+
+ nnictl create [OPTIONS]
+
+ Options:
+
+ | Name, shorthand | Required | Default | Description |
+ | --------------- | -------- | ------- | ------------------------------------- |
+ | --config, -c | True | | yaml configure file of the experiment |
+ | --port, -p | False | | the port of restful server |
+
+* **nnictl resume**
+
+ * Description
+
+ You can use this command to resume a stopped experiment.
+
+ * Usage
+
+ nnictl resume [OPTIONS]
+ Options:
+
+ | Name, shorthand | Required | Default | Description |
+ | --------------- | -------- | ------- | ---------------------------------------------- |
+ | id | False | | The id of the experiment you want to resume |
+ | --port, -p | False | | Rest port of the experiment you want to resume |
+
+* **nnictl stop**
+
+ * Description
+
+ You can use this command to stop a running experiment or multiple experiments.
+
+ * Usage
+
+ nnictl stop [id]
+
+ * Detail
+
+ 1.If there is an id specified, and the id matches the running experiment, nnictl will stop the corresponding experiment, or will print error message. 2.If there is no id specified, and there is an experiment running, stop the running experiment, or print error message. 3.If the id ends with *, nnictl will stop all experiments whose ids matchs the regular. 4.If the id does not exist but match the prefix of an experiment id, nnictl will stop the matched experiment. 5.If the id does not exist but match multiple prefix of the experiment ids, nnictl will give id information. 6.Users could use 'nnictl stop all' to stop all experiments
+
+* **nnictl update**
+
+ * **nnictl update searchspace**
+
+ * Description
+
+ You can use this command to update an experiment's search space.
+
+ * Usage
+
+ nnictl update searchspace [OPTIONS]
+
+ Options:
+
+
+ | Name, shorthand | Required | Default | Description |
+ | --------------- | -------- | ------- | -------------------------------------- |
+ | id | False | | ID of the experiment you want to set |
+ | --filename, -f | True | | the file storing your new search space |
+
+ * **nnictl update concurrency**
+ * Description
+
+ You can use this command to update an experiment's concurrency.
+
+ * Usage
+
+ nnictl update concurrency [OPTIONS]
+
+ Options:
+
+ | Name, shorthand | Required | Default | Description |
+ | --------------- | -------- | ------- | --------------------------------------- |
+ | id | False | | ID of the experiment you want to set |
+ | --value, -v | True | | the number of allowed concurrent trials |
+
+ * **nnictl update duration**
+
+ * Description
+
+ You can use this command to update an experiment's concurrency.
+
+
+ * Usage
+
+ nnictl update duration [OPTIONS]
+
+ Options:
+
+ | Name, shorthand | Required | Default | Description |
+ | --------------- | -------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
+ | id | False | | ID of the experiment you want to set |
+ | --value, -v | True | | the experiment duration will be NUMBER seconds. SUFFIX may be 's' for seconds (the default), 'm' for minutes, 'h' for hours or 'd' for days. |
+
+ * **nnictl update trialnum**
+ * Description
+
+ You can use this command to update an experiment's maxtrialnum.
+
+ * Usage
+
+ nnictl update trialnum [OPTIONS]
+
+ Options:
+
+ | Name, shorthand | Required | Default | Description |
+ | --------------- | -------- | ------- | --------------------------------------------- |
+ | id | False | | ID of the experiment you want to set |
+ | --value, -v | True | | the new number of maxtrialnum you want to set |
+
+* **nnictl trial**
+
+ * **nnictl trial ls**
+
+ * Description
+
+ You can use this command to show trial's information.
+
+ * Usage
+
+ nnictl trial ls
+
+ Options:
+
+ | Name, shorthand | Required | Default | Description |
+ | --------------- | -------- | ------- | ------------------------------------ |
+ | id | False | | ID of the experiment you want to set |
+
+ * **nnictl trial kill**
+
+ * Description
+
+ You can use this command to kill a trial job.
+
+ * Usage
+
+ nnictl trial kill [OPTIONS]
+
+
+ Options:
+
+ | Name, shorthand | Required | Default | Description |
+ | --------------- | -------- | ------- | ------------------------------------ |
+ | id | False | | ID of the experiment you want to set |
+ | --trialid, -t | True | | ID of the trial you want to kill. |
+
+ * **nnictl top**
+
+ * Description
+
+ Monitor all of running experiments.
+
+ * Usage
+
+ nnictl top
+
+
+ Options:
+
+ | Name, shorthand | Required | Default | Description |
+ | --------------- | -------- | ------- | ------------------------------------------------------------------------------------------------------------ |
+ | id | False | | ID of the experiment you want to set |
+ | --time, -t | False | | The interval to update the experiment status, the unit of time is second, and the default value is 3 second. |
+
+### Manage experiment information
+
+* **nnictl experiment show**
+
+ * Description
+
+ Show the information of experiment.
+
+ * Usage
+
+ nnictl experiment show
+
+ Options:
+
+ | Name, shorthand | Required | Default | Description |
+ | --------------- | -------- | ------- | ------------------------------------ |
+ | id | False | | ID of the experiment you want to set |
+
+* **nnictl experiment status**
+
+ * Description
+
+ Show the status of experiment.
+
+ * Usage
+
+ nnictl experiment status
+
+ Options:
+
+ | Name, shorthand | Required | Default | Description |
+ | --------------- | -------- | ------- | ------------------------------------ |
+ | id | False | | ID of the experiment you want to set |
+
+* **nnictl experiment list**
+
+ * Description
+
+ Show the information of all the (running) experiments.
+
+ * Usage
+
+ nnictl experiment list
+
+ Options:
+
+ | Name, shorthand | Required | Default | Description |
+ | --------------- | -------- | ------- | ------------------------------------------------------- |
+ | all | False | False | Show all of experiments, including stopped experiments. |
+
+* **nnictl config show**
+
+ * Description
+
+ Display the current context information.
+
+
+ * Usage
+
+ nnictl config show
+
+
+### Manage log
+
+* **nnictl log stdout**
+
+ * Description
+
+ Show the stdout log content.
+
+ * Usage
+
+ nnictl log stdout [options]
+
+
+ Options:
+
+ | Name, shorthand | Required | Default | Description |
+ | --------------- | -------- | ------- | ------------------------------------ |
+ | id | False | | ID of the experiment you want to set |
+ | --head, -h | False | | show head lines of stdout |
+ | --tail, -t | False | | show tail lines of stdout |
+ | --path, -p | False | | show the path of stdout file |
+
+* **nnictl log stderr**
+
+ * Description
+
+ Show the stderr log content.
+
+ * Usage
+
+ nnictl log stderr [options]
+
+ Options:
+
+ | Name, shorthand | Required | Default | Description |
+ | --------------- | -------- | ------- | ------------------------------------ |
+ | id | False | | ID of the experiment you want to set |
+ | --head, -h | False | | show head lines of stderr |
+ | --tail, -t | False | | show tail lines of stderr |
+ | --path, -p | False | | show the path of stderr file |
+
+* **nnictl log trial**
+
+ * Description
+
+ Show trial log path.
+
+ * Usage
+
+ nnictl log trial [options]
+
+ Options:
+
+ | Name, shorthand | Required | Default | Description |
+ | --------------- | -------- | ------- | --------------- |
+ | id | False | | the id of trial |
+
+### Manage webui
+
+* **nnictl webui url**
+
+ * Description
+
+ Show the urls of the experiment.
+
+ * Usage
+
+ nnictl webui url
+
+
+ Options:
+
+ | Name, shorthand | Required | Default | Description |
+ | --------------- | -------- | ------- | ------------------------------------ |
+ | id | False | | ID of the experiment you want to set |
+
+### Manage tensorboard
+
+* **nnictl tensorboard start**
+
+ * Description
+
+ Start the tensorboard process.
+
+ * Usage
+
+ nnictl tensorboard start
+
+
+ Options:
+
+ | Name, shorthand | Required | Default | Description |
+ | --------------- | -------- | ------- | ------------------------------------ |
+ | id | False | | ID of the experiment you want to set |
+ | --trialid | False | | ID of the trial |
+ | --port | False | 6006 | The port of the tensorboard process |
+
+ * Detail
+
+ 1. NNICTL support tensorboard function in local and remote platform for the moment, other platforms will be supported later.
+ 2. If you want to use tensorboard, you need to write your tensorboard log data to environment variable [NNI_OUTPUT_DIR] path.
+ 3. In local mode, nnictl will set --logdir=[NNI_OUTPUT_DIR] directly and start a tensorboard process.
+ 4. In remote mode, nnictl will create a ssh client to copy log data from remote machine to local temp directory firstly, and then start a tensorboard process in your local machine. You need to notice that nnictl only copy the log data one time when you use the command, if you want to see the later result of tensorboard, you should execute nnictl tensorboard command again.
+ 5. If there is only one trial job, you don't need to set trialid. If there are multiple trial jobs running, you should set the trialid, or you could use [nnictl tensorboard start --trialid all] to map --logdir to all trial log paths.
+
+* **nnictl tensorboard stop**
+
+ * Description
+
+ Stop all of the tensorboard process.
+
+ * Usage
+
+ nnictl tensorboard stop
+
+
+ Options:
+
+ | Name, shorthand | Required | Default | Description |
+ | --------------- | -------- | ------- | ------------------------------------ |
+ | id | False | | ID of the experiment you want to set |
\ No newline at end of file
From 119def2a1b57b3733b3916d926438df36f9254ea Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Sat, 29 Dec 2018 11:41:50 +0800
Subject: [PATCH 0050/1573] New translations FAQ.md (Chinese Simplified)
---
zh_CN/docs/FAQ.md | 38 ++++++++++++++++++++++++++++++++++++++
1 file changed, 38 insertions(+)
create mode 100644 zh_CN/docs/FAQ.md
diff --git a/zh_CN/docs/FAQ.md b/zh_CN/docs/FAQ.md
new file mode 100644
index 0000000000..42d1b1e563
--- /dev/null
+++ b/zh_CN/docs/FAQ.md
@@ -0,0 +1,38 @@
+This page is for frequent asked questions and answers.
+
+### tmp folder fulled
+
+nnictl will use tmp folder as a temporary folder to copy files under codeDir when executing experimentation creation. When met errors like below, try to clean up **tmp** folder first.
+
+> OSError: [Errno 28] No space left on device
+
+### Cannot get trials' metrics in OpenPAI mode
+
+In OpenPAI training mode, we start a rest server which listens on 51189 port in nniManager to receive metrcis reported from trials running in OpenPAI cluster. If you didn't see any metrics from WebUI in OpenPAI mode, check your machine where nniManager runs on to make sure 51189 port is turned on in the firewall rule.
+
+### Segmentation Fault (core dumped) when installing from source code
+
+> make: *** [install-XXX] Segmentation fault (core dumped) There are two options:
+
+* Update or reinstall you current python's pip like `python3 -m pip install -U pip`
+* Install nni with --no-cache-dir flag like `python3 -m pip install nni --no-cache-dir`
+
+### Job management error: getIPV4Address() failed because os.networkInterfaces().eth0 is undefined.
+
+Your machine don't have eth0 device, please set nniManagerIp in your config file manually. [refer](https://github.com/Microsoft/nni/blob/master/docs/ExperimentConfig.md)
+
+### Exceed the MaxDuration but didn't stop
+
+When the duration of experiment reaches the maximum duration, nniManager will not create new trials, but the existing trials will continue unless user manually stop the experiment.
+
+### Could not stop an experiment using `nnictl stop`
+
+If you upgrade your nni or you delete some config files of nni when there is an experiment running, this kind of issue may happen because the loss of config file. You could use `ps -ef | grep node` to find the pid of your experiment, and use `kill -9 {pid}` to kill it manually.
+
+### Could not get `default metric` in webUI of virtual machines
+
+Config the network mode to bridge mode or other mode that could make virtual machine's host accessible from external machine, and make sure the port of virtual machine is not forbidden by firewall.
+
+### Help us improve
+
+Please inquiry the problem in https://github.com/Microsoft/nni/issues to see whether there are other people already reported the problem, create a new one if there are no existing issues been created.
\ No newline at end of file
From b6166388f1bc1ed94d77cbe8717360b1658b4dc4 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Sat, 29 Dec 2018 11:41:51 +0800
Subject: [PATCH 0051/1573] New translations README.md (Chinese Simplified)
---
.../trials/network_morphism/README.md | 108 ++++++++++++++++++
1 file changed, 108 insertions(+)
create mode 100644 zh_CN/examples/trials/network_morphism/README.md
diff --git a/zh_CN/examples/trials/network_morphism/README.md b/zh_CN/examples/trials/network_morphism/README.md
new file mode 100644
index 0000000000..9e56b183b4
--- /dev/null
+++ b/zh_CN/examples/trials/network_morphism/README.md
@@ -0,0 +1,108 @@
+# Network Morphism for Automatic Model Architecture Search in NNI
+
+The Network Morphism is a build-in Tuner using network morphism techniques to search and evaluate the new network architecture. This example shows us how to use it to find good model architectures for deep learning.
+
+## How to run this example?
+
+### 1. Training framework support
+
+The network morphism now is framework-based, and we have not implemented the framework-free methods. The training frameworks which we have supported yet are Pytorch and Keras. If you get familiar with the intermediate JSON format, you can build your own model in your own training framework. In the future, we will change to intermediate format from JSON to ONNX in order to get a [standard intermediate representation spec](https://github.com/onnx/onnx/blob/master/docs/IR.md).
+
+### 2. Install the requirements
+
+```bash
+# install the requirements packages
+cd examples/trials/network_morphism/
+pip install -r requirements.txt
+```
+
+### 3. Update configuration
+
+Modify `examples/trials/network_morphism/cifar10/config.yaml` to fit your own task, note that searchSpacePath is not required in our configuration. Here is the default configuration:
+
+```yaml
+authorName: default
+experimentName: example_cifar10-network-morphism
+trialConcurrency: 1
+maxExecDuration: 48h
+maxTrialNum: 200
+#choice: local, remote, pai
+trainingServicePlatform: local
+#choice: true, false
+useAnnotation: false
+tuner:
+ #choice: TPE, Random, Anneal, Evolution, BatchTuner, NetworkMorphism
+ #SMAC (SMAC should be installed through nnictl)
+ builtinTunerName: NetworkMorphism
+ classArgs:
+ #choice: maximize, minimize
+ optimize_mode: maximize
+ #for now, this tuner only supports cv domain
+ task: cv
+ #modify to fit your input image width
+ input_width: 32
+ #modify to fit your input image channel
+ input_channel: 3
+ #modify to fit your number of classes
+ n_output_node: 10
+trial:
+ # your own command here
+ command: python3 cifar10_keras.py
+ codeDir: .
+ gpuNum: 0
+```
+
+In the "trial" part, if you want to use GPU to perform the architecture search, change `gpuNum` from `0` to `1`. You need to increase the `maxTrialNum` and `maxExecDuration`, according to how long you want to wait for the search result.
+
+`trialConcurrency` is the number of trials running concurrently, which is the number of GPUs you want to use, if you are setting `gpuNum` to 1.
+
+### 4. Call "json\_to\_graph()" function in your own code
+
+Modify your code and call "json\_to\_graph()" function to build a pytorch model or keras model from received json string. Here is the simple example.
+
+```python
+import nni
+from nni.networkmorphism_tuner.graph import json_to_graph
+
+def build_graph_from_json(ir_model_json):
+ """build a pytorch model from json representation
+ """
+ graph = json_to_graph(ir_model_json)
+ model = graph.produce_torch_model()
+ return model
+
+# trial get next parameter from network morphism tuner
+RCV_CONFIG = nni.get_next_parameter()
+# call the function to build pytorch model or keras model
+net = build_graph_from_json(RCV_CONFIG)
+
+# training procedure
+# ....
+
+# report the final accuracy to nni
+nni.report_final_result(best_acc)
+```
+
+### 5. Submit this job
+
+```bash
+# You can use nni command tool "nnictl" to create the a job which submit to the nni
+# finally you successfully commit a Network Morphism Job to nni
+nnictl create --config config.yaml
+```
+
+## Trial Examples
+
+The trial has some examples which can guide you which located in `examples/trials/network_morphism/`. You can refer to it and modify to your own task. Hope this will help you to build your code.
+
+### FashionMNIST
+
+`Fashion-MNIST` is a dataset of [Zalando](https://jobs.zalando.com/tech/)'s article images—consisting of a training set of 60,000 examples and a test set of 10,000 examples. Each example is a 28x28 grayscale image, associated with a label from 10 classes. It is a modern image classification dataset widely used to replacing MNIST as a baseline dataset, because the dataset MNIST is too easy and overused.
+
+There are two examples, [FashionMNIST-keras.py](./FashionMNIST/FashionMNIST_keras.py) and [FashionMNIST-pytorch.py](./FashionMNIST/FashionMNIST_pytorch.py). Attention, you should change the `input_width` to 28 and `input_channel` to 1 in `config.yaml` for this dataset.
+
+### Cifar10
+
+The `CIFAR-10` dataset [Canadian Institute For Advanced Research](https://www.cifar.ca/) is a collection of images that are commonly used to train machine learning and computer vision algorithms. It is one of the most widely used datasets for machine learning research. The CIFAR-10 dataset contains 60,000 32x32 color images in 10 different classes.
+
+There are two examples, [cifar10-keras.py](./cifar10/cifar10_keras.py) and [cifar10-pytorch.py](./cifar10/cifar10_pytorch.py). The value `input_width` is 32 and the value `input_channel` is 3 in `config.yaml` for this dataset.
\ No newline at end of file
From b493d40d5d04397306bb2b6138c45f4518c87622 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Sat, 29 Dec 2018 11:41:52 +0800
Subject: [PATCH 0052/1573] New translations README.md (Chinese Simplified)
---
.../sdk/pynni/nni/hyperband_advisor/README.md | 54 +++++++++++++++++++
1 file changed, 54 insertions(+)
create mode 100644 zh_CN/src/sdk/pynni/nni/hyperband_advisor/README.md
diff --git a/zh_CN/src/sdk/pynni/nni/hyperband_advisor/README.md b/zh_CN/src/sdk/pynni/nni/hyperband_advisor/README.md
new file mode 100644
index 0000000000..0506053cb6
--- /dev/null
+++ b/zh_CN/src/sdk/pynni/nni/hyperband_advisor/README.md
@@ -0,0 +1,54 @@
+# Hyperband on nni
+
+## 1. Introduction
+
+[Hyperband](https://arxiv.org/pdf/1603.06560.pdf) is a popular automl algorithm. The basic idea of Hyperband is that it creates several brackets, each bracket has `n` randomly generated hyperparameter configurations, each configuration uses `r` resource (e.g., epoch number, batch number). After the `n` configurations is finished, it chooses top `n/eta` configurations and runs them using increased `r*eta` resource. At last, it chooses the best configuration it has found so far.
+
+## 2. Implementation with fully parallelism
+
+Frist, this is an example of how to write an automl algorithm based on MsgDispatcherBase, rather than Tuner and Assessor. Hyperband is implemented in this way because it integrates the functions of both Tuner and Assessor, thus, we call it advisor.
+
+Second, this implementation fully leverages Hyperband's internal parallelism. More specifically, the next bracket is not started strictly after the current bracket, instead, it starts when there is available resource.
+
+## 3. Usage
+
+To use Hyperband, you should add the following spec in your experiment's yaml config file:
+
+ advisor:
+ #choice: Hyperband
+ builtinAdvisorName: Hyperband
+ classArgs:
+ #R: the maximum STEPS
+ R: 100
+ #eta: proportion of discarded trials
+ eta: 3
+ #choice: maximize, minimize
+ optimize_mode: maximize
+
+
+Note that once you use advisor, it is not allowed to add tuner and assessor spec in the config file any more. If you use Hyperband, among the hyperparameters (i.e., key-value pairs) received by a trial, there is one more key called `STEPS` besides the hyperparameters defined by user. By using this `STEPS`, the trial can control how long it runs.
+
+`R` and `eta` are the parameters of Hyperband that you can change. `R` means the maximum STEPS that can be allocated to a configuration. Here, STEPS could mean the number of epochs or mini-batches. This `STEPS` should be used by the trial to control how long it runs. Refer to the example under `examples/trials/mnist-hyperband/` for details.
+
+`eta` means `n/eta` configurations from `n` configurations will survive and rerun using more STEPS.
+
+Here is a concrete example of `R=81` and `eta=3`:
+
+| | s=4 | s=3 | s=2 | s=1 | s=0 |
+| - | ---- | ---- | ---- | ---- | ---- |
+| i | n r | n r | n r | n r | n r |
+| 0 | 81 1 | 27 3 | 9 9 | 6 27 | 5 81 |
+| 1 | 27 3 | 9 9 | 3 27 | 2 81 | |
+| 2 | 9 9 | 3 27 | 1 81 | | |
+| 3 | 3 27 | 1 81 | | | |
+| 4 | 1 81 | | | | |
+
+`s` means bracket, `n` means the number of configurations that are generated, the corresponding `r` means how many STEPS these configurations run. `i` means round, for example, bracket 4 has 5 rounds, bracket 3 has 4 rounds.
+
+About how to write trial code, please refer to the instructions under `examples/trials/mnist-hyperband/`.
+
+## 4. To be improved
+
+The current implementation of Hyperband can be further improved by supporting simple early stop algorithm, because it is possible that not all the configurations in the top `n/eta` perform good. The unpromising configurations can be stopped early.
+
+In the current implementation, configurations are generated randomly, which follows the design in the [paper](https://arxiv.org/pdf/1603.06560.pdf). To further improve, configurations could be generated more wisely by leveraging advanced algorithms.
\ No newline at end of file
From a3eb6c52d59addce35e5141590c405b97ed4d80b Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Sat, 29 Dec 2018 11:41:54 +0800
Subject: [PATCH 0053/1573] New translations README.md (Chinese Simplified)
---
.../pynni/nni/networkmorphism_tuner/README.md | 199 ++++++++++++++++++
1 file changed, 199 insertions(+)
create mode 100644 zh_CN/src/sdk/pynni/nni/networkmorphism_tuner/README.md
diff --git a/zh_CN/src/sdk/pynni/nni/networkmorphism_tuner/README.md b/zh_CN/src/sdk/pynni/nni/networkmorphism_tuner/README.md
new file mode 100644
index 0000000000..a839a59736
--- /dev/null
+++ b/zh_CN/src/sdk/pynni/nni/networkmorphism_tuner/README.md
@@ -0,0 +1,199 @@
+# Network Morphism Tuner on NNI
+
+## 1. Intorduction
+
+[Autokeras](https://arxiv.org/abs/1806.10282) is a popular automl tools using Network Morphism. The basic idea of Autokeras is to use Bayesian Regression to estimate the metric of the Neural Network Architecture. Each time, it generates several child networks from father networks. Then it uses a naïve Bayesian regression estimate its metric value from history trained results of network and metric value pair. Next, it chooses the the child which has best estimated performance and adds it to the training queue. Inspired by its work and referring to its [code](https://github.com/jhfjhfj1/autokeras), we implement our Network Morphism method in our NNI platform.
+
+If you want to know about network morphism trial usage, please check [Readme.md](../../../../../examples/trials/network-morphism/README.md) of the trial to get more detail.
+
+## 2. Usage
+
+To use Network Morphism, you should modify the following spec in your `config.yml` file:
+
+```yaml
+tuner:
+ #choice: NetworkMorphism
+ builtinTunerName: NetworkMorphism
+ classArgs:
+ #choice: maximize, minimize
+ optimize_mode: maximize
+ #for now, this tuner only supports cv domain
+ task: cv
+ #modify to fit your input image width
+ input_width: 32
+ #modify to fit your input image channel
+ input_channel: 3
+ #modify to fit your number of classes
+ n_output_node: 10
+```
+
+In the training procedure, it generate a JSON file which represent a Network Graph. Users can call "json\_to\_graph()" function to build a pytorch model or keras model from this JSON file.
+
+```python
+import nni
+from nni.networkmorphism_tuner.graph import json_to_graph
+
+def build_graph_from_json(ir_model_json):
+ """build a pytorch model from json representation
+ """
+ graph = json_to_graph(ir_model_json)
+ model = graph.produce_torch_model()
+ return model
+
+# trial get next parameter from network morphism tuner
+RCV_CONFIG = nni.get_next_parameter()
+# call the function to build pytorch model or keras model
+net = build_graph_from_json(RCV_CONFIG)
+
+# training procedure
+# ....
+
+# report the final accuracy to nni
+nni.report_final_result(best_acc)
+```
+
+## 3. File Structure
+
+The tuner has a lot of different files, functions and classes. Here we will only give most of those files a brief introduction:
+
+- `networkmorphism_tuner.py` is a tuner which using network morphism techniques.
+
+- `bayesian.py` is Bayesian method to estimate the metric of unseen model based on the models we have already searched.
+
+- `graph.py` is the meta graph data structure. Class Graph is representing the neural architecture graph of a model.
+ - Graph extracts the neural architecture graph from a model.
+ - Each node in the graph is a intermediate tensor between layers.
+ - Each layer is an edge in the graph.
+ - Notably, multiple edges may refer to the same layer.
+
+- `graph_transformer.py` includes some graph transformer to wider, deeper or add a skip-connection into the graph.
+
+- `layers.py` includes all the layers we use in our model.
+
+- `layer_transformer.py` includes some layer transformer to wider, deeper or add a skip-connection into the layer.
+- `nn.py` includes the class to generate network class initially.
+- `metric.py` some metric classes including Accuracy and MSE.
+- `utils.py` is the example search network architectures in dataset `cifar10` by using Keras.
+
+## 4. The Network Representation Json Example
+
+Here is an example of the intermediate representation JSON file we defined, which is passed from the tuner to the trial in the architecture search procedure. The example is as follows.
+
+```json
+{
+ "input_shape": [32, 32, 3],
+ "weighted": false,
+ "operation_history": [],
+ "layer_id_to_input_node_ids": {"0": [0],"1": [1],"2": [2],"3": [3],"4": [4],"5": [5],"6": [6],"7": [7],"8": [8],"9": [9],"10": [10],"11": [11],"12": [12],"13": [13],"14": [14],"15": [15],"16": [16]
+ },
+ "layer_id_to_output_node_ids": {"0": [1],"1": [2],"2": [3],"3": [4],"4": [5],"5": [6],"6": [7],"7": [8],"8": [9],"9": [10],"10": [11],"11": [12],"12": [13],"13": [14],"14": [15],"15": [16],"16": [17]
+ },
+ "adj_list": {
+ "0": [[1, 0]],
+ "1": [[2, 1]],
+ "2": [[3, 2]],
+ "3": [[4, 3]],
+ "4": [[5, 4]],
+ "5": [[6, 5]],
+ "6": [[7, 6]],
+ "7": [[8, 7]],
+ "8": [[9, 8]],
+ "9": [[10, 9]],
+ "10": [[11, 10]],
+ "11": [[12, 11]],
+ "12": [[13, 12]],
+ "13": [[14, 13]],
+ "14": [[15, 14]],
+ "15": [[16, 15]],
+ "16": [[17, 16]],
+ "17": []
+ },
+ "reverse_adj_list": {
+ "0": [],
+ "1": [[0, 0]],
+ "2": [[1, 1]],
+ "3": [[2, 2]],
+ "4": [[3, 3]],
+ "5": [[4, 4]],
+ "6": [[5, 5]],
+ "7": [[6, 6]],
+ "8": [[7, 7]],
+ "9": [[8, 8]],
+ "10": [[9, 9]],
+ "11": [[10, 10]],
+ "12": [[11, 11]],
+ "13": [[12, 12]],
+ "14": [[13, 13]],
+ "15": [[14, 14]],
+ "16": [[15, 15]],
+ "17": [[16, 16]]
+ },
+ "node_list": [
+ [0, [32, 32, 3]],
+ [1, [32, 32, 3]],
+ [2, [32, 32, 64]],
+ [3, [32, 32, 64]],
+ [4, [16, 16, 64]],
+ [5, [16, 16, 64]],
+ [6, [16, 16, 64]],
+ [7, [16, 16, 64]],
+ [8, [8, 8, 64]],
+ [9, [8, 8, 64]],
+ [10, [8, 8, 64]],
+ [11, [8, 8, 64]],
+ [12, [4, 4, 64]],
+ [13, [64]],
+ [14, [64]],
+ [15, [64]],
+ [16, [64]],
+ [17, [10]]
+ ],
+ "layer_list": [
+ [0, ["StubReLU", 0, 1]],
+ [1, ["StubConv2d", 1, 2, 3, 64, 3]],
+ [2, ["StubBatchNormalization2d", 2, 3, 64]],
+ [3, ["StubPooling2d", 3, 4, 2, 2, 0]],
+ [4, ["StubReLU", 4, 5]],
+ [5, ["StubConv2d", 5, 6, 64, 64, 3]],
+ [6, ["StubBatchNormalization2d", 6, 7, 64]],
+ [7, ["StubPooling2d", 7, 8, 2, 2, 0]],
+ [8, ["StubReLU", 8, 9]],
+ [9, ["StubConv2d", 9, 10, 64, 64, 3]],
+ [10, ["StubBatchNormalization2d", 10, 11, 64]],
+ [11, ["StubPooling2d", 11, 12, 2, 2, 0]],
+ [12, ["StubGlobalPooling2d", 12, 13]],
+ [13, ["StubDropout2d", 13, 14, 0.25]],
+ [14, ["StubDense", 14, 15, 64, 64]],
+ [15, ["StubReLU", 15, 16]],
+ [16, ["StubDense", 16, 17, 64, 10]]
+ ]
+ }
+```
+
+The definition of each model is a JSON object(also you can consider the model as a DAG graph), where:
+
+- `input_shape` is a list of integers, which does not include the batch axis.
+- `weighted` means whether the weights and biases in the neural network should be included in the graph.
+- `operation_history` is the number of inputs the layer has.
+- `layer_id_to_input_node_ids` is a dictionary instance mapping from layer identifiers to their input nodes identifiers.
+- `layer_id_to_output_node_ids` is a dictionary instance mapping from layer identifiers to their output nodes identifiers
+- `adj_list` is a two dimensional list. The adjacency list of the graph. The first dimension is identified by tensor identifiers. In each edge list, the elements are two-element tuples of (tensor identifier, layer identifier).
+- `reverse_adj_list` is a A reverse adjacent list in the same format as adj_list.
+- `node_list` is a list of integers. The indices of the list are the identifiers.
+- `layer_list` is a list of stub layers. The indices of the list are the identifiers.
+
+ - For `StubConv (StubConv1d, StubConv2d, StubConv3d)`, the number follows is its node input id(or id list), node output id, input_channel, filters, kernel_size, stride and padding.
+
+ - For `StubDense`, the number follows is its node input id(or id list), node output id, input_units and units.
+
+ - For `StubBatchNormalization (StubBatchNormalization1d, StubBatchNormalization2d, StubBatchNormalization3d)`, the number follows is its node input id(or id list), node output id and features numbers.
+
+ - For `StubDropout(StubDropout1d, StubDropout2d, StubDropout3d)`, the number follows is its node input id(or id list), node output id and dropout rate.
+
+ - For `StubPooling (StubPooling1d, StubPooling2d, StubPooling3d)`, the number follows is its node input id(or id list), node output id, kernel_size, stride and padding.
+
+ - For else layers, the number follows is its node input id(or id list) and node output id.
+
+## 5. TODO
+
+Next step, we will change the API from fixed network generator to more network operator generator. Besides, we will use ONNX instead of JSON later as the intermediate representation spec in the future.
\ No newline at end of file
From 44c339cbb8aecc93171e8de6f8494c93e73815d1 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Sat, 29 Dec 2018 11:41:55 +0800
Subject: [PATCH 0054/1573] New translations README.md (Chinese Simplified)
---
.../pynni/nni/curvefitting_assessor/README.md | 76 +++++++++++++++++++
1 file changed, 76 insertions(+)
create mode 100644 zh_CN/src/sdk/pynni/nni/curvefitting_assessor/README.md
diff --git a/zh_CN/src/sdk/pynni/nni/curvefitting_assessor/README.md b/zh_CN/src/sdk/pynni/nni/curvefitting_assessor/README.md
new file mode 100644
index 0000000000..19ca01e72b
--- /dev/null
+++ b/zh_CN/src/sdk/pynni/nni/curvefitting_assessor/README.md
@@ -0,0 +1,76 @@
+# Curve Fitting Assessor on NNI
+
+## 1. Introduction
+
+Curve Fitting Assessor is a LPA(learning, predicting, assessing) algorithm. It stops a pending trial X at step S if the prediction of final epoch's performance is worse than the best final performance in the trial history.
+
+In this algorithm, we use 12 curves to fit the learning curve, the large set of parametric curve models are chosen from [reference paper](http://aad.informatik.uni-freiburg.de/papers/15-IJCAI-Extrapolation_of_Learning_Curves.pdf). The learning curves' shape coincides with our prior knowlwdge about the form of learning curves: They are typically increasing, saturating functions.
+
+
+
+
+
+We combine all learning curve models into a single, more powerful model. This combined model is given by a weighted linear combination:
+
+
+
+
+
+where the new combined parameter vector
+
+
+
+
+
+Assuming additive a Gaussian noise and the noise parameter is initialized to its maximum likelihood estimate.
+
+We determine the maximum probability value of the new combined parameter vector by learing the historical data. Use such value to predict the future trial performance, and stop the inadequate experiments to save computing resource.
+
+Concretely,this algorithm goes through three stages of learning, predicting and assessing.
+
+* Step1: Learning. We will learning about the trial history of the current trial and determine the \xi at Bayesian angle. First of all, We fit each curve using the least squares method(implement by `fit_theta`) to save our time. After we obtained the parameters, we filter the curve and remove the outliers(implement by `filter_curve`). Fially, we use the MCMC sampling method(implement by `mcmc_sampling`) to adjust the weight of each curve. Up to now, we have dertermined all the parameters in \xi.
+* Step2: Predicting. Calculates the expected final result accuracy(implement by `f_comb`) at target position(ie the total number of epoch) by the \xi and the formula of the combined model.
+* Step3: If the fitting result doesn't converge, the predicted value will be `None`, in this case we return `AssessResult.Good` to ask for future accuracy information and predict again. Furthermore, we will get a positive value by `predict()` function, if this value is strictly greater than the best final performance in history * `THRESHOLD`(default value = 0.95), return `AssessResult.Good`, otherwise, return `AssessResult.Bad`
+
+The figure below is the result of our algorithm on MNIST trial history data, where the green point represents the data obtained by Assessor, the blue point represents the future but unknown data, and the red line is the Curve predicted by the Curve fitting assessor.
+
+
+
+
+
+## 2. Usage
+
+To use Curve Fitting Assessor, you should add the following spec in your experiment's yaml config file:
+
+ assessor:
+ builtinAssessorName: Curvefitting
+ classArgs:
+ # (required)The total number of epoch.
+ # We need to know the number of epoch to determine which point we need to predict.
+ epoch_num: 20
+ # (optional) choice: maximize, minimize
+ * The default value of optimize_mode is maximize
+ optimize_mode: maximize
+ # Kindly reminds that if you choose minimize mode, please adjust the value of threshold >= 1.0 (e.g threshold=1.1)
+ # (optional) A trial is determined to be stopped or not
+ # In order to save our computing resource, we start to predict when we have more than start_step(default=6) accuracy points.
+ # only after receiving start_step number of reported intermediate results.
+ * The default value of start_step is 6.
+ start_step: 6
+ # (optional) The threshold that we decide to early stop the worse performance curve.
+ # For example: if threshold = 0.95, optimize_mode = maximize, best performance in the history is 0.9, then we will stop the trial which predict value is lower than 0.95 * 0.9 = 0.855.
+ * The default value of threshold is 0.95.
+ threshold: 0.95
+
+
+## 3. File Structure
+
+The assessor has a lot of different files, functions and classes. Here we will only give most of those files a brief introduction:
+
+* `curvefunctions.py` includes all the function expression and default parameters.
+* `modelfactory.py` includes learning and predicting, the corresponding calculation part is also implemented here.
+* `curvefitting_assessor.py` is a assessor which receives the trial history and assess whether to early stop the trial.
+
+## 4. TODO
+
+* Further improve the accuracy of the prediction and test it on more models.
\ No newline at end of file
From 5de340a742f427f538d62820e7fae990310a3e0f Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Sat, 29 Dec 2018 11:42:00 +0800
Subject: [PATCH 0055/1573] New translations
tutorial_3_tryTunersAndAssessors.md (Chinese Simplified)
---
.../docs/tutorial_3_tryTunersAndAssessors.md | 45 +++++++++++++++++++
1 file changed, 45 insertions(+)
create mode 100644 zh_CN/docs/tutorial_3_tryTunersAndAssessors.md
diff --git a/zh_CN/docs/tutorial_3_tryTunersAndAssessors.md b/zh_CN/docs/tutorial_3_tryTunersAndAssessors.md
new file mode 100644
index 0000000000..c09e319c5d
--- /dev/null
+++ b/zh_CN/docs/tutorial_3_tryTunersAndAssessors.md
@@ -0,0 +1,45 @@
+# Tutorial - Try different Tuners and Assessors
+
+NNI provides an easy to adopt approach to set up parameter tuning algorithms as well as early stop policies, we call them **Tuners** and **Assessors**.
+
+**Tuner** specifies the algorithm you use to generate hyperparameter sets for each trial. In NNI, we support two approaches to set the tuner.
+
+1. Directly use tuner provided by nni sdk
+
+ required fields: builtinTunerName and classArgs.
+
+
+2. Customize your own tuner file
+
+ required fields: codeDirectory, classFileName, className and classArgs.
+
+
+### **Learn More about tuners**
+
+* For detailed defintion and usage aobut the required field, please refer to [Config an experiment](ExperimentConfig.md)
+* [Tuners in the latest NNI release](HowToChooseTuner.md)
+* [How to implement your own tuner](howto_2_CustomizedTuner.md)
+
+**Assessor** specifies the algorithm you use to apply early stop policy. In NNI, there are two approaches to set theassessor.
+
+1. Directly use assessor provided by nni sdk
+
+ required fields: builtinAssessorName and classArgs.
+
+
+2. Customize your own assessor file
+
+ required fields: codeDirectory, classFileName, className and classArgs.
+
+
+### **Learn More about assessor**
+
+* For detailed defintion and usage aobut the required field, please refer to [Config an experiment](ExperimentConfig.md)
+* Find more about the detailed instruction about [enable assessor](EnableAssessor.md)
+* [How to implement your own assessor](../examples/assessors/README.md)
+
+## **Learn More**
+
+* [How to run an experiment on local (with multiple GPUs)?](tutorial_1_CR_exp_local_api.md)
+* [How to run an experiment on multiple machines?](tutorial_2_RemoteMachineMode.md)
+* [How to run an experiment on OpenPAI?](PAIMode.md)
\ No newline at end of file
From e1e9060fcde22750273087608ed2b2546dea368b Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Sat, 29 Dec 2018 11:42:04 +0800
Subject: [PATCH 0056/1573] New translations README.md (Chinese Simplified)
---
zh_CN/README.md | 139 ++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 139 insertions(+)
create mode 100644 zh_CN/README.md
diff --git a/zh_CN/README.md b/zh_CN/README.md
new file mode 100644
index 0000000000..7274d976d3
--- /dev/null
+++ b/zh_CN/README.md
@@ -0,0 +1,139 @@
+
+
+
+
+* * *
+
+[![MIT 许可证](https://img.shields.io/badge/license-MIT-yellow.svg)](https://github.com/Microsoft/nni/blob/master/LICENSE) [![生成状态](https://msrasrg.visualstudio.com/NNIOpenSource/_apis/build/status/Microsoft.nni)](https://msrasrg.visualstudio.com/NNIOpenSource/_build/latest?definitionId=6) [![问题](https://img.shields.io/github/issues-raw/Microsoft/nni.svg)](https://github.com/Microsoft/nni/issues?q=is%3Aissue+is%3Aopen) [![缺陷](https://img.shields.io/github/issues/Microsoft/nni/bug.svg)](https://github.com/Microsoft/nni/issues?q=is%3Aissue+is%3Aopen+label%3Abug) [![拉取请求](https://img.shields.io/github/issues-pr-raw/Microsoft/nni.svg)](https://github.com/Microsoft/nni/pulls?q=is%3Apr+is%3Aopen) [![版本](https://img.shields.io/github/release/Microsoft/nni.svg)](https://github.com/Microsoft/nni/releases) [![进入 https://gitter.im/Microsoft/nni 聊天室提问](https://badges.gitter.im/Microsoft/nni.svg)](https://gitter.im/Microsoft/nni?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
+
+NNI (Neural Network Intelligence) 是用来进行自动机器学习(AutoML)实验的工具包。 它通过多种调优的算法来搜索最好的神经网络结构和(或)超参,并支持单机、本地多机、云等不同的运行环境。
+
+
+
+
+
+## **Who should consider using NNI**
+
+* Those who want to try different AutoML algorithms in their training code (model) at their local machine.
+* Those who want to run AutoML trial jobs in different environments to speed up search (e.g. remote servers and cloud).
+* Researchers and data scientists who want to implement their own AutoML algorithms and compare it with other algorithms.
+* ML Platform owners who want to support AutoML in their platform.
+
+## **Install & Verify**
+
+**Install through pip**
+
+* We support Linux and MacOS in current stage, Ubuntu 16.04 or higher, along with MacOS 10.14.1 are tested and supported. Simply run the following `pip install` in an environment that has `python >= 3.5`.
+
+```bash
+ python3 -m pip install --user --upgrade nni
+```
+
+* Note:
+ * If you are in docker container (as root), please remove `--user` from the installation command.
+ * If there is any error like `Segmentation fault`, please refer to [FAQ](docs/FAQ.md)
+
+**Install through source code**
+
+* We support Linux (Ubuntu 16.04 or higher), MacOS (10.14.1) in our current stage.
+* Run the following commands in an environment that has `python >= 3.5`, `git` and `wget`.
+
+```bash
+ git clone -b v0.4.1 https://github.com/Microsoft/nni.git
+ cd nni
+ source install.sh
+```
+
+For the system requirements of NNI, please refer to [Install NNI](docs/Installation.md)
+
+**Verify install**
+
+The following example is an experiment built on TensorFlow. Make sure you have **TensorFlow installed** before running it.
+
+* Download the examples via clone the source code.
+
+```bash
+ git clone -b v0.4.1 https://github.com/Microsoft/nni.git
+```
+
+* Run the mnist example.
+
+```bash
+ nnictl create --config nni/examples/trials/mnist/config.yml
+```
+
+* Wait for the message `INFO: Successfully started experiment!` in the command line. This message indicates that your experiment has been successfully started. You can explore the experiment using the `Web UI url`.
+
+ INFO: Starting restful server...
+ INFO: Successfully started Restful server!
+ INFO: Setting local config...
+ INFO: Successfully set local config!
+ INFO: Starting experiment...
+ INFO: Successfully started experiment!
+ -----------------------------------------------------------------------
+ The experiment id is egchD4qy
+ The Web UI urls are: http://223.255.255.1:8080 http://127.0.0.1:8080
+ -----------------------------------------------------------------------
+
+ You can use these commands to get more information about the experiment
+ -----------------------------------------------------------------------
+ commands description
+
+ 1. nnictl experiment show show the information of experiments
+ 2. nnictl trial ls list all of trial jobs
+ 3. nnictl log stderr show stderr log content
+ 4. nnictl log stdout show stdout log content
+ 5. nnictl stop stop an experiment
+ 6. nnictl trial kill kill a trial job by id
+ 7. nnictl --help get help information about nnictl
+ -----------------------------------------------------------------------
+
+
+* Open the `Web UI url` in your browser, you can view detail information of the experiment and all the submitted trial jobs as shown below. [Here](docs/WebUI.md) are more Web UI pages.
+
+
+ |
+ |
+
+
+## **Documentation**
+
+* [NNI overview](docs/Overview.md)
+* [Quick start](docs/GetStarted.md)
+
+## **How to**
+
+* [Install NNI](docs/Installation.md)
+* [Use command line tool nnictl](docs/NNICTLDOC.md)
+* [Use NNIBoard](docs/WebUI.md)
+* [How to define search space](docs/SearchSpaceSpec.md)
+* [How to define a trial](docs/howto_1_WriteTrial.md)
+* [Config an experiment](docs/ExperimentConfig.md)
+* [How to use annotation](docs/howto_1_WriteTrial.md#nni-python-annotation)
+
+## **Tutorials**
+
+* [Run an experiment on local (with multiple GPUs)?](docs/tutorial_1_CR_exp_local_api.md)
+* [Run an experiment on multiple machines?](docs/tutorial_2_RemoteMachineMode.md)
+* [Run an experiment on OpenPAI?](docs/PAIMode.md)
+* [Run an experiment on Kubeflow?](docs/KubeflowMode.md)
+* [Try different tuners and assessors](docs/tutorial_3_tryTunersAndAssessors.md)
+* [Implement a customized tuner](docs/howto_2_CustomizedTuner.md)
+* [Implement a customized assessor](examples/assessors/README.md)
+* [Use Genetic Algorithm to find good model architectures for Reading Comprehension task](examples/trials/ga_squad/README.md)
+
+## **Contribute**
+
+This project welcomes contributions and suggestions, we use [GitHub issues](https://github.com/Microsoft/nni/issues) for tracking requests and bugs.
+
+Issues with the **good first issue** label are simple and easy-to-start ones that we recommend new contributors to start with.
+
+To set up environment for NNI development, refer to the instruction: [Set up NNI developer environment](docs/SetupNNIDeveloperEnvironment.md)
+
+Before start coding, review and get familiar with the NNI Code Contribution Guideline: [Contributing](docs/CONTRIBUTING.md)
+
+We are in construction of the instruction for [How to Debug](docs/HowToDebug.md), you are also welcome to contribute questions or suggestions on this area.
+
+## **License**
+
+The entire codebase is under [MIT license](https://github.com/Microsoft/nni/blob/master/LICENSE)
\ No newline at end of file
From ff896913c925a09444c01630c09d43e01e27b999 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Sat, 29 Dec 2018 12:01:39 +0800
Subject: [PATCH 0057/1573] New translations README.md (Chinese Simplified)
---
zh_CN/README.md | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/zh_CN/README.md b/zh_CN/README.md
index 7274d976d3..fa247648f5 100644
--- a/zh_CN/README.md
+++ b/zh_CN/README.md
@@ -12,10 +12,10 @@ NNI (Neural Network Intelligence) 是用来进行自动机器学习(AutoML)
-## **Who should consider using NNI**
+## **使用场景**
-* Those who want to try different AutoML algorithms in their training code (model) at their local machine.
-* Those who want to run AutoML trial jobs in different environments to speed up search (e.g. remote servers and cloud).
+* 在本地尝试不同的自动机器学习算法来训练模型。
+* 在分布式环境中加速自动机器学习(如:远程 GPU 工作站和云服务器)。
* Researchers and data scientists who want to implement their own AutoML algorithms and compare it with other algorithms.
* ML Platform owners who want to support AutoML in their platform.
From f42030c84693a63b54df6d56d1941807b5ad40e9 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Sat, 29 Dec 2018 12:22:38 +0800
Subject: [PATCH 0058/1573] New translations ExperimentConfig.md (Chinese
Simplified)
---
zh_CN/docs/ExperimentConfig.md | 58 +++++++++++++++++-----------------
1 file changed, 29 insertions(+), 29 deletions(-)
diff --git a/zh_CN/docs/ExperimentConfig.md b/zh_CN/docs/ExperimentConfig.md
index 6e8b90e143..aaaaedbff3 100644
--- a/zh_CN/docs/ExperimentConfig.md
+++ b/zh_CN/docs/ExperimentConfig.md
@@ -1,33 +1,33 @@
-# Experiment config reference
+# 实验(Experiment)配置参考
-A config file is needed when create an experiment, the path of the config file is provide to nnictl. The config file is written in yaml format, and need to be written correctly. This document describes the rule to write config file, and will provide some examples and templates.
+创建实验时,需要给 nnictl 命令提供配置文件的路径。 配置文件是 yaml 格式,需要保证其格式正确。 本文介绍了配置文件的内容,并提供了一些示例和模板。
-## Template
+## 模板
-* **light weight(without Annotation and Assessor)**
+* **简化版(不包含标记 (annotation) 和评估器)**
authorName:
experimentName:
trialConcurrency:
maxExecDuration:
maxTrialNum:
- #choice: local, remote, pai, kubeflow
+ #可选项: local, remote, pai, kubeflow
trainingServicePlatform:
searchSpacePath:
- #choice: true, false
+ #可选项: true, false
useAnnotation:
tuner:
- #choice: TPE, Random, Anneal, Evolution
+ #可选项: TPE, Random, Anneal, Evolution
builtinTunerName:
classArgs:
- #choice: maximize, minimize
+ #可选项: maximize, minimize
optimize_mode:
gpuNum:
trial:
command:
codeDir:
gpuNum:
- #machineList can be empty if the platform is local
+ #在本地使用时,machineList 可为空
machineList:
- ip:
port:
@@ -35,37 +35,37 @@ A config file is needed when create an experiment, the path of the config file i
passwd:
-* **Use Assessor**
+* **使用评估器**
authorName:
experimentName:
trialConcurrency:
maxExecDuration:
maxTrialNum:
- #choice: local, remote, pai, kubeflow
+ #可选项: local, remote, pai, kubeflow
trainingServicePlatform:
searchSpacePath:
- #choice: true, false
+ #可选项: true, false
useAnnotation:
tuner:
- #choice: TPE, Random, Anneal, Evolution
+ #可选项: TPE, Random, Anneal, Evolution
builtinTunerName:
classArgs:
- #choice: maximize, minimize
+ #可选项: maximize, minimize
optimize_mode:
gpuNum:
assessor:
- #choice: Medianstop
+ #可选项: Medianstop
builtinAssessorName:
classArgs:
- #choice: maximize, minimize
+ #可选项: maximize, minimize
optimize_mode:
gpuNum:
trial:
command:
codeDir:
gpuNum:
- #machineList can be empty if the platform is local
+ #在本地使用时,machineList 可为空
machineList:
- ip:
port:
@@ -73,36 +73,36 @@ A config file is needed when create an experiment, the path of the config file i
passwd:
-* **Use Annotation**
+* **使用标记**
authorName:
experimentName:
trialConcurrency:
maxExecDuration:
maxTrialNum:
- #choice: local, remote, pai, kubeflow
+ #可选项: local, remote, pai, kubeflow
trainingServicePlatform:
- #choice: true, false
+ #可选项: true, false
useAnnotation:
tuner:
- #choice: TPE, Random, Anneal, Evolution
+ #可选项: TPE, Random, Anneal, Evolution
builtinTunerName:
classArgs:
- #choice: maximize, minimize
+ #可选项: maximize, minimize
optimize_mode:
gpuNum:
assessor:
- #choice: Medianstop
+ #可选项: Medianstop
builtinAssessorName:
classArgs:
- #choice: maximize, minimize
+ #可选项: maximize, minimize
optimize_mode:
gpuNum:
trial:
command:
codeDir:
gpuNum:
- #machineList can be empty if the platform is local
+ #在本地使用时,machineList 可为空
machineList:
- ip:
port:
@@ -110,17 +110,17 @@ A config file is needed when create an experiment, the path of the config file i
passwd:
-## Configuration
+## 配置
* **authorName**
- * Description
+ * 说明
- **authorName** is the name of the author who create the experiment. TBD: add default value
+ **authorName**是创建实验的作者。 待定: 增加默认值
* **experimentName**
- * Description
+ * 说明
**experimentName** is the name of the experiment created.
TBD: add default value
From b0a0dd376d88b5bb5a3e73cc6895a557090cd113 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Sat, 29 Dec 2018 12:31:31 +0800
Subject: [PATCH 0059/1573] New translations README.md (Chinese Simplified)
---
zh_CN/README.md | 44 ++++++++++++++++++++++----------------------
1 file changed, 22 insertions(+), 22 deletions(-)
diff --git a/zh_CN/README.md b/zh_CN/README.md
index fa247648f5..687c45ed68 100644
--- a/zh_CN/README.md
+++ b/zh_CN/README.md
@@ -96,33 +96,33 @@ The following example is an experiment built on TensorFlow. Make sure you have *
|
-## **Documentation**
+## **文档**
* [NNI overview](docs/Overview.md)
-* [Quick start](docs/GetStarted.md)
+* [快速入门](docs/GetStarted.md)
-## **How to**
+## **入门**
* [Install NNI](docs/Installation.md)
-* [Use command line tool nnictl](docs/NNICTLDOC.md)
-* [Use NNIBoard](docs/WebUI.md)
-* [How to define search space](docs/SearchSpaceSpec.md)
-* [How to define a trial](docs/howto_1_WriteTrial.md)
-* [Config an experiment](docs/ExperimentConfig.md)
-* [How to use annotation](docs/howto_1_WriteTrial.md#nni-python-annotation)
-
-## **Tutorials**
-
-* [Run an experiment on local (with multiple GPUs)?](docs/tutorial_1_CR_exp_local_api.md)
-* [Run an experiment on multiple machines?](docs/tutorial_2_RemoteMachineMode.md)
-* [Run an experiment on OpenPAI?](docs/PAIMode.md)
-* [Run an experiment on Kubeflow?](docs/KubeflowMode.md)
-* [Try different tuners and assessors](docs/tutorial_3_tryTunersAndAssessors.md)
-* [Implement a customized tuner](docs/howto_2_CustomizedTuner.md)
-* [Implement a customized assessor](examples/assessors/README.md)
-* [Use Genetic Algorithm to find good model architectures for Reading Comprehension task](examples/trials/ga_squad/README.md)
-
-## **Contribute**
+* [使用命令行工具 nnictl](docs/NNICTLDOC.md)
+* [使用 NNIBoard](docs/WebUI.md)
+* [如何定义搜索空间](docs/SearchSpaceSpec.md)
+* [如何定义一次尝试](docs/howto_1_WriteTrial.md)
+* [配置实验](docs/ExperimentConfig.md)
+* [如何使用标记](docs/howto_1_WriteTrial.md#nni-python-annotation)
+
+## **教程**
+
+* [在本机运行实验 (支持多 GPU 卡)](docs/tutorial_1_CR_exp_local_api.md)
+* [在多机上运行实验](docs/tutorial_2_RemoteMachineMode.md)
+* [在 OpenPAI 上运行实验](docs/PAIMode.md)
+* [在 Kubeflow 上运行实验。](docs/KubeflowMode.md)
+* [使用不同的调参器和评估器](docs/tutorial_3_tryTunersAndAssessors.md)
+* [实现自定义调参器](docs/howto_2_CustomizedTuner.md)
+* [实现自定义评估器](examples/assessors/README.md)
+* [使用遗传算法为阅读理解任务找到好模型](examples/trials/ga_squad/README.md)
+
+## **贡献**
This project welcomes contributions and suggestions, we use [GitHub issues](https://github.com/Microsoft/nni/issues) for tracking requests and bugs.
From 9bd74a01710bead632e174624ecd213260d4921a Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Sat, 29 Dec 2018 12:41:39 +0800
Subject: [PATCH 0060/1573] New translations README.md (Chinese Simplified)
---
zh_CN/README.md | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/zh_CN/README.md b/zh_CN/README.md
index 687c45ed68..bbbb420dde 100644
--- a/zh_CN/README.md
+++ b/zh_CN/README.md
@@ -16,12 +16,12 @@ NNI (Neural Network Intelligence) 是用来进行自动机器学习(AutoML)
* 在本地尝试不同的自动机器学习算法来训练模型。
* 在分布式环境中加速自动机器学习(如:远程 GPU 工作站和云服务器)。
-* Researchers and data scientists who want to implement their own AutoML algorithms and compare it with other algorithms.
-* ML Platform owners who want to support AutoML in their platform.
+* 定制自动机器学习算法,或比较不同的自动机器学习算法。
+* 在自己的机器学习平台中支持自动机器学习。
-## **Install & Verify**
+## **安装和验证**
-**Install through pip**
+**通过 pip 命令安装**
* We support Linux and MacOS in current stage, Ubuntu 16.04 or higher, along with MacOS 10.14.1 are tested and supported. Simply run the following `pip install` in an environment that has `python >= 3.5`.
@@ -33,7 +33,7 @@ NNI (Neural Network Intelligence) 是用来进行自动机器学习(AutoML)
* If you are in docker container (as root), please remove `--user` from the installation command.
* If there is any error like `Segmentation fault`, please refer to [FAQ](docs/FAQ.md)
-**Install through source code**
+**通过源代码安装**
* We support Linux (Ubuntu 16.04 or higher), MacOS (10.14.1) in our current stage.
* Run the following commands in an environment that has `python >= 3.5`, `git` and `wget`.
@@ -46,7 +46,7 @@ NNI (Neural Network Intelligence) 是用来进行自动机器学习(AutoML)
For the system requirements of NNI, please refer to [Install NNI](docs/Installation.md)
-**Verify install**
+**验证安装**
The following example is an experiment built on TensorFlow. Make sure you have **TensorFlow installed** before running it.
@@ -92,8 +92,8 @@ The following example is an experiment built on TensorFlow. Make sure you have *
* Open the `Web UI url` in your browser, you can view detail information of the experiment and all the submitted trial jobs as shown below. [Here](docs/WebUI.md) are more Web UI pages.
## **文档**
@@ -134,6 +134,6 @@ Before start coding, review and get familiar with the NNI Code Contribution Guid
We are in construction of the instruction for [How to Debug](docs/HowToDebug.md), you are also welcome to contribute questions or suggestions on this area.
-## **License**
+## **许可协议**
-The entire codebase is under [MIT license](https://github.com/Microsoft/nni/blob/master/LICENSE)
\ No newline at end of file
+整个代码库遵循 [MIT 许可协议](https://github.com/Microsoft/nni/blob/master/LICENSE)
\ No newline at end of file
From adb69d72e23f76a64d15e9d77169e4e3e7e2667d Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Sat, 29 Dec 2018 13:41:33 +0800
Subject: [PATCH 0061/1573] New translations README.md (Chinese Simplified)
---
zh_CN/README.md | 38 +++++++++++++++++++-------------------
1 file changed, 19 insertions(+), 19 deletions(-)
diff --git a/zh_CN/README.md b/zh_CN/README.md
index bbbb420dde..232ff51741 100644
--- a/zh_CN/README.md
+++ b/zh_CN/README.md
@@ -23,20 +23,20 @@ NNI (Neural Network Intelligence) 是用来进行自动机器学习(AutoML)
**通过 pip 命令安装**
-* We support Linux and MacOS in current stage, Ubuntu 16.04 or higher, along with MacOS 10.14.1 are tested and supported. Simply run the following `pip install` in an environment that has `python >= 3.5`.
+* 当前支持 Linux 和 MacOS。测试并支持的版本包括:Ubuntu 16.04 及更高版本,MacOS 10.14.1。 在 `python >= 3.5` 的环境中,只需要运行 `pip install` 即可完成安装。.
```bash
python3 -m pip install --user --upgrade nni
```
-* Note:
- * If you are in docker container (as root), please remove `--user` from the installation command.
- * If there is any error like `Segmentation fault`, please refer to [FAQ](docs/FAQ.md)
+* 注意:
+ * 如果在 docker 容器中以 root 运行,需要从上述安装命令中删除 `--user`。
+ * 如果遇到如`Segmentation fault` 这样的任何错误请参考 [常见问题](docs/FAQ.md)。
**通过源代码安装**
-* We support Linux (Ubuntu 16.04 or higher), MacOS (10.14.1) in our current stage.
-* Run the following commands in an environment that has `python >= 3.5`, `git` and `wget`.
+* 当前支持 Linux(Ubuntu 16.04 及更高版本) 和 MacOS(10.14.1)。
+* 在 `python >= 3.5` 的环境中运行命令: `git` 和 `wget`,确保安装了这两个组件。
```bash
git clone -b v0.4.1 https://github.com/Microsoft/nni.git
@@ -44,25 +44,25 @@ NNI (Neural Network Intelligence) 是用来进行自动机器学习(AutoML)
source install.sh
```
-For the system requirements of NNI, please refer to [Install NNI](docs/Installation.md)
+参考[安装 NNI](docs/Installation.md) 了解系统需求。
**验证安装**
-The following example is an experiment built on TensorFlow. Make sure you have **TensorFlow installed** before running it.
+以下示例实验依赖于 TensorFlow 。 在运行前确保安装了 **TensorFlow**。
-* Download the examples via clone the source code.
+* 通过克隆源代码下载示例。
```bash
git clone -b v0.4.1 https://github.com/Microsoft/nni.git
```
-* Run the mnist example.
+* 运行 mnist 示例。
```bash
nnictl create --config nni/examples/trials/mnist/config.yml
```
-* Wait for the message `INFO: Successfully started experiment!` in the command line. This message indicates that your experiment has been successfully started. You can explore the experiment using the `Web UI url`.
+* 在命令行中等待输出 `INFO: Successfully started experiment!`。 此消息表明实验已成功启动。 通过命令行输出的 `Web UI url` 来访问实验的界面。
INFO: Starting restful server...
INFO: Successfully started Restful server!
@@ -89,7 +89,7 @@ The following example is an experiment built on TensorFlow. Make sure you have *
-----------------------------------------------------------------------
-* Open the `Web UI url` in your browser, you can view detail information of the experiment and all the submitted trial jobs as shown below. [Here](docs/WebUI.md) are more Web UI pages.
+* 在浏览器中打开 `Web UI url`,可看到下图的实验详细信息,以及所有的尝试任务。 查看[这里的](docs/WebUI.md)更多页面示例。
|
@@ -98,12 +98,12 @@ The following example is an experiment built on TensorFlow. Make sure you have *
## **文档**
-* [NNI overview](docs/Overview.md)
+* [NNI 概述](docs/Overview.md)
* [快速入门](docs/GetStarted.md)
## **入门**
-* [Install NNI](docs/Installation.md)
+* [安装 NNI](docs/Installation.md)
* [使用命令行工具 nnictl](docs/NNICTLDOC.md)
* [使用 NNIBoard](docs/WebUI.md)
* [如何定义搜索空间](docs/SearchSpaceSpec.md)
@@ -124,15 +124,15 @@ The following example is an experiment built on TensorFlow. Make sure you have *
## **贡献**
-This project welcomes contributions and suggestions, we use [GitHub issues](https://github.com/Microsoft/nni/issues) for tracking requests and bugs.
+此项目欢迎贡献代码或提交建议,可在 [GitHub issues](https://github.com/Microsoft/nni/issues) 跟踪需求和缺陷。
-Issues with the **good first issue** label are simple and easy-to-start ones that we recommend new contributors to start with.
+推荐新贡献者从标有 **good first issue** 的简单需求开始。
-To set up environment for NNI development, refer to the instruction: [Set up NNI developer environment](docs/SetupNNIDeveloperEnvironment.md)
+如要安装 NNI 开发环境,参考: [配置 NNI 开发环境](docs/SetupNNIDeveloperEnvironment.md)。
-Before start coding, review and get familiar with the NNI Code Contribution Guideline: [Contributing](docs/CONTRIBUTING.md)
+在写代码之前,请查看并熟悉 NNI 代码贡献指南:[贡献](docs/CONTRIBUTING.md)。
-We are in construction of the instruction for [How to Debug](docs/HowToDebug.md), you are also welcome to contribute questions or suggestions on this area.
+我们正在编写 [如何调试](docs/HowToDebug.md) 的页面,欢迎提交建议和问题。
## **许可协议**
From a4150dd5eb478393add6756f54ee11cc6f3f890a Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Sat, 29 Dec 2018 13:43:46 +0800
Subject: [PATCH 0062/1573] New translations README.md (Chinese Simplified)
---
zh_CN/README.md | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/zh_CN/README.md b/zh_CN/README.md
index 232ff51741..c32b00ee39 100644
--- a/zh_CN/README.md
+++ b/zh_CN/README.md
@@ -1,5 +1,5 @@
-
+
* * *
@@ -92,8 +92,8 @@ NNI (Neural Network Intelligence) 是用来进行自动机器学习(AutoML)
* 在浏览器中打开 `Web UI url`,可看到下图的实验详细信息,以及所有的尝试任务。 查看[这里的](docs/WebUI.md)更多页面示例。
## **文档**
From af462744d9842857622795a9a7604960b26e65a5 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Sat, 29 Dec 2018 13:49:00 +0800
Subject: [PATCH 0063/1573] New translations README.md (Chinese Simplified)
---
zh_CN/README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/zh_CN/README.md b/zh_CN/README.md
index c32b00ee39..c77d990c60 100644
--- a/zh_CN/README.md
+++ b/zh_CN/README.md
@@ -9,7 +9,7 @@
NNI (Neural Network Intelligence) 是用来进行自动机器学习(AutoML)实验的工具包。 它通过多种调优的算法来搜索最好的神经网络结构和(或)超参,并支持单机、本地多机、云等不同的运行环境。
-
+
## **使用场景**
From dbd15d5fd0f05247e1268679ee9d58fee9e97a9e Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Sat, 29 Dec 2018 13:50:29 +0800
Subject: [PATCH 0064/1573] New translations README.md (Chinese Simplified)
---
zh_CN/README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/zh_CN/README.md b/zh_CN/README.md
index c77d990c60..c7628095fb 100644
--- a/zh_CN/README.md
+++ b/zh_CN/README.md
@@ -6,7 +6,7 @@
[![MIT 许可证](https://img.shields.io/badge/license-MIT-yellow.svg)](https://github.com/Microsoft/nni/blob/master/LICENSE) [![生成状态](https://msrasrg.visualstudio.com/NNIOpenSource/_apis/build/status/Microsoft.nni)](https://msrasrg.visualstudio.com/NNIOpenSource/_build/latest?definitionId=6) [![问题](https://img.shields.io/github/issues-raw/Microsoft/nni.svg)](https://github.com/Microsoft/nni/issues?q=is%3Aissue+is%3Aopen) [![缺陷](https://img.shields.io/github/issues/Microsoft/nni/bug.svg)](https://github.com/Microsoft/nni/issues?q=is%3Aissue+is%3Aopen+label%3Abug) [![拉取请求](https://img.shields.io/github/issues-pr-raw/Microsoft/nni.svg)](https://github.com/Microsoft/nni/pulls?q=is%3Apr+is%3Aopen) [![版本](https://img.shields.io/github/release/Microsoft/nni.svg)](https://github.com/Microsoft/nni/releases) [![进入 https://gitter.im/Microsoft/nni 聊天室提问](https://badges.gitter.im/Microsoft/nni.svg)](https://gitter.im/Microsoft/nni?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
-NNI (Neural Network Intelligence) 是用来进行自动机器学习(AutoML)实验的工具包。 它通过多种调优的算法来搜索最好的神经网络结构和(或)超参,并支持单机、本地多机、云等不同的运行环境。
+NNI (Neural Network Intelligence) 是自动机器学习(AutoML)实验的工具包。 它通过多种调优的算法来搜索最好的神经网络结构和(或)超参,并支持单机、本地多机、云等不同的运行环境。
From 7cf62aa8d519774af983d05a8b13e4197008f271 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Sat, 29 Dec 2018 14:14:36 +0800
Subject: [PATCH 0065/1573] New translations README.md (Chinese Simplified)
---
zh_CN/README.md | 2 ++
1 file changed, 2 insertions(+)
diff --git a/zh_CN/README.md b/zh_CN/README.md
index c7628095fb..456772e057 100644
--- a/zh_CN/README.md
+++ b/zh_CN/README.md
@@ -64,6 +64,7 @@ NNI (Neural Network Intelligence) 是自动机器学习(AutoML)实验的工
* 在命令行中等待输出 `INFO: Successfully started experiment!`。 此消息表明实验已成功启动。 通过命令行输出的 `Web UI url` 来访问实验的界面。
+ ```
INFO: Starting restful server...
INFO: Successfully started Restful server!
INFO: Setting local config...
@@ -87,6 +88,7 @@ NNI (Neural Network Intelligence) 是自动机器学习(AutoML)实验的工
6. nnictl trial kill kill a trial job by id
7. nnictl --help get help information about nnictl
-----------------------------------------------------------------------
+ ```
* 在浏览器中打开 `Web UI url`,可看到下图的实验详细信息,以及所有的尝试任务。 查看[这里的](docs/WebUI.md)更多页面示例。
From d7d7baa6b024b61ed031460feb3d3b1a1f17ca7a Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Sat, 29 Dec 2018 15:51:36 +0800
Subject: [PATCH 0066/1573] New translations README.md (Chinese Simplified)
---
zh_CN/README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/zh_CN/README.md b/zh_CN/README.md
index 456772e057..d16a94eae4 100644
--- a/zh_CN/README.md
+++ b/zh_CN/README.md
@@ -126,7 +126,7 @@ NNI (Neural Network Intelligence) 是自动机器学习(AutoML)实验的工
## **贡献**
-此项目欢迎贡献代码或提交建议,可在 [GitHub issues](https://github.com/Microsoft/nni/issues) 跟踪需求和缺陷。
+欢迎贡献代码或提交建议,可在 [GitHub issues](https://github.com/Microsoft/nni/issues) 跟踪需求和缺陷。
推荐新贡献者从标有 **good first issue** 的简单需求开始。
From caed976ba8bd15789bf0ebfc65e4967d0fc19812 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Sat, 29 Dec 2018 16:16:38 +0800
Subject: [PATCH 0067/1573] Update Crowdin configuration file
---
crowdin.yml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/crowdin.yml b/crowdin.yml
index 90d82530f1..dbab1c8c16 100644
--- a/crowdin.yml
+++ b/crowdin.yml
@@ -1,3 +1,5 @@
files:
- source: /**/*.md
+ ignore:
+ - README.Makefile.md
translation: /%locale_with_underscore%/%original_path%/%original_file_name%
From b527b938959acc2218c271e2ff09049f49deed60 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Sat, 29 Dec 2018 16:17:01 +0800
Subject: [PATCH 0068/1573] New translations EnableAssessor.md (Chinese
Simplified)
---
zh_CN/docs/EnableAssessor.md | 84 ++++++++++++++++++++++++++++++++++++
1 file changed, 84 insertions(+)
create mode 100644 zh_CN/docs/EnableAssessor.md
diff --git a/zh_CN/docs/EnableAssessor.md b/zh_CN/docs/EnableAssessor.md
new file mode 100644
index 0000000000..0fdaaec12a
--- /dev/null
+++ b/zh_CN/docs/EnableAssessor.md
@@ -0,0 +1,84 @@
+# **Enable Assessor in your expeirment**
+
+Assessor module is for assessing running trials. One common use case is early stopping, which terminates unpromising trial jobs based on their intermediate results.
+
+## Using NNI built-in Assessor
+
+Here we use the same example `examples/trials/mnist-annotation`. We use `Medianstop` assessor for this experiment. The yaml configure file is shown below:
+
+ authorName: your_name
+ experimentName: auto_mnist
+ # how many trials could be concurrently running
+ trialConcurrency: 2
+ # maximum experiment running duration
+ maxExecDuration: 3h
+ # empty means never stop
+ maxTrialNum: 100
+ # choice: local, remote
+ trainingServicePlatform: local
+ # choice: true, false
+ useAnnotation: true
+ tuner:
+ builtinTunerName: TPE
+ classArgs:
+ optimize_mode: maximize
+ assessor:
+ builtinAssessorName: Medianstop
+ classArgs:
+ optimize_mode: maximize
+ trial:
+ command: python mnist.py
+ codeDir: /usr/share/nni/examples/trials/mnist-annotation
+ gpuNum: 0
+
+
+For our built-in assessors, you need to fill two fields: `builtinAssessorName` which chooses NNI provided assessors (refer to [here]() for built-in assessors), `optimize_mode` which includes maximize and minimize (you want to maximize or minimize your trial result).
+
+## Using user customized Assessor
+
+You can also write your own assessor following the guidance [here](). For example, you wrote an assessor for `examples/trials/mnist-annotation`. You should prepare the yaml configure below:
+
+ authorName: your_name
+ experimentName: auto_mnist
+ # how many trials could be concurrently running
+ trialConcurrency: 2
+ # maximum experiment running duration
+ maxExecDuration: 3h
+ # empty means never stop
+ maxTrialNum: 100
+ # choice: local, remote
+ trainingServicePlatform: local
+ # choice: true, false
+ useAnnotation: true
+ tuner:
+ # Possible values: TPE, Random, Anneal, Evolution
+ builtinTunerName: TPE
+ classArgs:
+ optimize_mode: maximize
+ assessor:
+ # Your assessor code directory
+ codeDir:
+ # Name of the file which contains your assessor class
+ classFileName:
+ # Your assessor class name, must be a subclass of nni.Assessor
+ className:
+ # Parameter names and literal values you want to pass to
+ # the __init__ constructor of your assessor class
+ classArgs:
+ arg1: value1
+ gpuNum: 0
+ trial:
+ command: python mnist.py
+ codeDir: /usr/share/nni/examples/trials/mnist-annotation
+ gpuNum: 0
+
+
+You need to fill: `codeDir`, `classFileName`, `className`, and pass parameters to *\_init__ constructor through `classArgs` field if the *\_init__ constructor of your assessor class has required parameters.
+
+**Note that** if you want to access a file (e.g., ```data.txt```) in the directory of your own assessor, you cannot use ```open('data.txt', 'r')```. Instead, you should use the following:
+
+ _pwd = os.path.dirname(__file__)
+ _fd = open(os.path.join(_pwd, 'data.txt'), 'r')
+
+
+This is because your assessor is not executed in the directory of your assessor (i.e., ```pwd``` is not the directory of your own assessor).
\ No newline at end of file
From 7a49643055d4520b8a33454ec30ccbe046cdbfb8 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Sat, 29 Dec 2018 16:17:04 +0800
Subject: [PATCH 0069/1573] New translations HowToDebug.md (Chinese Simplified)
---
zh_CN/docs/HowToDebug.md | 3 +++
1 file changed, 3 insertions(+)
create mode 100644 zh_CN/docs/HowToDebug.md
diff --git a/zh_CN/docs/HowToDebug.md b/zh_CN/docs/HowToDebug.md
new file mode 100644
index 0000000000..0c66b86d8a
--- /dev/null
+++ b/zh_CN/docs/HowToDebug.md
@@ -0,0 +1,3 @@
+# **How to Debug in NNI**
+
+*Coming soon*
\ No newline at end of file
From 7a4be6f35518538d56dd9485fb4a444a483ecbc6 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Sat, 29 Dec 2018 16:17:05 +0800
Subject: [PATCH 0070/1573] New translations CONTRIBUTING.md (Chinese
Simplified)
---
zh_CN/docs/CONTRIBUTING.md | 44 ++++++++++++++++++++++++++++++++++++++
1 file changed, 44 insertions(+)
create mode 100644 zh_CN/docs/CONTRIBUTING.md
diff --git a/zh_CN/docs/CONTRIBUTING.md b/zh_CN/docs/CONTRIBUTING.md
new file mode 100644
index 0000000000..2de74153cc
--- /dev/null
+++ b/zh_CN/docs/CONTRIBUTING.md
@@ -0,0 +1,44 @@
+# Contributing to Neural Network Intelligence (NNI)
+
+Great!! We are always on the lookout for more contributors to our code base.
+
+Firstly, if you are unsure or afraid of anything, just ask or submit the issue or pull request anyways. You won't be yelled at for giving your best effort. The worst that can happen is that you'll be politely asked to change something. We appreciate any sort of contributions and don't want a wall of rules to get in the way of that.
+
+However, for those individuals who want a bit more guidance on the best way to contribute to the project, read on. This document will cover all the points we're looking for in your contributions, raising your chances of quickly merging or addressing your contributions.
+
+Looking for a quickstart, get acquainted with our [Get Started](./GetStarted.md) guide.
+
+There are a few simple guidelines that you need to follow before providing your hacks.
+
+## Raising Issues
+
+When raising issues, please specify the following:
+
+- Setup details needs to be filled as specified in the issue template clearly for the reviewer to check.
+- A scenario where the issue occurred (with details on how to reproduce it).
+- Errors and log messages that are displayed by the software.
+- Any other details that might be useful.
+
+## Submit Proposals for New Features
+
+- There is always something more that is required, to make it easier to suit your use-cases. Feel free to join the discussion on new features or raise a PR with your proposed change.
+
+- Fork the repository under your own github handle. After cloning the repository. Add, commit, push and sqaush (if necessary) the changes with detailed commit messages to your fork. From where you can proceed to making a pull request.
+
+## Contributing to Source Code and Bug Fixes
+
+Provide PRs with appropriate tags for bug fixes or enhancements to the source code. Do follow the correct naming conventions and code styles when you work on and do try to implement all code reviews along the way.
+
+If you are looking for How to develop and debug the NNI source code, you can refer to [How to set up NNI developer environment doc](./SetupNNIDeveloperEnvironment.md) file in the `docs` folder.
+
+Similarly for [writing trials](./WriteYourTrial.md) or [starting experiments](StartExperiment.md). For everything else, refer [here](https://github.com/Microsoft/nni/tree/master/docs).
+
+## Solve Existing Issues
+
+Head over to [issues](https://github.com/Microsoft/nni/issues) to find issues where help is needed from contributors. You can find issues tagged with 'good-first-issue' or 'help-wanted' to contribute in.
+
+A person looking to contribute can take up an issue by claiming it as a comment/assign their Github ID to it. In case there is no PR or update in progress for a week on the said issue, then the issue reopens for anyone to take up again. We need to consider high priority issues/regressions where response time must be a day or so.
+
+## Code Styles & Naming Conventions
+
+We follow [PEP8](https://www.python.org/dev/peps/pep-0008/) for Python code and naming conventions, do try to adhere to the same when making a pull request or making a change. One can also take the help of linters such as `flake8` or `pylint`
\ No newline at end of file
From d6669a3359410b2f5a98c3aded45188d5b385805 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Sat, 29 Dec 2018 16:21:49 +0800
Subject: [PATCH 0071/1573] New translations README.md (Chinese Simplified)
---
zh_CN/deployment/docker/README.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/zh_CN/deployment/docker/README.md b/zh_CN/deployment/docker/README.md
index bc05e3c0c1..c26d79d923 100644
--- a/zh_CN/deployment/docker/README.md
+++ b/zh_CN/deployment/docker/README.md
@@ -1,8 +1,8 @@
# Dockerfile
-## 1.Description
+## 1. 说明
-This is the Dockerfile of nni project. It includes serveral popular deep learning frameworks and NNI. It is tested on `Ubuntu 16.04 LTS`:
+这是 NNI 项目的 Dockerfile 文件。 It includes serveral popular deep learning frameworks and NNI. It is tested on `Ubuntu 16.04 LTS`:
CUDA 9.0, CuDNN 7.0
numpy 1.14.3,scipy 1.1.0
From 006c1b77c287d9a90ad910c545a4cabf34252947 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Sat, 29 Dec 2018 16:41:37 +0800
Subject: [PATCH 0072/1573] New translations README.md (Chinese Simplified)
---
zh_CN/deployment/docker/README.md | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/zh_CN/deployment/docker/README.md b/zh_CN/deployment/docker/README.md
index c26d79d923..375a8486fd 100644
--- a/zh_CN/deployment/docker/README.md
+++ b/zh_CN/deployment/docker/README.md
@@ -2,7 +2,7 @@
## 1. 说明
-这是 NNI 项目的 Dockerfile 文件。 It includes serveral popular deep learning frameworks and NNI. It is tested on `Ubuntu 16.04 LTS`:
+这是 NNI 项目的 Dockerfile 文件。 其中包含了 NNI 以及多个流行的深度学习框架。 在 `Ubuntu 16.04 LTS` 上进行过测试:
CUDA 9.0, CuDNN 7.0
numpy 1.14.3,scipy 1.1.0
@@ -13,34 +13,34 @@
NNI v0.3
-You can take this Dockerfile as a reference for your own customized Dockerfile.
+此 Dockerfile 可作为定制的参考。
-## 2.How to build and run
+## 2.如何生成和运行
-**Use the following command from `nni/deployment/docker` to build docker image**
+**使用 `nni/deployment/docker` 的下列命令来生成 docker 映像。**
docker build -t nni/nni .
-**Run the docker image**
+**运行 docker 映像**
-* If does not use GPU in docker container, simply run the following command
+* 如果 docker 容器中没有 GPU,运行下面的命令
docker run -it nni/nni
-* If use GPU in docker container, make sure you have installed [NVIDIA Container Runtime](https://github.com/NVIDIA/nvidia-docker), then run the following command
+* 如果 docker 容器中有 GPU,确保安装了 [NVIDIA 容器运行包](https://github.com/NVIDIA/nvidia-docker),然后运行下面的命令
nvidia-docker run -it nni/nni
-or
+或者
docker run --runtime=nvidia -it nni/nni
-## 3.Directly retrieve the docker image
+## 3.拉取 docker 映像
-Use the following command to retrieve the NNI docker image from Docker Hub
+使用下列命令从 docker Hub 中拉取 NNI docker 映像。
docker pull msranni/nni:latest
\ No newline at end of file
From 5ec8c4e323829ab4d629ae46deb2d73719271e1a Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Sat, 29 Dec 2018 16:48:58 +0800
Subject: [PATCH 0073/1573] New translations README.md (Chinese Simplified)
---
zh_CN/deployment/pypi/README.md | 22 +++++++++++-----------
1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/zh_CN/deployment/pypi/README.md b/zh_CN/deployment/pypi/README.md
index 43f23fe78c..cd336a867d 100644
--- a/zh_CN/deployment/pypi/README.md
+++ b/zh_CN/deployment/pypi/README.md
@@ -1,12 +1,12 @@
-# Python Package Index (PyPI) for NNI
+# 用于 NNI 的 python 包索引 (pypi)
-## 1.Description
+## 1. 说明
-This is the PyPI build and upload tool for NNI project.
+这是用于 NNI 项目的 PyPI 生成和上传的工具。
-## 2.Prepare environment
+## 2.准备环境
-Before build and upload NNI package, make sure the below OS and tools are available.
+在生成和上传 NNI 包之前,确保使用了下列环境。
Ubuntu 16.04 LTS
make
@@ -17,26 +17,26 @@ Before build and upload NNI package, make sure the below OS and tools are availa
Yarn
-## 2.How to build
+## 2.如何生成
```bash
make
```
-## 3.How to upload
+## 3.如何上传
-### upload for testing
+### 上传测试包
```bash
TWINE_REPOSITORY_URL=https://test.pypi.org/legacy/ make upload
```
-You may need to input the account and password of https://test.pypi.org during this process.
+上传过程中,可能需要输入 https://test.pypi.org 的用户和密码。
-### upload for release
+### 上传发布包
```bash
make upload
```
-You may need to input the account and password of https://pypi.org during this process.
\ No newline at end of file
+上传过程中,可能需要输入 https://pypi.org 的用户和密码。
\ No newline at end of file
From ea0502e7ef9a8252af2b5b09f166ce995b09c2de Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Sat, 29 Dec 2018 16:49:09 +0800
Subject: [PATCH 0074/1573] New translations ExperimentConfig.md (Chinese
Simplified)
---
zh_CN/docs/ExperimentConfig.md | 74 +++++++++++++++++-----------------
1 file changed, 37 insertions(+), 37 deletions(-)
diff --git a/zh_CN/docs/ExperimentConfig.md b/zh_CN/docs/ExperimentConfig.md
index aaaaedbff3..f3d770c556 100644
--- a/zh_CN/docs/ExperimentConfig.md
+++ b/zh_CN/docs/ExperimentConfig.md
@@ -479,15 +479,15 @@
trialConcurrency: 3
maxExecDuration: 1h
maxTrialNum: 10
- #choice: local, remote, pai, kubeflow
+ #可选项: local, remote, pai, kubeflow
trainingServicePlatform: local
- #choice: true, false
+ #可选项: true, false
useAnnotation: true
tuner:
- #choice: TPE, Random, Anneal, Evolution
+ #可选项: TPE, Random, Anneal, Evolution
builtinTunerName: TPE
classArgs:
- #choice: maximize, minimize
+ #可选项: maximize, minimize
optimize_mode: maximize
gpuNum: 0
trial:
@@ -504,23 +504,23 @@
trialConcurrency: 3
maxExecDuration: 1h
maxTrialNum: 10
- #choice: local, remote, pai, kubeflow
+ #可选项: local, remote, pai, kubeflow
trainingServicePlatform: local
searchSpacePath: /nni/search_space.json
- #choice: true, false
+ #可选项: true, false
useAnnotation: false
tuner:
- #choice: TPE, Random, Anneal, Evolution
+ #可选项: TPE, Random, Anneal, Evolution
builtinTunerName: TPE
classArgs:
- #choice: maximize, minimize
+ #可选项: maximize, minimize
optimize_mode: maximize
gpuNum: 0
assessor:
- #choice: Medianstop
+ #可选项: Medianstop
builtinAssessorName: Medianstop
classArgs:
- #choice: maximize, minimize
+ #可选项: maximize, minimize
optimize_mode: maximize
gpuNum: 0
trial:
@@ -537,17 +537,17 @@
trialConcurrency: 3
maxExecDuration: 1h
maxTrialNum: 10
- #choice: local, remote, pai, kubeflow
+ #可选项: local, remote, pai, kubeflow
trainingServicePlatform: local
searchSpacePath: /nni/search_space.json
- #choice: true, false
+ #可选项: true, false
useAnnotation: false
tuner:
codeDir: /nni/tuner
classFileName: mytuner.py
className: MyTuner
classArgs:
- #choice: maximize, minimize
+ #可选项: maximize, minimize
optimize_mode: maximize
gpuNum: 0
assessor:
@@ -573,23 +573,23 @@ If run trial jobs in remote machine, users could specify the remote mahcine info
trialConcurrency: 3
maxExecDuration: 1h
maxTrialNum: 10
- #choice: local, remote, pai, kubeflow
+ #可选项: local, remote, pai, kubeflow
trainingServicePlatform: remote
searchSpacePath: /nni/search_space.json
- #choice: true, false
+ #可选项: true, false
useAnnotation: false
tuner:
- #choice: TPE, Random, Anneal, Evolution
+ #可选项: TPE, Random, Anneal, Evolution
builtinTunerName: TPE
classArgs:
- #choice: maximize, minimize
+ #可选项: maximize, minimize
optimize_mode: maximize
gpuNum: 0
trial:
command: python3 mnist.py
codeDir: /nni/mnist
gpuNum: 0
- #machineList can be empty if the platform is local
+ # 如果是本地实验,machineList 可为空。
machineList:
- ip: 10.10.10.10
@@ -614,17 +614,17 @@ If run trial jobs in remote machine, users could specify the remote mahcine info
trialConcurrency: 1
maxExecDuration:500h
maxTrialNum: 1
- #choice: local, remote, pai, kubeflow
+ #可选项: local, remote, pai, kubeflow
trainingServicePlatform: pai
searchSpacePath: search_space.json
- #choice: true, false
+ #可选项: true, false
useAnnotation: false
tuner:
- #choice: TPE, Random, Anneal, Evolution, BatchTuner
- #SMAC (SMAC should be installed through nnictl)
+ #可选项: TPE, Random, Anneal, Evolution, BatchTuner
+ #SMAC (SMAC 需要使用 nnictl package 单独安装)
builtinTunerName: TPE
classArgs:
- #choice: maximize, minimize
+ #可选项: maximize, minimize
optimize_mode: maximize
trial:
command: python3 main.py
@@ -632,18 +632,18 @@ If run trial jobs in remote machine, users could specify the remote mahcine info
gpuNum: 4
cpuNum: 2
memoryMB: 10000
- #The docker image to run nni job on pai
+ # 在 OpenPAI 上用来运行 NNI 作业的 docker 映像
image: msranni/nni:latest
- #The hdfs directory to store data on pai, format 'hdfs://host:port/directory'
+ # 在 OpenPAI 的 hdfs 上存储数据的目录,如:'hdfs://host:port/directory'
dataDir: hdfs://10.11.12.13:9000/test
- #The hdfs directory to store output data generated by nni, format 'hdfs://host:port/directory'
+ # 在 OpenPAI 的 hdfs 上存储输出的目录,如:'hdfs://host:port/directory'
outputDir: hdfs://10.11.12.13:9000/test
paiConfig:
- #The username to login pai
+ # OpenPAI 用户名
userName: test
- #The password to login pai
+ # OpenPAI 密码
passWord: test
- #The host of restful server of pai
+ # OpenPAI 服务器 IP
host: 10.10.10.10
@@ -657,16 +657,16 @@ kubeflow use nfs as storage.
trialConcurrency: 1
maxExecDuration: 1h
maxTrialNum: 1
- #choice: local, remote, pai, kubeflow
+ #可选项: local, remote, pai, kubeflow
trainingServicePlatform: kubeflow
searchSpacePath: search_space.json
- #choice: true, false
+ #可选项: true, false
useAnnotation: false
tuner:
- #choice: TPE, Random, Anneal, Evolution
+ #可选项: TPE, Random, Anneal, Evolution
builtinTunerName: TPE
classArgs:
- #choice: maximize, minimize
+ #可选项: maximize, minimize
optimize_mode: maximize
trial:
codeDir: .
@@ -691,17 +691,17 @@ kubeflow use azure storage
trialConcurrency: 1
maxExecDuration: 1h
maxTrialNum: 1
- #choice: local, remote, pai, kubeflow
+ #可选项: local, remote, pai, kubeflow
trainingServicePlatform: kubeflow
searchSpacePath: search_space.json
- #choice: true, false
+ #可选项: true, false
useAnnotation: false
#nniManagerIp: 10.10.10.10
tuner:
- #choice: TPE, Random, Anneal, Evolution
+ #可选项: TPE, Random, Anneal, Evolution
builtinTunerName: TPE
classArgs:
- #choice: maximize, minimize
+ #可选项: maximize, minimize
optimize_mode: maximize
assessor:
builtinAssessorName: Medianstop
From 0a879d7691668669e9b6f007919fe07620a9bd85 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Sat, 29 Dec 2018 16:51:38 +0800
Subject: [PATCH 0075/1573] New translations ExperimentConfig.md (Chinese
Simplified)
---
zh_CN/docs/ExperimentConfig.md | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/zh_CN/docs/ExperimentConfig.md b/zh_CN/docs/ExperimentConfig.md
index f3d770c556..9a799c1359 100644
--- a/zh_CN/docs/ExperimentConfig.md
+++ b/zh_CN/docs/ExperimentConfig.md
@@ -6,6 +6,7 @@
* **简化版(不包含标记 (annotation) 和评估器)**
+ ```
authorName:
experimentName:
trialConcurrency:
@@ -32,11 +33,13 @@
- ip:
port:
username:
- passwd:
+ passwd:
+ ```
* **使用评估器**
+ ```
authorName:
experimentName:
trialConcurrency:
@@ -70,11 +73,13 @@
- ip:
port:
username:
- passwd:
+ passwd:
+ ```
* **使用标记**
+ ```
authorName:
experimentName:
trialConcurrency:
@@ -107,7 +112,8 @@
- ip:
port:
username:
- passwd:
+ passwd:
+ ```
## 配置
From 0d991ea234b9800fe8bf635f469061a53c2e262a Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Sat, 29 Dec 2018 16:53:31 +0800
Subject: [PATCH 0076/1573] New translations ExperimentConfig.md (Chinese
Simplified)
---
zh_CN/docs/ExperimentConfig.md | 15 ++++++++++++++-
1 file changed, 14 insertions(+), 1 deletion(-)
diff --git a/zh_CN/docs/ExperimentConfig.md b/zh_CN/docs/ExperimentConfig.md
index 9a799c1359..94b8f7eb54 100644
--- a/zh_CN/docs/ExperimentConfig.md
+++ b/zh_CN/docs/ExperimentConfig.md
@@ -480,6 +480,7 @@
If users want to run trial jobs in local machine, and use annotation to generate search space, could use the following config:
+ ```
authorName: test
experimentName: test_experiment
trialConcurrency: 3
@@ -500,11 +501,13 @@
command: python3 mnist.py
codeDir: /nni/mnist
gpuNum: 0
+ ```
Could add assessor configuration in config file if set assessor.
+ ```
authorName: test
experimentName: test_experiment
trialConcurrency: 3
@@ -533,11 +536,13 @@
command: python3 mnist.py
codeDir: /nni/mnist
gpuNum: 0
+ ```
Or you could specify your own tuner and assessor file as following:
+ ```
authorName: test
experimentName: test_experiment
trialConcurrency: 3
@@ -568,12 +573,14 @@
command: python3 mnist.py
codeDir: /nni/mnist
gpuNum: 0
+ ```
* **remote mode**
If run trial jobs in remote machine, users could specify the remote mahcine information as fllowing format:
+ ```
authorName: test
experimentName: test_experiment
trialConcurrency: 3
@@ -611,10 +618,12 @@ If run trial jobs in remote machine, users could specify the remote mahcine info
username: test
sshKeyPath: /nni/sshkey
passphrase: qwert
+ ```
* **pai mode**
+ ```
authorName: test
experimentName: nni_test1
trialConcurrency: 1
@@ -658,6 +667,7 @@ If run trial jobs in remote machine, users could specify the remote mahcine info
kubeflow use nfs as storage.
+ ```
authorName: default
experimentName: example_mni
trialConcurrency: 1
@@ -688,10 +698,12 @@ kubeflow use nfs as storage.
nfs:
server: 10.10.10.10
path: /var/nfs/general
+ ```
kubeflow use azure storage
+ ```
authorName: default
experimentName: example_mni
trialConcurrency: 1
@@ -730,4 +742,5 @@ kubeflow use azure storage
name: AzureStorageAccountKey
azureStorage:
accountName: storage
- azureShare: share01
\ No newline at end of file
+ azureShare: share01
+ ```
\ No newline at end of file
From 4ddfe1b516284d633d95ab8a60fe8e3119cc2a74 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Sat, 29 Dec 2018 18:01:36 +0800
Subject: [PATCH 0077/1573] New translations PAIMode.md (Chinese Simplified)
---
zh_CN/docs/PAIMode.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/zh_CN/docs/PAIMode.md b/zh_CN/docs/PAIMode.md
index 5818d18181..c2b96cc51a 100644
--- a/zh_CN/docs/PAIMode.md
+++ b/zh_CN/docs/PAIMode.md
@@ -1,6 +1,6 @@
-# **Run an Experiment on OpenPAI**
+# **在 OpenPAI 上运行实验**
-NNI supports running an experiment on [OpenPAI](https://github.com/Microsoft/pai) (aka pai), called pai mode. Before starting to use NNI pai mode, you should have an account to access an [OpenPAI](https://github.com/Microsoft/pai) cluster. See [here](https://github.com/Microsoft/pai#how-to-deploy) if you don't have any OpenPAI account and want to deploy an OpenPAI cluster. In pai mode, your trial program will run in pai's container created by Docker.
+NNI 支持在 [OpenPAI](https://github.com/Microsoft/pai) ( pai) 上运行实验, 称为 pai 模式。 在开始使用NNI pai 模式之前, 您应该有一个访问 [OpenPAI](https://github.com/Microsoft/pai) 群集的账户。 See [here](https://github.com/Microsoft/pai#how-to-deploy) if you don't have any OpenPAI account and want to deploy an OpenPAI cluster. In pai mode, your trial program will run in pai's container created by Docker.
## Setup environment
From 643d5ca8721d875b07b33ba1fdb6f6b26f38ca6c Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Sat, 29 Dec 2018 18:11:34 +0800
Subject: [PATCH 0078/1573] New translations PAIMode.md (Chinese Simplified)
---
zh_CN/docs/PAIMode.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/zh_CN/docs/PAIMode.md b/zh_CN/docs/PAIMode.md
index c2b96cc51a..e350126d26 100644
--- a/zh_CN/docs/PAIMode.md
+++ b/zh_CN/docs/PAIMode.md
@@ -1,6 +1,6 @@
# **在 OpenPAI 上运行实验**
-NNI 支持在 [OpenPAI](https://github.com/Microsoft/pai) ( pai) 上运行实验, 称为 pai 模式。 在开始使用NNI pai 模式之前, 您应该有一个访问 [OpenPAI](https://github.com/Microsoft/pai) 群集的账户。 See [here](https://github.com/Microsoft/pai#how-to-deploy) if you don't have any OpenPAI account and want to deploy an OpenPAI cluster. In pai mode, your trial program will run in pai's container created by Docker.
+NNI 支持在 [OpenPAI](https://github.com/Microsoft/pai) (简称 pai)上运行实验,即 pai 模式。 在使用 NNI 的 pai 模式前, 需要有 [OpenPAI](https://github.com/Microsoft/pai) 群集的账户。 See [here](https://github.com/Microsoft/pai#how-to-deploy) if you don't have any OpenPAI account and want to deploy an OpenPAI cluster. In pai mode, your trial program will run in pai's container created by Docker.
## Setup environment
From 502f94a0c312536cc0cdfcc16b6a56155897dbf2 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Wed, 2 Jan 2019 09:50:00 +0800
Subject: [PATCH 0079/1573] New translations HowToDebug.md (Chinese Simplified)
---
zh_CN/docs/HowToDebug.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/zh_CN/docs/HowToDebug.md b/zh_CN/docs/HowToDebug.md
index 0c66b86d8a..3a247d60c1 100644
--- a/zh_CN/docs/HowToDebug.md
+++ b/zh_CN/docs/HowToDebug.md
@@ -1,3 +1,3 @@
-# **How to Debug in NNI**
+# **在 NNI 中调试代码**
-*Coming soon*
\ No newline at end of file
+*编写中……*
\ No newline at end of file
From cccee8e6da9bafc4f3237edaf3842f5cd6eb3ada Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Wed, 2 Jan 2019 09:50:11 +0800
Subject: [PATCH 0080/1573] New translations Installation.md (Chinese
Simplified)
---
zh_CN/docs/Installation.md | 24 ++++++++++++------------
1 file changed, 12 insertions(+), 12 deletions(-)
diff --git a/zh_CN/docs/Installation.md b/zh_CN/docs/Installation.md
index 5dcfcf60b2..a468301728 100644
--- a/zh_CN/docs/Installation.md
+++ b/zh_CN/docs/Installation.md
@@ -1,32 +1,32 @@
-# **Installation of NNI**
+# **安装 NNI**
-Currently we only support installation on Linux & Mac.
+当前仅支持 Linux 和 Mac。
-## **Installation**
+## **安装**
-* **Dependencies**
+* **依赖项**
python >= 3.5 git wget
- python pip should also be correctly installed. You could use "python3 -m pip -v" to check pip version.
+ 需要正确安装 Python 的 pip。 可以用 "python3 -m pip -v" 来检查 pip 的版本。
-* **Install NNI through pip**
+* **通过 pip 命令安装 NNI**
python3 -m pip install --user --upgrade nni
-* **Install NNI through source code**
+* **通过源代码安装 NNI**
git clone -b v0.4.1 https://github.com/Microsoft/nni.git cd nni source install.sh
-* **Install NNI in docker image**
+* **在 docker 映像中安装 NNI**
- You can also install NNI in a docker image. Please follow the instructions [here](../deployment/docker/README.md) to build NNI docker image. The NNI docker image can also be retrieved from Docker Hub through the command `docker pull msranni/nni:latest`.
+ 也可将 NNI 安装到 docker 映像中。 参考[这里](../deployment/docker/README.md)来生成 NNI 的 docker 映像。 也可通过此命令从 Docker Hub 中直接拉取 NNI 的映像 `docker pull msranni/nni:latest`。
-## **System requirements**
+## **系统需求**
-Below are the minimum system requirements for NNI on Linux. Due to potential programming changes, the minimum system requirements for NNI may change over time.
+以下是 NNI 在 Linux 下的最小需求。 由于程序变更,NNI 的最小需求会有所更改。
-| | Minimum Requirements | Recommended Specifications |
+| | 最小需求 | Recommended Specifications |
| -------------------- | -------------------------------------- | ---------------------------------------------- |
| **Operating System** | Ubuntu 16.04 or above | Ubuntu 16.04 or above |
| **CPU** | Intel® Core™ i3 or AMD Phenom™ X3 8650 | Intel® Core™ i5 or AMD Phenom™ II X3 or better |
From f312769b11ac040b7dc011d564a46a23f031e5f3 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Wed, 2 Jan 2019 09:55:14 +0800
Subject: [PATCH 0081/1573] New translations Installation.md (Chinese
Simplified)
---
zh_CN/docs/Installation.md | 68 +++++++++++++++++++-------------------
1 file changed, 34 insertions(+), 34 deletions(-)
diff --git a/zh_CN/docs/Installation.md b/zh_CN/docs/Installation.md
index a468301728..008f585fe1 100644
--- a/zh_CN/docs/Installation.md
+++ b/zh_CN/docs/Installation.md
@@ -24,37 +24,37 @@
## **系统需求**
-以下是 NNI 在 Linux 下的最小需求。 由于程序变更,NNI 的最小需求会有所更改。
-
-| | 最小需求 | Recommended Specifications |
-| -------------------- | -------------------------------------- | ---------------------------------------------- |
-| **Operating System** | Ubuntu 16.04 or above | Ubuntu 16.04 or above |
-| **CPU** | Intel® Core™ i3 or AMD Phenom™ X3 8650 | Intel® Core™ i5 or AMD Phenom™ II X3 or better |
-| **GPU** | NVIDIA® GeForce® GTX 460 | NVIDIA® GeForce® GTX 660 or better |
-| **Memory** | 4 GB RAM | 6 GB RAM |
-| **Storage** | 30 GB available hare drive space | |
-| **Internet** | Boardband internet connection | |
-| **Resolution** | 1024 x 768 minimum display resolution | |
-
-Below are the minimum system requirements for NNI on macOS. Due to potential programming changes, the minimum system requirements for NNI may change over time.
-
-| | Minimum Requirements | Recommended Specifications |
-| -------------------- | --------------------------------------------------------- | ------------------------------ |
-| **Operating System** | macOS 10.14.1 (latest version) | macOS 10.14.1 (latest version) |
-| **CPU** | Intel® Core™ i5-760 or better | Intel® Core™ i7-4770 or better |
-| **GPU** | NVIDIA® GeForce® GT 750M or AMD Radeon™ R9 M290 or better | AMD Radeon™ R9 M395X or better |
-| **Memory** | 4 GB RAM | 8 GB RAM |
-| **Storage** | 70GB available space 7200 RPM HDD | 70GB available space SSD |
-| **Internet** | Boardband internet connection | |
-| **Resolution** | 1024 x 768 minimum display resolution | |
-
-## Further reading
-
-* [Overview](Overview.md)
-* [Use command line tool nnictl](NNICTLDOC.md)
-* [Use NNIBoard](WebUI.md)
-* [Define search space](SearchSpaceSpec.md)
-* [Config an experiment](ExperimentConfig.md)
-* [How to run an experiment on local (with multiple GPUs)?](tutorial_1_CR_exp_local_api.md)
-* [How to run an experiment on multiple machines?](tutorial_2_RemoteMachineMode.md)
-* [How to run an experiment on OpenPAI?](PAIMode.md)
\ No newline at end of file
+以下是 NNI 在 Linux 下的最低配置。 由于程序变更,NNI 的最小需求会有所更改。
+
+| | 最低配置 | 推荐配置 |
+| -------- | ------------------------------------- | ----------------------------------------- |
+| **操作系统** | Ubuntu 16.04 或以上版本 | Ubuntu 16.04 或以上版本 |
+| **CPU** | Intel® Core™ i3 或 AMD Phenom™ X3 8650 | Intel® Core™ i5 或 AMD Phenom™ II X3 或更高配置 |
+| **GPU** | NVIDIA® GeForce® GTX 460 | NVIDIA® GeForce® GTX 660 或更高配置 |
+| **内存** | 4 GB | 6 GB |
+| **存储** | 30 GB 可用的磁盘空间 | |
+| **网络** | 宽带连接 | |
+| **分辨率** | 1024 x 768 以上 | |
+
+以下是 NNI 在 MacOS 下的最低配置。 由于程序变更,NNI 的最小需求会有所更改。
+
+| | 最低配置 | 推荐配置 |
+| -------- | -------------------------------------------------- | ------------------------ |
+| **操作系统** | macOS 10.14.1 (最新版本) | macOS 10.14.1 (最新版本) |
+| **CPU** | Intel® Core™ i5-760 或更高 | Intel® Core™ i7-4770 或更高 |
+| **GPU** | NVIDIA® GeForce® GT 750M 或 AMD Radeon™ R9 M290 或更高 | AMD Radeon™ R9 M395X 或更高 |
+| **内存** | 4 GB | 8 GB |
+| **存储** | 70GB 可用空间及 7200 RPM 硬盘 | 70GB 可用空间 SSD 硬盘 |
+| **网络** | 宽带连接 | |
+| **分辨率** | 1024 x 768 以上 | |
+
+## 更多
+
+* [概述](Overview.md)
+* [使用命令行工具 nnictl](NNICTLDOC.md)
+* [使用 NNIBoard](WebUI.md)
+* [定制搜索空间](SearchSpaceSpec.md)
+* [配置实验](ExperimentConfig.md)
+* [如何在本机运行实验 (支持多 GPU 卡)?](tutorial_1_CR_exp_local_api.md)
+* [如何在多机上运行实验?](tutorial_2_RemoteMachineMode.md)
+* [如何在 OpenPAI 上运行实验?](PAIMode.md)
\ No newline at end of file
From d7e031cacdd24d06b33c40b53ee8ef65ba0a52b4 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Wed, 2 Jan 2019 09:57:08 +0800
Subject: [PATCH 0082/1573] New translations Installation.md (Chinese
Simplified)
---
zh_CN/docs/Installation.md | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/zh_CN/docs/Installation.md b/zh_CN/docs/Installation.md
index 008f585fe1..36be911df5 100644
--- a/zh_CN/docs/Installation.md
+++ b/zh_CN/docs/Installation.md
@@ -6,17 +6,17 @@
* **依赖项**
- python >= 3.5 git wget
+ ``` python >= 3.5 git wget ```
需要正确安装 Python 的 pip。 可以用 "python3 -m pip -v" 来检查 pip 的版本。
* **通过 pip 命令安装 NNI**
- python3 -m pip install --user --upgrade nni
+ ``` python3 -m pip install --user --upgrade nni ```
* **通过源代码安装 NNI**
- git clone -b v0.4.1 https://github.com/Microsoft/nni.git cd nni source install.sh
+ ``` git clone -b v0.4.1 https://github.com/Microsoft/nni.git cd nni source install.sh ```
* **在 docker 映像中安装 NNI**
From 922acb08d3a997d87ddfb109a9ee17081690fc08 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Wed, 2 Jan 2019 09:59:36 +0800
Subject: [PATCH 0083/1573] New translations Installation.md (Chinese
Simplified)
---
zh_CN/docs/Installation.md | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/zh_CN/docs/Installation.md b/zh_CN/docs/Installation.md
index 36be911df5..008f585fe1 100644
--- a/zh_CN/docs/Installation.md
+++ b/zh_CN/docs/Installation.md
@@ -6,17 +6,17 @@
* **依赖项**
- ``` python >= 3.5 git wget ```
+ python >= 3.5 git wget
需要正确安装 Python 的 pip。 可以用 "python3 -m pip -v" 来检查 pip 的版本。
* **通过 pip 命令安装 NNI**
- ``` python3 -m pip install --user --upgrade nni ```
+ python3 -m pip install --user --upgrade nni
* **通过源代码安装 NNI**
- ``` git clone -b v0.4.1 https://github.com/Microsoft/nni.git cd nni source install.sh ```
+ git clone -b v0.4.1 https://github.com/Microsoft/nni.git cd nni source install.sh
* **在 docker 映像中安装 NNI**
From 3fbe8a4fa693cbeefdb4da452d66ee3c01203338 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Wed, 2 Jan 2019 10:02:37 +0800
Subject: [PATCH 0084/1573] New translations Installation.md (Chinese
Simplified)
---
zh_CN/docs/Installation.md | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/zh_CN/docs/Installation.md b/zh_CN/docs/Installation.md
index 008f585fe1..36be911df5 100644
--- a/zh_CN/docs/Installation.md
+++ b/zh_CN/docs/Installation.md
@@ -6,17 +6,17 @@
* **依赖项**
- python >= 3.5 git wget
+ ``` python >= 3.5 git wget ```
需要正确安装 Python 的 pip。 可以用 "python3 -m pip -v" 来检查 pip 的版本。
* **通过 pip 命令安装 NNI**
- python3 -m pip install --user --upgrade nni
+ ``` python3 -m pip install --user --upgrade nni ```
* **通过源代码安装 NNI**
- git clone -b v0.4.1 https://github.com/Microsoft/nni.git cd nni source install.sh
+ ``` git clone -b v0.4.1 https://github.com/Microsoft/nni.git cd nni source install.sh ```
* **在 docker 映像中安装 NNI**
From 5ebcd73cd264b3107e6d371048200085e1cc2759 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Wed, 2 Jan 2019 10:08:37 +0800
Subject: [PATCH 0085/1573] New translations Installation.md (Chinese
Simplified)
---
zh_CN/docs/Installation.md | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/zh_CN/docs/Installation.md b/zh_CN/docs/Installation.md
index 36be911df5..020a0dc415 100644
--- a/zh_CN/docs/Installation.md
+++ b/zh_CN/docs/Installation.md
@@ -6,7 +6,11 @@
* **依赖项**
- ``` python >= 3.5 git wget ```
+ `
+ python >= 3.5
+ git
+ wget
+`
需要正确安装 Python 的 pip。 可以用 "python3 -m pip -v" 来检查 pip 的版本。
From 88d49e4cb2f716aab5af3accfce3478f765f9b5a Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Wed, 2 Jan 2019 10:09:54 +0800
Subject: [PATCH 0086/1573] New translations Installation.md (Chinese
Simplified)
---
zh_CN/docs/Installation.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/zh_CN/docs/Installation.md b/zh_CN/docs/Installation.md
index 020a0dc415..fd72bdbf6b 100644
--- a/zh_CN/docs/Installation.md
+++ b/zh_CN/docs/Installation.md
@@ -10,7 +10,7 @@
python >= 3.5
git
wget
-`
+ `
需要正确安装 Python 的 pip。 可以用 "python3 -m pip -v" 来检查 pip 的版本。
From cf7d613a2a4f3de9d784ee59aac0f4236b205838 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Wed, 2 Jan 2019 10:10:56 +0800
Subject: [PATCH 0087/1573] New translations Installation.md (Chinese
Simplified)
---
zh_CN/docs/Installation.md | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/zh_CN/docs/Installation.md b/zh_CN/docs/Installation.md
index fd72bdbf6b..785dfdcef1 100644
--- a/zh_CN/docs/Installation.md
+++ b/zh_CN/docs/Installation.md
@@ -7,10 +7,10 @@
* **依赖项**
`
- python >= 3.5
- git
- wget
- `
+ python >= 3.5
+ git
+ wget
+ `
需要正确安装 Python 的 pip。 可以用 "python3 -m pip -v" 来检查 pip 的版本。
From 5515035932864880615c0b11a41fd81143ced37a Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Wed, 2 Jan 2019 10:15:48 +0800
Subject: [PATCH 0088/1573] New translations Installation.md (Chinese
Simplified)
---
zh_CN/docs/Installation.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/zh_CN/docs/Installation.md b/zh_CN/docs/Installation.md
index 785dfdcef1..b397ae9317 100644
--- a/zh_CN/docs/Installation.md
+++ b/zh_CN/docs/Installation.md
@@ -20,7 +20,7 @@
* **通过源代码安装 NNI**
- ``` git clone -b v0.4.1 https://github.com/Microsoft/nni.git cd nni source install.sh ```
+ git clone -b v0.4.1 https://github.com/Microsoft/nni.git cd nni source install.sh
* **在 docker 映像中安装 NNI**
From 70da0592a3a9a9d838cd678a9699b2e2d3657f84 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Wed, 2 Jan 2019 10:21:33 +0800
Subject: [PATCH 0089/1573] New translations Installation.md (Chinese
Simplified)
---
zh_CN/docs/Installation.md | 8 ++------
1 file changed, 2 insertions(+), 6 deletions(-)
diff --git a/zh_CN/docs/Installation.md b/zh_CN/docs/Installation.md
index b397ae9317..008f585fe1 100644
--- a/zh_CN/docs/Installation.md
+++ b/zh_CN/docs/Installation.md
@@ -6,17 +6,13 @@
* **依赖项**
- `
- python >= 3.5
- git
- wget
- `
+ python >= 3.5 git wget
需要正确安装 Python 的 pip。 可以用 "python3 -m pip -v" 来检查 pip 的版本。
* **通过 pip 命令安装 NNI**
- ``` python3 -m pip install --user --upgrade nni ```
+ python3 -m pip install --user --upgrade nni
* **通过源代码安装 NNI**
From cb346193c36081c7214523be950ad013e2c371d1 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Wed, 2 Jan 2019 10:26:14 +0800
Subject: [PATCH 0090/1573] New translations Installation.md (Chinese
Simplified)
---
zh_CN/docs/Installation.md | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/zh_CN/docs/Installation.md b/zh_CN/docs/Installation.md
index 008f585fe1..03c869911a 100644
--- a/zh_CN/docs/Installation.md
+++ b/zh_CN/docs/Installation.md
@@ -6,17 +6,17 @@
* **依赖项**
- python >= 3.5 git wget
+ python >= 3.5 git wget
需要正确安装 Python 的 pip。 可以用 "python3 -m pip -v" 来检查 pip 的版本。
* **通过 pip 命令安装 NNI**
- python3 -m pip install --user --upgrade nni
+ python3 -m pip install --user --upgrade nni
* **通过源代码安装 NNI**
- git clone -b v0.4.1 https://github.com/Microsoft/nni.git cd nni source install.sh
+ git clone -b v0.4.1 https://github.com/Microsoft/nni.git cd nni source install.sh
* **在 docker 映像中安装 NNI**
From 5a47cd691fb661c7c3c0e84e676cabdb97c1b0e2 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Wed, 2 Jan 2019 10:27:37 +0800
Subject: [PATCH 0091/1573] New translations Installation.md (Chinese
Simplified)
---
zh_CN/docs/Installation.md | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/zh_CN/docs/Installation.md b/zh_CN/docs/Installation.md
index 03c869911a..83f837bbaa 100644
--- a/zh_CN/docs/Installation.md
+++ b/zh_CN/docs/Installation.md
@@ -6,17 +6,17 @@
* **依赖项**
- python >= 3.5 git wget
+ python >= 3.5 git wget
需要正确安装 Python 的 pip。 可以用 "python3 -m pip -v" 来检查 pip 的版本。
* **通过 pip 命令安装 NNI**
- python3 -m pip install --user --upgrade nni
+ python3 -m pip install --user --upgrade nni
* **通过源代码安装 NNI**
- git clone -b v0.4.1 https://github.com/Microsoft/nni.git cd nni source install.sh
+ git clone -b v0.4.1 https://github.com/Microsoft/nni.git cd nni source install.sh
* **在 docker 映像中安装 NNI**
From a5add9b2b7a0b8895f60a36c1427e8ab26f4432c Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Wed, 2 Jan 2019 10:51:42 +0800
Subject: [PATCH 0092/1573] New translations Installation.md (Chinese
Simplified)
---
zh_CN/docs/Installation.md | 72 +++++++++++++++++++-------------------
1 file changed, 36 insertions(+), 36 deletions(-)
diff --git a/zh_CN/docs/Installation.md b/zh_CN/docs/Installation.md
index 83f837bbaa..513ff33da5 100644
--- a/zh_CN/docs/Installation.md
+++ b/zh_CN/docs/Installation.md
@@ -12,11 +12,11 @@
* **通过 pip 命令安装 NNI**
- python3 -m pip install --user --upgrade nni
+ python3 -m pip install --user --upgrade nni
* **通过源代码安装 NNI**
- git clone -b v0.4.1 https://github.com/Microsoft/nni.git cd nni source install.sh
+ ``` git clone -b v0.4.1 https://github.com/Microsoft/nni.git cd nni source install.sh ```
* **在 docker 映像中安装 NNI**
@@ -24,37 +24,37 @@
## **系统需求**
-以下是 NNI 在 Linux 下的最低配置。 由于程序变更,NNI 的最小需求会有所更改。
-
-| | 最低配置 | 推荐配置 |
-| -------- | ------------------------------------- | ----------------------------------------- |
-| **操作系统** | Ubuntu 16.04 或以上版本 | Ubuntu 16.04 或以上版本 |
-| **CPU** | Intel® Core™ i3 或 AMD Phenom™ X3 8650 | Intel® Core™ i5 或 AMD Phenom™ II X3 或更高配置 |
-| **GPU** | NVIDIA® GeForce® GTX 460 | NVIDIA® GeForce® GTX 660 或更高配置 |
-| **内存** | 4 GB | 6 GB |
-| **存储** | 30 GB 可用的磁盘空间 | |
-| **网络** | 宽带连接 | |
-| **分辨率** | 1024 x 768 以上 | |
-
-以下是 NNI 在 MacOS 下的最低配置。 由于程序变更,NNI 的最小需求会有所更改。
-
-| | 最低配置 | 推荐配置 |
-| -------- | -------------------------------------------------- | ------------------------ |
-| **操作系统** | macOS 10.14.1 (最新版本) | macOS 10.14.1 (最新版本) |
-| **CPU** | Intel® Core™ i5-760 或更高 | Intel® Core™ i7-4770 或更高 |
-| **GPU** | NVIDIA® GeForce® GT 750M 或 AMD Radeon™ R9 M290 或更高 | AMD Radeon™ R9 M395X 或更高 |
-| **内存** | 4 GB | 8 GB |
-| **存储** | 70GB 可用空间及 7200 RPM 硬盘 | 70GB 可用空间 SSD 硬盘 |
-| **网络** | 宽带连接 | |
-| **分辨率** | 1024 x 768 以上 | |
-
-## 更多
-
-* [概述](Overview.md)
-* [使用命令行工具 nnictl](NNICTLDOC.md)
-* [使用 NNIBoard](WebUI.md)
-* [定制搜索空间](SearchSpaceSpec.md)
-* [配置实验](ExperimentConfig.md)
-* [如何在本机运行实验 (支持多 GPU 卡)?](tutorial_1_CR_exp_local_api.md)
-* [如何在多机上运行实验?](tutorial_2_RemoteMachineMode.md)
-* [如何在 OpenPAI 上运行实验?](PAIMode.md)
\ No newline at end of file
+以下是 NNI 在 Linux 下的最低配置。 由于程序变更,NNI 的最低配置会有所更改。
+
+| | 最低配置 | 推荐配置 |
+| -------------- | ------------------------------------- | ----------------------------------------- |
+| **操作系统** | Ubuntu 16.04 或以上版本 | Ubuntu 16.04 或以上版本 |
+| **CPU** | Intel® Core™ i3 或 AMD Phenom™ X3 8650 | Intel® Core™ i5 或 AMD Phenom™ II X3 或更高配置 |
+| **GPU** | NVIDIA® GeForce® GTX 460 | NVIDIA® GeForce® GTX 660 或更高配置 |
+| **内存** | 4 GB | 6 GB |
+| **Storage** | 30 GB available hare drive space | |
+| **Internet** | Boardband internet connection | |
+| **Resolution** | 1024 x 768 minimum display resolution | |
+
+Below are the minimum system requirements for NNI on macOS. Due to potential programming changes, the minimum system requirements for NNI may change over time.
+
+| | Minimum Requirements | Recommended Specifications |
+| -------------------- | --------------------------------------------------------- | ------------------------------ |
+| **Operating System** | macOS 10.14.1 (latest version) | macOS 10.14.1 (latest version) |
+| **CPU** | Intel® Core™ i5-760 or better | Intel® Core™ i7-4770 or better |
+| **GPU** | NVIDIA® GeForce® GT 750M or AMD Radeon™ R9 M290 or better | AMD Radeon™ R9 M395X or better |
+| **Memory** | 4 GB RAM | 8 GB RAM |
+| **Storage** | 70GB available space 7200 RPM HDD | 70GB available space SSD |
+| **Internet** | Boardband internet connection | |
+| **Resolution** | 1024 x 768 minimum display resolution | |
+
+## Further reading
+
+* [Overview](Overview.md)
+* [Use command line tool nnictl](NNICTLDOC.md)
+* [Use NNIBoard](WebUI.md)
+* [Define search space](SearchSpaceSpec.md)
+* [Config an experiment](ExperimentConfig.md)
+* [How to run an experiment on local (with multiple GPUs)?](tutorial_1_CR_exp_local_api.md)
+* [How to run an experiment on multiple machines?](tutorial_2_RemoteMachineMode.md)
+* [How to run an experiment on OpenPAI?](PAIMode.md)
\ No newline at end of file
From fa55fd8746989c8899cbf8e89a9cb4d2aa21a040 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Wed, 2 Jan 2019 10:54:21 +0800
Subject: [PATCH 0093/1573] New translations Installation.md (Chinese
Simplified)
---
zh_CN/docs/Installation.md | 64 +++++++++++++++++++-------------------
1 file changed, 32 insertions(+), 32 deletions(-)
diff --git a/zh_CN/docs/Installation.md b/zh_CN/docs/Installation.md
index 513ff33da5..64fbde980e 100644
--- a/zh_CN/docs/Installation.md
+++ b/zh_CN/docs/Installation.md
@@ -26,35 +26,35 @@
以下是 NNI 在 Linux 下的最低配置。 由于程序变更,NNI 的最低配置会有所更改。
-| | 最低配置 | 推荐配置 |
-| -------------- | ------------------------------------- | ----------------------------------------- |
-| **操作系统** | Ubuntu 16.04 或以上版本 | Ubuntu 16.04 或以上版本 |
-| **CPU** | Intel® Core™ i3 或 AMD Phenom™ X3 8650 | Intel® Core™ i5 或 AMD Phenom™ II X3 或更高配置 |
-| **GPU** | NVIDIA® GeForce® GTX 460 | NVIDIA® GeForce® GTX 660 或更高配置 |
-| **内存** | 4 GB | 6 GB |
-| **Storage** | 30 GB available hare drive space | |
-| **Internet** | Boardband internet connection | |
-| **Resolution** | 1024 x 768 minimum display resolution | |
-
-Below are the minimum system requirements for NNI on macOS. Due to potential programming changes, the minimum system requirements for NNI may change over time.
-
-| | Minimum Requirements | Recommended Specifications |
-| -------------------- | --------------------------------------------------------- | ------------------------------ |
-| **Operating System** | macOS 10.14.1 (latest version) | macOS 10.14.1 (latest version) |
-| **CPU** | Intel® Core™ i5-760 or better | Intel® Core™ i7-4770 or better |
-| **GPU** | NVIDIA® GeForce® GT 750M or AMD Radeon™ R9 M290 or better | AMD Radeon™ R9 M395X or better |
-| **Memory** | 4 GB RAM | 8 GB RAM |
-| **Storage** | 70GB available space 7200 RPM HDD | 70GB available space SSD |
-| **Internet** | Boardband internet connection | |
-| **Resolution** | 1024 x 768 minimum display resolution | |
-
-## Further reading
-
-* [Overview](Overview.md)
-* [Use command line tool nnictl](NNICTLDOC.md)
-* [Use NNIBoard](WebUI.md)
-* [Define search space](SearchSpaceSpec.md)
-* [Config an experiment](ExperimentConfig.md)
-* [How to run an experiment on local (with multiple GPUs)?](tutorial_1_CR_exp_local_api.md)
-* [How to run an experiment on multiple machines?](tutorial_2_RemoteMachineMode.md)
-* [How to run an experiment on OpenPAI?](PAIMode.md)
\ No newline at end of file
+| | 最低配置 | 推荐配置 |
+| -------- | ------------------------------------- | ----------------------------------------- |
+| **操作系统** | Ubuntu 16.04 或以上版本 | Ubuntu 16.04 或以上版本 |
+| **CPU** | Intel® Core™ i3 或 AMD Phenom™ X3 8650 | Intel® Core™ i5 或 AMD Phenom™ II X3 或更高配置 |
+| **GPU** | NVIDIA® GeForce® GTX 460 | NVIDIA® GeForce® GTX 660 或更高配置 |
+| **内存** | 4 GB | 6 GB |
+| **存储** | 30 GB 可用的磁盘空间 | |
+| **网络** | 宽带连接 | |
+| **分辨率** | 1024 x 768 以上 | |
+
+以下是 NNI 在 MacOS 下的最低配置。 由于程序变更,NNI 的最低配置会有所更改。
+
+| | 最低配置 | 推荐配置 |
+| -------- | -------------------------------------------------- | ------------------------ |
+| **操作系统** | macOS 10.14.1 (最新版本) | macOS 10.14.1 (最新版本) |
+| **CPU** | Intel® Core™ i5-760 或更高 | Intel® Core™ i7-4770 或更高 |
+| **GPU** | NVIDIA® GeForce® GT 750M 或 AMD Radeon™ R9 M290 或更高 | AMD Radeon™ R9 M395X 或更高 |
+| **内存** | 4 GB | 8 GB |
+| **存储** | 70GB 可用空间及 7200 RPM 硬盘 | 70GB 可用空间 SSD 硬盘 |
+| **网络** | 宽带连接 | |
+| **分辨率** | 1024 x 768 以上 | |
+
+## 更多
+
+* [概述](Overview.md)
+* [使用命令行工具 nnictl](NNICTLDOC.md)
+* [使用 NNIBoard](WebUI.md)
+* [定制搜索空间](SearchSpaceSpec.md)
+* [配置实验](ExperimentConfig.md)
+* [如何在本机运行实验 (支持多 GPU 卡)?](tutorial_1_CR_exp_local_api.md)
+* [如何在多机上运行实验?](tutorial_2_RemoteMachineMode.md)
+* [如何在 OpenPAI 上运行实验?](PAIMode.md)
\ No newline at end of file
From 1c7187340b7659db0490e341b9154578bf966077 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Wed, 2 Jan 2019 10:59:16 +0800
Subject: [PATCH 0094/1573] New translations Installation.md (Chinese
Simplified)
---
zh_CN/docs/Installation.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/zh_CN/docs/Installation.md b/zh_CN/docs/Installation.md
index 64fbde980e..63a78c9e1d 100644
--- a/zh_CN/docs/Installation.md
+++ b/zh_CN/docs/Installation.md
@@ -6,7 +6,7 @@
* **依赖项**
- python >= 3.5 git wget
+ python >= 3.5 git wget
需要正确安装 Python 的 pip。 可以用 "python3 -m pip -v" 来检查 pip 的版本。
From f344bb7765e1faefa68e990c2ba4efabad50c427 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Wed, 2 Jan 2019 11:07:37 +0800
Subject: [PATCH 0095/1573] New translations Installation.md (Chinese
Simplified)
---
zh_CN/docs/Installation.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/zh_CN/docs/Installation.md b/zh_CN/docs/Installation.md
index 63a78c9e1d..8777d33496 100644
--- a/zh_CN/docs/Installation.md
+++ b/zh_CN/docs/Installation.md
@@ -6,7 +6,7 @@
* **依赖项**
- python >= 3.5 git wget
+ ``` python >= 3.5 git wget ```
需要正确安装 Python 的 pip。 可以用 "python3 -m pip -v" 来检查 pip 的版本。
From 4a248154c45b7d334ffe645a3e435dcdc5f06557 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Wed, 2 Jan 2019 11:14:25 +0800
Subject: [PATCH 0096/1573] New translations Installation.md (Chinese
Simplified)
---
zh_CN/docs/Installation.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/zh_CN/docs/Installation.md b/zh_CN/docs/Installation.md
index 8777d33496..63a78c9e1d 100644
--- a/zh_CN/docs/Installation.md
+++ b/zh_CN/docs/Installation.md
@@ -6,7 +6,7 @@
* **依赖项**
- ``` python >= 3.5 git wget ```
+ python >= 3.5 git wget
需要正确安装 Python 的 pip。 可以用 "python3 -m pip -v" 来检查 pip 的版本。
From 6e5acfab1ec91b4d1d2966ac0fb9b9b95a20c0e1 Mon Sep 17 00:00:00 2001
From: squirrelsc
Date: Wed, 2 Jan 2019 11:41:16 +0800
Subject: [PATCH 0097/1573] update format
---
zh_CN/docs/Installation.md | 20 ++++++++++++--------
1 file changed, 12 insertions(+), 8 deletions(-)
diff --git a/zh_CN/docs/Installation.md b/zh_CN/docs/Installation.md
index 63a78c9e1d..ebfbec1697 100644
--- a/zh_CN/docs/Installation.md
+++ b/zh_CN/docs/Installation.md
@@ -5,21 +5,25 @@
## **安装**
* **依赖项**
-
- python >= 3.5 git wget
-
+
+ python >= 3.5
+ git
+ wget
+
需要正确安装 Python 的 pip。 可以用 "python3 -m pip -v" 来检查 pip 的版本。
* **通过 pip 命令安装 NNI**
-
- python3 -m pip install --user --upgrade nni
+
+ python3 -m pip install --user --upgrade nni
* **通过源代码安装 NNI**
-
- ``` git clone -b v0.4.1 https://github.com/Microsoft/nni.git cd nni source install.sh ```
+
+ git clone -b v0.4.1 https://github.com/Microsoft/nni.git
+ cd nni source
+ install.sh
* **在 docker 映像中安装 NNI**
-
+
也可将 NNI 安装到 docker 映像中。 参考[这里](../deployment/docker/README.md)来生成 NNI 的 docker 映像。 也可通过此命令从 Docker Hub 中直接拉取 NNI 的映像 `docker pull msranni/nni:latest`。
## **系统需求**
From 5484fcf72ecd90dd17345922a6d737f99f157973 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Wed, 2 Jan 2019 11:51:32 +0800
Subject: [PATCH 0098/1573] New translations CONTRIBUTING.md (Chinese
Simplified)
---
zh_CN/docs/CONTRIBUTING.md | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/zh_CN/docs/CONTRIBUTING.md b/zh_CN/docs/CONTRIBUTING.md
index 2de74153cc..e00b4ff8a7 100644
--- a/zh_CN/docs/CONTRIBUTING.md
+++ b/zh_CN/docs/CONTRIBUTING.md
@@ -1,8 +1,8 @@
-# Contributing to Neural Network Intelligence (NNI)
+# 改进 Neural Network Intelligence (NNI)
-Great!! We are always on the lookout for more contributors to our code base.
+欢迎!! 我们非常欢迎贡献者,特别是代码贡献者。
-Firstly, if you are unsure or afraid of anything, just ask or submit the issue or pull request anyways. You won't be yelled at for giving your best effort. The worst that can happen is that you'll be politely asked to change something. We appreciate any sort of contributions and don't want a wall of rules to get in the way of that.
+首先,如果有什么不确定的事情,可随时提交问题或拉取请求。 You won't be yelled at for giving your best effort. The worst that can happen is that you'll be politely asked to change something. We appreciate any sort of contributions and don't want a wall of rules to get in the way of that.
However, for those individuals who want a bit more guidance on the best way to contribute to the project, read on. This document will cover all the points we're looking for in your contributions, raising your chances of quickly merging or addressing your contributions.
From 36c33267e2d5fd0b272cec909f8b25da7b9d8739 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Wed, 2 Jan 2019 11:51:41 +0800
Subject: [PATCH 0099/1573] New translations Installation.md (Chinese
Simplified)
---
zh_CN/docs/Installation.md | 27 +++++++++++++++------------
1 file changed, 15 insertions(+), 12 deletions(-)
diff --git a/zh_CN/docs/Installation.md b/zh_CN/docs/Installation.md
index ebfbec1697..09f70f6aa7 100644
--- a/zh_CN/docs/Installation.md
+++ b/zh_CN/docs/Installation.md
@@ -5,25 +5,28 @@
## **安装**
* **依赖项**
-
- python >= 3.5
- git
- wget
-
+
+ python >= 3.5
+ git
+ wget
+
+
需要正确安装 Python 的 pip。 可以用 "python3 -m pip -v" 来检查 pip 的版本。
* **通过 pip 命令安装 NNI**
-
- python3 -m pip install --user --upgrade nni
+
+ python3 -m pip install --user --upgrade nni
+
* **通过源代码安装 NNI**
-
- git clone -b v0.4.1 https://github.com/Microsoft/nni.git
- cd nni source
- install.sh
+
+ git clone -b v0.4.1 https://github.com/Microsoft/nni.git
+ cd nni
+ source install.sh
+
* **在 docker 映像中安装 NNI**
-
+
也可将 NNI 安装到 docker 映像中。 参考[这里](../deployment/docker/README.md)来生成 NNI 的 docker 映像。 也可通过此命令从 Docker Hub 中直接拉取 NNI 的映像 `docker pull msranni/nni:latest`。
## **系统需求**
From 9dcb3c95155cbc7a36c3ceb547ce2c3f27acbb5f Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Wed, 2 Jan 2019 12:01:27 +0800
Subject: [PATCH 0100/1573] New translations CONTRIBUTING.md (Chinese
Simplified)
---
zh_CN/docs/CONTRIBUTING.md | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/zh_CN/docs/CONTRIBUTING.md b/zh_CN/docs/CONTRIBUTING.md
index e00b4ff8a7..c6c70e9bfa 100644
--- a/zh_CN/docs/CONTRIBUTING.md
+++ b/zh_CN/docs/CONTRIBUTING.md
@@ -2,15 +2,15 @@
欢迎!! 我们非常欢迎贡献者,特别是代码贡献者。
-首先,如果有什么不确定的事情,可随时提交问题或拉取请求。 You won't be yelled at for giving your best effort. The worst that can happen is that you'll be politely asked to change something. We appreciate any sort of contributions and don't want a wall of rules to get in the way of that.
+首先,如果有什么不确定的事情,可随时提交问题或拉取请求。 不会有人因此而抱怨。:) 最有可能的是,会有礼貌的请求你修改一些内容。 我们会感激任何形式的贡献,不想用一堆规则来阻止这些贡献。
-However, for those individuals who want a bit more guidance on the best way to contribute to the project, read on. This document will cover all the points we're looking for in your contributions, raising your chances of quickly merging or addressing your contributions.
+不管怎样,如果想要更有效的贡献代码,可以阅读以下内容。 本文档包括了所有在贡献中需要注意的要点,会加快合并代码、解决问题的速度。
-Looking for a quickstart, get acquainted with our [Get Started](./GetStarted.md) guide.
+查看[快速入门](./GetStarted.md)来初步了解。
-There are a few simple guidelines that you need to follow before providing your hacks.
+下面是一些简单的贡献指南。
-## Raising Issues
+## 提出问题
When raising issues, please specify the following:
From 39299055d106e10e86900b0eccda956990135b73 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Wed, 2 Jan 2019 12:11:27 +0800
Subject: [PATCH 0101/1573] New translations CONTRIBUTING.md (Chinese
Simplified)
---
zh_CN/docs/CONTRIBUTING.md | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/zh_CN/docs/CONTRIBUTING.md b/zh_CN/docs/CONTRIBUTING.md
index c6c70e9bfa..113e0a3838 100644
--- a/zh_CN/docs/CONTRIBUTING.md
+++ b/zh_CN/docs/CONTRIBUTING.md
@@ -10,20 +10,20 @@
下面是一些简单的贡献指南。
-## 提出问题
+## 提交问题
-When raising issues, please specify the following:
+在提出问题时,请说明以下事项:
-- Setup details needs to be filled as specified in the issue template clearly for the reviewer to check.
-- A scenario where the issue occurred (with details on how to reproduce it).
-- Errors and log messages that are displayed by the software.
-- Any other details that might be useful.
+- 按照问题模板的内容来填写安装的细节,以便评审者检查。
+- 出现问题的场景 (尽量详细,以便重现问题)。
+- 错误和日志消息。
+- 其它可能有用的细节信息。
-## Submit Proposals for New Features
+## 提交新功能建议
-- There is always something more that is required, to make it easier to suit your use-cases. Feel free to join the discussion on new features or raise a PR with your proposed change.
+- 在适配使用场景时,总会需要一些新的功能。 可以加入新功能的讨论,也可以直接提交新功能的拉取请求。
-- Fork the repository under your own github handle. After cloning the repository. Add, commit, push and sqaush (if necessary) the changes with detailed commit messages to your fork. From where you can proceed to making a pull request.
+- 在自己的 github 账户下 fork 存储库。 在 fork 后, 对于 add, commit, push, 或 squash (如需要) 等改动都需要详细的提交消息。 From where you can proceed to making a pull request.
## Contributing to Source Code and Bug Fixes
From 4a06edd2aa9845189e8ffffad91ffbf09d47146e Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Wed, 2 Jan 2019 12:30:35 +0800
Subject: [PATCH 0102/1573] New translations CONTRIBUTING.md (Chinese
Simplified)
---
zh_CN/docs/CONTRIBUTING.md | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/zh_CN/docs/CONTRIBUTING.md b/zh_CN/docs/CONTRIBUTING.md
index 113e0a3838..07476fa655 100644
--- a/zh_CN/docs/CONTRIBUTING.md
+++ b/zh_CN/docs/CONTRIBUTING.md
@@ -23,22 +23,22 @@
- 在适配使用场景时,总会需要一些新的功能。 可以加入新功能的讨论,也可以直接提交新功能的拉取请求。
-- 在自己的 github 账户下 fork 存储库。 在 fork 后, 对于 add, commit, push, 或 squash (如需要) 等改动都需要详细的提交消息。 From where you can proceed to making a pull request.
+- 在自己的 github 账户下 fork 存储库。 在 fork 后, 对于 add, commit, push, 或 squash (如需要) 等改动都需要详细的提交消息。 然后就可以提交拉去请求了。
-## Contributing to Source Code and Bug Fixes
+## 参与源代码和缺陷修复
-Provide PRs with appropriate tags for bug fixes or enhancements to the source code. Do follow the correct naming conventions and code styles when you work on and do try to implement all code reviews along the way.
+拉去请求需要标记正确的标签,表明是缺陷修复或是改进源代码。 所有代码都需要遵循正确的命名约定和代码风格。
-If you are looking for How to develop and debug the NNI source code, you can refer to [How to set up NNI developer environment doc](./SetupNNIDeveloperEnvironment.md) file in the `docs` folder.
+参考[如何配置 NNI 的开发环境](./SetupNNIDeveloperEnvironment.md),来安装开发环境。
-Similarly for [writing trials](./WriteYourTrial.md) or [starting experiments](StartExperiment.md). For everything else, refer [here](https://github.com/Microsoft/nni/tree/master/docs).
+同样,还需参考 [创建尝试](./WriteYourTrial.md) 或 [开始实验](StartExperiment.md)。 更多内容,可直接浏览[这里](https://github.com/Microsoft/nni/tree/master/docs)。
-## Solve Existing Issues
+## 处理现有问题
-Head over to [issues](https://github.com/Microsoft/nni/issues) to find issues where help is needed from contributors. You can find issues tagged with 'good-first-issue' or 'help-wanted' to contribute in.
+查看[问题列表](https://github.com/Microsoft/nni/issues),来找到需要贡献者的问题。 可以找找有 'good-first-issue' 或 'help-wanted' 标签的来开始贡献。
-A person looking to contribute can take up an issue by claiming it as a comment/assign their Github ID to it. In case there is no PR or update in progress for a week on the said issue, then the issue reopens for anyone to take up again. We need to consider high priority issues/regressions where response time must be a day or so.
+修改问题的注释和指派人来表明此问题已经开始跟进。 如果上述问题在一周内没有拉取请求或更新状态,这个问题会重新开放给所有人。 高优先级的缺陷和回归问题需在一天内响应。
-## Code Styles & Naming Conventions
+## 代码风格和命名约定
-We follow [PEP8](https://www.python.org/dev/peps/pep-0008/) for Python code and naming conventions, do try to adhere to the same when making a pull request or making a change. One can also take the help of linters such as `flake8` or `pylint`
\ No newline at end of file
+NNI 遵循 [PEP8](https://www.python.org/dev/peps/pep-0008/) 的 Python 代码命名约定。在提交拉去请求时,请尽量遵循此规范。 可通过`flake8`或`pylint`的提示工具来帮助遵循规范。
\ No newline at end of file
From c0de102161a159bc88afc98053873056d3fda794 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Wed, 2 Jan 2019 12:34:58 +0800
Subject: [PATCH 0103/1573] New translations CONTRIBUTING.md (Chinese
Simplified)
---
zh_CN/docs/CONTRIBUTING.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/zh_CN/docs/CONTRIBUTING.md b/zh_CN/docs/CONTRIBUTING.md
index 07476fa655..fc399153e9 100644
--- a/zh_CN/docs/CONTRIBUTING.md
+++ b/zh_CN/docs/CONTRIBUTING.md
@@ -35,7 +35,7 @@
## 处理现有问题
-查看[问题列表](https://github.com/Microsoft/nni/issues),来找到需要贡献者的问题。 可以找找有 'good-first-issue' 或 'help-wanted' 标签的来开始贡献。
+查看[问题列表](https://github.com/Microsoft/nni/issues),找到需要贡献的问题。 可以找找有 'good-first-issue' 或 'help-wanted' 标签的来开始贡献。
修改问题的注释和指派人来表明此问题已经开始跟进。 如果上述问题在一周内没有拉取请求或更新状态,这个问题会重新开放给所有人。 高优先级的缺陷和回归问题需在一天内响应。
From 3c74f954598ca814e478aacba01f872931818c43 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Wed, 2 Jan 2019 12:35:09 +0800
Subject: [PATCH 0104/1573] New translations README.md (Chinese Simplified)
---
zh_CN/examples/tuners/ga_customer_tuner/README.md | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/zh_CN/examples/tuners/ga_customer_tuner/README.md b/zh_CN/examples/tuners/ga_customer_tuner/README.md
index 95b9238278..72b7049ee4 100644
--- a/zh_CN/examples/tuners/ga_customer_tuner/README.md
+++ b/zh_CN/examples/tuners/ga_customer_tuner/README.md
@@ -1,10 +1,10 @@
-# How to use ga_customer_tuner?
+# 如何使用 ga_customer_tuner?
-This tuner is a customized tuner which only suitable for trial whose code path is "~/nni/examples/trials/ga_squad", type `cd ~/nni/examples/trials/ga_squad` and check readme.md to get more information for ga_squad trial.
+此定制的调参器仅适用于代码 "~/nni/examples/trials/ga_squad", 输入 `cd ~/nni/examples/trials/ga_squad` 查看 readme.md 来了解 ga_squad 的更多信息。
-# config
+# 配置
-If you want to use ga_customer_tuner in your experiment, you could set config file as following format:
+如果要在实验中使用 ga_customer_tuner 可按照下列格式来配置:
tuner:
codeDir: ~/nni/examples/tuners/ga_customer_tuner
From ae05624945ded02116fcabeb4a9e15a4a7a98ac1 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Wed, 2 Jan 2019 13:31:31 +0800
Subject: [PATCH 0105/1573] New translations AnnotationSpec.md (Chinese
Simplified)
---
zh_CN/docs/AnnotationSpec.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/zh_CN/docs/AnnotationSpec.md b/zh_CN/docs/AnnotationSpec.md
index 3c087665cc..870b5aaa16 100644
--- a/zh_CN/docs/AnnotationSpec.md
+++ b/zh_CN/docs/AnnotationSpec.md
@@ -1,4 +1,4 @@
-# NNI Annotation
+# NNI 标记
For good user experience and reduce user effort, we need to design a good annotation grammar.
From e0f1890c71b30498367f71dd1282d8781e19c0cd Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Wed, 2 Jan 2019 13:41:28 +0800
Subject: [PATCH 0106/1573] New translations AnnotationSpec.md (Chinese
Simplified)
---
zh_CN/docs/AnnotationSpec.md | 22 +++++++++++-----------
1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/zh_CN/docs/AnnotationSpec.md b/zh_CN/docs/AnnotationSpec.md
index 870b5aaa16..d35d3d20ec 100644
--- a/zh_CN/docs/AnnotationSpec.md
+++ b/zh_CN/docs/AnnotationSpec.md
@@ -1,36 +1,36 @@
# NNI 标记
-For good user experience and reduce user effort, we need to design a good annotation grammar.
+为了获得良好的用户体验并减少用户负担,NNI 设计了通过注释来使用的语法。
-If users use NNI system, they only need to:
+使用 NNI 时,只需要:
-1. Use nni.get_next_parameter() to retrieve hyper parameters from Tuner, before using other annotation, use following annotation at the begining of trial code: '''@nni.get_next_parameter()'''
+1. 在使用其它标记前,用 nni.get_next_parameter() 从调参器获得超参: '''@nni.get_next_parameter()'''
-2. Annotation variable in code as:
+2. 在超参变量前加上如下标记:
'''@nni.variable(nni.choice(2,3,5,7),name=self.conv_size)'''
-3. Annotation intermediate in code as:
+3. 在中间结果前加上:
'''@nni.report_intermediate_result(test_acc)'''
-4. Annotation output in code as:
+4. 在输出结果前加上:
'''@nni.report_final_result(test_acc)'''
-5. Annotation `function_choice` in code as:
+5. 在代码中使用函数 `function_choice`:
'''@nni.function_choice(max_pool(h_conv1, self.pool_size),avg_pool(h_conv1, self.pool_size),name=max_pool)'''
-In this way, they can easily implement automatic tuning on NNI.
+通过这种方法,能够轻松的在 NNI 中实现自动调参。
-For `@nni.variable`, `nni.choice` is the type of search space and there are 10 types to express your search space as follows:
+`@nni.variable`, `nni.choice` 为搜索空间的类型,有 10 种方法来表达搜索空间:
1. `@nni.variable(nni.choice(option1,option2,...,optionN),name=variable)`
- Which means the variable value is one of the options, which should be a list The elements of options can themselves be stochastic expressions
+ 变量值是选项中的一种,这些变量可以是任意的表达式。
2. `@nni.variable(nni.randint(upper),name=variable)`
- Which means the variable value is a random integer in the range [0, upper).
+ 变量可以是范围 [0, upper) 中的任意整数。
3. `@nni.variable(nni.uniform(low, high),name=variable)`
Which means the variable value is a value uniformly between low and high.
From ee0622106f3b88401fc3f297c2b52209420ae9e5 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Wed, 2 Jan 2019 13:51:40 +0800
Subject: [PATCH 0107/1573] New translations AnnotationSpec.md (Chinese
Simplified)
---
zh_CN/docs/AnnotationSpec.md | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/zh_CN/docs/AnnotationSpec.md b/zh_CN/docs/AnnotationSpec.md
index d35d3d20ec..4333e8e3c0 100644
--- a/zh_CN/docs/AnnotationSpec.md
+++ b/zh_CN/docs/AnnotationSpec.md
@@ -33,10 +33,10 @@
变量可以是范围 [0, upper) 中的任意整数。
3. `@nni.variable(nni.uniform(low, high),name=variable)`
- Which means the variable value is a value uniformly between low and high.
+ 变量值会是 low 和 high 之间均匀分布的某个值。
-4. `@nni.variable(nni.quniform(low, high, q),name=variable)`
- Which means the variable value is a value like round(uniform(low, high) / q) * q
+4. `@nni.variable(nni.uniform(low, high),name=variable)`
+ 变量值会是 low 和 high 之间均匀分布的某个值,公式为:round(uniform(low, high) / q) * q
5. `@nni.variable(nni.loguniform(low, high),name=variable)`
Which means the variable value is a value drawn according to exp(uniform(low, high)) so that the logarithm of the return value is uniformly distributed.
@@ -52,6 +52,6 @@
9. `@nni.variable(nni.lognormal(label, mu, sigma),name=variable)`
Which means the variable value is a value drawn according to exp(normal(mu, sigma))
-
- 10. `@nni.variable(nni.qlognormal(label, mu, sigma, q),name=variable)`
- Which means the variable value is a value like round(exp(normal(mu, sigma)) / q) * q
\ No newline at end of file
+
+10. `@nni.variable(nni.qlognormal(label, mu, sigma, q),name=variable)`
+ Which means the variable value is a value like round(exp(normal(mu, sigma)) / q) * q
\ No newline at end of file
From 9e12486ace466600030a141a257e497796d003c2 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Wed, 2 Jan 2019 15:21:36 +0800
Subject: [PATCH 0108/1573] New translations AnnotationSpec.md (Chinese
Simplified)
---
zh_CN/docs/AnnotationSpec.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/zh_CN/docs/AnnotationSpec.md b/zh_CN/docs/AnnotationSpec.md
index 4333e8e3c0..8ab7403986 100644
--- a/zh_CN/docs/AnnotationSpec.md
+++ b/zh_CN/docs/AnnotationSpec.md
@@ -24,7 +24,7 @@
通过这种方法,能够轻松的在 NNI 中实现自动调参。
-`@nni.variable`, `nni.choice` 为搜索空间的类型,有 10 种方法来表达搜索空间:
+`@nni.variable`, `nni.choice` 为搜索空间的类型,通过以下 10 种方法来定义搜索空间:
1. `@nni.variable(nni.choice(option1,option2,...,optionN),name=variable)`
变量值是选项中的一种,这些变量可以是任意的表达式。
@@ -39,7 +39,7 @@
变量值会是 low 和 high 之间均匀分布的某个值,公式为:round(uniform(low, high) / q) * q
5. `@nni.variable(nni.loguniform(low, high),name=variable)`
- Which means the variable value is a value drawn according to exp(uniform(low, high)) so that the logarithm of the return value is uniformly distributed.
+ 变量值是 exp(uniform(low, high)) 的点,数值以对数均匀分布。
6. `@nni.variable(nni.qloguniform(low, high, q),name=variable)`
Which means the variable value is a value like round(exp(uniform(low, high)) / q) * q
From fbe5fdfcb6b17c2898fec27998dae84f18fba9cb Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Wed, 2 Jan 2019 15:31:41 +0800
Subject: [PATCH 0109/1573] New translations AnnotationSpec.md (Chinese
Simplified)
---
zh_CN/docs/AnnotationSpec.md | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/zh_CN/docs/AnnotationSpec.md b/zh_CN/docs/AnnotationSpec.md
index 8ab7403986..8d0f94895d 100644
--- a/zh_CN/docs/AnnotationSpec.md
+++ b/zh_CN/docs/AnnotationSpec.md
@@ -35,17 +35,17 @@
3. `@nni.variable(nni.uniform(low, high),name=variable)`
变量值会是 low 和 high 之间均匀分布的某个值。
-4. `@nni.variable(nni.uniform(low, high),name=variable)`
+4. `@nni.variable(nni.quniform(low, high, q),name=variable)`
变量值会是 low 和 high 之间均匀分布的某个值,公式为:round(uniform(low, high) / q) * q
5. `@nni.variable(nni.loguniform(low, high),name=variable)`
变量值是 exp(uniform(low, high)) 的点,数值以对数均匀分布。
6. `@nni.variable(nni.qloguniform(low, high, q),name=variable)`
- Which means the variable value is a value like round(exp(uniform(low, high)) / q) * q
+ 变量值会是 low 和 high 之间均匀分布的某个值,公式为:round(exp(uniform(low, high)) / q) * q
7. `@nni.variable(nni.normal(label, mu, sigma),name=variable)`
- Which means the variable value is a real value that's normally-distributed with mean mu and standard deviation sigma.
+ 变量值为正态分布的实数值,平均值为 mu,标准方差为 sigma。
8. `@nni.variable(nni.qnormal(label, mu, sigma, q),name=variable)`
Which means the variable value is a value like round(normal(mu, sigma) / q) * q
From d431b012e7005ec85806c8679ad3ca90d8f21afa Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Wed, 2 Jan 2019 15:39:34 +0800
Subject: [PATCH 0110/1573] New translations EnableAssessor.md (Chinese
Simplified)
---
zh_CN/docs/EnableAssessor.md | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/zh_CN/docs/EnableAssessor.md b/zh_CN/docs/EnableAssessor.md
index 0fdaaec12a..07bb582b7c 100644
--- a/zh_CN/docs/EnableAssessor.md
+++ b/zh_CN/docs/EnableAssessor.md
@@ -1,10 +1,10 @@
-# **Enable Assessor in your expeirment**
+# **使用评估器**
-Assessor module is for assessing running trials. One common use case is early stopping, which terminates unpromising trial jobs based on their intermediate results.
+评估器模块用于评估正在运行的尝试。 最常用的情况是提前中止尝试。如果尝试的中间结果不够好,则可提前终止。
-## Using NNI built-in Assessor
+## 使用 NNI 内置的评估器
-Here we use the same example `examples/trials/mnist-annotation`. We use `Medianstop` assessor for this experiment. The yaml configure file is shown below:
+以下样例代码在 `examples/trials/mnist-annotation` 目录中。 We use `Medianstop` assessor for this experiment. The yaml configure file is shown below:
authorName: your_name
experimentName: auto_mnist
From 83d68dd986b04beb7e9a5fbffdfb5189ad20d167 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Wed, 2 Jan 2019 15:39:42 +0800
Subject: [PATCH 0111/1573] New translations AnnotationSpec.md (Chinese
Simplified)
---
zh_CN/docs/AnnotationSpec.md | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/zh_CN/docs/AnnotationSpec.md b/zh_CN/docs/AnnotationSpec.md
index 8d0f94895d..b72e6deed0 100644
--- a/zh_CN/docs/AnnotationSpec.md
+++ b/zh_CN/docs/AnnotationSpec.md
@@ -48,10 +48,10 @@
变量值为正态分布的实数值,平均值为 mu,标准方差为 sigma。
8. `@nni.variable(nni.qnormal(label, mu, sigma, q),name=variable)`
- Which means the variable value is a value like round(normal(mu, sigma) / q) * q
+ 变量值分布的公式为: round(normal(mu, sigma) / q) * q
9. `@nni.variable(nni.lognormal(label, mu, sigma),name=variable)`
- Which means the variable value is a value drawn according to exp(normal(mu, sigma))
+ 变量值分布的公式为: exp(normal(mu, sigma))
10. `@nni.variable(nni.qlognormal(label, mu, sigma, q),name=variable)`
- Which means the variable value is a value like round(exp(normal(mu, sigma)) / q) * q
\ No newline at end of file
+ 变量值分布的公式为: round(exp(normal(mu, sigma)) / q) * q
\ No newline at end of file
From 8a71392456ce13fd03ab11ab5e3a0165c18fbc9a Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Wed, 2 Jan 2019 15:41:53 +0800
Subject: [PATCH 0112/1573] New translations EnableAssessor.md (Chinese
Simplified)
---
zh_CN/docs/EnableAssessor.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/zh_CN/docs/EnableAssessor.md b/zh_CN/docs/EnableAssessor.md
index 07bb582b7c..cb478771c1 100644
--- a/zh_CN/docs/EnableAssessor.md
+++ b/zh_CN/docs/EnableAssessor.md
@@ -4,7 +4,7 @@
## 使用 NNI 内置的评估器
-以下样例代码在 `examples/trials/mnist-annotation` 目录中。 We use `Medianstop` assessor for this experiment. The yaml configure file is shown below:
+以下样例代码在 `examples/trials/mnist-annotation` 目录中。 此实验使用了 `Medianstop` 评估器。 yaml 配置文件如下:
authorName: your_name
experimentName: auto_mnist
From b8658d0318b10f5f8e03319ab72609cad8c9d98e Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Wed, 2 Jan 2019 15:51:47 +0800
Subject: [PATCH 0113/1573] New translations EnableAssessor.md (Chinese
Simplified)
---
zh_CN/docs/EnableAssessor.md | 37 ++++++++++++++++++------------------
1 file changed, 18 insertions(+), 19 deletions(-)
diff --git a/zh_CN/docs/EnableAssessor.md b/zh_CN/docs/EnableAssessor.md
index cb478771c1..f9abf3eeff 100644
--- a/zh_CN/docs/EnableAssessor.md
+++ b/zh_CN/docs/EnableAssessor.md
@@ -8,15 +8,15 @@
authorName: your_name
experimentName: auto_mnist
- # how many trials could be concurrently running
+ # 并发运行数量
trialConcurrency: 2
- # maximum experiment running duration
+ # 实验运行时间
maxExecDuration: 3h
- # empty means never stop
+ # 可为空,即数量不限
maxTrialNum: 100
- # choice: local, remote
+ # 可选值为: local, remote
trainingServicePlatform: local
- # choice: true, false
+ # 可选值为: true, false
useAnnotation: true
tuner:
builtinTunerName: TPE
@@ -32,38 +32,37 @@
gpuNum: 0
-For our built-in assessors, you need to fill two fields: `builtinAssessorName` which chooses NNI provided assessors (refer to [here]() for built-in assessors), `optimize_mode` which includes maximize and minimize (you want to maximize or minimize your trial result).
+如使用内置的评估器,需要填写两个字段: `builtinAssessorName`,即所选择的评估器 (参考[这里]()),`optimize_mode` 可选项为 maximize 和 minimize (即需要最大化或最小化的结果)。
-## Using user customized Assessor
+## 使用自定义的评估器
-You can also write your own assessor following the guidance [here](). For example, you wrote an assessor for `examples/trials/mnist-annotation`. You should prepare the yaml configure below:
+可参考[这里](),来自定义评估器。 例如,为样例代码 `examples/trials/mnist-annotation` 写一个定制的评估器。 需要准备如下的 yaml 配置文件:
authorName: your_name
experimentName: auto_mnist
- # how many trials could be concurrently running
+ # 并发运行数量
trialConcurrency: 2
- # maximum experiment running duration
+ # 实验运行时间
maxExecDuration: 3h
- # empty means never stop
+ # 可为空,即数量不限
maxTrialNum: 100
- # choice: local, remote
+ # 可选值为: local, remote
trainingServicePlatform: local
- # choice: true, false
+ # 可选值为: true, false
useAnnotation: true
tuner:
- # Possible values: TPE, Random, Anneal, Evolution
+ # 可选值为: TPE, Random, Anneal, Evolution
builtinTunerName: TPE
classArgs:
optimize_mode: maximize
assessor:
- # Your assessor code directory
+ # 评估器代码目录
codeDir:
- # Name of the file which contains your assessor class
+ # 评估器类的文件名
classFileName:
- # Your assessor class name, must be a subclass of nni.Assessor
+ # 评估器类名,必须继承于 nni.Assessor
className:
- # Parameter names and literal values you want to pass to
- # the __init__ constructor of your assessor class
+ # 参数名和需要输入给评估器 __init__ 构造函数的值。
classArgs:
arg1: value1
gpuNum: 0
From 3068f11ce395ca1b00791c8fc5ed3729e2042ab7 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Wed, 2 Jan 2019 16:56:45 +0800
Subject: [PATCH 0114/1573] New translations EnableAssessor.md (Chinese
Simplified)
---
zh_CN/docs/EnableAssessor.md | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/zh_CN/docs/EnableAssessor.md b/zh_CN/docs/EnableAssessor.md
index f9abf3eeff..49538920f0 100644
--- a/zh_CN/docs/EnableAssessor.md
+++ b/zh_CN/docs/EnableAssessor.md
@@ -72,12 +72,12 @@
gpuNum: 0
-You need to fill: `codeDir`, `classFileName`, `className`, and pass parameters to *\_init__ constructor through `classArgs` field if the *\_init__ constructor of your assessor class has required parameters.
+必填项: `codeDir`, `classFileName`, `className`。如果评估器的 __init__ 构造函数有必填参数,需要用 `classArgs` 传入。
-**Note that** if you want to access a file (e.g., ```data.txt```) in the directory of your own assessor, you cannot use ```open('data.txt', 'r')```. Instead, you should use the following:
+**注意** 如果需要访问 assessor 目录中的文件 (如: ```data.txt```),不能使用 ```open('data.txt', 'r')```。 要使用:
_pwd = os.path.dirname(__file__)
_fd = open(os.path.join(_pwd, 'data.txt'), 'r')
-This is because your assessor is not executed in the directory of your assessor (i.e., ```pwd``` is not the directory of your own assessor).
\ No newline at end of file
+因为评估器不是在其自己的目录中执行的。(也就是说, ```pwd``` 不是评估器自己的目录)。
\ No newline at end of file
From 26c209a55ac7f12f1410440dc453f063420773f6 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Wed, 2 Jan 2019 16:57:35 +0800
Subject: [PATCH 0115/1573] New translations EnableAssessor.md (Chinese
Simplified)
---
zh_CN/docs/EnableAssessor.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/zh_CN/docs/EnableAssessor.md b/zh_CN/docs/EnableAssessor.md
index 49538920f0..27bb1fbf1f 100644
--- a/zh_CN/docs/EnableAssessor.md
+++ b/zh_CN/docs/EnableAssessor.md
@@ -72,7 +72,7 @@
gpuNum: 0
-必填项: `codeDir`, `classFileName`, `className`。如果评估器的 __init__ 构造函数有必填参数,需要用 `classArgs` 传入。
+必填项: `codeDir`, `classFileName`, `className`。如果评估器的 \__init__ 构造函数有必填参数,需要用 `classArgs` 传入。
**注意** 如果需要访问 assessor 目录中的文件 (如: ```data.txt```),不能使用 ```open('data.txt', 'r')```。 要使用:
From 5eb8236efdaef50d99be0d0d18eb274afdb72bf1 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Wed, 2 Jan 2019 16:58:23 +0800
Subject: [PATCH 0116/1573] New translations EnableAssessor.md (Chinese
Simplified)
---
zh_CN/docs/EnableAssessor.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/zh_CN/docs/EnableAssessor.md b/zh_CN/docs/EnableAssessor.md
index 27bb1fbf1f..10c3fe607a 100644
--- a/zh_CN/docs/EnableAssessor.md
+++ b/zh_CN/docs/EnableAssessor.md
@@ -72,7 +72,7 @@
gpuNum: 0
-必填项: `codeDir`, `classFileName`, `className`。如果评估器的 \__init__ 构造函数有必填参数,需要用 `classArgs` 传入。
+必填项: `codeDir`, `classFileName`, `className`。如果评估器的 `__init__` 构造函数有必填参数,需要用 `classArgs` 传入。
**注意** 如果需要访问 assessor 目录中的文件 (如: ```data.txt```),不能使用 ```open('data.txt', 'r')```。 要使用:
@@ -80,4 +80,4 @@
_fd = open(os.path.join(_pwd, 'data.txt'), 'r')
-因为评估器不是在其自己的目录中执行的。(也就是说, ```pwd``` 不是评估器自己的目录)。
\ No newline at end of file
+因为评估器不是在其自己的目录中执行的。(也就是说 ```pwd``` 不是评估器自己的目录)。
\ No newline at end of file
From 325c68f1bd3c5fde325aac3d217a60ad06a7e0d2 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Wed, 2 Jan 2019 17:03:01 +0800
Subject: [PATCH 0117/1573] New translations ExperimentConfig.md (Chinese
Simplified)
---
zh_CN/docs/ExperimentConfig.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/zh_CN/docs/ExperimentConfig.md b/zh_CN/docs/ExperimentConfig.md
index 94b8f7eb54..09d142677d 100644
--- a/zh_CN/docs/ExperimentConfig.md
+++ b/zh_CN/docs/ExperimentConfig.md
@@ -128,8 +128,8 @@
* 说明
- **experimentName** is the name of the experiment created.
- TBD: add default value
+ **experimentName** 是实验的名称。
+ 待实现:增加默认值
* **trialConcurrency**
From edc108f7a93b51929d7fd1748fcdfeb2100c071f Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Wed, 2 Jan 2019 17:04:38 +0800
Subject: [PATCH 0118/1573] New translations ExperimentConfig.md (Chinese
Simplified)
---
zh_CN/docs/ExperimentConfig.md | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/zh_CN/docs/ExperimentConfig.md b/zh_CN/docs/ExperimentConfig.md
index 09d142677d..985663f6c8 100644
--- a/zh_CN/docs/ExperimentConfig.md
+++ b/zh_CN/docs/ExperimentConfig.md
@@ -701,9 +701,9 @@ kubeflow use nfs as storage.
```
-kubeflow use azure storage
+Kubeflow 使用 Azure 存储
- ```
+
authorName: default
experimentName: example_mni
trialConcurrency: 1
@@ -742,5 +742,4 @@ kubeflow use azure storage
name: AzureStorageAccountKey
azureStorage:
accountName: storage
- azureShare: share01
- ```
\ No newline at end of file
+ azureShare: share01
\ No newline at end of file
From 7f02d1c8f0a889ddfec22c7670e3318019db525b Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Wed, 2 Jan 2019 17:12:14 +0800
Subject: [PATCH 0119/1573] New translations ExperimentConfig.md (Chinese
Simplified)
---
zh_CN/docs/ExperimentConfig.md | 54 +++++++++++++++++-----------------
1 file changed, 27 insertions(+), 27 deletions(-)
diff --git a/zh_CN/docs/ExperimentConfig.md b/zh_CN/docs/ExperimentConfig.md
index 985663f6c8..a2b4860d95 100644
--- a/zh_CN/docs/ExperimentConfig.md
+++ b/zh_CN/docs/ExperimentConfig.md
@@ -133,16 +133,16 @@
* **trialConcurrency**
- * Description
+ * 说明
- **trialConcurrency** specifies the max num of trial jobs run simultaneously.
+ **trialConcurrency** 定义了并发尝试任务的最大数量。
- Note: if trialGpuNum is bigger than the free gpu numbers, and the trial jobs running simultaneously can not reach trialConcurrency number, some trial jobs will be put into a queue to wait for gpu allocation.
+ 注意:如果 trialGpuNum 大于空闲的 GPU 数量,并且并发的尝试任务数量还没达到 trialConcurrency,尝试任务会被放入队列,等待分配 GPU 资源。
* **maxExecDuration**
- * Description
+ * 说明
**maxExecDuration** specifies the max duration time of an experiment.The unit of the time is {**s**, **m**, **h**, **d**}, which means {*seconds*, *minutes*, *hours*, *days*}.
@@ -474,13 +474,13 @@
**host** is the host of pai.
-## Examples
+## 样例
-* **local mode**
+* **本机模式**
- If users want to run trial jobs in local machine, and use annotation to generate search space, could use the following config:
+ 如果要在本机运行尝试任务,并使用标记来生成搜索空间,可参考下列配置:
- ```
+
authorName: test
experimentName: test_experiment
trialConcurrency: 3
@@ -501,13 +501,13 @@
command: python3 mnist.py
codeDir: /nni/mnist
gpuNum: 0
- ```
+
- Could add assessor configuration in config file if set assessor.
+ 如果要设置评估器,可以增加评估器配置:
- ```
+
authorName: test
experimentName: test_experiment
trialConcurrency: 3
@@ -536,13 +536,13 @@
command: python3 mnist.py
codeDir: /nni/mnist
gpuNum: 0
- ```
+
- Or you could specify your own tuner and assessor file as following:
+ 或者可以指定自定义的调参器和评估器:
- ```
+
authorName: test
experimentName: test_experiment
trialConcurrency: 3
@@ -573,14 +573,13 @@
command: python3 mnist.py
codeDir: /nni/mnist
gpuNum: 0
- ```
+
-* **remote mode**
+* **远程模式**
-If run trial jobs in remote machine, users could specify the remote mahcine information as fllowing format:
+如果在远程服务器上运行尝试任务,需要增加服务器信息:
- ```
authorName: test
experimentName: test_experiment
trialConcurrency: 3
@@ -618,12 +617,12 @@ If run trial jobs in remote machine, users could specify the remote mahcine info
username: test
sshKeyPath: /nni/sshkey
passphrase: qwert
- ```
+
-* **pai mode**
+* **pai 模式**
- ```
+
authorName: test
experimentName: nni_test1
trialConcurrency: 1
@@ -647,7 +646,7 @@ If run trial jobs in remote machine, users could specify the remote mahcine info
gpuNum: 4
cpuNum: 2
memoryMB: 10000
- # 在 OpenPAI 上用来运行 NNI 作业的 docker 映像
+ # 在 OpenPAI 上用来运行 Nni 作业的 docker 映像
image: msranni/nni:latest
# 在 OpenPAI 的 hdfs 上存储数据的目录,如:'hdfs://host:port/directory'
dataDir: hdfs://10.11.12.13:9000/test
@@ -658,16 +657,17 @@ If run trial jobs in remote machine, users could specify the remote mahcine info
userName: test
# OpenPAI 密码
passWord: test
- # OpenPAI 服务器 IP
+ # OpenPAI 服务器 Ip
host: 10.10.10.10
+
-* **kubeflow mode**
+* **Kubeflow 模式**
-kubeflow use nfs as storage.
+Kubeflow 使用 NFS 作为存储。
- ```
+
authorName: default
experimentName: example_mni
trialConcurrency: 1
@@ -698,7 +698,7 @@ kubeflow use nfs as storage.
nfs:
server: 10.10.10.10
path: /var/nfs/general
- ```
+
Kubeflow 使用 Azure 存储
From de10fe2c64cedd3154e64336ca23144649fda115 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Wed, 2 Jan 2019 17:20:13 +0800
Subject: [PATCH 0120/1573] New translations ExperimentConfig.md (Chinese
Simplified)
---
zh_CN/docs/ExperimentConfig.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/zh_CN/docs/ExperimentConfig.md b/zh_CN/docs/ExperimentConfig.md
index a2b4860d95..1809fdbcff 100644
--- a/zh_CN/docs/ExperimentConfig.md
+++ b/zh_CN/docs/ExperimentConfig.md
@@ -622,7 +622,7 @@
* **pai 模式**
-
+ ```
authorName: test
experimentName: nni_test1
trialConcurrency: 1
@@ -659,7 +659,7 @@
passWord: test
# OpenPAI 服务器 Ip
host: 10.10.10.10
-
+ ```
From 9ff594045fd2cd2e8c08e9dc0f2d8233ec72b089 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Wed, 2 Jan 2019 17:21:43 +0800
Subject: [PATCH 0121/1573] New translations ExperimentConfig.md (Chinese
Simplified)
---
zh_CN/docs/ExperimentConfig.md | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/zh_CN/docs/ExperimentConfig.md b/zh_CN/docs/ExperimentConfig.md
index 1809fdbcff..961a1c7109 100644
--- a/zh_CN/docs/ExperimentConfig.md
+++ b/zh_CN/docs/ExperimentConfig.md
@@ -480,7 +480,7 @@
如果要在本机运行尝试任务,并使用标记来生成搜索空间,可参考下列配置:
-
+ ```
authorName: test
experimentName: test_experiment
trialConcurrency: 3
@@ -501,13 +501,14 @@
command: python3 mnist.py
codeDir: /nni/mnist
gpuNum: 0
+ ```
如果要设置评估器,可以增加评估器配置:
-
+ ```
authorName: test
experimentName: test_experiment
trialConcurrency: 3
@@ -536,13 +537,13 @@
command: python3 mnist.py
codeDir: /nni/mnist
gpuNum: 0
-
+ ```
或者可以指定自定义的调参器和评估器:
-
+ ```
authorName: test
experimentName: test_experiment
trialConcurrency: 3
@@ -573,7 +574,7 @@
command: python3 mnist.py
codeDir: /nni/mnist
gpuNum: 0
-
+ ```
* **远程模式**
From 4aa49572895b3257dc5b390cb3e74d632402b6de Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Wed, 2 Jan 2019 17:41:54 +0800
Subject: [PATCH 0122/1573] New translations ExperimentConfig.md (Chinese
Simplified)
---
zh_CN/docs/ExperimentConfig.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/zh_CN/docs/ExperimentConfig.md b/zh_CN/docs/ExperimentConfig.md
index 961a1c7109..0dbc6e2559 100644
--- a/zh_CN/docs/ExperimentConfig.md
+++ b/zh_CN/docs/ExperimentConfig.md
@@ -144,7 +144,7 @@
* 说明
- **maxExecDuration** specifies the max duration time of an experiment.The unit of the time is {**s**, **m**, **h**, **d**}, which means {*seconds*, *minutes*, *hours*, *days*}.
+ **maxExecDuration** 定义实验执行的最长时间。时间单位:{**s**, **m**, **h**, **d**},分别代表:{*seconds*, *minutes*, *hours*, *days*}。
* **maxTrialNum**
From 7633ad8552f5653f7b7046c8c2049627a634e948 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Wed, 2 Jan 2019 17:55:47 +0800
Subject: [PATCH 0123/1573] New translations ExperimentConfig.md (Chinese
Simplified)
---
zh_CN/docs/ExperimentConfig.md | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/zh_CN/docs/ExperimentConfig.md b/zh_CN/docs/ExperimentConfig.md
index 0dbc6e2559..a72829ca02 100644
--- a/zh_CN/docs/ExperimentConfig.md
+++ b/zh_CN/docs/ExperimentConfig.md
@@ -148,17 +148,17 @@
* **maxTrialNum**
- * Description
+ * 说明
- **maxTrialNum** specifies the max number of trial jobs created by nni, including succeeded and failed jobs.
+ **maxTrialNum** 定义了尝试任务的最大数量,成功和失败的都计算在内。
* **trainingServicePlatform**
- * Description
+ * 说明
- **trainingServicePlatform** specifies the platform to run the experiment, including {**local**, **remote**, **pai**, **kubeflow**}.
+ **trainingServicePlatform** 定义运行实验的平台,包括:{**local**, **remote**, **pai**, **kubeflow**}.
- * **local** run an experiment on local ubuntu machine.
+ * **local** 在本机的 ubuntu 上运行实验。
* **remote** submit trial jobs to remote ubuntu machines, and **machineList** field should be filed in order to set up SSH connection to remote machine.
From 3f0ebda8f76f7330e13eb5e05a93b5c8fbb189c3 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Wed, 2 Jan 2019 18:02:00 +0800
Subject: [PATCH 0124/1573] New translations ExperimentConfig.md (Chinese
Simplified)
---
zh_CN/docs/ExperimentConfig.md | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/zh_CN/docs/ExperimentConfig.md b/zh_CN/docs/ExperimentConfig.md
index a72829ca02..7c6084b304 100644
--- a/zh_CN/docs/ExperimentConfig.md
+++ b/zh_CN/docs/ExperimentConfig.md
@@ -160,15 +160,15 @@
* **local** 在本机的 ubuntu 上运行实验。
- * **remote** submit trial jobs to remote ubuntu machines, and **machineList** field should be filed in order to set up SSH connection to remote machine.
+ * **remote** 将任务提交到远程的 ubuntu 上,必须用 **machineList** 来指定远程的 SSH 连接信息。
- * **pai** submit trial jobs to [OpenPai](https://github.com/Microsoft/pai) of Microsoft. For more details of pai configuration, please reference [PAIMOdeDoc](./PAIMode.md)
+ * **pai** 提交任务到微软开源的 [OpenPAI](https://github.com/Microsoft/pai) 上。 更多 OpenPAI 配置,参考 [pai 模式](./PAIMode.md)。
- * **kubeflow** submit trial jobs to [kubeflow](https://www.kubeflow.org/docs/about/kubeflow/), nni support kubeflow based on normal kubernetes and [azure kubernetes](https://azure.microsoft.com/en-us/services/kubernetes-service/).
+ * **kubeflow** 提交任务至 [Kubeflow](https://www.kubeflow.org/docs/about/kubeflow/)。 NNI 支持基于 Kubeflow 的 Kubenetes,以及[Azure Kubernetes](https://azure.microsoft.com/en-us/services/kubernetes-service/)。
* **searchSpacePath**
- * Description
+ * 说明
**searchSpacePath** specifies the path of search space file, which should be a valid path in the local linux machine.
From 25c8e82f2643ef97ed8cd5c4a54acce030a3b413 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Wed, 2 Jan 2019 18:12:20 +0800
Subject: [PATCH 0125/1573] New translations ExperimentConfig.md (Chinese
Simplified)
---
zh_CN/docs/ExperimentConfig.md | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/zh_CN/docs/ExperimentConfig.md b/zh_CN/docs/ExperimentConfig.md
index 7c6084b304..66d794c2ab 100644
--- a/zh_CN/docs/ExperimentConfig.md
+++ b/zh_CN/docs/ExperimentConfig.md
@@ -170,34 +170,34 @@
* 说明
- **searchSpacePath** specifies the path of search space file, which should be a valid path in the local linux machine.
+ **searchSpacePath** 定义搜索空间文件的路径,此文件必须在运行 nnictl 的本机。
- Note: if set useAnnotation=True, the searchSpacePath field should be removed.
+ 注意: 如果设置了 useAnnotation=True,searchSpacePath 字段必须被删除。
* **useAnnotation**
- * Description
+ * 说明
- **useAnnotation** use annotation to analysis trial code and generate search space.
+ **useAnnotation** 定义使用标记来分析代码并生成搜索空间。
- Note: if set useAnnotation=True, the searchSpacePath field should be removed.
+ 注意: 如果设置了 useAnnotation=True,searchSpacePath 字段必须被删除。
* **nniManagerIp**
- * Description
+ * 说明
- **nniManagerIp** set the IP address of the machine on which nni manager process runs. This field is optional, and if it's not set, eth0 device IP will be used instead.
+ **nniManagerIp** 设置 NNI 管理器运行的 IP 地址。 此字段为可选项,如果没有设置,则会使用 eth0 的 IP 地址。
- Note: run ifconfig on NNI manager's machine to check if eth0 device exists. If not, we recommend to set nnimanagerIp explicitly.
+ 注意: 可在 NNI 管理器机器上运行 ifconfig 来检查 eth0 是否存在。 如果不存在,推荐显式设置 nnimanagerIp。
* **tuner**
- * Description
+ * 说明
- **tuner** specifies the tuner algorithm in the experiment, there are two kinds of ways to set tuner. One way is to use tuner provided by nni sdk, need to set **builtinTunerName** and **classArgs**. Another way is to use users' own tuner file, and need to set **codeDirectory**, **classFileName**, **className** and **classArgs**.
+ **tuner** 指定了实验的调参器算法。有两种方法可设置调参器。 一种方法是使用 NNI SDK 提供的调参器,需要设置 **builtinTunerName** 和 **classArgs**。 Another way is to use users' own tuner file, and need to set **codeDirectory**, **classFileName**, **className** and **classArgs**.
* **builtinTunerName** and **classArgs**
From cb09670b588f2fd9e7057fb668013ee66663ba88 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Wed, 2 Jan 2019 18:16:27 +0800
Subject: [PATCH 0126/1573] New translations ExperimentConfig.md (Chinese
Simplified)
---
zh_CN/docs/ExperimentConfig.md | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/zh_CN/docs/ExperimentConfig.md b/zh_CN/docs/ExperimentConfig.md
index 66d794c2ab..5e8a2a9c1c 100644
--- a/zh_CN/docs/ExperimentConfig.md
+++ b/zh_CN/docs/ExperimentConfig.md
@@ -197,19 +197,20 @@
* 说明
- **tuner** 指定了实验的调参器算法。有两种方法可设置调参器。 一种方法是使用 NNI SDK 提供的调参器,需要设置 **builtinTunerName** 和 **classArgs**。 Another way is to use users' own tuner file, and need to set **codeDirectory**, **classFileName**, **className** and **classArgs**.
+ **tuner** 指定了实验的调参器算法。有两种方法可设置调参器。 一种方法是使用 NNI SDK 提供的调参器,需要设置 **builtinTunerName** 和 **classArgs**。 另一种方法,是使用用户自定义的调参器,需要设置 **codeDirectory**,**classFileName**,**className** 和 **classArgs**。
- * **builtinTunerName** and **classArgs**
+ * **builtinTunerName** 和 **classArgs**
* **builtinTunerName**
- **builtinTunerName** specifies the name of system tuner, nni sdk provides four kinds of tuner, including {**TPE**, **Random**, **Anneal**, **Evolution**, **BatchTuner**, **GridSearch**}
+ **builtinTunerName** 指定了系统调参器的名字,NNI SDK 提供了多种调参器,如:{**TPE**, **Random**, **Anneal**, **Evolution**, **BatchTuner**, **GridSearch**}。
* **classArgs**
- **classArgs** specifies the arguments of tuner algorithm. If the **builtinTunerName** is in {**TPE**, **Random**, **Anneal**, **Evolution**}, user should set **optimize_mode**.
+ **classArgs** 指定了调参器算法的参数。 如果 **builtinTunerName** 是{**TPE**, **Random**, **Anneal**, **Evolution**},用户需要设置 **optimize_mode**。
- * **codeDir**, **classFileName**, **className** and **classArgs** * **codeDir**
+ * **codeDir**, **classFileName**, **className** 和**classArgs**
+ * **codeDir**
**codeDir** specifies the directory of tuner code.
From 50a0f786046a6ad0d5ae725155f7dbbdb7bd66d6 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Wed, 2 Jan 2019 18:20:38 +0800
Subject: [PATCH 0127/1573] New translations ExperimentConfig.md (Chinese
Simplified)
---
zh_CN/docs/ExperimentConfig.md | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/zh_CN/docs/ExperimentConfig.md b/zh_CN/docs/ExperimentConfig.md
index 5e8a2a9c1c..1a2efd3150 100644
--- a/zh_CN/docs/ExperimentConfig.md
+++ b/zh_CN/docs/ExperimentConfig.md
@@ -212,24 +212,24 @@
* **codeDir**, **classFileName**, **className** 和**classArgs**
* **codeDir**
- **codeDir** specifies the directory of tuner code.
+ **codeDir** 指定调参器代码的目录。
* __classFileName__
- **classFileName** specifies the name of tuner file.
+ **classFileName** 指定调参器文件名。
* **className**
- **className** specifies the name of tuner class.
+ **className** 指定调参器类名。
* **classArgs**
- **classArgs** specifies the arguments of tuner algorithm.
+ **classArgs** 指定了调参器算法的参数。
* **gpuNum**
- **gpuNum** specifies the gpu number to run the tuner process. The value of this field should be a positive number.
+ **gpuNum** 指定了运行调参器进程的 GPU 数量。 此字段的值必须是正整数。
Note: users could only specify one way to set tuner, for example, set {tunerName, optimizationMode} or {tunerCommand, tunerCwd}, and could not set them both.
From 8d29e2a16670f542da280443de1a05822e70f81b Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Wed, 2 Jan 2019 18:22:45 +0800
Subject: [PATCH 0128/1573] New translations ExperimentConfig.md (Chinese
Simplified)
---
zh_CN/docs/ExperimentConfig.md | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/zh_CN/docs/ExperimentConfig.md b/zh_CN/docs/ExperimentConfig.md
index 1a2efd3150..c5a3aa96fd 100644
--- a/zh_CN/docs/ExperimentConfig.md
+++ b/zh_CN/docs/ExperimentConfig.md
@@ -231,14 +231,14 @@
**gpuNum** 指定了运行调参器进程的 GPU 数量。 此字段的值必须是正整数。
- Note: users could only specify one way to set tuner, for example, set {tunerName, optimizationMode} or {tunerCommand, tunerCwd}, and could not set them both.
+ 注意: 只能使用一种方法来指定调参器,例如:设置{tunerName, optimizationMode} 或 {tunerCommand, tunerCwd},不能同时设置。
* **assessor**
- * Description
+ * 说明
- **assessor** specifies the assessor algorithm to run an experiment, there are two kinds of ways to set assessor. One way is to use assessor provided by nni sdk, users need to set **builtinAssessorName** and **classArgs**. Another way is to use users' own tuner file, and need to set **codeDirectory**, **classFileName**, **className** and **classArgs**.
+ **assessor** 指定了实验的评估器算法。有两种方法可设置评估器。 一种方法是使用 NNI SDK 提供的评估器,需要设置 **builtinAssessorName** 和 **classArgs**。 Another way is to use users' own tuner file, and need to set **codeDirectory**, **classFileName**, **className** and **classArgs**.
* **builtinAssessorName** and **classArgs**
From e9aabc723f4e70cf1e7d54d67f9557dd5fa75a43 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Wed, 2 Jan 2019 18:34:10 +0800
Subject: [PATCH 0129/1573] New translations ExperimentConfig.md (Chinese
Simplified)
---
zh_CN/docs/ExperimentConfig.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/zh_CN/docs/ExperimentConfig.md b/zh_CN/docs/ExperimentConfig.md
index c5a3aa96fd..3137981e38 100644
--- a/zh_CN/docs/ExperimentConfig.md
+++ b/zh_CN/docs/ExperimentConfig.md
@@ -238,7 +238,7 @@
* 说明
- **assessor** 指定了实验的评估器算法。有两种方法可设置评估器。 一种方法是使用 NNI SDK 提供的评估器,需要设置 **builtinAssessorName** 和 **classArgs**。 Another way is to use users' own tuner file, and need to set **codeDirectory**, **classFileName**, **className** and **classArgs**.
+ **assessor** 指定了实验的评估器算法。有两种方法可设置评估器。 一种方法是使用 NNI SDK 提供的评估器,需要设置 **builtinAssessorName** 和 **classArgs**。 另一种方法,是使用用户自定义的评估器,需要设置 **codeDirectory**,**classFileName**,**className** 和 **classArgs**。
* **builtinAssessorName** and **classArgs**
From fb8d24c2076461aebcaa54ed44937a324fa69a8a Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Wed, 2 Jan 2019 18:42:06 +0800
Subject: [PATCH 0130/1573] New translations ExperimentConfig.md (Chinese
Simplified)
---
zh_CN/docs/ExperimentConfig.md | 47 +++++++++++++++++-----------------
1 file changed, 24 insertions(+), 23 deletions(-)
diff --git a/zh_CN/docs/ExperimentConfig.md b/zh_CN/docs/ExperimentConfig.md
index 3137981e38..709d762cf1 100644
--- a/zh_CN/docs/ExperimentConfig.md
+++ b/zh_CN/docs/ExperimentConfig.md
@@ -240,89 +240,90 @@
**assessor** 指定了实验的评估器算法。有两种方法可设置评估器。 一种方法是使用 NNI SDK 提供的评估器,需要设置 **builtinAssessorName** 和 **classArgs**。 另一种方法,是使用用户自定义的评估器,需要设置 **codeDirectory**,**classFileName**,**className** 和 **classArgs**。
- * **builtinAssessorName** and **classArgs**
+ * **builtinAssessorName** 和 **classArgs**
* **builtinAssessorName**
- **builtinAssessorName** specifies the name of system assessor, nni sdk provides four kinds of tuner, including {**TPE**, **Random**, **Anneal**, **Evolution**}
+ **builtinAssessorName** 指定了系统评估器的名字,NNI SDK 提供了一种评估器:{**Medianstop**}。
* **classArgs**
- **classArgs** specifies the arguments of tuner algorithm
+ **classArgs** 指定了评估器算法的参数。
- * **codeDir**, **classFileName**, **className** and **classArgs** * **codeDir**
+ * **codeDir**, **classFileName**, **className** and **classArgs**
+ * **codeDir**
- **codeDir** specifies the directory of tuner code.
+ **codeDir** 指定评估器代码的目录。
* __classFileName__
- **classFileName** specifies the name of tuner file.
+ **classFileName** 指定评估器文件名。
* **className**
- **className** specifies the name of tuner class.
+ **className** 指定评估器类名。
* **classArgs**
- **classArgs** specifies the arguments of tuner algorithm.
+ **classArgs** 指定了评估器算法的参数。
* **gpuNum**
- **gpuNum** specifies the gpu number to run the assessor process. The value of this field should be a positive number.
+ **gpuNum** 指定了运行评估器进程的 GPU 数量。 此字段的值必须是正整数。
- Note: users' could only specify one way to set assessor, for example,set {assessorName, optimizationMode} or {assessorCommand, assessorCwd}, and users could not set them both.If users do not want to use assessor, assessor fileld should leave to empty.
+ 注意: 只能使用一种方法来指定评估器,例如:设置 {assessorName, optimizationMode} 或 {assessorCommand, assessorCwd},不能同时设置。如果不需要使用评估器,可将其置为空。
-* **trial(local, remote)**
+* **trial (local, remote)**
* **command**
- __command__ specifies the command to run trial process.
+ __command__ 指定了尝试进程的命令行。
* **codeDir**
- **codeDir** specifies the directory of your own trial file.
+ **codeDir** 指定了尝试代码文件的目录。
* **gpuNum**
- **gpuNum** specifies the num of gpu to run the trial process. Default value is 0.
+ **gpuNum** 指定了运行尝试进程的 GPU 数量。 默认值为 0。
-* **trial(pai)**
+* **trial (pai)**
* **command**
- __command__ specifies the command to run trial process.
+ __command__ 指定了尝试进程的命令行。
* **codeDir**
- **codeDir** specifies the directory of the own trial file.
+ **codeDir** 指定了尝试代码文件的目录。
* **gpuNum**
- **gpuNum** specifies the num of gpu to run the trial process. Default value is 0.
+ **gpuNum** 指定了运行尝试进程的 GPU 数量。 默认值为 0。
* **cpuNum**
- **cpuNum** is the cpu number of cpu to be used in pai container.
+ **cpuNum** 指定了 OpenPAI 容器中使用的 CPU 数量。
* **memoryMB**
- **memoryMB** set the momory size to be used in pai's container.
+ **memoryMB** 指定了 OpenPAI 容器中使用的内存数量。
* **image**
- **image** set the image to be used in pai.
+ **image** 指定了 OpenPAI 中使用的 docker 映像。
* **dataDir**
- **dataDir** is the data directory in hdfs to be used.
+ **dataDir** 是 HDFS 中用到的数据目录变量。
* **outputDir**
- **outputDir** is the output directory in hdfs to be used in pai, the stdout and stderr files are stored in the directory after job finished.
+ **outputDir** 是 HDFS 中用到的输出目录变量。在 OpenPAI 中,stdout 和 stderr 文件会在作业完成后,存放在此目录中。
* **trial(kubeflow)**
From 41b4ba908ea06fe7c2fd7039d4191e38d04181f9 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Wed, 2 Jan 2019 18:55:10 +0800
Subject: [PATCH 0131/1573] New translations ExperimentConfig.md (Chinese
Simplified)
---
zh_CN/docs/ExperimentConfig.md | 36 +++++++++++++++++-----------------
1 file changed, 18 insertions(+), 18 deletions(-)
diff --git a/zh_CN/docs/ExperimentConfig.md b/zh_CN/docs/ExperimentConfig.md
index 709d762cf1..629fe80853 100644
--- a/zh_CN/docs/ExperimentConfig.md
+++ b/zh_CN/docs/ExperimentConfig.md
@@ -325,71 +325,71 @@
**outputDir** 是 HDFS 中用到的输出目录变量。在 OpenPAI 中,stdout 和 stderr 文件会在作业完成后,存放在此目录中。
-* **trial(kubeflow)**
+* **trial (kubeflow)**
* **codeDir**
- **codeDir** is the local directory where the code files in.
+ **codeDir** 指定了代码文件的本机路径。
- * **ps(optional)**
+ * **ps (可选)**
- **ps** is the configuration for kubeflow's tensorflow-operator.
+ **ps** 是 Kubeflow 的 Tensorflow-operator 配置。
* **replicas**
- **replicas** is the replica number of **ps** role.
+ **replicas** 是 **ps** 角色的副本数量。
* **command**
- **command** is the run script in **ps**'s container.
+ **command** 是在 **ps** 的容器中运行的脚本命令。
* **gpuNum**
- **gpuNum** set the gpu number to be used in **ps** container.
+ **gpuNum** 是在 **ps** 容器中使用的 GPU 数量。
* **cpuNum**
- **cpuNum** set the cpu number to be used in **ps** container.
+ **cpuNum** 是在 **ps** 容器中使用的 CPU 数量。
* **memoryMB**
- **memoryMB** set the memory size of the container.
+ **memoryMB** 指定了容器中使用的内存数量。
* **image**
- **iamge** set the image to be used in **ps**.
+ **iamge** 设置了 **ps** 使用的 docker 映像。
* **worker**
- **worker** is the configuration for kubeflow's tensorflow-operator.
+ **worker** 是 Kubeflow 的 Tensorflow-operator 配置。
* **replicas**
- **replicas** is the replica number of **worker** role.
+ **replicas** 是 **worker** 角色的副本数量。
* **command**
- **command** is the run script in **worker**'s container.
+ **command** 是在 **worker** 的容器中运行的脚本命令。
* **gpuNum**
- **gpuNum** set the gpu number to be used in **worker** container.
+ **gpuNum** 是在 **worker** 容器中使用的 GPU 数量。
* **cpuNum**
- **cpuNum** set the cpu number to be used in **worker** container.
+ **cpuNum** 是在 **worker** 容器中使用的 CPU 数量。
* **memoryMB**
- **memoryMB** set the memory size of the container.
+ **memoryMB** 指定了容器中使用的内存数量。
* **image**
- **iamge** set the image to be used in **worker**.
+ **iamge** 设置了 **worker** 使用的 docker 映像。
* **machineList**
- __machineList__ should be set if users set __trainingServicePlatform__=remote, or it could be empty.
+ __machineList__ 要在 __trainingServicePlatform__=remote 时设置,否则其应为空。
* **ip**
From 777819aa90e786b921380bda5dc3ffbd98852b85 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Wed, 2 Jan 2019 19:02:12 +0800
Subject: [PATCH 0132/1573] New translations ExperimentConfig.md (Chinese
Simplified)
---
zh_CN/docs/ExperimentConfig.md | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/zh_CN/docs/ExperimentConfig.md b/zh_CN/docs/ExperimentConfig.md
index 629fe80853..9305aab563 100644
--- a/zh_CN/docs/ExperimentConfig.md
+++ b/zh_CN/docs/ExperimentConfig.md
@@ -394,28 +394,28 @@
* **ip**
- **ip** is the ip address of remote machine.
+ **ip** 是远程计算机的 ip 地址。
* **port**
- **port** is the ssh port to be used to connect machine.
+ **端口** 是用于连接远程计算机的 ssh 端口。
- Note: if users set port empty, the default value will be 22.
+ 注意:如果 port 设为空,则为默认值 22。
* **username**
- **username** is the account of remote machine.
+ **username** 是远程计算机的用户名。
* **passwd**
- **passwd** specifies the password of the account.
+ **passwd** 指定了账户的密码。
* **sshKeyPath**
- If users use ssh key to login remote machine, could set **sshKeyPath** in config file. **sshKeyPath** is the path of ssh key file, which should be valid.
+ 如果要使用 ssh 密钥登录远程计算机,则需要设置 **sshKeyPath**。 **sshKeyPath** 为有效的 ssh 密钥文件路径。
- Note: if users set passwd and sshKeyPath simultaneously, nni will try passwd.
+ 注意:如果同时设置了 passwd 和 sshKeyPath,NNI 会使用 passwd。
* **passphrase**
From d7f84f73955cd4ef6f10ceb6698abf53f3fe50ec Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Wed, 2 Jan 2019 19:22:21 +0800
Subject: [PATCH 0133/1573] New translations ExperimentConfig.md (Chinese
Simplified)
---
zh_CN/docs/ExperimentConfig.md | 28 ++++++++++++++--------------
1 file changed, 14 insertions(+), 14 deletions(-)
diff --git a/zh_CN/docs/ExperimentConfig.md b/zh_CN/docs/ExperimentConfig.md
index 9305aab563..f532a446e2 100644
--- a/zh_CN/docs/ExperimentConfig.md
+++ b/zh_CN/docs/ExperimentConfig.md
@@ -420,61 +420,61 @@
* **passphrase**
- **passphrase** is used to protect ssh key, which could be empty if users don't have passphrase.
+ **passphrase** 用于保护 ssh 密钥,如果没有使用,可为空。
* **kubeflowConfig**:
* **operator**
- **operator** specify the kubeflow's operator to be used, nni support **tf-operator** in current version.
+ **operator** 指定了 kubeflow 使用的 operator,NNI 当前版本支持 **tf-operator**。
* **storage**
- **storage** specify the storage type of kubeflow, including {**nfs**, **azureStorage**}. This field is optional, and the default value is **nfs**. If the config use azureStorage, this field must be completed.
+ **storage** 指定了 kubeflow 的存储类型,包括 {**nfs**,**azureStorage**}。 此字段可选,默认值为 **nfs**。 如果使用了 azureStorage,此字段必须填写。
* **nfs**
- **server** is the host of nfs server
+ **server** 是 NFS 服务器的地址
- **path** is the mounted path of nfs
+ **path** 是 NFS 挂载的路径
* **keyVault**
- If users want to use azure kubernetes service, they should set keyVault to storage the private key of your azure storage account. Refer: https://docs.microsoft.com/en-us/azure/key-vault/key-vault-manage-with-cli2
+ 如果用户使用 Azure Kubernetes Service,需要设置 keyVault 来使用 Azure 存储账户的私钥。 参考: https://docs.microsoft.com/en-us/azure/key-vault/key-vault-manage-with-cli2
* **vaultName**
- **vaultName** is the value of ```--vault-name``` used in az command.
+ **vaultName** 是 az 命令中的 ```--vault-name``` 。
* **name**
- **name** is the value of ```--name``` used in az command.
+ **name** 是 az 命令中的 ```--name``` 。
* **azureStorage**
- If users use azure kubernetes service, they should set azure storage account to store code files.
+ 如果用户使用了 Azure Kubernetes Service,需要设置 Azure 存储账户来存放代码文件。
* **accountName**
- **accountName** is the name of azure storage account.
+ **accountName** 是 Azure 存储账户的名称。
* **azureShare**
- **azureShare** is the share of the azure file storage.
+ **azureShare** 是 Azure 文件存储的共享参数。
* **paiConfig**
* **userName**
- **userName** is the user name of your pai account.
+ **userName** 是 OpenPAI 的用户名。
* **password**
- **password** is the password of the pai account.
+ **password** 是 OpenPAI 用户的密码。
* **host**
- **host** is the host of pai.
+ **host** 是 OpenPAI 的主机地址。
## 样例
From e6ebd6e7e5a23dd90b9c95085a471104e263882e Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Wed, 2 Jan 2019 19:22:22 +0800
Subject: [PATCH 0134/1573] New translations FAQ.md (Chinese Simplified)
---
zh_CN/docs/FAQ.md | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/zh_CN/docs/FAQ.md b/zh_CN/docs/FAQ.md
index 42d1b1e563..2779455aaa 100644
--- a/zh_CN/docs/FAQ.md
+++ b/zh_CN/docs/FAQ.md
@@ -1,12 +1,12 @@
-This page is for frequent asked questions and answers.
+此页为常见问题
-### tmp folder fulled
+### tmp 目录没空间了
-nnictl will use tmp folder as a temporary folder to copy files under codeDir when executing experimentation creation. When met errors like below, try to clean up **tmp** folder first.
+nnictl 在执行时,使用 tmp 目录作为临时目录来复制 codeDir 下的文件。 当遇到下列错误时,先试试清空 **tmp** 目录。
> OSError: [Errno 28] No space left on device
-### Cannot get trials' metrics in OpenPAI mode
+### OpenPAI 模式下无法获得尝试的数据
In OpenPAI training mode, we start a rest server which listens on 51189 port in nniManager to receive metrcis reported from trials running in OpenPAI cluster. If you didn't see any metrics from WebUI in OpenPAI mode, check your machine where nniManager runs on to make sure 51189 port is turned on in the firewall rule.
From 0b9d434ba713f7b68c9088cf5e5fa790ae6ffd08 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Thu, 3 Jan 2019 10:44:41 +0800
Subject: [PATCH 0135/1573] New translations ExperimentConfig.md (Chinese
Simplified)
---
zh_CN/docs/ExperimentConfig.md | 136 +++++++++++++++++----------------
1 file changed, 71 insertions(+), 65 deletions(-)
diff --git a/zh_CN/docs/ExperimentConfig.md b/zh_CN/docs/ExperimentConfig.md
index f532a446e2..5e064cac17 100644
--- a/zh_CN/docs/ExperimentConfig.md
+++ b/zh_CN/docs/ExperimentConfig.md
@@ -135,9 +135,9 @@
* 说明
- **trialConcurrency** 定义了并发尝试任务的最大数量。
-
- 注意:如果 trialGpuNum 大于空闲的 GPU 数量,并且并发的尝试任务数量还没达到 trialConcurrency,尝试任务会被放入队列,等待分配 GPU 资源。
+ __trialConcurrency__ specifies the max num of trial jobs run simultaneously.
+
+ Note: if trialGpuNum is bigger than the free gpu numbers, and the trial jobs running simultaneously can not reach trialConcurrency number, some trial jobs will be put into a queue to wait for gpu allocation.
* **maxExecDuration**
@@ -170,9 +170,9 @@
* 说明
- **searchSpacePath** 定义搜索空间文件的路径,此文件必须在运行 nnictl 的本机。
-
- 注意: 如果设置了 useAnnotation=True,searchSpacePath 字段必须被删除。
+ __searchSpacePath__ specifies the path of search space file, which should be a valid path in the local linux machine.
+
+ Note: if set useAnnotation=True, the searchSpacePath field should be removed.
* **useAnnotation**
@@ -181,8 +181,7 @@
**useAnnotation** 定义使用标记来分析代码并生成搜索空间。
- 注意: 如果设置了 useAnnotation=True,searchSpacePath 字段必须被删除。
-
+ Note: if set useAnnotation=True, the searchSpacePath field should be removed.
* **nniManagerIp**
@@ -190,8 +189,7 @@
**nniManagerIp** 设置 NNI 管理器运行的 IP 地址。 此字段为可选项,如果没有设置,则会使用 eth0 的 IP 地址。
- 注意: 可在 NNI 管理器机器上运行 ifconfig 来检查 eth0 是否存在。 如果不存在,推荐显式设置 nnimanagerIp。
-
+ Note: run ifconfig on NNI manager's machine to check if eth0 device exists. If not, we recommend to set nnimanagerIp explicitly.
* **tuner**
@@ -209,71 +207,81 @@
**classArgs** 指定了调参器算法的参数。 如果 **builtinTunerName** 是{**TPE**, **Random**, **Anneal**, **Evolution**},用户需要设置 **optimize_mode**。
- * **codeDir**, **classFileName**, **className** 和**classArgs**
- * **codeDir**
+ * **codeDir**, **classFileName**, **className** and **classArgs**
- **codeDir** 指定调参器代码的目录。
-
- * __classFileName__
-
+ * **codeDir**
+
+ __codeDir__ specifies the directory of tuner code.
+
- **classFileName** 指定调参器文件名。
+ * **classFileName**
+
+ __classFileName__ specifies the name of tuner file.
+
* **className**
-
- **className** 指定调参器类名。
+
+ __className__ specifies the name of tuner class.
+
* **classArgs**
-
- **classArgs** 指定了调参器算法的参数。
+
+ __classArgs__ specifies the arguments of tuner algorithm.
+
* **gpuNum**
- **gpuNum** 指定了运行调参器进程的 GPU 数量。 此字段的值必须是正整数。
-
- 注意: 只能使用一种方法来指定调参器,例如:设置{tunerName, optimizationMode} 或 {tunerCommand, tunerCwd},不能同时设置。
+ __gpuNum__ specifies the gpu number to run the tuner process. The value of this field should be a positive number.
+
+ Note: users could only specify one way to set tuner, for example, set {tunerName, optimizationMode} or {tunerCommand, tunerCwd}, and could not set them both.
* **assessor**
* 说明
- **assessor** 指定了实验的评估器算法。有两种方法可设置评估器。 一种方法是使用 NNI SDK 提供的评估器,需要设置 **builtinAssessorName** 和 **classArgs**。 另一种方法,是使用用户自定义的评估器,需要设置 **codeDirectory**,**classFileName**,**className** 和 **classArgs**。
+ **assessor** 指定了实验的评估器算法。有两种方法可设置评估器。 一种方法是使用 NNI SDK 提供的评估器,需要设置 **builtinAssessorName** 和 **classArgs**。 Another way is to use users' own assessor file, and need to set **codeDirectory**, **classFileName**, **className** and **classArgs**.
* **builtinAssessorName** 和 **classArgs**
* **builtinAssessorName**
-
- **builtinAssessorName** 指定了系统评估器的名字,NNI SDK 提供了一种评估器:{**Medianstop**}。
+
+ __builtinAssessorName__ specifies the name of system assessor, nni sdk provides one kind of assessor {__Medianstop__}
+
* **classArgs**
- **classArgs** 指定了评估器算法的参数。
+ __classArgs__ specifies the arguments of assessor algorithm
+
- * **codeDir**, **classFileName**, **className** and **classArgs**
- * **codeDir**
-
- **codeDir** 指定评估器代码的目录。
+ * **codeDir**, **classFileName**, **className** and **classArgs**
- * __classFileName__
-
+ * **codeDir**
+
+ __codeDir__ specifies the directory of assessor code.
+
- **classFileName** 指定评估器文件名。
+ * **classFileName**
+
+ __classFileName__ specifies the name of assessor file.
+
* **className**
-
- **className** 指定评估器类名。
+
+ __className__ specifies the name of assessor class.
+
* **classArgs**
-
- **classArgs** 指定了评估器算法的参数。
+
+ __classArgs__ specifies the arguments of assessor algorithm.
+
* **gpuNum**
-
- **gpuNum** 指定了运行评估器进程的 GPU 数量。 此字段的值必须是正整数。
-
- 注意: 只能使用一种方法来指定评估器,例如:设置 {assessorName, optimizationMode} 或 {assessorCommand, assessorCwd},不能同时设置。如果不需要使用评估器,可将其置为空。
-
+
+ __gpuNum__ specifies the gpu number to run the assessor process. The value of this field should be a positive number.
+
+ Note: users' could only specify one way to set assessor, for example,set {assessorName, optimizationMode} or {assessorCommand, assessorCwd}, and users could not set them both.If users do not want to use assessor, assessor fileld should leave to empty.
+
* **trial (local, remote)**
@@ -284,11 +292,13 @@
* **codeDir**
- **codeDir** 指定了尝试代码文件的目录。
+ __codeDir__ specifies the directory of your own trial file.
+
* **gpuNum**
- **gpuNum** 指定了运行尝试进程的 GPU 数量。 默认值为 0。
+ __gpuNum__ specifies the num of gpu to run the trial process. Default value is 0.
+
* **trial (pai)**
@@ -299,7 +309,8 @@
* **codeDir**
- **codeDir** 指定了尝试代码文件的目录。
+ __codeDir__ specifies the directory of the own trial file.
+
* **gpuNum**
@@ -357,7 +368,7 @@
* **image**
- **iamge** 设置了 **ps** 使用的 docker 映像。
+ **image** set the image to be used in **ps**.
* **worker**
@@ -385,7 +396,7 @@
* **image**
- **iamge** 设置了 **worker** 使用的 docker 映像。
+ **image** set the image to be used in **worker**.
* **machineList**
@@ -400,27 +411,25 @@
**端口** 是用于连接远程计算机的 ssh 端口。
- 注意:如果 port 设为空,则为默认值 22。
-
+ Note: if users set port empty, the default value will be 22.
* **username**
- **username** 是远程计算机的用户名。
+ **username** is the account of remote machine.
* **passwd**
- **passwd** 指定了账户的密码。
+ **passwd** specifies the password of the account.
* **sshKeyPath**
如果要使用 ssh 密钥登录远程计算机,则需要设置 **sshKeyPath**。 **sshKeyPath** 为有效的 ssh 密钥文件路径。
-
- 注意:如果同时设置了 passwd 和 sshKeyPath,NNI 会使用 passwd。
-
+
+ Note: if users set passwd and sshKeyPath simultaneously, nni will try passwd.
* **passphrase**
- **passphrase** 用于保护 ssh 密钥,如果没有使用,可为空。
+ **passphrase** is used to protect ssh key, which could be empty if users don't have passphrase.
* **kubeflowConfig**:
@@ -588,25 +597,24 @@
trialConcurrency: 3
maxExecDuration: 1h
maxTrialNum: 10
- #可选项: local, remote, pai, kubeflow
+ #choice: local, remote, pai, kubeflow
trainingServicePlatform: remote
searchSpacePath: /nni/search_space.json
- #可选项: true, false
+ #choice: true, false
useAnnotation: false
tuner:
- #可选项: TPE, Random, Anneal, Evolution
+ #choice: TPE, Random, Anneal, Evolution
builtinTunerName: TPE
classArgs:
- #可选项: maximize, minimize
+ #choice: maximize, minimize
optimize_mode: maximize
gpuNum: 0
trial:
command: python3 mnist.py
codeDir: /nni/mnist
gpuNum: 0
- # 如果是本地实验,machineList 可为空。
+ #machineList can be empty if the platform is local
machineList:
-
- ip: 10.10.10.10
port: 22
username: test
@@ -621,7 +629,6 @@
sshKeyPath: /nni/sshkey
passphrase: qwert
-
* **pai 模式**
@@ -664,7 +671,6 @@
host: 10.10.10.10
```
-
* **Kubeflow 模式**
From 1d2aaaf21a4e77f33976b8f33672fac3e9aa2782 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Thu, 3 Jan 2019 10:52:08 +0800
Subject: [PATCH 0136/1573] New translations ExperimentConfig.md (Chinese
Simplified)
---
zh_CN/docs/ExperimentConfig.md | 62 +++++++++++++++++-----------------
1 file changed, 31 insertions(+), 31 deletions(-)
diff --git a/zh_CN/docs/ExperimentConfig.md b/zh_CN/docs/ExperimentConfig.md
index 5e064cac17..7618c7f221 100644
--- a/zh_CN/docs/ExperimentConfig.md
+++ b/zh_CN/docs/ExperimentConfig.md
@@ -135,9 +135,9 @@
* 说明
- __trialConcurrency__ specifies the max num of trial jobs run simultaneously.
+ trialConcurrency 定义了并发尝试任务的最大数量。
- Note: if trialGpuNum is bigger than the free gpu numbers, and the trial jobs running simultaneously can not reach trialConcurrency number, some trial jobs will be put into a queue to wait for gpu allocation.
+ 注意:如果 trialGpuNum 大于空闲的 GPU 数量,并且并发的尝试任务数量还没达到 trialConcurrency,尝试任务会被放入队列,等待分配 GPU 资源。
* **maxExecDuration**
@@ -170,9 +170,9 @@
* 说明
- __searchSpacePath__ specifies the path of search space file, which should be a valid path in the local linux machine.
+ searchSpacePath 定义搜索空间文件的路径,此文件必须在运行 nnictl 的本机。
- Note: if set useAnnotation=True, the searchSpacePath field should be removed.
+ 注意: 如果设置了 useAnnotation=True,searchSpacePath 字段必须被删除。
* **useAnnotation**
@@ -181,7 +181,7 @@
**useAnnotation** 定义使用标记来分析代码并生成搜索空间。
- Note: if set useAnnotation=True, the searchSpacePath field should be removed.
+ 注意: 如果设置了 useAnnotation=True,searchSpacePath 字段必须被删除。
* **nniManagerIp**
@@ -189,7 +189,7 @@
**nniManagerIp** 设置 NNI 管理器运行的 IP 地址。 此字段为可选项,如果没有设置,则会使用 eth0 的 IP 地址。
- Note: run ifconfig on NNI manager's machine to check if eth0 device exists. If not, we recommend to set nnimanagerIp explicitly.
+ 注意: 可在 NNI 管理器机器上运行 ifconfig 来检查 eth0 是否存在。 如果不存在,推荐显式设置 nnimanagerIp。
* **tuner**
@@ -211,76 +211,76 @@
* **codeDir**
- __codeDir__ specifies the directory of tuner code.
+ __codeDir__ 指定了调参器代码目录。
* **classFileName**
- __classFileName__ specifies the name of tuner file.
+ __classFileName__ 指定了调参器文件名。
* **className**
- __className__ specifies the name of tuner class.
+ __className__ 指定了调参器类名。
* **classArgs**
- __classArgs__ specifies the arguments of tuner algorithm.
+ __classArgs__ 指定了调参器算法的参数。
* **gpuNum**
- __gpuNum__ specifies the gpu number to run the tuner process. The value of this field should be a positive number.
+ __gpuNum__ 指定了运行调参器进程的 GPU 数量。 此字段的值必须是正整数。
- Note: users could only specify one way to set tuner, for example, set {tunerName, optimizationMode} or {tunerCommand, tunerCwd}, and could not set them both.
+ 注意: 只能使用一种方法来指定调参器,例如:设置{tunerName, optimizationMode} 或 {tunerCommand, tunerCwd},不能同时设置。
* **assessor**
* 说明
- **assessor** 指定了实验的评估器算法。有两种方法可设置评估器。 一种方法是使用 NNI SDK 提供的评估器,需要设置 **builtinAssessorName** 和 **classArgs**。 Another way is to use users' own assessor file, and need to set **codeDirectory**, **classFileName**, **className** and **classArgs**.
+ **assessor** 指定了实验的评估器算法。有两种方法可设置评估器。 一种方法是使用 NNI SDK 提供的评估器,需要设置 **builtinAssessorName** 和 **classArgs**。 另一种方法,是使用用户自定义的评估器,需要设置 **codeDirectory**,**classFileName**,**className** 和 **classArgs**。
* **builtinAssessorName** 和 **classArgs**
* **builtinAssessorName**
- __builtinAssessorName__ specifies the name of system assessor, nni sdk provides one kind of assessor {__Medianstop__}
+ __builtinAssessorName__ 指定了系统评估器的名称, NNI 内置评估器 {__Medianstop__}
* **classArgs**
- __classArgs__ specifies the arguments of assessor algorithm
+ __classArgs__ 指定了评估器算法的参数。
* **codeDir**, **classFileName**, **className** and **classArgs**
* **codeDir**
- __codeDir__ specifies the directory of assessor code.
+ __codeDir__ 指定了评估器代码目录。
* **classFileName**
- __classFileName__ specifies the name of assessor file.
+ __classFileName__ 指定了调参器文件名。
* **className**
- __className__ specifies the name of assessor class.
+ __className__ 指定了评估器类名。
* **classArgs**
- __classArgs__ specifies the arguments of assessor algorithm.
+ __classArgs__ 指定了评估器算法的参数。
* **gpuNum**
- __gpuNum__ specifies the gpu number to run the assessor process. The value of this field should be a positive number.
+ __gpuNum__ 指定了运行评估器进程的 GPU 数量。 此字段的值必须是正整数。
- Note: users' could only specify one way to set assessor, for example,set {assessorName, optimizationMode} or {assessorCommand, assessorCwd}, and users could not set them both.If users do not want to use assessor, assessor fileld should leave to empty.
+ 注意: 只能使用一种方法来指定评估器,例如:设置 {assessorName, optimizationMode} 或 {assessorCommand, assessorCwd},不能同时设置。如果不需要使用评估器,可将其置为空。
* **trial (local, remote)**
@@ -292,12 +292,12 @@
* **codeDir**
- __codeDir__ specifies the directory of your own trial file.
+ __codeDir__ 指定了尝试代码文件的目录。
* **gpuNum**
- __gpuNum__ specifies the num of gpu to run the trial process. Default value is 0.
+ __gpuNum__ 指定了运行尝试进程的 GPU 数量。 默认值为 0。
* **trial (pai)**
@@ -309,7 +309,7 @@
* **codeDir**
- __codeDir__ specifies the directory of the own trial file.
+ __codeDir__ 指定了尝试代码文件的目录。
* **gpuNum**
@@ -368,7 +368,7 @@
* **image**
- **image** set the image to be used in **ps**.
+ **iamge** 设置了 **ps** 使用的 docker 映像。
* **worker**
@@ -396,7 +396,7 @@
* **image**
- **image** set the image to be used in **worker**.
+ **iamge** 设置了 **worker** 使用的 docker 映像。
* **machineList**
@@ -411,25 +411,25 @@
**端口** 是用于连接远程计算机的 ssh 端口。
- Note: if users set port empty, the default value will be 22.
+ 注意:如果 port 设为空,则为默认值 22。
* **username**
- **username** is the account of remote machine.
+ **username** 是远程计算机的用户名。
* **passwd**
- **passwd** specifies the password of the account.
+ **passwd** 指定了账户的密码。
* **sshKeyPath**
如果要使用 ssh 密钥登录远程计算机,则需要设置 **sshKeyPath**。 **sshKeyPath** 为有效的 ssh 密钥文件路径。
- Note: if users set passwd and sshKeyPath simultaneously, nni will try passwd.
+ 注意:如果同时设置了 passwd 和 sshKeyPath,NNI 会使用 passwd。
* **passphrase**
- **passphrase** is used to protect ssh key, which could be empty if users don't have passphrase.
+ **passphrase** 用于保护 ssh 密钥,如果没有使用,可为空。
* **kubeflowConfig**:
From c9f8338f4530a18043a61abe73240c5308d4e675 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Thu, 3 Jan 2019 11:02:36 +0800
Subject: [PATCH 0137/1573] New translations ExperimentConfig.md (Chinese
Simplified)
---
zh_CN/docs/ExperimentConfig.md | 15 +++++++++------
1 file changed, 9 insertions(+), 6 deletions(-)
diff --git a/zh_CN/docs/ExperimentConfig.md b/zh_CN/docs/ExperimentConfig.md
index 7618c7f221..9090c0c289 100644
--- a/zh_CN/docs/ExperimentConfig.md
+++ b/zh_CN/docs/ExperimentConfig.md
@@ -170,7 +170,7 @@
* 说明
- searchSpacePath 定义搜索空间文件的路径,此文件必须在运行 nnictl 的本机。
+ __searchSpacePath__ 定义搜索空间文件的路径,此文件必须在运行 nnictl 的本机。
注意: 如果设置了 useAnnotation=True,searchSpacePath 字段必须被删除。
@@ -592,29 +592,31 @@
如果在远程服务器上运行尝试任务,需要增加服务器信息:
+
authorName: test
experimentName: test_experiment
trialConcurrency: 3
maxExecDuration: 1h
maxTrialNum: 10
- #choice: local, remote, pai, kubeflow
+ #可选项: local, remote, pai, kubeflow
trainingServicePlatform: remote
searchSpacePath: /nni/search_space.json
- #choice: true, false
+ #可选项: true, false
useAnnotation: false
tuner:
- #choice: TPE, Random, Anneal, Evolution
+ #可选项: TPE, Random, Anneal, Evolution
builtinTunerName: TPE
classArgs:
- #choice: maximize, minimize
+ #可选项: maximize, minimize
optimize_mode: maximize
gpuNum: 0
trial:
command: python3 mnist.py
codeDir: /nni/mnist
gpuNum: 0
- #machineList can be empty if the platform is local
+ # 如果是本地实验,machineList 可为空。
machineList:
+
- ip: 10.10.10.10
port: 22
username: test
@@ -629,6 +631,7 @@
sshKeyPath: /nni/sshkey
passphrase: qwert
+
* **pai 模式**
From fd6e1a13711c9dacad19a7f67713deed161aa712 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Thu, 3 Jan 2019 11:02:37 +0800
Subject: [PATCH 0138/1573] New translations FAQ.md (Chinese Simplified)
---
zh_CN/docs/FAQ.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/zh_CN/docs/FAQ.md b/zh_CN/docs/FAQ.md
index 2779455aaa..011158e21e 100644
--- a/zh_CN/docs/FAQ.md
+++ b/zh_CN/docs/FAQ.md
@@ -8,7 +8,7 @@ nnictl 在执行时,使用 tmp 目录作为临时目录来复制 codeDir 下
### OpenPAI 模式下无法获得尝试的数据
-In OpenPAI training mode, we start a rest server which listens on 51189 port in nniManager to receive metrcis reported from trials running in OpenPAI cluster. If you didn't see any metrics from WebUI in OpenPAI mode, check your machine where nniManager runs on to make sure 51189 port is turned on in the firewall rule.
+在 OpenPAI 的训练模式下,nniManager 会在端口 51189 启动一个 RESTful 服务,来接收 OpenPAI 集群中尝试任务的回调数据。 If you didn't see any metrics from WebUI in OpenPAI mode, check your machine where nniManager runs on to make sure 51189 port is turned on in the firewall rule.
### Segmentation Fault (core dumped) when installing from source code
From 4bcafe1bb0d6db13bc3aa50e00524d69bd3ef646 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Thu, 3 Jan 2019 11:11:49 +0800
Subject: [PATCH 0139/1573] New translations FAQ.md (Chinese Simplified)
---
zh_CN/docs/FAQ.md | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/zh_CN/docs/FAQ.md b/zh_CN/docs/FAQ.md
index 011158e21e..6d0615c98f 100644
--- a/zh_CN/docs/FAQ.md
+++ b/zh_CN/docs/FAQ.md
@@ -8,18 +8,18 @@ nnictl 在执行时,使用 tmp 目录作为临时目录来复制 codeDir 下
### OpenPAI 模式下无法获得尝试的数据
-在 OpenPAI 的训练模式下,nniManager 会在端口 51189 启动一个 RESTful 服务,来接收 OpenPAI 集群中尝试任务的回调数据。 If you didn't see any metrics from WebUI in OpenPAI mode, check your machine where nniManager runs on to make sure 51189 port is turned on in the firewall rule.
+在 OpenPAI 的训练模式下,nniManager 会在端口 51189 启动一个 RESTful 服务,来接收 OpenPAI 集群中尝试任务的指标数据。 如果在 OpenPAI 模式下的网页中不能看到任何指标,需要检查 51189 端口是否在防火墙规则中已打开。
-### Segmentation Fault (core dumped) when installing from source code
+### 源码安装时出现 Segmentation Fault (core dumped)
-> make: *** [install-XXX] Segmentation fault (core dumped) There are two options:
+> make: *** [install-XXX] Segmentation fault (core dumped) 有以下两种解决方案:
-* Update or reinstall you current python's pip like `python3 -m pip install -U pip`
-* Install nni with --no-cache-dir flag like `python3 -m pip install nni --no-cache-dir`
+* 更新或重新安装 Python 中的 pip: `python3 -m pip install -U pip`
+* 在安装 NNI 时,添加 --no-cache-dir 参数:`python3 -m pip install nni --no-cache-dir`
-### Job management error: getIPV4Address() failed because os.networkInterfaces().eth0 is undefined.
+### 作业管理错误:getIPV4Address() failed because os.networkInterfaces().eth0 is undefined.
-Your machine don't have eth0 device, please set nniManagerIp in your config file manually. [refer](https://github.com/Microsoft/nni/blob/master/docs/ExperimentConfig.md)
+计算机没有 eth0 设备,需要在配置文件中手动设置 nniManagerIp。 [参考此处](https://github.com/Microsoft/nni/blob/master/docs/ExperimentConfig.md)
### Exceed the MaxDuration but didn't stop
From a4ce6cf6dee2bae143c415cae7b63df3039bbde9 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Thu, 3 Jan 2019 16:41:25 +0800
Subject: [PATCH 0140/1573] New translations FAQ.md (Chinese Simplified)
---
zh_CN/docs/FAQ.md | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/zh_CN/docs/FAQ.md b/zh_CN/docs/FAQ.md
index 6d0615c98f..0078c86409 100644
--- a/zh_CN/docs/FAQ.md
+++ b/zh_CN/docs/FAQ.md
@@ -21,11 +21,11 @@ nnictl 在执行时,使用 tmp 目录作为临时目录来复制 codeDir 下
计算机没有 eth0 设备,需要在配置文件中手动设置 nniManagerIp。 [参考此处](https://github.com/Microsoft/nni/blob/master/docs/ExperimentConfig.md)
-### Exceed the MaxDuration but didn't stop
+### 运行时间超过了 MaxDuration ,但没有停止
-When the duration of experiment reaches the maximum duration, nniManager will not create new trials, but the existing trials will continue unless user manually stop the experiment.
+当实验到达最长运行时间时,nniManager 不会创建新的尝试,但除非手动停止实验,运行中的尝试会继续。
-### Could not stop an experiment using `nnictl stop`
+### 使用 `nnictl stop` 无法停止实验
If you upgrade your nni or you delete some config files of nni when there is an experiment running, this kind of issue may happen because the loss of config file. You could use `ps -ef | grep node` to find the pid of your experiment, and use `kill -9 {pid}` to kill it manually.
From 75c4d62689cfb6da95606ec8bec309186b763a72 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Thu, 3 Jan 2019 16:51:07 +0800
Subject: [PATCH 0141/1573] New translations FAQ.md (Chinese Simplified)
---
zh_CN/docs/FAQ.md | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/zh_CN/docs/FAQ.md b/zh_CN/docs/FAQ.md
index 0078c86409..7283b61951 100644
--- a/zh_CN/docs/FAQ.md
+++ b/zh_CN/docs/FAQ.md
@@ -27,12 +27,12 @@ nnictl 在执行时,使用 tmp 目录作为临时目录来复制 codeDir 下
### 使用 `nnictl stop` 无法停止实验
-If you upgrade your nni or you delete some config files of nni when there is an experiment running, this kind of issue may happen because the loss of config file. You could use `ps -ef | grep node` to find the pid of your experiment, and use `kill -9 {pid}` to kill it manually.
+如果在实验运行时,升级了 nni 或删除了一些配置文件,会因为丢失配置文件而出现这类错误。 可以使用 `ps -ef | grep node` 命令来找到实验的 pid,并用 `kill -9 {pid}` 命令来停止实验进程。
-### Could not get `default metric` in webUI of virtual machines
+### 无法在虚拟机的 NNI 网页中看到 `默认指标`
-Config the network mode to bridge mode or other mode that could make virtual machine's host accessible from external machine, and make sure the port of virtual machine is not forbidden by firewall.
+将虚拟机的网络配置为桥接模式来让虚拟机能被网络访问,并确保虚拟机的防火墙没有禁止相关端口。
-### Help us improve
+### 帮助改进
-Please inquiry the problem in https://github.com/Microsoft/nni/issues to see whether there are other people already reported the problem, create a new one if there are no existing issues been created.
\ No newline at end of file
+在创建新问题前,请在 https://github.com/Microsoft/nni/issues 查看是否有人已经报告了相似的问题。
\ No newline at end of file
From fd372bd35f46d341ab95c52e2a4db1f7193ad3a4 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Thu, 3 Jan 2019 17:02:05 +0800
Subject: [PATCH 0142/1573] New translations GetStarted.md (Chinese Simplified)
---
zh_CN/docs/GetStarted.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/zh_CN/docs/GetStarted.md b/zh_CN/docs/GetStarted.md
index e03a7c1a74..519eb05cd3 100644
--- a/zh_CN/docs/GetStarted.md
+++ b/zh_CN/docs/GetStarted.md
@@ -1,4 +1,4 @@
-# **Get Started with NNI**
+# **开始使用 NNI**
## **Installation**
From 4af6a18fefa7ff09ba6011288d650637e3fb2284 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Thu, 3 Jan 2019 17:02:06 +0800
Subject: [PATCH 0143/1573] New translations FAQ.md (Chinese Simplified)
---
zh_CN/docs/FAQ.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/zh_CN/docs/FAQ.md b/zh_CN/docs/FAQ.md
index 7283b61951..3527d17929 100644
--- a/zh_CN/docs/FAQ.md
+++ b/zh_CN/docs/FAQ.md
@@ -29,7 +29,7 @@ nnictl 在执行时,使用 tmp 目录作为临时目录来复制 codeDir 下
如果在实验运行时,升级了 nni 或删除了一些配置文件,会因为丢失配置文件而出现这类错误。 可以使用 `ps -ef | grep node` 命令来找到实验的 pid,并用 `kill -9 {pid}` 命令来停止实验进程。
-### 无法在虚拟机的 NNI 网页中看到 `默认指标`
+### 无法在虚拟机的 NNI 网页中看到 `指标数据`
将虚拟机的网络配置为桥接模式来让虚拟机能被网络访问,并确保虚拟机的防火墙没有禁止相关端口。
From 4fec24aceb71841bbb6bba1a87620455e290f179 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Thu, 3 Jan 2019 17:11:55 +0800
Subject: [PATCH 0144/1573] New translations GetStarted.md (Chinese Simplified)
---
zh_CN/docs/GetStarted.md | 33 +++++++++++++++++++--------------
1 file changed, 19 insertions(+), 14 deletions(-)
diff --git a/zh_CN/docs/GetStarted.md b/zh_CN/docs/GetStarted.md
index 519eb05cd3..bf00061e11 100644
--- a/zh_CN/docs/GetStarted.md
+++ b/zh_CN/docs/GetStarted.md
@@ -1,24 +1,31 @@
# **开始使用 NNI**
-## **Installation**
+## **安装**
-* **Dependencies**
+* **依赖项**
- python >= 3.5 git wget
+ python >= 3.5
+ git
+ wget
+
- python pip should also be correctly installed. You could use "python3 -m pip -v" to check in Linux.
+ 需要正确安装 Python 的 pip。 可以用 "python3 -m pip -v" 来检查 pip 版本。
- * Note: we don't support virtual environment in current releases.
+ * 注意:当前版本不支持虚拟环境。
-* **Install NNI through pip**
+* **通过 pip 命令安装 NNI**
- python3 -m pip install --user --upgrade nni
+ python3 -m pip install --user --upgrade nni
+
-* **Install NNI through source code**
+* **通过源代码安装 NNI**
- git clone -b v0.4.1 https://github.com/Microsoft/nni.git cd nni source install.sh
+ git clone -b v0.4.1 https://github.com/Microsoft/nni.git
+ cd nni
+ source install.sh
+
-## **Quick start: run a customized experiment**
+## **快速入门:运行自定义的实验**
An experiment is to run multiple trial jobs, each trial job tries a configuration which includes a specific neural architecture (or model) and hyper-parameter values. To run an experiment through NNI, you should:
@@ -29,18 +36,16 @@ An experiment is to run multiple trial jobs, each trial job tries a configuratio
**Prepare trial**: Let's use a simple trial example, e.g. mnist, provided by NNI. After you installed NNI, NNI examples have been put in ~/nni/examples, run `ls ~/nni/examples/trials` to see all the trial examples. You can simply execute the following command to run the NNI mnist example:
- python3 ~/nni/examples/trials/mnist-annotation/mnist.py
-
+ python3 ~/nni/examples/trials/mnist-annotation/mnist.py
This command will be filled in the yaml configure file below. Please refer to [here](howto_1_WriteTrial.md) for how to write your own trial.
**Prepare tuner**: NNI supports several popular automl algorithms, including Random Search, Tree of Parzen Estimators (TPE), Evolution algorithm etc. Users can write their own tuner (refer to [here](howto_2_CustomizedTuner.md), but for simplicity, here we choose a tuner provided by NNI as below:
- tuner:
+ tuner:
builtinTunerName: TPE
classArgs:
optimize_mode: maximize
-
*builtinTunerName* is used to specify a tuner in NNI, *classArgs* are the arguments pass to the tuner, *optimization_mode* is to indicate whether you want to maximize or minimize your trial's result.
From 95c8e111bb351f938b276526c69f77eab6b30121 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Thu, 3 Jan 2019 17:21:42 +0800
Subject: [PATCH 0145/1573] New translations GetStarted.md (Chinese Simplified)
---
zh_CN/docs/GetStarted.md | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/zh_CN/docs/GetStarted.md b/zh_CN/docs/GetStarted.md
index bf00061e11..7a79375377 100644
--- a/zh_CN/docs/GetStarted.md
+++ b/zh_CN/docs/GetStarted.md
@@ -27,14 +27,14 @@
## **快速入门:运行自定义的实验**
-An experiment is to run multiple trial jobs, each trial job tries a configuration which includes a specific neural architecture (or model) and hyper-parameter values. To run an experiment through NNI, you should:
+实验会运行多个尝试任务,每个尝试任务会使用特定的神经网络(或模型)结构以及超参的值。 运行 NNI 实验,需要如下准备:
-* Provide a runnable trial
-* Provide or choose a tuner
-* Provide a yaml experiment configure file
-* (optional) Provide or choose an assessor
+* 可运行的尝试的代码
+* 编写或选择调参器
+* 准备 yaml 的实验配置文件
+* (可选) 编写或选择评估器
-**Prepare trial**: Let's use a simple trial example, e.g. mnist, provided by NNI. After you installed NNI, NNI examples have been put in ~/nni/examples, run `ls ~/nni/examples/trials` to see all the trial examples. You can simply execute the following command to run the NNI mnist example:
+**准备尝试**: 先从简单样例开始,如:NNI 样例中的 mnist。 After you installed NNI, NNI examples have been put in ~/nni/examples, run `ls ~/nni/examples/trials` to see all the trial examples. You can simply execute the following command to run the NNI mnist example:
python3 ~/nni/examples/trials/mnist-annotation/mnist.py
From 3f09c78593876a21cc7ea579b747503ec05858d2 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Thu, 3 Jan 2019 18:42:07 +0800
Subject: [PATCH 0146/1573] New translations GetStarted.md (Chinese Simplified)
---
zh_CN/docs/GetStarted.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/zh_CN/docs/GetStarted.md b/zh_CN/docs/GetStarted.md
index 7a79375377..48e9d0ccdc 100644
--- a/zh_CN/docs/GetStarted.md
+++ b/zh_CN/docs/GetStarted.md
@@ -34,7 +34,7 @@
* 准备 yaml 的实验配置文件
* (可选) 编写或选择评估器
-**准备尝试**: 先从简单样例开始,如:NNI 样例中的 mnist。 After you installed NNI, NNI examples have been put in ~/nni/examples, run `ls ~/nni/examples/trials` to see all the trial examples. You can simply execute the following command to run the NNI mnist example:
+**准备尝试**: 先从简单样例开始,如:NNI 样例中的 mnist。 NNI 样例在代码目录的 examples 中,运行 `ls ~/nni/examples/trials` 可以看到所有实验的样例。 You can simply execute the following command to run the NNI mnist example:
python3 ~/nni/examples/trials/mnist-annotation/mnist.py
From be6eac21bbfea4b6173d944e3515fa9c8f5021fd Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Thu, 3 Jan 2019 18:56:56 +0800
Subject: [PATCH 0147/1573] New translations GetStarted.md (Chinese Simplified)
---
zh_CN/docs/GetStarted.md | 36 ++++++++++++++++++------------------
1 file changed, 18 insertions(+), 18 deletions(-)
diff --git a/zh_CN/docs/GetStarted.md b/zh_CN/docs/GetStarted.md
index 48e9d0ccdc..5fe3e81d4c 100644
--- a/zh_CN/docs/GetStarted.md
+++ b/zh_CN/docs/GetStarted.md
@@ -34,22 +34,22 @@
* 准备 yaml 的实验配置文件
* (可选) 编写或选择评估器
-**准备尝试**: 先从简单样例开始,如:NNI 样例中的 mnist。 NNI 样例在代码目录的 examples 中,运行 `ls ~/nni/examples/trials` 可以看到所有实验的样例。 You can simply execute the following command to run the NNI mnist example:
+**准备尝试**: 先从简单样例开始,如:NNI 样例中的 mnist。 NNI 样例在代码目录的 examples 中,运行 `ls ~/nni/examples/trials` 可以看到所有实验的样例。 执行下面的命令可轻松运行 NNI 的 mnist 样例:
python3 ~/nni/examples/trials/mnist-annotation/mnist.py
-This command will be filled in the yaml configure file below. Please refer to [here](howto_1_WriteTrial.md) for how to write your own trial.
+上面的命令会写在 yaml 文件中。 参考[这里](howto_1_WriteTrial.md)来写出自己的实验代码。
-**Prepare tuner**: NNI supports several popular automl algorithms, including Random Search, Tree of Parzen Estimators (TPE), Evolution algorithm etc. Users can write their own tuner (refer to [here](howto_2_CustomizedTuner.md), but for simplicity, here we choose a tuner provided by NNI as below:
+**准备调参器**: NNI 支持多种流行的自动机器学习算法,包括:Random Search(随机搜索),Tree of Parzen Estimators (TPE),Evolution(遗传算法)等等。 也可以编写自己的调参器(参考[这里](howto_2_CustomizedTuner.md))。下面使用了 NNI 内置的调参器:
tuner:
builtinTunerName: TPE
classArgs:
optimize_mode: maximize
-*builtinTunerName* is used to specify a tuner in NNI, *classArgs* are the arguments pass to the tuner, *optimization_mode* is to indicate whether you want to maximize or minimize your trial's result.
+*builtinTunerName* 用来指定 NNI 中的调参器,*classArgs* 是传入到调参器的参数,*optimization_mode* 表明需要最大化还是最小化尝试的结果。
-**Prepare configure file**: Since you have already known which trial code you are going to run and which tuner you are going to use, it is time to prepare the yaml configure file. NNI provides a demo configure file for each trial example, `cat ~/nni/examples/trials/mnist-annotation/config.yml` to see it. Its content is basically shown below:
+**准备配置文件**:编写好尝试的代码,并选择或编写好自己的调参器后,就要准备 yaml 配置文件了。 NNI 为每个尝试样例都提供了演示的配置文件,用命令`cat ~/nni/examples/trials/mnist-annotation/config.yml` 来查看其内容。 大致内容如下:
authorName: your_name
experimentName: auto_mnist
@@ -78,28 +78,28 @@ This command will be filled in the yaml configure file below. Please refer to [h
gpuNum: 0
-Here *useAnnotation* is true because this trial example uses our python annotation (refer to [here](../tools/annotation/README.md) for details). For trial, we should provide *trialCommand* which is the command to run the trial, provide *trialCodeDir* where the trial code is. The command will be executed in this directory. We should also provide how many GPUs a trial requires.
+因为这个尝试代码使用了 NNI 标记的方法(参考[这里](../tools/annotation/README.md) ),所以*useAnnotation* 为 true。 *command* 是运行尝试代码所需要的命令,*codeDir* 是尝试代码的相对位置。 命令会在此目录中执行。 同时,也需要提供每个尝试进程所需的 GPU 数量。
-With all these steps done, we can run the experiment with the following command:
+完成上述步骤后,可通过下列命令来启动实验:
nnictl create --config ~/nni/examples/trials/mnist-annotation/config.yml
-You can refer to [here](NNICTLDOC.md) for more usage guide of *nnictl* command line tool.
+参考[这里](NNICTLDOC.md)来了解 *nnictl* 命令行工具的更多用法。
-## View experiment results
+## 查看实验结果
-The experiment has been running now, NNI provides WebUI for you to view experiment progress, to control your experiment, and some other appealing features. The WebUI is opened by default by `nnictl create`.
+实验开始运行后,可以通过 NNI 的网页来查看实验进程,并进行控制等。 网页界面默认会通过 `nnictl create` 命令打开。
-## Read more
+## 更多内容
-* [Tuners supported in the latest NNI release](./HowToChooseTuner.md)
-* [Overview](Overview.md)
-* [Installation](Installation.md)
-* [Use command line tool nnictl](NNICTLDOC.md)
-* [Use NNIBoard](WebUI.md)
-* [Define search space](SearchSpaceSpec.md)
-* [Config an experiment](ExperimentConfig.md)
+* [NNI 最新版本支持的调参器](./HowToChooseTuner.md)
+* [概述](Overview.md)
+* [安装](Installation.md)
+* [使用命令行工具 nnictl](NNICTLDOC.md)
+* [使用 NNIBoard](WebUI.md)
+* [定制搜索空间](SearchSpaceSpec.md)
+* [配置实验](ExperimentConfig.md)
* [How to run an experiment on local (with multiple GPUs)?](tutorial_1_CR_exp_local_api.md)
* [How to run an experiment on multiple machines?](tutorial_2_RemoteMachineMode.md)
* [How to run an experiment on OpenPAI?](PAIMode.md)
\ No newline at end of file
From 3f84d3f562e35ec729761b97945832915c16a82a Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Thu, 3 Jan 2019 19:02:21 +0800
Subject: [PATCH 0148/1573] New translations GetStarted.md (Chinese Simplified)
---
zh_CN/docs/GetStarted.md | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/zh_CN/docs/GetStarted.md b/zh_CN/docs/GetStarted.md
index 5fe3e81d4c..811d37eff5 100644
--- a/zh_CN/docs/GetStarted.md
+++ b/zh_CN/docs/GetStarted.md
@@ -100,6 +100,6 @@
* [使用 NNIBoard](WebUI.md)
* [定制搜索空间](SearchSpaceSpec.md)
* [配置实验](ExperimentConfig.md)
-* [How to run an experiment on local (with multiple GPUs)?](tutorial_1_CR_exp_local_api.md)
-* [How to run an experiment on multiple machines?](tutorial_2_RemoteMachineMode.md)
-* [How to run an experiment on OpenPAI?](PAIMode.md)
\ No newline at end of file
+* [如何在本机运行实验 (支持多 GPU 卡)?](tutorial_1_CR_exp_local_api.md)
+* [如何在多机上运行实验?](tutorial_2_RemoteMachineMode.md)
+* [如何在 OpenPAI 上运行实验?](PAIMode.md)
\ No newline at end of file
From 29aa34723095c214da6605c05038adb293365717 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Fri, 4 Jan 2019 09:55:10 +0800
Subject: [PATCH 0149/1573] New translations howto_1_WriteTrial.md (Chinese
Simplified)
---
zh_CN/docs/howto_1_WriteTrial.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/zh_CN/docs/howto_1_WriteTrial.md b/zh_CN/docs/howto_1_WriteTrial.md
index 4d3eb4ea24..2ac2864c46 100644
--- a/zh_CN/docs/howto_1_WriteTrial.md
+++ b/zh_CN/docs/howto_1_WriteTrial.md
@@ -1,4 +1,4 @@
-# **Write a Trial Run on NNI**
+# **在 NNI 上编写 Trial(尝试)代码**
A **Trial** in NNI is an individual attempt at applying a set of parameters on a model.
From c276a5aa3676b5c6b402a75030f19b3025a11434 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Fri, 4 Jan 2019 10:01:30 +0800
Subject: [PATCH 0150/1573] New translations howto_1_WriteTrial.md (Chinese
Simplified)
---
zh_CN/docs/howto_1_WriteTrial.md | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/zh_CN/docs/howto_1_WriteTrial.md b/zh_CN/docs/howto_1_WriteTrial.md
index 2ac2864c46..f7be064d26 100644
--- a/zh_CN/docs/howto_1_WriteTrial.md
+++ b/zh_CN/docs/howto_1_WriteTrial.md
@@ -1,14 +1,14 @@
# **在 NNI 上编写 Trial(尝试)代码**
-A **Trial** in NNI is an individual attempt at applying a set of parameters on a model.
+**Trial(尝试)**是将一组参数在模型上独立的一次尝试。
-To define a NNI trial, you need to firstly define the set of parameters and then update the model. NNI provide two approaches for you to define a trial: `NNI API` and `NNI Python annotation`.
+定义 NNI 的尝试,需要首先定义参数组,并更新模型代码。 NNI 有两种方法来定义尝试:`NNI API` 和 `NNI 标记`.
## NNI API
-> Step 1 - Prepare a SearchSpace parameters file.
+> 步骤1 - 准备搜索空间参数文件。
-An example is shown below:
+样例如下:
{
"dropout_rate":{"_type":"uniform","_value":[0.1,0.5]},
@@ -18,7 +18,7 @@ An example is shown below:
}
-Refer to to learn more about search space.
+参考 进一步了解搜索空间。
> Step 2 - Update model codes
From fe56d8b399308e12bcbb351e4bd4a2988ac4b0d2 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Fri, 4 Jan 2019 10:11:26 +0800
Subject: [PATCH 0151/1573] New translations howto_1_WriteTrial.md (Chinese
Simplified)
---
zh_CN/docs/howto_1_WriteTrial.md | 32 ++++++++++++++++----------------
1 file changed, 16 insertions(+), 16 deletions(-)
diff --git a/zh_CN/docs/howto_1_WriteTrial.md b/zh_CN/docs/howto_1_WriteTrial.md
index f7be064d26..f802fa036d 100644
--- a/zh_CN/docs/howto_1_WriteTrial.md
+++ b/zh_CN/docs/howto_1_WriteTrial.md
@@ -6,7 +6,7 @@
## NNI API
-> 步骤1 - 准备搜索空间参数文件。
+> 第一步:准备搜索空间参数文件。
样例如下:
@@ -20,42 +20,42 @@
参考 进一步了解搜索空间。
-> Step 2 - Update model codes
+> 第二步:更新模型代码
- 2.1 Declare NNI API
- Include `import nni` in your trial code to use NNI APIs.
+ 2.1 声明 NNI API
+ 在尝试代码中通过 `import nni` 来导入 NNI API。
- 2.2 Get predefined parameters
- Use the following code snippet:
+ 2.2 获取预定义的参数
+ 参考下列代码片段:
RECEIVED_PARAMS = nni.get_next_parameter()
- to get hyper-parameters' values assigned by tuner. `RECEIVED_PARAMS` is an object, for example:
+ 来获得调参器分配的超参值。 `RECEIVED_PARAMS` 是一个对象,例如:
{"conv_size": 2, "hidden_size": 124, "learning_rate": 0.0307, "dropout_rate": 0.2029}
- 2.3 Report NNI results
- Use the API:
+ 2.3 向 NNI 返回结果
+ 使用 API:
`nni.report_intermediate_result(accuracy)`
- to send `accuracy` to assessor.
+ 返回 `accuracy` 的值给评估器。
- Use the API:
+ 使用 API:
`nni.report_final_result(accuracy)`
- to send `accuracy` to tuner.
+ 返回 `accuracy` 的值给调参器。
-**NOTE**:
+**注意**:
accuracy - The `accuracy` could be any python object, but if you use NNI built-in tuner/assessor, `accuracy` should be a numerical variable (e.g. float, int).
assessor - The assessor will decide which trial should early stop based on the history performance of trial (intermediate result of one trial).
tuner - The tuner will generate next parameters/architecture based on the explore history (final result of all trials).
-> Step 3 - Enable NNI API
+> 第三步:启用 NNI API
To enable NNI API mode, you need to set useAnnotation to *false* and provide the path of SearchSpace file (you just defined in step 1):
@@ -78,7 +78,7 @@ An alternative to write a trial is to use NNI's syntax for python. Simple as any
Again, take MNIST as an example, it only requires 2 steps to write a trial with NNI Annotation.
-> Step 1 - Update codes with annotations
+> 第一步:在代码中加入标记
Please refer the following tensorflow code snippet for NNI Annotation, the highlighted 4 lines are annotations that help you to: (1) tune batch\_size and (2) dropout\_rate, (3) report test\_acc every 100 steps, and (4) at last report test\_acc as final result.
@@ -119,7 +119,7 @@ with tf.Session() as sess:
> >
> > Please refer to [Annotation README](../tools/nni_annotation/README.md) for more information about annotation syntax and its usage.
>
-> Step 2 - Enable NNI Annotation In the yaml configure file, you need to set *useAnnotation* to true to enable NNI annotation:
+> 第二步:启用 NNI 标记 在 yaml 配置文件中,将 *useAnnotation* 设置为 true 来启用 NNI 标记。
useAnnotation: true
From a0e09a379ff8a60bf70560d5f0a9c40a801a0526 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Fri, 4 Jan 2019 10:21:26 +0800
Subject: [PATCH 0152/1573] New translations howto_1_WriteTrial.md (Chinese
Simplified)
---
zh_CN/docs/howto_1_WriteTrial.md | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/zh_CN/docs/howto_1_WriteTrial.md b/zh_CN/docs/howto_1_WriteTrial.md
index f802fa036d..c398380f29 100644
--- a/zh_CN/docs/howto_1_WriteTrial.md
+++ b/zh_CN/docs/howto_1_WriteTrial.md
@@ -50,9 +50,9 @@
**注意**:
- accuracy - The `accuracy` could be any python object, but if you use NNI built-in tuner/assessor, `accuracy` should be a numerical variable (e.g. float, int).
- assessor - The assessor will decide which trial should early stop based on the history performance of trial (intermediate result of one trial).
- tuner - The tuner will generate next parameters/architecture based on the explore history (final result of all trials).
+ accuracy - 如果使用 NNI 内置的调参器/评估器,那么 `accuracy` 必须是数值(如 float, int)。在定制调参器/评估器时 `accuracy` 可以是任何类型的 Python 对象。
+ 评估器 - 会根据尝试的历史值(即其中间结果),来决定这次尝试是否应该提前终止。
+ 调参器 - 会根据探索的历史(所有尝试的最终结果)来生成下一组参数、架构。
> 第三步:启用 NNI API
From 2154d14666f3921dd7bdc2ffc5b2c8728164ec0a Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Fri, 4 Jan 2019 10:31:35 +0800
Subject: [PATCH 0153/1573] New translations howto_1_WriteTrial.md (Chinese
Simplified)
---
zh_CN/docs/howto_1_WriteTrial.md | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/zh_CN/docs/howto_1_WriteTrial.md b/zh_CN/docs/howto_1_WriteTrial.md
index c398380f29..a77cb3870f 100644
--- a/zh_CN/docs/howto_1_WriteTrial.md
+++ b/zh_CN/docs/howto_1_WriteTrial.md
@@ -57,19 +57,19 @@
> 第三步:启用 NNI API
-To enable NNI API mode, you need to set useAnnotation to *false* and provide the path of SearchSpace file (you just defined in step 1):
+要启用 NNI 的 API 模式,需要将 useAnnotation 设置为 *false*,并提供搜索空间文件的路径(即第一步中定义的文件):
useAnnotation: false
searchSpacePath: /path/to/your/search_space.json
-You can refer to [here](ExperimentConfig.md) for more information about how to set up experiment configurations.
+参考 [here](ExperimentConfig.md) 进一步了解如何配置实验。
-(../examples/trials/README.md) for more information about how to write trial code using NNI APIs.
+参考 \[这里\](../examples/trials/README.md) 进一步了解如何使用 NNI 的 API 来编写尝试的代码。
-## NNI Python Annotation
+## NNI 标记
-An alternative to write a trial is to use NNI's syntax for python. Simple as any annotation, NNI annotation is working like comments in your codes. You don't have to make structure or any other big changes to your existing codes. With a few lines of NNI annotation, you will be able to:
+另一种编写尝试的方法是使用 Python 注释来标记 NNI。 就像其它标记,NNI 的标记和代码中的注释一样。 You don't have to make structure or any other big changes to your existing codes. With a few lines of NNI annotation, you will be able to:
* annotate the variables you want to tune
* specify in which range you want to tune the variables
From 1d99b9848da145ed826c6a9a0ffa6a2d147ace65 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Fri, 4 Jan 2019 10:40:45 +0800
Subject: [PATCH 0154/1573] New translations howto_1_WriteTrial.md (Chinese
Simplified)
---
zh_CN/docs/howto_1_WriteTrial.md | 28 ++++++++++++++--------------
1 file changed, 14 insertions(+), 14 deletions(-)
diff --git a/zh_CN/docs/howto_1_WriteTrial.md b/zh_CN/docs/howto_1_WriteTrial.md
index a77cb3870f..9530a17e63 100644
--- a/zh_CN/docs/howto_1_WriteTrial.md
+++ b/zh_CN/docs/howto_1_WriteTrial.md
@@ -69,20 +69,20 @@
## NNI 标记
-另一种编写尝试的方法是使用 Python 注释来标记 NNI。 就像其它标记,NNI 的标记和代码中的注释一样。 You don't have to make structure or any other big changes to your existing codes. With a few lines of NNI annotation, you will be able to:
+另一种编写尝试的方法是使用 Python 注释来标记 NNI。 就像其它标记,NNI 的标记和代码中的注释一样。 不需要在代码中做大量改动。 只需要添加一些 NNI 标记,就能够:
-* annotate the variables you want to tune
-* specify in which range you want to tune the variables
-* annotate which variable you want to report as intermediate result to `assessor`
-* annotate which variable you want to report as the final result (e.g. model accuracy) to `tuner`.
+* 标记需要调整的参数变量
+* 指定变量的搜索空间范围
+* 标记哪个变量需要作为中间结果范围给`评估器`
+* 标记哪个变量需要作为最终结果(例如:模型精度)返回给`调参器`。
-Again, take MNIST as an example, it only requires 2 steps to write a trial with NNI Annotation.
+同样以 MNIST 为例,只需要两步就能用 NNI 标记来编写尝试代码。
> 第一步:在代码中加入标记
-Please refer the following tensorflow code snippet for NNI Annotation, the highlighted 4 lines are annotations that help you to: (1) tune batch\_size and (2) dropout\_rate, (3) report test\_acc every 100 steps, and (4) at last report test\_acc as final result.
+参考下列 tensorflow 的 NNI 标记的代码片段,高亮的 4 行标记实现了: (1) 调整 batch\_size 和 (2) dropout\_rate, (3) 每 100 步返回一次 test\_acc ,并且 (4) 在最后返回 test\_acc 作为最终结果。
-> What noteworthy is: as these new added codes are annotations, it does not actually change your previous codes logic, you can still run your code as usual in environments without NNI installed.
+> 值得注意的是,新添加的代码都是注释,不会影响以前的执行逻辑。因此这些代码仍然能在没有安装 NNI 的环境中运行。
```diff
with tf.Session() as sess:
@@ -111,19 +111,19 @@ with tf.Session() as sess:
+ """@nni.report_final_result(test_acc)"""
```
-> NOTE
+> 注意
>
-> > `@nni.variable` will take effect on its following line
+> > `@nni.variable` 会影响下面紧接的一行。
> >
-> > `@nni.report_intermediate_result`/`@nni.report_final_result` will send the data to assessor/tuner at that line.
+> > `@nni.report_intermediate_result`/`@nni.report_final_result` 会在那行将数据发送给评估器、调参器。
> >
-> > Please refer to [Annotation README](../tools/nni_annotation/README.md) for more information about annotation syntax and its usage.
+> > 参考 [标记](../tools/nni_annotation/README.md) 了解更多关于标记的语法和用法。
>
> 第二步:启用 NNI 标记 在 yaml 配置文件中,将 *useAnnotation* 设置为 true 来启用 NNI 标记。
useAnnotation: true
-## More Trial Example
+## 更多尝试的样例
-* [Automatic Model Architecture Search for Reading Comprehension.](../examples/trials/ga_squad/README.md)
\ No newline at end of file
+* [在阅读理解上使用自动模型架构搜索。](../../examples/trials/ga_squad/README.md)
\ No newline at end of file
From a3bcac8cb88f3ca926845d9a3e79c21313a630c0 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Fri, 4 Jan 2019 10:44:12 +0800
Subject: [PATCH 0155/1573] New translations howto_1_WriteTrial.md (Chinese
Simplified)
---
zh_CN/docs/howto_1_WriteTrial.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/zh_CN/docs/howto_1_WriteTrial.md b/zh_CN/docs/howto_1_WriteTrial.md
index 9530a17e63..d131410dfa 100644
--- a/zh_CN/docs/howto_1_WriteTrial.md
+++ b/zh_CN/docs/howto_1_WriteTrial.md
@@ -63,9 +63,9 @@
searchSpacePath: /path/to/your/search_space.json
-参考 [here](ExperimentConfig.md) 进一步了解如何配置实验。
+参考 [这里](ExperimentConfig.md) 进一步了解如何配置实验。
-参考 \[这里\](../examples/trials/README.md) 进一步了解如何使用 NNI 的 API 来编写尝试的代码。
+参考 [README.md](../../examples/trials/README.md) 进一步了解如何使用 NNI 的 API 来编写尝试的代码。
## NNI 标记
From 30834eb458740c7dce994c750d72393078574f45 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Fri, 4 Jan 2019 10:45:25 +0800
Subject: [PATCH 0156/1573] New translations howto_1_WriteTrial.md (Chinese
Simplified)
---
zh_CN/docs/howto_1_WriteTrial.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/zh_CN/docs/howto_1_WriteTrial.md b/zh_CN/docs/howto_1_WriteTrial.md
index d131410dfa..a16ef50655 100644
--- a/zh_CN/docs/howto_1_WriteTrial.md
+++ b/zh_CN/docs/howto_1_WriteTrial.md
@@ -18,7 +18,7 @@
}
-参考 进一步了解搜索空间。
+参考 [SearchSpaceSpec.md](./SearchSpaceSpec.md) 进一步了解搜索空间。
> 第二步:更新模型代码
From 14d26d92d84dac1158d19fde4003dab0a1991f61 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Fri, 4 Jan 2019 10:51:40 +0800
Subject: [PATCH 0157/1573] New translations howto_2_CustomizedTuner.md
(Chinese Simplified)
---
zh_CN/docs/howto_2_CustomizedTuner.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/zh_CN/docs/howto_2_CustomizedTuner.md b/zh_CN/docs/howto_2_CustomizedTuner.md
index 5f619ea1f4..2c2ae233c9 100644
--- a/zh_CN/docs/howto_2_CustomizedTuner.md
+++ b/zh_CN/docs/howto_2_CustomizedTuner.md
@@ -1,4 +1,4 @@
-# **How To** - Customize Your Own Tuner
+# **指南** - 自定义调参器
*Tuner receive result from Trial as a matric to evaluate the performance of a specific parameters/architecture configure. And tuner send next hyper-parameter or architecture configure to Trial.*
From 3955b61f2a4e8cba3150ae408089b0f1791a5ae8 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Fri, 4 Jan 2019 11:01:38 +0800
Subject: [PATCH 0158/1573] New translations howto_2_CustomizedTuner.md
(Chinese Simplified)
---
zh_CN/docs/howto_2_CustomizedTuner.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/zh_CN/docs/howto_2_CustomizedTuner.md b/zh_CN/docs/howto_2_CustomizedTuner.md
index 2c2ae233c9..2c8260f60a 100644
--- a/zh_CN/docs/howto_2_CustomizedTuner.md
+++ b/zh_CN/docs/howto_2_CustomizedTuner.md
@@ -1,6 +1,6 @@
# **指南** - 自定义调参器
-*Tuner receive result from Trial as a matric to evaluate the performance of a specific parameters/architecture configure. And tuner send next hyper-parameter or architecture configure to Trial.*
+*调参器从尝试接收指标结果,来评估一组参数配置的性能。 And tuner send next hyper-parameter or architecture configure to Trial.*
So, if user want to implement a customized Tuner, she/he only need to:
From 65bed5cf0202c455d8733d8b1f99024bb5a7c534 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Fri, 4 Jan 2019 13:35:07 +0800
Subject: [PATCH 0159/1573] New translations howto_2_CustomizedTuner.md
(Chinese Simplified)
---
zh_CN/docs/howto_2_CustomizedTuner.md | 18 ++++++++++--------
1 file changed, 10 insertions(+), 8 deletions(-)
diff --git a/zh_CN/docs/howto_2_CustomizedTuner.md b/zh_CN/docs/howto_2_CustomizedTuner.md
index 2c8260f60a..0ec842073a 100644
--- a/zh_CN/docs/howto_2_CustomizedTuner.md
+++ b/zh_CN/docs/howto_2_CustomizedTuner.md
@@ -47,7 +47,7 @@ class CustomizedTuner(Tuner):
...
```
- receive_trial_result will receive ```the parameter_id, parameters, value``` as parameters input. Also, Tuner will receive the ```value``` object are exactly same value that Trial send.
+`receive_trial_result` will receive `the parameter_id, parameters, value` as parameters input. Also, Tuner will receive the `value` object are exactly same value that Trial send.
The ```your_parameters``` return from ```generate_parameters``` function, will be package as json object by NNI SDK. NNI SDK will unpack json object so the Trial will receive the exact same ```your_parameters``` from Tuner.
@@ -65,16 +65,18 @@ For example: If the you implement the ```generate_parameters``` like this:
It means your Tuner will always generate parameters ```{"dropout": 0.3, "learning_rate": 0.4}```. Then Trial will receive ```{"dropout": 0.3, "learning_rate": 0.4}``` by calling API ```nni.get_next_parameter()```. Once the trial ends with a result (normally some kind of metrics), it can send the result to Tuner by calling API ```nni.report_final_result()```, for example ```nni.report_final_result(0.93)```. Then your Tuner's ```receive_trial_result``` function will receied the result like:
- parameter_id = 82347
- parameters = {"dropout": 0.3, "learning_rate": 0.4}
- value = 0.93
-
+```python
+parameter_id = 82347
+parameters = {"dropout": 0.3, "learning_rate": 0.4}
+value = 0.93
+```
**Note that** if you want to access a file (e.g., ```data.txt```) in the directory of your own tuner, you cannot use ```open('data.txt', 'r')```. Instead, you should use the following:
- _pwd = os.path.dirname(__file__)
- _fd = open(os.path.join(_pwd, 'data.txt'), 'r')
-
+```python
+_pwd = os.path.dirname(__file__)
+_fd = open(os.path.join(_pwd, 'data.txt'), 'r')
+```
This is because your tuner is not executed in the directory of your tuner (i.e., ```pwd``` is not the directory of your own tuner).
From 262eafb138882a8b8278180d53ba0ad27f3fcf2a Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Fri, 4 Jan 2019 14:31:58 +0800
Subject: [PATCH 0160/1573] New translations howto_2_CustomizedTuner.md
(Chinese Simplified)
---
zh_CN/docs/howto_2_CustomizedTuner.md | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/zh_CN/docs/howto_2_CustomizedTuner.md b/zh_CN/docs/howto_2_CustomizedTuner.md
index 0ec842073a..d8092777f8 100644
--- a/zh_CN/docs/howto_2_CustomizedTuner.md
+++ b/zh_CN/docs/howto_2_CustomizedTuner.md
@@ -1,12 +1,14 @@
# **指南** - 自定义调参器
-*调参器从尝试接收指标结果,来评估一组参数配置的性能。 And tuner send next hyper-parameter or architecture configure to Trial.*
+*调参器从尝试接收指标结果,来评估一组超参或网络结构的性能。 然后调参器会将下一组超参或网络结构的配置发送给新的尝试。*
-So, if user want to implement a customized Tuner, she/he only need to:
+因此,如果要自定义调参器,需要:
-1) Inherit a tuner of a base Tuner class 2) Implement receive_trial_result and generate_parameter function 3) Configure your customized tuner in experiment yaml config file
+1. 从基类 Tuner 继承,创建新的调参器类
+2. 实现 receive_trial_result 和 generate_parameter 函数
+3. 在实验的 yaml 文件中配置好自定义的调参器
-Here ia an example:
+样例如下:
**1) Inherit a tuner of a base Tuner class**
From 3c3b74f9d13a37a7c3ecb03684bcbe2de6988128 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Fri, 4 Jan 2019 14:41:43 +0800
Subject: [PATCH 0161/1573] New translations howto_2_CustomizedTuner.md
(Chinese Simplified)
---
zh_CN/docs/howto_2_CustomizedTuner.md | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/zh_CN/docs/howto_2_CustomizedTuner.md b/zh_CN/docs/howto_2_CustomizedTuner.md
index d8092777f8..f6aa972783 100644
--- a/zh_CN/docs/howto_2_CustomizedTuner.md
+++ b/zh_CN/docs/howto_2_CustomizedTuner.md
@@ -10,7 +10,7 @@
样例如下:
-**1) Inherit a tuner of a base Tuner class**
+**1) 从基类 Tuner 继承,创建新的调参器类**
```python
from nni.tuner import Tuner
@@ -20,7 +20,7 @@ class CustomizedTuner(Tuner):
...
```
-**2) Implement receive_trial_result and generate_parameter function**
+**2) 实现 receive_trial_result 和 generate_parameter 函数**
```python
from nni.tuner import Tuner
@@ -49,23 +49,23 @@ class CustomizedTuner(Tuner):
...
```
-`receive_trial_result` will receive `the parameter_id, parameters, value` as parameters input. Also, Tuner will receive the `value` object are exactly same value that Trial send.
+`receive_trial_result` 从输入中会接收 `parameter_id, parameters, value` 参数。 调参器会收到尝试进程发送的完全一样的 `value` 值。
-The ```your_parameters``` return from ```generate_parameters``` function, will be package as json object by NNI SDK. NNI SDK will unpack json object so the Trial will receive the exact same ```your_parameters``` from Tuner.
+ your_parameters 返回自 ```generate_parameters``` 函数,它会被 NNI SDK 打包为 json 对象。 NNI SDK 会解包 json 对象,因此,尝试也会收到完全相同来自 ```your_parameters``` 的数据。
-For example: If the you implement the ```generate_parameters``` like this:
+例如,如下实现 ```generate_parameters``` :
```python
def generate_parameters(self, parameter_id):
'''
- Returns a set of trial (hyper-)parameters, as a serializable object
+ 返回尝试的超参组合的序列化对象
parameter_id: int
'''
- # your code implements here.
+ # 代码实现位置
return {"dropout": 0.3, "learning_rate": 0.4}
```
-It means your Tuner will always generate parameters ```{"dropout": 0.3, "learning_rate": 0.4}```. Then Trial will receive ```{"dropout": 0.3, "learning_rate": 0.4}``` by calling API ```nni.get_next_parameter()```. Once the trial ends with a result (normally some kind of metrics), it can send the result to Tuner by calling API ```nni.report_final_result()```, for example ```nni.report_final_result(0.93)```. Then your Tuner's ```receive_trial_result``` function will receied the result like:
+这也表示调参器总会生成参数 ```{"dropout": 0.3, "learning_rate": 0.4}```。 尝试会收到 ```{"dropout": 0.3, "learning_rate": 0.4}``` by calling API ```nni.get_next_parameter()```. Once the trial ends with a result (normally some kind of metrics), it can send the result to Tuner by calling API ```nni.report_final_result()```, for example ```nni.report_final_result(0.93)```. Then your Tuner's ```receive_trial_result``` function will receied the result like:
```python
parameter_id = 82347
@@ -82,7 +82,7 @@ _fd = open(os.path.join(_pwd, 'data.txt'), 'r')
This is because your tuner is not executed in the directory of your tuner (i.e., ```pwd``` is not the directory of your own tuner).
-**3) Configure your customized tuner in experiment yaml config file**
+**3) 在实验的 yaml 文件中配置好自定义的调参器**
NNI needs to locate your customized tuner class and instantiate the class, so you need to specify the location of the customized tuner class and pass literal values as parameters to the \_\_init__ constructor.
From 838d805db05fc2eec9c0c8479c9a5496b2dbeb0c Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Fri, 4 Jan 2019 14:49:38 +0800
Subject: [PATCH 0162/1573] New translations howto_2_CustomizedTuner.md
(Chinese Simplified)
---
zh_CN/docs/howto_2_CustomizedTuner.md | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/zh_CN/docs/howto_2_CustomizedTuner.md b/zh_CN/docs/howto_2_CustomizedTuner.md
index f6aa972783..36f5544d48 100644
--- a/zh_CN/docs/howto_2_CustomizedTuner.md
+++ b/zh_CN/docs/howto_2_CustomizedTuner.md
@@ -51,9 +51,9 @@ class CustomizedTuner(Tuner):
`receive_trial_result` 从输入中会接收 `parameter_id, parameters, value` 参数。 调参器会收到尝试进程发送的完全一样的 `value` 值。
- your_parameters 返回自 ```generate_parameters``` 函数,它会被 NNI SDK 打包为 json 对象。 NNI SDK 会解包 json 对象,因此,尝试也会收到完全相同来自 ```your_parameters``` 的数据。
+`generate_parameters` 函数返回的 `your_parameters`,会被 NNI SDK 打包为 json。 然后 NNI SDK 会将 json 对象解包给尝试进程。因此,尝试进程会收到来自调参器的完全相同的 `your_parameters`。
-例如,如下实现 ```generate_parameters``` :
+例如, 如下实现了 `generate_parameters`:
```python
def generate_parameters(self, parameter_id):
@@ -65,7 +65,7 @@ class CustomizedTuner(Tuner):
return {"dropout": 0.3, "learning_rate": 0.4}
```
-这也表示调参器总会生成参数 ```{"dropout": 0.3, "learning_rate": 0.4}```。 尝试会收到 ```{"dropout": 0.3, "learning_rate": 0.4}``` by calling API ```nni.get_next_parameter()```. Once the trial ends with a result (normally some kind of metrics), it can send the result to Tuner by calling API ```nni.report_final_result()```, for example ```nni.report_final_result(0.93)```. Then your Tuner's ```receive_trial_result``` function will receied the result like:
+这表示调参器会一直生成参数 `{"dropout": 0.3, "learning_rate": 0.4}`。 然后尝试进程也会在调用 API `nni.get_next_parameter()` 时得到 `{"dropout": 0.3, "learning_rate": 0.4}`。 Once the trial ends with a result (normally some kind of metrics), it can send the result to Tuner by calling API `nni.report_final_result()`, for example `nni.report_final_result(0.93)`. Then your Tuner's `receive_trial_result` function will receied the result like:
```python
parameter_id = 82347
@@ -73,14 +73,14 @@ parameters = {"dropout": 0.3, "learning_rate": 0.4}
value = 0.93
```
-**Note that** if you want to access a file (e.g., ```data.txt```) in the directory of your own tuner, you cannot use ```open('data.txt', 'r')```. Instead, you should use the following:
+**Note that** if you want to access a file (e.g., `data.txt`) in the directory of your own tuner, you cannot use `open('data.txt', 'r')`. Instead, you should use the following:
```python
_pwd = os.path.dirname(__file__)
_fd = open(os.path.join(_pwd, 'data.txt'), 'r')
```
-This is because your tuner is not executed in the directory of your tuner (i.e., ```pwd``` is not the directory of your own tuner).
+This is because your tuner is not executed in the directory of your tuner (i.e., `pwd` is not the directory of your own tuner).
**3) 在实验的 yaml 文件中配置好自定义的调参器**
@@ -91,8 +91,8 @@ tuner:
codeDir: /home/abc/mytuner
classFileName: my_customized_tuner.py
className: CustomizedTuner
- # Any parameter need to pass to your tuner class __init__ constructor
- # can be specified in this optional classArgs field, for example
+ # 任何传入 __init__ 构造函数的参数
+ # 都需要声明在 classArgs 字段中,如:
classArgs:
arg1: value1
```
From 2fc1fd3e7a08908e6783a7a8917c548ae74fcc2b Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Fri, 4 Jan 2019 15:02:05 +0800
Subject: [PATCH 0163/1573] New translations howto_2_CustomizedTuner.md
(Chinese Simplified)
---
zh_CN/docs/howto_2_CustomizedTuner.md | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/zh_CN/docs/howto_2_CustomizedTuner.md b/zh_CN/docs/howto_2_CustomizedTuner.md
index 36f5544d48..c05d2b0ed2 100644
--- a/zh_CN/docs/howto_2_CustomizedTuner.md
+++ b/zh_CN/docs/howto_2_CustomizedTuner.md
@@ -65,7 +65,7 @@ class CustomizedTuner(Tuner):
return {"dropout": 0.3, "learning_rate": 0.4}
```
-这表示调参器会一直生成参数 `{"dropout": 0.3, "learning_rate": 0.4}`。 然后尝试进程也会在调用 API `nni.get_next_parameter()` 时得到 `{"dropout": 0.3, "learning_rate": 0.4}`。 Once the trial ends with a result (normally some kind of metrics), it can send the result to Tuner by calling API `nni.report_final_result()`, for example `nni.report_final_result(0.93)`. Then your Tuner's `receive_trial_result` function will receied the result like:
+这表示调参器会一直生成参数 `{"dropout": 0.3, "learning_rate": 0.4}`。 而尝试进程也会在调用 API `nni.get_next_parameter()` 时得到 `{"dropout": 0.3, "learning_rate": 0.4}`。 尝试结束后的返回值(通常是某个指标),通过调用 API `nni.report_final_result()` 返回给调参器。如: `nni.report_final_result(0.93)`。 而调参器的 `receive_trial_result` 函数会收到如下结果:
```python
parameter_id = 82347
@@ -73,18 +73,18 @@ parameters = {"dropout": 0.3, "learning_rate": 0.4}
value = 0.93
```
-**Note that** if you want to access a file (e.g., `data.txt`) in the directory of your own tuner, you cannot use `open('data.txt', 'r')`. Instead, you should use the following:
+**注意** 如果需要存取自定义的调参器目录里的文件 (如, `data.txt`),不能使用 `open('data.txt', 'r')`。 要使用:
```python
_pwd = os.path.dirname(__file__)
_fd = open(os.path.join(_pwd, 'data.txt'), 'r')
```
-This is because your tuner is not executed in the directory of your tuner (i.e., `pwd` is not the directory of your own tuner).
+这是因为自定义的调参器不是在自己的目录里执行的。(即,`pwd` 返回的目录不是调参器的目录)。
**3) 在实验的 yaml 文件中配置好自定义的调参器**
-NNI needs to locate your customized tuner class and instantiate the class, so you need to specify the location of the customized tuner class and pass literal values as parameters to the \_\_init__ constructor.
+NNI 需要定位到自定义的调参器类,并实例化它,因此需要指定自定义调参器类的文件位置,并将参数值传给 \_\_init__ 构造函数。
```yaml
tuner:
@@ -97,7 +97,7 @@ tuner:
arg1: value1
```
-More detail example you could see:
+更多样例,可参考:
> - [evolution-tuner](../src/sdk/pynni/nni/evolution_tuner)
> - [hyperopt-tuner](../src/sdk/pynni/nni/hyperopt_tuner)
From b46e741a0ce1baa2dba1818a8cf776b1f7b33ef8 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Fri, 4 Jan 2019 15:10:00 +0800
Subject: [PATCH 0164/1573] New translations howto_1_WriteTrial.md (Chinese
Simplified)
---
zh_CN/docs/howto_1_WriteTrial.md | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/zh_CN/docs/howto_1_WriteTrial.md b/zh_CN/docs/howto_1_WriteTrial.md
index a16ef50655..5aca646ec5 100644
--- a/zh_CN/docs/howto_1_WriteTrial.md
+++ b/zh_CN/docs/howto_1_WriteTrial.md
@@ -1,4 +1,4 @@
-# **在 NNI 上编写 Trial(尝试)代码**
+# **实现 NNI 的 Trial(尝试)代码**
**Trial(尝试)**是将一组参数在模型上独立的一次尝试。
@@ -65,18 +65,18 @@
参考 [这里](ExperimentConfig.md) 进一步了解如何配置实验。
-参考 [README.md](../../examples/trials/README.md) 进一步了解如何使用 NNI 的 API 来编写尝试的代码。
+参考 [README.md](../../examples/trials/README.md) 进一步了解如何使用 NNI 的 API 来实现尝试的代码。
## NNI 标记
-另一种编写尝试的方法是使用 Python 注释来标记 NNI。 就像其它标记,NNI 的标记和代码中的注释一样。 不需要在代码中做大量改动。 只需要添加一些 NNI 标记,就能够:
+另一种实现尝试的方法是使用 Python 注释来标记 NNI。 就像其它标记,NNI 的标记和代码中的注释一样。 不需要在代码中做大量改动。 只需要添加一些 NNI 标记,就能够:
* 标记需要调整的参数变量
* 指定变量的搜索空间范围
* 标记哪个变量需要作为中间结果范围给`评估器`
* 标记哪个变量需要作为最终结果(例如:模型精度)返回给`调参器`。
-同样以 MNIST 为例,只需要两步就能用 NNI 标记来编写尝试代码。
+同样以 MNIST 为例,只需要两步就能用 NNI 标记来实现尝试代码。
> 第一步:在代码中加入标记
From d055958129df3b0e9805b12d3117a43ef9388b4e Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Fri, 4 Jan 2019 15:10:01 +0800
Subject: [PATCH 0165/1573] New translations howto_2_CustomizedTuner.md
(Chinese Simplified)
---
zh_CN/docs/howto_2_CustomizedTuner.md | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/zh_CN/docs/howto_2_CustomizedTuner.md b/zh_CN/docs/howto_2_CustomizedTuner.md
index c05d2b0ed2..fd98f6b770 100644
--- a/zh_CN/docs/howto_2_CustomizedTuner.md
+++ b/zh_CN/docs/howto_2_CustomizedTuner.md
@@ -99,10 +99,10 @@ tuner:
更多样例,可参考:
-> - [evolution-tuner](../src/sdk/pynni/nni/evolution_tuner)
-> - [hyperopt-tuner](../src/sdk/pynni/nni/hyperopt_tuner)
-> - [evolution-based-customized-tuner](../examples/tuners/ga_customer_tuner)
+> - [evolution-tuner](../../src/sdk/pynni/nni/evolution_tuner)
+> - [hyperopt-tuner](../../src/sdk/pynni/nni/hyperopt_tuner)
+> - [evolution-based-customized-tuner](../../examples/tuners/ga_customer_tuner)
-## Write a more advanced automl algorithm
+## 实现更高级的自动机器学习算法
-The methods above are usually enough to write a general tuner. However, users may also want more methods, for example, intermediate results, trials' state (e.g., the methods in assessor), in order to have a more powerful automl algorithm. Therefore, we have another concept called `advisor` which directly inherits from `MsgDispatcherBase` in [`src/sdk/pynni/nni/msg_dispatcher_base.py`](../src/sdk/pynni/nni/msg_dispatcher_base.py). Please refer to [here](./howto_3_CustomizedAdvisor.md) for how to write a customized advisor.
\ No newline at end of file
+上述内容足够写出通用的调参器。 但有时可能需要更多的信息,例如,中间结果,尝试的状态等等,从而能够实现更强大的自动机器学习算法。 因此,有另一个叫做 `advisor` 的类,直接继承于 `MsgDispatcherBase`,它位于 [`src/sdk/pynni/nni/msg_dispatcher_base.py`](../../src/sdk/pynni/nni/msg_dispatcher_base.py)。 参考[这里](./howto_3_CustomizedAdvisor.md)来了解如何实现自定义的 advisor。
\ No newline at end of file
From 8a1064d6c412df91738431836515899f690c87af Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Fri, 4 Jan 2019 15:10:05 +0800
Subject: [PATCH 0166/1573] New translations howto_3_CustomizedAdvisor.md
(Chinese Simplified)
---
zh_CN/docs/howto_3_CustomizedAdvisor.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/zh_CN/docs/howto_3_CustomizedAdvisor.md b/zh_CN/docs/howto_3_CustomizedAdvisor.md
index 02bfcab587..21def539a7 100644
--- a/zh_CN/docs/howto_3_CustomizedAdvisor.md
+++ b/zh_CN/docs/howto_3_CustomizedAdvisor.md
@@ -1,4 +1,4 @@
-# **How To** - Customize Your Own Advisor
+# **指南** - 自定义 advisor
*Advisor targets the scenario that the automl algorithm wants the methods of both tuner and assessor. Advisor is similar to tuner on that it receives trial configuration request, final results, and generate trial configurations. Also, it is similar to assessor on that it receives intermediate results, trial's end state, and could send trial kill command. Note that, if you use Advisor, tuner and assessor are not allowed to be used at the same time.*
From 2fdf5f0532bd5be00bbe18f9218d3f7053afed0e Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Fri, 4 Jan 2019 15:10:06 +0800
Subject: [PATCH 0167/1573] New translations GetStarted.md (Chinese Simplified)
---
zh_CN/docs/GetStarted.md | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/zh_CN/docs/GetStarted.md b/zh_CN/docs/GetStarted.md
index 811d37eff5..eff3fd768a 100644
--- a/zh_CN/docs/GetStarted.md
+++ b/zh_CN/docs/GetStarted.md
@@ -30,9 +30,9 @@
实验会运行多个尝试任务,每个尝试任务会使用特定的神经网络(或模型)结构以及超参的值。 运行 NNI 实验,需要如下准备:
* 可运行的尝试的代码
-* 编写或选择调参器
+* 实现或选择调参器
* 准备 yaml 的实验配置文件
-* (可选) 编写或选择评估器
+* (可选) 实现或选择评估器
**准备尝试**: 先从简单样例开始,如:NNI 样例中的 mnist。 NNI 样例在代码目录的 examples 中,运行 `ls ~/nni/examples/trials` 可以看到所有实验的样例。 执行下面的命令可轻松运行 NNI 的 mnist 样例:
@@ -40,7 +40,7 @@
上面的命令会写在 yaml 文件中。 参考[这里](howto_1_WriteTrial.md)来写出自己的实验代码。
-**准备调参器**: NNI 支持多种流行的自动机器学习算法,包括:Random Search(随机搜索),Tree of Parzen Estimators (TPE),Evolution(遗传算法)等等。 也可以编写自己的调参器(参考[这里](howto_2_CustomizedTuner.md))。下面使用了 NNI 内置的调参器:
+**准备调参器**: NNI 支持多种流行的自动机器学习算法,包括:Random Search(随机搜索),Tree of Parzen Estimators (TPE),Evolution(遗传算法)等等。 也可以实现自己的调参器(参考[这里](howto_2_CustomizedTuner.md))。下面使用了 NNI 内置的调参器:
tuner:
builtinTunerName: TPE
@@ -49,7 +49,7 @@
*builtinTunerName* 用来指定 NNI 中的调参器,*classArgs* 是传入到调参器的参数,*optimization_mode* 表明需要最大化还是最小化尝试的结果。
-**准备配置文件**:编写好尝试的代码,并选择或编写好自己的调参器后,就要准备 yaml 配置文件了。 NNI 为每个尝试样例都提供了演示的配置文件,用命令`cat ~/nni/examples/trials/mnist-annotation/config.yml` 来查看其内容。 大致内容如下:
+**准备配置文件**:实现尝试的代码,并选择或实现自定义的调参器后,就要准备 yaml 配置文件了。 NNI 为每个尝试样例都提供了演示的配置文件,用命令`cat ~/nni/examples/trials/mnist-annotation/config.yml` 来查看其内容。 大致内容如下:
authorName: your_name
experimentName: auto_mnist
From e31eac8f93a4959ae7a1cd5b5c1001f9e8985da1 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Fri, 4 Jan 2019 15:41:31 +0800
Subject: [PATCH 0168/1573] New translations howto_3_CustomizedAdvisor.md
(Chinese Simplified)
---
zh_CN/docs/howto_3_CustomizedAdvisor.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/zh_CN/docs/howto_3_CustomizedAdvisor.md b/zh_CN/docs/howto_3_CustomizedAdvisor.md
index 21def539a7..96a2826f30 100644
--- a/zh_CN/docs/howto_3_CustomizedAdvisor.md
+++ b/zh_CN/docs/howto_3_CustomizedAdvisor.md
@@ -1,6 +1,6 @@
# **指南** - 自定义 advisor
-*Advisor targets the scenario that the automl algorithm wants the methods of both tuner and assessor. Advisor is similar to tuner on that it receives trial configuration request, final results, and generate trial configurations. Also, it is similar to assessor on that it receives intermediate results, trial's end state, and could send trial kill command. Note that, if you use Advisor, tuner and assessor are not allowed to be used at the same time.*
+*Advisor 用于同时需要调参器和评估器方法的自动机器学习算法。 Advisor 与调参器类似,它接收尝试的参数请求,最终结果,并生成尝试的参数。 另外,它也能像评估器一样接收中间结果,尝试的最终状态,并可以发送终止尝试的命令。 Note that, if you use Advisor, tuner and assessor are not allowed to be used at the same time.*
So, if user want to implement a customized Advisor, she/he only need to:
From c07492adbd4069f1ee4c5e2f6c14a06b9019e4df Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Fri, 4 Jan 2019 15:51:49 +0800
Subject: [PATCH 0169/1573] New translations howto_3_CustomizedAdvisor.md
(Chinese Simplified)
---
zh_CN/docs/howto_3_CustomizedAdvisor.md | 18 ++++++++++--------
1 file changed, 10 insertions(+), 8 deletions(-)
diff --git a/zh_CN/docs/howto_3_CustomizedAdvisor.md b/zh_CN/docs/howto_3_CustomizedAdvisor.md
index 96a2826f30..16b649f030 100644
--- a/zh_CN/docs/howto_3_CustomizedAdvisor.md
+++ b/zh_CN/docs/howto_3_CustomizedAdvisor.md
@@ -1,14 +1,16 @@
# **指南** - 自定义 advisor
-*Advisor 用于同时需要调参器和评估器方法的自动机器学习算法。 Advisor 与调参器类似,它接收尝试的参数请求,最终结果,并生成尝试的参数。 另外,它也能像评估器一样接收中间结果,尝试的最终状态,并可以发送终止尝试的命令。 Note that, if you use Advisor, tuner and assessor are not allowed to be used at the same time.*
+*Advisor 用于同时需要调参器和评估器方法的自动机器学习算法。 Advisor 与调参器类似,它接收尝试的参数请求,最终结果,并生成尝试的参数。 另外,它也能像评估器一样接收中间结果,尝试的最终状态,并可以发送终止尝试的命令。 注意,在使用 Advisor 时,不能同时使用调参器和评估器。*
-So, if user want to implement a customized Advisor, she/he only need to:
+如果要自定义 Advisor,需要:
-1) Define an Advisor inheriting from the MsgDispatcherBase class 2) Implement the methods with prefix `handle_` except `handle_request` 3) Configure your customized Advisor in experiment yaml config file
+1. 从 MsgDispatcherBase 类继承并创建新的 Advisor 类
+2. 实现所有除了 `handle_request` 外的,以 `handle_` 前缀开始的方法
+3. 在实验的 yaml 文件中配置好自定义的 Advisor
-Here ia an example:
+样例如下:
-**1) Define an Advisor inheriting from the MsgDispatcherBase class**
+**1) 从 MsgDispatcherBase 类继承并创建新的 Advisor 类**
```python
from nni.msg_dispatcher_base import MsgDispatcherBase
@@ -18,11 +20,11 @@ class CustomizedAdvisor(MsgDispatcherBase):
...
```
-**2) Implement the methods with prefix `handle_` except `handle_request`**
+**2) 实现所有除了 `handle_request` 外的,以 `handle_` 前缀开始的方法**
-Please refer to the implementation of Hyperband ([src/sdk/pynni/nni/hyperband_advisor/hyperband_advisor.py](../src/sdk/pynni/nni/hyperband_advisor/hyperband_advisor.py)) for how to implement the methods.
+参考 Hyperband 的实现 ([src/sdk/pynni/nni/hyperband_advisor/hyperband_advisor.py](../../src/sdk/pynni/nni/hyperband_advisor/hyperband_advisor.py)) 来学习如何实现这些方法。
-**3) Configure your customized Advisor in experiment yaml config file**
+**3) 在实验的 yaml 文件中配置好自定义的 Advisor**
Similar to tuner and assessor. NNI needs to locate your customized Advisor class and instantiate the class, so you need to specify the location of the customized Advisor class and pass literal values as parameters to the \_\_init__ constructor.
From e8e3a876220edf25c9bfecd28f380631528f676b Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Fri, 4 Jan 2019 15:53:30 +0800
Subject: [PATCH 0170/1573] New translations howto_3_CustomizedAdvisor.md
(Chinese Simplified)
---
zh_CN/docs/howto_3_CustomizedAdvisor.md | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/zh_CN/docs/howto_3_CustomizedAdvisor.md b/zh_CN/docs/howto_3_CustomizedAdvisor.md
index 16b649f030..a3b5a9fa0b 100644
--- a/zh_CN/docs/howto_3_CustomizedAdvisor.md
+++ b/zh_CN/docs/howto_3_CustomizedAdvisor.md
@@ -26,15 +26,15 @@ class CustomizedAdvisor(MsgDispatcherBase):
**3) 在实验的 yaml 文件中配置好自定义的 Advisor**
-Similar to tuner and assessor. NNI needs to locate your customized Advisor class and instantiate the class, so you need to specify the location of the customized Advisor class and pass literal values as parameters to the \_\_init__ constructor.
+与调参器和评估器类似。 NNI 需要定位到自定义的 Advisor 类,并实例化它,因此需要指定自定义 Advisor 类的文件位置,并将参数值传给 \_\_init__ 构造函数。
```yaml
advisor:
codeDir: /home/abc/myadvisor
classFileName: my_customized_advisor.py
className: CustomizedAdvisor
- # Any parameter need to pass to your advisor class __init__ constructor
- # can be specified in this optional classArgs field, for example
+ # 任何传入 __init__ 构造函数的参数
+ # 都需要声明在 classArgs 字段中,如:
classArgs:
arg1: value1
```
\ No newline at end of file
From b6d8ab81c652d24611d54e8e930a9f669c04e366 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Fri, 4 Jan 2019 16:02:00 +0800
Subject: [PATCH 0171/1573] New translations HowToChooseTuner.md (Chinese
Simplified)
---
zh_CN/docs/HowToChooseTuner.md | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/zh_CN/docs/HowToChooseTuner.md b/zh_CN/docs/HowToChooseTuner.md
index ddfae2d979..eefdea0e09 100644
--- a/zh_CN/docs/HowToChooseTuner.md
+++ b/zh_CN/docs/HowToChooseTuner.md
@@ -1,18 +1,18 @@
-# How to use Tuner that NNI supports?
+# 如何使用 NNI 支持的调参器?
-For now, NNI has supported the following tuner algorithms. Note that NNI installation only installs a subset of those algorithms, other algorithms should be installed through `nnictl package install` before you use them. For example, for SMAC the installation command is `nnictl package install --name=SMAC`.
+目前,NNI 已支持下列调参器算法。 注意,NNI 只安装了部分下列算法,其它算法在使用前需要通过 `nnictl package install` 命令安装。 例如,安装 SMAC 算法的命令为 `nnictl package install --name=SMAC`。
* [TPE](#TPE)
-* [Random Search](#Random)
-* [Anneal](#Anneal)
-* [Naive Evolution](#Evolution)
-* [SMAC](#SMAC) (to install through `nnictl`)
+* [Random Search(随机搜索)](#Random)
+* [Anneal(退火算法)](#Anneal)
+* [Naive Evolution(遗传算法)](#Evolution)
+* [SMAC](#SMAC) (需要通过 `nnictl` 命令安装)
* [Batch Tuner](#Batch)
-* [Grid Search](#Grid)
+* [Grid Search(网格搜索)](#Grid)
* [Hyperband](#Hyperband)
-* [Network Morphism](#NetworkMorphism) (require pyTorch)
+* [Network Morphism](#NetworkMorphism) (需要安装 pyTorch)
- ## Supported tuner algorithms
+ ## 支持的调参器算法
We will introduce some basic knowledge about the tuner algorithms, suggested scenarios for each tuner, and their example usage (for complete usage spec, please refer to [here]()).
From 03788a8d212484132dcbfc583610a5d728400128 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Fri, 4 Jan 2019 16:21:49 +0800
Subject: [PATCH 0172/1573] New translations HowToChooseTuner.md (Chinese
Simplified)
---
zh_CN/docs/HowToChooseTuner.md | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/zh_CN/docs/HowToChooseTuner.md b/zh_CN/docs/HowToChooseTuner.md
index eefdea0e09..7658d69b02 100644
--- a/zh_CN/docs/HowToChooseTuner.md
+++ b/zh_CN/docs/HowToChooseTuner.md
@@ -14,29 +14,29 @@
## 支持的调参器算法
-We will introduce some basic knowledge about the tuner algorithms, suggested scenarios for each tuner, and their example usage (for complete usage spec, please refer to [here]()).
+这里将介绍这些调参器算法的基本知识,各个调参器建议使用的场景,以及使用样例(完整的使用样例参考 [这里]())。
**TPE**
-The Tree-structured Parzen Estimator (TPE) is a sequential model-based optimization (SMBO) approach. SMBO methods sequentially construct models to approximate the performance of hyperparameters based on historical measurements, and then subsequently choose new hyperparameters to test based on this model. The TPE approach models P(x|y) and P(y) where x represents hyperparameters and y the associated evaluate matric. P(x|y) is modeled by transforming the generative process of hyperparameters, replacing the distributions of the configuration prior with non-parametric densities. This optimization approach is described in detail in [Algorithms for Hyper-Parameter Optimization](https://papers.nips.cc/paper/4443-algorithms-for-hyper-parameter-optimization.pdf).
-*Suggested scenario*: TPE, as a black-box optimization, can be used in various scenarios, and shows good performance in general. Especially when you have limited computation resource and can only try a small number of trials. From a large amount of experiments, we could found that TPE is far better than Random Search.
+Tree-structured Parzen Estimator (TPE) 是一种 sequential model-based optimization(SMBO,即基于序列模型优化)的方法。 SMBO 方法根据历史指标数据来按顺序构造模型,来估算超参的性能,随后基于此模型来选择新的超参。 TPE 方法对 P(x|y) 和 P(y) 建模,其中 x 表示超参,y 表示相关的评估指标。 P(x|y) 通过变换超参的生成过程来建模,用非参数密度(non-parametric densities)代替配置的先验分布。 细节可参考 [Algorithms for Hyper-Parameter Optimization](https://papers.nips.cc/paper/4443-algorithms-for-hyper-parameter-optimization.pdf)。
+*建议场景*: TPE 作为黑盒的优化方法,能在广泛的场景中使用,通常都能得到较好的结果。 特别是在计算资源有限,只能进行少量尝试时。 从大量的实验中,我们 发现 TPE 的性能远远优于随机搜索。
-*Usage*:
+*用法*:
```yaml
# config.yaml
tuner:
builtinTunerName: TPE
classArgs:
- # choice: maximize, minimize
+ # 可选项: maximize, minimize
optimize_mode: maximize
```
-**Random Search**
+**随机搜索**
-In [Random Search for Hyper-Parameter Optimization](http://www.jmlr.org/papers/volume13/bergstra12a/bergstra12a.pdf) show that Random Search might be surprisingly simple and effective. We suggests that we could use Random Search as baseline when we have no knowledge about the prior distribution of hyper-parameters.
+[Random Search for Hyper-Parameter Optimization](http://www.jmlr.org/papers/volume13/bergstra12a/bergstra12a.pdf) 中介绍了随机搜索惊人的简单和效果。 We suggests that we could use Random Search as baseline when we have no knowledge about the prior distribution of hyper-parameters.
*Suggested scenario*: Random search is suggested when each trial does not take too long (e.g., each trial can be completed very soon, or early stopped by assessor quickly), and you have enough computation resource. Or you want to uniformly explore the search space. Random Search could be considered as baseline of search algorithm.
From 4b74ea0c3c614838efab7cf266fe740feff2bdf9 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Fri, 4 Jan 2019 16:42:03 +0800
Subject: [PATCH 0173/1573] New translations HowToChooseTuner.md (Chinese
Simplified)
---
zh_CN/docs/HowToChooseTuner.md | 26 +++++++++++++-------------
1 file changed, 13 insertions(+), 13 deletions(-)
diff --git a/zh_CN/docs/HowToChooseTuner.md b/zh_CN/docs/HowToChooseTuner.md
index 7658d69b02..366b87f952 100644
--- a/zh_CN/docs/HowToChooseTuner.md
+++ b/zh_CN/docs/HowToChooseTuner.md
@@ -20,9 +20,9 @@
**TPE**
Tree-structured Parzen Estimator (TPE) 是一种 sequential model-based optimization(SMBO,即基于序列模型优化)的方法。 SMBO 方法根据历史指标数据来按顺序构造模型,来估算超参的性能,随后基于此模型来选择新的超参。 TPE 方法对 P(x|y) 和 P(y) 建模,其中 x 表示超参,y 表示相关的评估指标。 P(x|y) 通过变换超参的生成过程来建模,用非参数密度(non-parametric densities)代替配置的先验分布。 细节可参考 [Algorithms for Hyper-Parameter Optimization](https://papers.nips.cc/paper/4443-algorithms-for-hyper-parameter-optimization.pdf)。
-*建议场景*: TPE 作为黑盒的优化方法,能在广泛的场景中使用,通常都能得到较好的结果。 特别是在计算资源有限,只能进行少量尝试时。 从大量的实验中,我们 发现 TPE 的性能远远优于随机搜索。
+*建议场景*: TPE 作为黑盒的优化方法,能在广泛的场景中使用,通常都能得到较好的结果。 特别是在计算资源有限,只能进行少量尝试时。 从大量的实验中,我们发现 TPE 的性能远远优于随机搜索。
-*用法*:
+*用法*:
```yaml
# config.yaml
@@ -34,13 +34,13 @@ Tree-structured Parzen Estimator (TPE) 是一种 sequential model-based optimiza
```
-**随机搜索**
+**Random Search(随机搜索)**
-[Random Search for Hyper-Parameter Optimization](http://www.jmlr.org/papers/volume13/bergstra12a/bergstra12a.pdf) 中介绍了随机搜索惊人的简单和效果。 We suggests that we could use Random Search as baseline when we have no knowledge about the prior distribution of hyper-parameters.
+[Random Search for Hyper-Parameter Optimization](http://www.jmlr.org/papers/volume13/bergstra12a/bergstra12a.pdf) 中介绍了随机搜索惊人的简单和效果。 建议当不清楚超参的先验分布时,采用随机搜索作为基准。
-*Suggested scenario*: Random search is suggested when each trial does not take too long (e.g., each trial can be completed very soon, or early stopped by assessor quickly), and you have enough computation resource. Or you want to uniformly explore the search space. Random Search could be considered as baseline of search algorithm.
+*建议场景*:在每个尝试运行时间不长(例如,能够非常快的完成,或者很快的被评估器终止),并有充足计算资源的情况下。 或者需要均匀的探索搜索空间。 随机搜索可作为搜索算法的基准线。
-*Usage*:
+*用法*:
```yaml
# config.yaml
@@ -49,25 +49,25 @@ Tree-structured Parzen Estimator (TPE) 是一种 sequential model-based optimiza
```
-**Anneal**
+**Anneal(退火算法)**
-This simple annealing algorithm begins by sampling from the prior, but tends over time to sample from points closer and closer to the best ones observed. This algorithm is a simple variation on random search that leverages smoothness in the response surface. The annealing rate is not adaptive.
+这种简单的退火算法从先前的采样开始,但随着时间的推理,会越来越靠近发现的最佳点取样。 此算法是随机搜索的简单变体,利用了反应曲面的平滑性。 退火率不是自适应的。
-*Suggested scenario*: Anneal is suggested when each trial does not take too long, and you have enough computation resource(almost same with Random Search). Or the variables in search space could be sample from some prior distribution.
+*建议场景*:当每个尝试的时间不长,并且有足够的计算资源时使用(与随机搜索基本相同)。 或者搜索空间的变量能从一些先验分布中采样。
-*Usage*:
+*用法*:
```yaml
# config.yaml
tuner:
builtinTunerName: Anneal
classArgs:
- # choice: maximize, minimize
+ # 可选项: maximize, minimize
optimize_mode: maximize
```
-**Naive Evolution**
+**Naive Evolution(遗传算法)**
Naive Evolution comes from [Large-Scale Evolution of Image Classifiers](https://arxiv.org/pdf/1703.01041.pdf). It randomly initializes a population based on search space. For each generation, it chooses better ones and do some mutation (e.g., change a hyperparameter, add/remove one layer) on them to get the next generation. Naive Evolution requires many trials to works, but it's very simple and easily to expand new features.
@@ -144,7 +144,7 @@ Note that the search space that BatchTuner supported like:
The search space file including the high-level key `combine_params`. The type of params in search space must be `choice` and the `values` including all the combined-params value.
-**Grid Search**
+**Grid Search(网格搜索)**
Grid Search performs an exhaustive searching through a manually specified subset of the hyperparameter space defined in the searchspace file. Note that the only acceptable types of search space are `choice`, `quniform`, `qloguniform`. **The number `q` in `quniform` and `qloguniform` has special meaning (different from the spec in [search space spec](./SearchSpaceSpec.md)). It means the number of values that will be sampled evenly from the range `low` and `high`.**
From 5ba49268e7ceca18322603fd83d85977b20aa622 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Fri, 4 Jan 2019 17:02:00 +0800
Subject: [PATCH 0174/1573] New translations GetStarted.md (Chinese Simplified)
---
zh_CN/docs/GetStarted.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/zh_CN/docs/GetStarted.md b/zh_CN/docs/GetStarted.md
index eff3fd768a..d6644e03b0 100644
--- a/zh_CN/docs/GetStarted.md
+++ b/zh_CN/docs/GetStarted.md
@@ -40,7 +40,7 @@
上面的命令会写在 yaml 文件中。 参考[这里](howto_1_WriteTrial.md)来写出自己的实验代码。
-**准备调参器**: NNI 支持多种流行的自动机器学习算法,包括:Random Search(随机搜索),Tree of Parzen Estimators (TPE),Evolution(遗传算法)等等。 也可以实现自己的调参器(参考[这里](howto_2_CustomizedTuner.md))。下面使用了 NNI 内置的调参器:
+**准备调参器**: NNI 支持多种流行的自动机器学习算法,包括:Random Search(随机搜索),Tree of Parzen Estimators (TPE),Evolution(进化算法)等等。 也可以实现自己的调参器(参考[这里](howto_2_CustomizedTuner.md))。下面使用了 NNI 内置的调参器:
tuner:
builtinTunerName: TPE
From f90dd34d4a9480db4743ec09a146e1beaa81151a Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Fri, 4 Jan 2019 17:02:02 +0800
Subject: [PATCH 0175/1573] New translations HowToChooseTuner.md (Chinese
Simplified)
---
zh_CN/docs/HowToChooseTuner.md | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/zh_CN/docs/HowToChooseTuner.md b/zh_CN/docs/HowToChooseTuner.md
index 366b87f952..fc39ebfeeb 100644
--- a/zh_CN/docs/HowToChooseTuner.md
+++ b/zh_CN/docs/HowToChooseTuner.md
@@ -5,7 +5,7 @@
* [TPE](#TPE)
* [Random Search(随机搜索)](#Random)
* [Anneal(退火算法)](#Anneal)
-* [Naive Evolution(遗传算法)](#Evolution)
+* [Naive Evolution(进化算法)](#Evolution)
* [SMAC](#SMAC) (需要通过 `nnictl` 命令安装)
* [Batch Tuner](#Batch)
* [Grid Search(网格搜索)](#Grid)
@@ -51,7 +51,7 @@ Tree-structured Parzen Estimator (TPE) 是一种 sequential model-based optimiza
**Anneal(退火算法)**
-这种简单的退火算法从先前的采样开始,但随着时间的推理,会越来越靠近发现的最佳点取样。 此算法是随机搜索的简单变体,利用了反应曲面的平滑性。 退火率不是自适应的。
+这种简单的退火算法从先前的采样开始,会越来越靠近发现的最佳点取样。 此算法是随机搜索的简单变体,利用了反应曲面的平滑性。 退火率不是自适应的。
*建议场景*:当每个尝试的时间不长,并且有足够的计算资源时使用(与随机搜索基本相同)。 或者搜索空间的变量能从一些先验分布中采样。
@@ -67,11 +67,11 @@ Tree-structured Parzen Estimator (TPE) 是一种 sequential model-based optimiza
```
-**Naive Evolution(遗传算法)**
+**Naive Evolution(进化算法)**
-Naive Evolution comes from [Large-Scale Evolution of Image Classifiers](https://arxiv.org/pdf/1703.01041.pdf). It randomly initializes a population based on search space. For each generation, it chooses better ones and do some mutation (e.g., change a hyperparameter, add/remove one layer) on them to get the next generation. Naive Evolution requires many trials to works, but it's very simple and easily to expand new features.
+进化算法来自于 [Large-Scale Evolution of Image Classifiers](https://arxiv.org/pdf/1703.01041.pdf)。 它会基于搜索空间随机生成一个种群。 在每一代中,会选择较好的结果,并对其下一代进行一些变异(例如,改动一个超参,增加或减少一层)。 进化算法需要很多次尝试才能有效,但它也非常简单,也很容易扩展新功能。
-*Suggested scenario*: Its requirement of computation resource is relatively high. Specifically, it requires large inital population to avoid falling into local optimum. If your trial is short or leverages assessor, this tuner is a good choice. And, it is more suggested when your trial code supports weight transfer, that is, the trial could inherit the converged weights from its parent(s). This can greatly speed up the training progress.
+*建议场景*:它需要相对较多的计算资源。 需要非常大的初始种群,以免落入局部最优中。 如果尝试时间很短,或者利用了评估器,这个调参器就非常合适。 And, it is more suggested when your trial code supports weight transfer, that is, the trial could inherit the converged weights from its parent(s). This can greatly speed up the training progress.
*Usage*:
From 321db39d3b75ec026b26efe3b02bf7337ed1bd43 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Fri, 4 Jan 2019 17:02:03 +0800
Subject: [PATCH 0176/1573] New translations README.md (Chinese Simplified)
---
zh_CN/README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/zh_CN/README.md b/zh_CN/README.md
index d16a94eae4..76c225621a 100644
--- a/zh_CN/README.md
+++ b/zh_CN/README.md
@@ -122,7 +122,7 @@ NNI (Neural Network Intelligence) 是自动机器学习(AutoML)实验的工
* [使用不同的调参器和评估器](docs/tutorial_3_tryTunersAndAssessors.md)
* [实现自定义调参器](docs/howto_2_CustomizedTuner.md)
* [实现自定义评估器](examples/assessors/README.md)
-* [使用遗传算法为阅读理解任务找到好模型](examples/trials/ga_squad/README.md)
+* [使用进化算法为阅读理解任务找到好模型](examples/trials/ga_squad/README.md)
## **贡献**
From 19a1fbcc94aabb749ec2976fa0120698ede813b0 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Sun, 6 Jan 2019 13:31:33 +0800
Subject: [PATCH 0177/1573] New translations HowToChooseTuner.md (Chinese
Simplified)
---
zh_CN/docs/HowToChooseTuner.md | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/zh_CN/docs/HowToChooseTuner.md b/zh_CN/docs/HowToChooseTuner.md
index fc39ebfeeb..4ab7330f87 100644
--- a/zh_CN/docs/HowToChooseTuner.md
+++ b/zh_CN/docs/HowToChooseTuner.md
@@ -71,27 +71,27 @@ Tree-structured Parzen Estimator (TPE) 是一种 sequential model-based optimiza
进化算法来自于 [Large-Scale Evolution of Image Classifiers](https://arxiv.org/pdf/1703.01041.pdf)。 它会基于搜索空间随机生成一个种群。 在每一代中,会选择较好的结果,并对其下一代进行一些变异(例如,改动一个超参,增加或减少一层)。 进化算法需要很多次尝试才能有效,但它也非常简单,也很容易扩展新功能。
-*建议场景*:它需要相对较多的计算资源。 需要非常大的初始种群,以免落入局部最优中。 如果尝试时间很短,或者利用了评估器,这个调参器就非常合适。 And, it is more suggested when your trial code supports weight transfer, that is, the trial could inherit the converged weights from its parent(s). This can greatly speed up the training progress.
+*建议场景*:它需要相对较多的计算资源。 需要非常大的初始种群,以免落入局部最优中。 如果尝试时间很短,或者利用了评估器,这个调参器就非常合适。 如果尝试代码支持权重迁移,即每次尝试会从上一轮继承已经收敛的权重,建议使用此算法。 这会大大提高训练速度。
-*Usage*:
+*用法*:
```yaml
# config.yaml
tuner:
builtinTunerName: Evolution
classArgs:
- # choice: maximize, minimize
+ # 可选项: maximize, minimize
optimize_mode: maximize
```
**SMAC**
-[SMAC](https://www.cs.ubc.ca/~hutter/papers/10-TR-SMAC.pdf) is based on Sequential Model-Based Optimization (SMBO). It adapts the most prominent previously used model class (Gaussian stochastic process models) and introduces the model class of random forests to SMBO, in order to handle categorical parameters. The SMAC supported by nni is a wrapper on [the SMAC3 github repo](https://github.com/automl/SMAC3).
+[SMAC](https://www.cs.ubc.ca/~hutter/papers/10-TR-SMAC.pdf) 基于 Sequential Model-Based Optimization (SMBO). 它会利用使用过的突出的模型(高斯随机过程模型),并将随机森林引入到SMBO中,来处理分类参数。 NNI 的 SMAC 通过包装 [SMAC3](https://github.com/automl/SMAC3) 来支持。
-Note that SMAC on nni only supports a subset of the types in [search space spec](./SearchSpaceSpec.md), including `choice`, `randint`, `uniform`, `loguniform`, `quniform(q=1)`.
+NNI 中的 SMAC 只支持部分类型的[搜索空间](./SearchSpaceSpec.md),包括`choice`, `randint`, `uniform`, `loguniform`, `quniform(q=1)`。
-*Installation*:
+*安装*:
* Install swig first. (`sudo apt-get install swig` for Ubuntu users)
* Run `nnictl package install --name=SMAC`
From 19fe35943b70714f6fa1e980b8ed303c94c57f14 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Sun, 6 Jan 2019 13:41:38 +0800
Subject: [PATCH 0178/1573] New translations HowToChooseTuner.md (Chinese
Simplified)
---
zh_CN/docs/HowToChooseTuner.md | 22 +++++++++++-----------
1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/zh_CN/docs/HowToChooseTuner.md b/zh_CN/docs/HowToChooseTuner.md
index 4ab7330f87..07d112c124 100644
--- a/zh_CN/docs/HowToChooseTuner.md
+++ b/zh_CN/docs/HowToChooseTuner.md
@@ -93,30 +93,30 @@ NNI 中的 SMAC 只支持部分类型的[搜索空间](./SearchSpaceSpec.md),
*安装*:
-* Install swig first. (`sudo apt-get install swig` for Ubuntu users)
-* Run `nnictl package install --name=SMAC`
+* 安装 swig。 (Ubuntu 下使用 `sudo apt-get install swig`)
+* 运行 `nnictl package install --name=SMAC`
-*Suggested scenario*: Similar to TPE, SMAC is also a black-box tuner which can be tried in various scenarios, and is suggested when computation resource is limited. It is optimized for discrete hyperparameters, thus, suggested when most of your hyperparameters are discrete.
+*建议场景*:与 TPE 类似,SMAC 也是一个可以被用在各种场景中的黑盒调参器。在计算资源有限时,也可以使用。 此算法为离散超参而优化,因此,如果大部分超参是离散值时,建议使用此算法。
-*Usage*:
+*用法*:
```yaml
# config.yaml
tuner:
builtinTunerName: SMAC
classArgs:
- # choice: maximize, minimize
+ # 可选项: maximize, minimize
optimize_mode: maximize
```
**Batch tuner**
-Batch tuner allows users to simply provide several configurations (i.e., choices of hyper-parameters) for their trial code. After finishing all the configurations, the experiment is done. Batch tuner only supports the type `choice` in [search space spec](./SearchSpaceSpec.md).
+Batch tuner 能让用户简单的提供几组配置(如,超参选项的组合)。 当所有配置都完成后,实验即结束。 Batch tuner 的[搜索空间](./SearchSpaceSpec.md)只支持 `choice`。
-*Suggested sceanrio*: If the configurations you want to try have been decided, you can list them in searchspace file (using `choice`) and run them using batch tuner.
+*建议场景*:如果需要实验的配置已经决定好了,可通过 batch tuner 将它们列到搜索空间中运行即可。
-*Usage*:
+*用法*:
```yaml
# config.yaml
@@ -124,7 +124,7 @@ Batch tuner allows users to simply provide several configurations (i.e., choices
builtinTunerName: BatchTuner
```
-Note that the search space that BatchTuner supported like:
+注意 BatchTuner 支持的搜索空间文件如下例:
```json
{
@@ -141,12 +141,12 @@ Note that the search space that BatchTuner supported like:
}
```
-The search space file including the high-level key `combine_params`. The type of params in search space must be `choice` and the `values` including all the combined-params value.
+搜索空间文件使用了键 `combine_params`。 参数类型必须是 `choice` ,并且 `values` 要包含所有需要实验的参数组合。
**Grid Search(网格搜索)**
-Grid Search performs an exhaustive searching through a manually specified subset of the hyperparameter space defined in the searchspace file. Note that the only acceptable types of search space are `choice`, `quniform`, `qloguniform`. **The number `q` in `quniform` and `qloguniform` has special meaning (different from the spec in [search space spec](./SearchSpaceSpec.md)). It means the number of values that will be sampled evenly from the range `low` and `high`.**
+网格搜索会穷举定义在搜索空间文件中的所有超参组合。 Note that the only acceptable types of search space are `choice`, `quniform`, `qloguniform`. **The number `q` in `quniform` and `qloguniform` has special meaning (different from the spec in [search space spec](./SearchSpaceSpec.md)). It means the number of values that will be sampled evenly from the range `low` and `high`.**
*Suggested scenario*: It is suggested when search space is small, it is feasible to exhaustively sweeping the whole search space.
From 095d97d5b14223fd19cb2db00e44f59812a668af Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Sun, 6 Jan 2019 13:51:40 +0800
Subject: [PATCH 0179/1573] New translations HowToChooseTuner.md (Chinese
Simplified)
---
zh_CN/docs/HowToChooseTuner.md | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/zh_CN/docs/HowToChooseTuner.md b/zh_CN/docs/HowToChooseTuner.md
index 07d112c124..3e9eb3130a 100644
--- a/zh_CN/docs/HowToChooseTuner.md
+++ b/zh_CN/docs/HowToChooseTuner.md
@@ -146,11 +146,11 @@ Batch tuner 能让用户简单的提供几组配置(如,超参选项的组
**Grid Search(网格搜索)**
-网格搜索会穷举定义在搜索空间文件中的所有超参组合。 Note that the only acceptable types of search space are `choice`, `quniform`, `qloguniform`. **The number `q` in `quniform` and `qloguniform` has special meaning (different from the spec in [search space spec](./SearchSpaceSpec.md)). It means the number of values that will be sampled evenly from the range `low` and `high`.**
+网格搜索会穷举定义在搜索空间文件中的所有超参组合。 注意,搜索空间仅支持 `choice`, `quniform`, `qloguniform`。 `quniform` 和 `qloguniform` 中的 **数字 `q` 有不同的含义(与[搜索空间](./SearchSpaceSpec.md)说明不同)。 在这里意味着会在 `low` 和 `high` 之间均匀取值的数量。
-*Suggested scenario*: It is suggested when search space is small, it is feasible to exhaustively sweeping the whole search space.
+*建议场景*:当搜索空间比较小,能够遍历整个搜索空间。
-*Usage*:
+*用法*:
```yaml
# config.yaml
From 755321c3c08ef2825a50744dd54df77995b19160 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Mon, 7 Jan 2019 09:21:25 +0800
Subject: [PATCH 0180/1573] New translations HowToChooseTuner.md (Chinese
Simplified)
---
zh_CN/docs/HowToChooseTuner.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/zh_CN/docs/HowToChooseTuner.md b/zh_CN/docs/HowToChooseTuner.md
index 3e9eb3130a..b9fe21447c 100644
--- a/zh_CN/docs/HowToChooseTuner.md
+++ b/zh_CN/docs/HowToChooseTuner.md
@@ -161,7 +161,7 @@ Batch tuner 能让用户简单的提供几组配置(如,超参选项的组
**Hyperband**
-[Hyperband](https://arxiv.org/pdf/1603.06560.pdf) tries to use limited resource to explore as many configurations as possible, and finds out the promising ones to get the final result. The basic idea is generating many configurations and to run them for small number of STEPs to find out promising one, then further training those promising ones to select several more promising one. More detail can be referred to [here](../src/sdk/pynni/nni/hyperband_advisor/README.md).
+[Hyperband](https://arxiv.org/pdf/1603.06560.pdf) 尝试用有限的资源来探索尽量多的组合,从最有可能的组合中找到最好结果。 The basic idea is generating many configurations and to run them for small number of STEPs to find out promising one, then further training those promising ones to select several more promising one. More detail can be referred to [here](../src/sdk/pynni/nni/hyperband_advisor/README.md).
*Suggested scenario*: It is suggested when you have limited computation resource but have relatively large search space. It performs good in the scenario that intermediate result (e.g., accuracy) can reflect good or bad of final result (e.g., accuracy) to some extent.
From 2f1f9d9dc1ffd6913c289a1a72fa00da2377cc7e Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Mon, 7 Jan 2019 09:31:27 +0800
Subject: [PATCH 0181/1573] New translations HowToChooseTuner.md (Chinese
Simplified)
---
zh_CN/docs/HowToChooseTuner.md | 11 +++++------
1 file changed, 5 insertions(+), 6 deletions(-)
diff --git a/zh_CN/docs/HowToChooseTuner.md b/zh_CN/docs/HowToChooseTuner.md
index b9fe21447c..e11dcee5d8 100644
--- a/zh_CN/docs/HowToChooseTuner.md
+++ b/zh_CN/docs/HowToChooseTuner.md
@@ -161,21 +161,20 @@ Batch tuner 能让用户简单的提供几组配置(如,超参选项的组
**Hyperband**
-[Hyperband](https://arxiv.org/pdf/1603.06560.pdf) 尝试用有限的资源来探索尽量多的组合,从最有可能的组合中找到最好结果。 The basic idea is generating many configurations and to run them for small number of STEPs to find out promising one, then further training those promising ones to select several more promising one. More detail can be referred to [here](../src/sdk/pynni/nni/hyperband_advisor/README.md).
+[Hyperband](https://arxiv.org/pdf/1603.06560.pdf) 尝试用有限的资源来探索尽量多的组合,从最有可能的组合中找到最好结果。 它的基本思路是生成大量的配置,并运行少量的步骤来找到有可能好的配置,然后继续训练找到其中更好的配置。 参考 [这里](../src/sdk/pynni/nni/hyperband_advisor/README.md),了解更多信息。
-*Suggested scenario*: It is suggested when you have limited computation resource but have relatively large search space. It performs good in the scenario that intermediate result (e.g., accuracy) can reflect good or bad of final result (e.g., accuracy) to some extent.
+*建议场景*:当搜索空间很大,但计算资源有限时建议使用。 中间结果能够很好的反映最终结果的情况下,此算法会非常有效。
-*Usage*:
+*用法*:
```yaml
# config.yaml
advisor:
builtinAdvisorName: Hyperband
classArgs:
- # choice: maximize, minimize
+ # 可选项: maximize, minimize
optimize_mode: maximize
- # R: the maximum STEPS (could be the number of mini-batches or epochs) can be
- # allocated to a trial. Each trial should use STEPS to control how long it runs.
+ # R: 可分配给尝试的最大的 STEPS(可以是小批量或 epoch 的数量)。 每个尝试都需要用 STEPS 来控制运行的时间。
R: 60
# eta: proportion of discarded trials
eta: 3
From 6d3f85b19ddb2768fb15f3e03de448451e533728 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Mon, 7 Jan 2019 09:41:45 +0800
Subject: [PATCH 0182/1573] New translations HowToChooseTuner.md (Chinese
Simplified)
---
zh_CN/docs/HowToChooseTuner.md | 34 +++++++++++++++++-----------------
1 file changed, 17 insertions(+), 17 deletions(-)
diff --git a/zh_CN/docs/HowToChooseTuner.md b/zh_CN/docs/HowToChooseTuner.md
index e11dcee5d8..ce86508bfb 100644
--- a/zh_CN/docs/HowToChooseTuner.md
+++ b/zh_CN/docs/HowToChooseTuner.md
@@ -7,7 +7,7 @@
* [Anneal(退火算法)](#Anneal)
* [Naive Evolution(进化算法)](#Evolution)
* [SMAC](#SMAC) (需要通过 `nnictl` 命令安装)
-* [Batch Tuner](#Batch)
+* [Batch Tuner(批量调参器)](#Batch)
* [Grid Search(网格搜索)](#Grid)
* [Hyperband](#Hyperband)
* [Network Morphism](#NetworkMorphism) (需要安装 pyTorch)
@@ -110,11 +110,11 @@ NNI 中的 SMAC 只支持部分类型的[搜索空间](./SearchSpaceSpec.md),
```
-**Batch tuner**
+**Batch tuner(批量调参器)**
-Batch tuner 能让用户简单的提供几组配置(如,超参选项的组合)。 当所有配置都完成后,实验即结束。 Batch tuner 的[搜索空间](./SearchSpaceSpec.md)只支持 `choice`。
+批量调参器能让用户简单的提供几组配置(如,超参选项的组合)。 当所有配置都完成后,实验即结束。 批量调参器 的[搜索空间](./SearchSpaceSpec.md)只支持 `choice`。
-*建议场景*:如果需要实验的配置已经决定好了,可通过 batch tuner 将它们列到搜索空间中运行即可。
+*建议场景*:如果需要实验的配置已经决定好了,可通过批量调参器将它们列到搜索空间中运行即可。
*用法*:
@@ -124,7 +124,7 @@ Batch tuner 能让用户简单的提供几组配置(如,超参选项的组
builtinTunerName: BatchTuner
```
-注意 BatchTuner 支持的搜索空间文件如下例:
+注意批量调参器支持的搜索空间文件如下例:
```json
{
@@ -176,41 +176,41 @@ Batch tuner 能让用户简单的提供几组配置(如,超参选项的组
optimize_mode: maximize
# R: 可分配给尝试的最大的 STEPS(可以是小批量或 epoch 的数量)。 每个尝试都需要用 STEPS 来控制运行的时间。
R: 60
- # eta: proportion of discarded trials
+ # eta: 丢弃的尝试的比例
eta: 3
```
**Network Morphism**
-[Network Morphism](7) provides functions to automatically search for architecture of deep learning models. Every child network inherits the knowledge from its parent network and morphs into diverse types of networks, including changes of depth, width and skip-connection. Next, it estimates the value of child network using the history architecture and metric pairs. Then it selects the most promising one to train. More detail can be referred to [here](../src/sdk/pynni/nni/networkmorphism_tuner/README.md).
+[Network Morphism](7) 提供了深度学习模型的自动架构搜索功能。 每个子网络都继承于父网络的知识和形态,并变换网络的不同形态,包括深度,宽度,跳层连接(skip-connection)。 接着,使用历史的架构和指标,来估计子网络的值。 然后会选择最有希望的模型进行训练。 参考[这里](../src/sdk/pynni/nni/networkmorphism_tuner/README.md),了解更多信息。
-*Installation*: NetworkMorphism requires [pyTorch](https://pytorch.org/get-started/locally), so users should install it first.
+*安装*: NetworkMorphism 需要 [pyTorch](https://pytorch.org/get-started/locally),必须提前安装它。
-*Suggested scenario*: It is suggested that you want to apply deep learning methods to your task (your own dataset) but you have no idea of how to choose or design a network. You modify the [example](../examples/trials/network_morphism/cifar10/cifar10_keras.py) to fit your own dataset and your own data augmentation method. Also you can change the batch size, learning rate or optimizer. It is feasible for different tasks to find a good network architecture. Now this tuner only supports the cv domain.
+*建议场景*:需要将深度学习方法应用到自己的任务(自己的数据集)上,但不清楚该如何选择或设计网络。 可修改[样例](../examples/trials/network_morphism/cifar10/cifar10_keras.py)来适配自己的数据集和数据增强方法。 也可以修改批处理大小,学习率或优化器。 它可以为不同的任务找到好的网络架构。 当前,此调参器仅支持视觉领域。
-*Usage*:
+*用法*:
```yaml
# config.yaml
tuner:
builtinTunerName: NetworkMorphism
classArgs:
- #choice: maximize, minimize
+ #可选项: maximize, minimize
optimize_mode: maximize
- #for now, this tuner only supports cv domain
+ #当前,仅支持 cv(视觉)领域
task: cv
- #input image width
+ #输入图像宽度
input_width: 32
- #input image channel
+ #输入图像通道数量
input_channel: 3
- #number of classes
+ #分类的数量
n_output_node: 10
```
-# How to use Assessor that NNI supports?
+# 如何使用 NNI 支持的评估器?
-For now, NNI has supported the following assessor algorithms.
+目前,NNI 已支持下列评估器算法。
* [Medianstop](#Medianstop)
* [Curvefitting](#Curvefitting)
From 4844fa0c30fd5fa4c0a7495076965adf6788171e Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Mon, 7 Jan 2019 09:55:24 +0800
Subject: [PATCH 0183/1573] New translations HowToChooseTuner.md (Chinese
Simplified)
---
zh_CN/docs/HowToChooseTuner.md | 26 ++++++++++++--------------
1 file changed, 12 insertions(+), 14 deletions(-)
diff --git a/zh_CN/docs/HowToChooseTuner.md b/zh_CN/docs/HowToChooseTuner.md
index ce86508bfb..299349b430 100644
--- a/zh_CN/docs/HowToChooseTuner.md
+++ b/zh_CN/docs/HowToChooseTuner.md
@@ -212,37 +212,35 @@ NNI 中的 SMAC 只支持部分类型的[搜索空间](./SearchSpaceSpec.md),
目前,NNI 已支持下列评估器算法。
-* [Medianstop](#Medianstop)
-* [Curvefitting](#Curvefitting)
+* [Medianstop(中位数终止)](#Medianstop)
+* [Curvefitting(曲线拟合)](#Curvefitting)
-## Supported Assessor Algorithms
+## 支持的评估器算法
-**Medianstop**
+**Medianstop(中位数终止)**
-Medianstop is a simple early stopping rule mentioned in the [paper](https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/46180.pdf). It stops a pending trial X at step S if the trial’s best objective value by step S is strictly worse than the median value of the running averages of all completed trials’ objectives reported up to step S.
+Medianstop 是一种简单的提前停止规则,可参考[论文](https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/46180.pdf)。 如果尝试 X 的在步骤 S 的最好目标值比所有已完成尝试的步骤 S 的中位数值明显低,就会停止运行尝试 X。
-*Suggested scenario*: It is applicable in a wide range of performance curves, thus, can be used in various scenarios to speed up the tuning progress.
+*建议场景*:它适用于各种性能曲线,因而能被用到各种场景中来加速优化过程。
-*Usage*:
+*用法*:
```yaml
assessor:
builtinAssessorName: Medianstop
classArgs:
- #choice: maximize, minimize
+ #可选项: maximize, minimize
optimize_mode: maximize
- # (optional) A trial is determined to be stopped or not,
-
- * only after receiving start_step number of reported intermediate results.
- * The default value of start_step is 0.
+ # (可选) 尽在接收到 start_step 数量个中间结果后,才判断尝试是否需要停止。
+ # start_step 的默认值是 0。
start_step: 5
```
-**Curvefitting**
+**Curvefitting(曲线拟合)**
-Curve Fitting Assessor is a LPA(learning, predicting, assessing) algorithm. It stops a pending trial X at step S if the prediction of final epoch's performance worse than the best final performance in the trial history. In this algorithm, we use 12 curves to fit the accuracy curve, the large set of parametric curve models are chosen from [reference paper](http://aad.informatik.uni-freiburg.de/papers/15-IJCAI-Extrapolation_of_Learning_Curves.pdf). The learning curves' shape coincides with our prior knowlwdge about the form of learning curves: They are typically increasing, saturating functions.
+Curve Fitting 评估器是一个 LPA (learning, predicting, assessing,即学习、预测、评估) 的算法。 如果预测的尝试 X 在 step S 比性能最好的尝试要差,就会提前终止它。 此算法中,使用了 12 条曲线来拟合精度曲线,从[参考论文](http://aad.informatik.uni-freiburg.de/papers/15-IJCAI-Extrapolation_of_Learning_Curves.pdf)中选择了大量的参数曲线模型。 The learning curves' shape coincides with our prior knowlwdge about the form of learning curves: They are typically increasing, saturating functions.
*Suggested scenario*: It is applicable in a wide range of performance curves, thus, can be used in various scenarios to speed up the tuning progress. Even better, it's able to handle and assess curves with similar performance.
From 4892ccd8e9b09b6bd53e353ef6c1d0b791624b23 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Mon, 7 Jan 2019 11:11:28 +0800
Subject: [PATCH 0184/1573] New translations HowToChooseTuner.md (Chinese
Simplified)
---
zh_CN/docs/HowToChooseTuner.md | 30 +++++++++++++++---------------
1 file changed, 15 insertions(+), 15 deletions(-)
diff --git a/zh_CN/docs/HowToChooseTuner.md b/zh_CN/docs/HowToChooseTuner.md
index 299349b430..eda6fac4e3 100644
--- a/zh_CN/docs/HowToChooseTuner.md
+++ b/zh_CN/docs/HowToChooseTuner.md
@@ -240,31 +240,31 @@ Medianstop 是一种简单的提前停止规则,可参考[论文](https://stat
**Curvefitting(曲线拟合)**
-Curve Fitting 评估器是一个 LPA (learning, predicting, assessing,即学习、预测、评估) 的算法。 如果预测的尝试 X 在 step S 比性能最好的尝试要差,就会提前终止它。 此算法中,使用了 12 条曲线来拟合精度曲线,从[参考论文](http://aad.informatik.uni-freiburg.de/papers/15-IJCAI-Extrapolation_of_Learning_Curves.pdf)中选择了大量的参数曲线模型。 The learning curves' shape coincides with our prior knowlwdge about the form of learning curves: They are typically increasing, saturating functions.
+Curve Fitting 评估器是一个 LPA (learning, predicting, assessing,即学习、预测、评估) 的算法。 如果预测的尝试 X 在 step S 比性能最好的尝试要差,就会提前终止它。 此算法中,使用了 12 条曲线来拟合精度曲线,从[参考论文](http://aad.informatik.uni-freiburg.de/papers/15-IJCAI-Extrapolation_of_Learning_Curves.pdf)中选择了大量的参数曲线模型。 学习曲线的形状与先验知识是一致的:都是典型的递增的、饱和的函数。
-*Suggested scenario*: It is applicable in a wide range of performance curves, thus, can be used in various scenarios to speed up the tuning progress. Even better, it's able to handle and assess curves with similar performance.
+*建议场景*:它适用于各种性能曲线,因而能被用到各种场景中来加速优化过程。 更好的是,它能够处理并评估性能类似的曲线。
-*Usage*:
+*用法*:
```yaml
assessor:
builtinAssessorName: Curvefitting
classArgs:
- # (required)The total number of epoch.
- # We need to know the number of epoch to determine which point we need to predict.
+ # (必须) epoch 的总数。
+ # 需要此数据来决定需要预测的点。
epoch_num: 20
- # (optional) choice: maximize, minimize
- # Kindly reminds that if you choose minimize mode, please adjust the value of threshold >= 1.0 (e.g threshold=1.1)
+ # (可选项) choice: maximize, minimize
+ # 如果选择了 minimize 模式,需要调整阈值为 >= 1.0 (例如:threshold=1.1)
- * The default value of optimize_mode is maximize
+ * optimize_mode 的默认值是 maximize
optimize_mode: maximize
- # (optional) A trial is determined to be stopped or not
- # In order to save our computing resource, we start to predict when we have more than start_step(default=6) accuracy points.
- # only after receiving start_step number of reported intermediate results.
- * The default value of start_step is 6.
+ # (可选项) 决定尝试是否应被停止的次数
+ # 为了节省资源,只有在大于 start_step(default=6) 的精度点才开始预测。
+ # 只有在收到 start_step 个中间结果之后。
+ # start_step 的默认值是 6。
start_step: 6
- # (optional) The threshold that we decide to early stop the worse performance curve.
- # For example: if threshold = 0.95, optimize_mode = maximize, best performance in the history is 0.9, then we will stop the trial which predict value is lower than 0.95 * 0.9 = 0.855.
- * The default value of threshold is 0.95.
+ # (可选) 决定是否提前终止的阈值。
+ # 例如,如果 threshold = 0.95, optimize_mode = maximize,最好的历史结果是 0.9,那么会在尝试的预测值低于 0.95 * 0.9 = 0.855 时停止。
+ * 阈值的默认值是 0.95。
threshold: 0.95
```
\ No newline at end of file
From ce0a64ff8691395de55e452560442590ebf03d6a Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Mon, 7 Jan 2019 11:21:40 +0800
Subject: [PATCH 0185/1573] New translations KubeflowMode.md (Chinese
Simplified)
---
zh_CN/docs/KubeflowMode.md | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/zh_CN/docs/KubeflowMode.md b/zh_CN/docs/KubeflowMode.md
index 0662dc1621..6fe3e73cb5 100644
--- a/zh_CN/docs/KubeflowMode.md
+++ b/zh_CN/docs/KubeflowMode.md
@@ -1,11 +1,11 @@
-# **Run an Experiment on Kubeflow**
+# **在 Kubeflow 上运行实验。**
-Now NNI supports running experiment on [Kubeflow](https://github.com/kubeflow/kubeflow), called kubeflow mode. Before starting to use NNI kubeflow mode, you should have a kubernetes cluster, either on-prem or [Azure Kubernetes Service(AKS)](https://azure.microsoft.com/en-us/services/kubernetes-service/), a Ubuntu machine on which [kubeconfig](https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/) is setup to connect to your kubernetes cluster. If you are not familiar with kubernetes, [here](https://kubernetes.io/docs/tutorials/kubernetes-basics/) is a goot start. In kubeflow mode, your trial program will run as kubeflow job in kubernetes cluster.
+NNI 支持在 [Kubeflow](https://github.com/kubeflow/kubeflow)上运行,称为 kubeflow 模式。 在开始使用 NNI 的 kubeflow 模式前,需要现有一个 kubernetes 集群,可以是私有部署的,或者是 [Azure Kubernetes Service(AKS)](https://azure.microsoft.com/en-us/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 模式下,每个尝试程序会在 kubernetes 集群中作为一个 kubeflow 作业来运行。
-## Prerequisite for on-premises Kubernetes Service
+## 私有部署的 Kubernetes 的先决条件
-1. A **Kubernetes** cluster using Kubernetes 1.8 or later. Follow this [guideline](https://kubernetes.io/docs/setup/) to set up Kubernetes
-2. Download, set up, and deploy **Kubelow** to your Kubernetes cluster. Follow this [guideline](https://www.kubeflow.org/docs/started/getting-started/) to set up Kubeflow
+1. 采用 Kubernetes 1.8 或更高版本。 根据[指南](https://kubernetes.io/docs/setup/)来安装 Kubernetes。
+2. 在 Kubernetes 集群中下载、安装、部署 **Kubelow**。 根据[指南](https://www.kubeflow.org/docs/started/getting-started/)安装 Kubeflow。
3. Prepare a **kubeconfig** file, which will be used by NNI to interact with your kubernetes API server. By default, NNI manager will use $(HOME)/.kube/config as kubeconfig file's path. You can also specify other kubeconfig files by setting the **KUBECONFIG** environment variable. Refer this [guideline](https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig) to learn more about kubeconfig.
4. If your NNI trial job needs GPU resource, you should follow this [guideline](https://github.com/NVIDIA/k8s-device-plugin) to configure **Nvidia device plugin for Kubernetes**.
5. Prepare a **NFS server** and export a general purpose mount (we recommend to map your NFS server path in `root_squash option`, otherwise permission issue may raise when nni copy files to NFS. Refer this [page](https://linux.die.net/man/5/exports) to learn what root_squash option is), or **Azure File Storage**.
From 841ad3a7ea93df2e8f6b23742d2e6e3631af11c0 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Mon, 7 Jan 2019 11:27:50 +0800
Subject: [PATCH 0186/1573] New translations KubeflowMode.md (Chinese
Simplified)
---
zh_CN/docs/KubeflowMode.md | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/zh_CN/docs/KubeflowMode.md b/zh_CN/docs/KubeflowMode.md
index 6fe3e73cb5..e4e7f5a5e3 100644
--- a/zh_CN/docs/KubeflowMode.md
+++ b/zh_CN/docs/KubeflowMode.md
@@ -6,10 +6,10 @@ NNI 支持在 [Kubeflow](https://github.com/kubeflow/kubeflow)上运行,称为
1. 采用 Kubernetes 1.8 或更高版本。 根据[指南](https://kubernetes.io/docs/setup/)来安装 Kubernetes。
2. 在 Kubernetes 集群中下载、安装、部署 **Kubelow**。 根据[指南](https://www.kubeflow.org/docs/started/getting-started/)安装 Kubeflow。
-3. Prepare a **kubeconfig** file, which will be used by NNI to interact with your kubernetes API server. By default, NNI manager will use $(HOME)/.kube/config as kubeconfig file's path. You can also specify other kubeconfig files by setting the **KUBECONFIG** environment variable. Refer this [guideline](https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig) to learn more about kubeconfig.
-4. If your NNI trial job needs GPU resource, you should follow this [guideline](https://github.com/NVIDIA/k8s-device-plugin) to configure **Nvidia device plugin for Kubernetes**.
-5. Prepare a **NFS server** and export a general purpose mount (we recommend to map your NFS server path in `root_squash option`, otherwise permission issue may raise when nni copy files to NFS. Refer this [page](https://linux.die.net/man/5/exports) to learn what root_squash option is), or **Azure File Storage**.
-6. Install **NFS client** on the machine where you install NNI and run nnictl to create experiment. Run this command to install NFSv4 client:
+3. 配置 **kubeconfig** 文件,NNI 将使用此配置与 Kubernetes API 服务交互。 默认情况下,NNI 管理器会使用 $(HOME)/.kube/config 作为 kubeconfig 文件的路径。 也可以通过环境变量 **KUBECONFIG** 来指定其它 kubeconfig 文件。 根据[指南](https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig)了解更多 kubeconfig 的信息。
+4. 如果 NNI 尝试作业需要 GPU 资源,需按照[指南](https://github.com/NVIDIA/k8s-device-plugin)来配置 **Kubernetes 下的 Nvidia 插件**。
+5. 准备 **NFS 服务器** 并导出通用的装载 (mount),推荐将 NFS 服务器路径映射到 `root_squash 选项`,否则可能会在 NNI 复制文件到 NFS 时出现权限问题。 参考[页面](https://linux.die.net/man/5/exports),来了解关于 root_squash 选项,或 **Azure File Storage**。
+6. 在安装 NNI 并运行 nnictl 的计算机上安装 **NFS 客户端**。 运行此命令安装 NFSv4 客户端:
apt-get install nfs-common
@@ -26,7 +26,7 @@ NNI 支持在 [Kubeflow](https://github.com/kubeflow/kubeflow)上运行,称为
## Design
-![](./img/kubeflow_training_design.png) Kubeflow training service instantiates a kubernetes rest client to interact with your K8s cluster's API server.
+![](../img/kubeflow_training_design.png) Kubeflow training service instantiates a kubernetes rest client to interact with your K8s cluster's API server.
For each trial, we will upload all the files in your local codeDir path (configured in nni_config.yaml) together with NNI generated files like parameter.cfg into a storage volumn. Right now we support two kinds of storage volumns: [nfs](https://en.wikipedia.org/wiki/Network_File_System) and [azure file storage](https://azure.microsoft.com/en-us/services/storage/files/), you should configure the storage volumn in nni config yaml file. After files are prepared, Kubeflow training service will call K8S rest API to create kubeflow jobs ([tf-operator](https://github.com/kubeflow/tf-operator) job or [pytorch-operator](https://github.com/kubeflow/pytorch-operator) job) in K8S, and mount your storage volumn into the job's pod. Output files of kubeflow job, like stdout, stderr, trial.log or model files, will also be copied back to the storage volumn. NNI will show the storage volumn's URL for each trial in WebUI, to allow user browse the log files and job's output files.
From 833d2f64aa1e89f6a72b940e72c41d293cc6368d Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Mon, 7 Jan 2019 11:29:37 +0800
Subject: [PATCH 0187/1573] New translations KubeflowMode.md (Chinese
Simplified)
---
zh_CN/docs/KubeflowMode.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/zh_CN/docs/KubeflowMode.md b/zh_CN/docs/KubeflowMode.md
index e4e7f5a5e3..0021cfaf69 100644
--- a/zh_CN/docs/KubeflowMode.md
+++ b/zh_CN/docs/KubeflowMode.md
@@ -24,9 +24,9 @@ NNI 支持在 [Kubeflow](https://github.com/kubeflow/kubeflow)上运行,称为
4. Follow the [guideline](https://docs.microsoft.com/en-us/azure/storage/common/storage-quickstart-create-account?tabs=portal) to create azure file storage account. If you use Azure Kubernetes Service, nni need Azure Storage Service to store code files and the output files.
5. To access Azure storage service, nni need the access key of the storage account, and nni use [Azure Key Vault](https://azure.microsoft.com/en-us/services/key-vault/) Service to protect your private key. Set up Azure Key Vault Service, add a secret to Key Vault to store the access key of Azure storage account. Follow this [guideline](https://docs.microsoft.com/en-us/azure/key-vault/quick-create-cli) to store the access key.
-## Design
+## 设计
-![](../img/kubeflow_training_design.png) Kubeflow training service instantiates a kubernetes rest client to interact with your K8s cluster's API server.
+![](../docs/img/kubeflow_training_design.png) Kubeflow training service instantiates a kubernetes rest client to interact with your K8s cluster's API server.
For each trial, we will upload all the files in your local codeDir path (configured in nni_config.yaml) together with NNI generated files like parameter.cfg into a storage volumn. Right now we support two kinds of storage volumns: [nfs](https://en.wikipedia.org/wiki/Network_File_System) and [azure file storage](https://azure.microsoft.com/en-us/services/storage/files/), you should configure the storage volumn in nni config yaml file. After files are prepared, Kubeflow training service will call K8S rest API to create kubeflow jobs ([tf-operator](https://github.com/kubeflow/tf-operator) job or [pytorch-operator](https://github.com/kubeflow/pytorch-operator) job) in K8S, and mount your storage volumn into the job's pod. Output files of kubeflow job, like stdout, stderr, trial.log or model files, will also be copied back to the storage volumn. NNI will show the storage volumn's URL for each trial in WebUI, to allow user browse the log files and job's output files.
From e5651a0f22daf36d2f656fad49df09dc52cb493c Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Mon, 7 Jan 2019 11:31:30 +0800
Subject: [PATCH 0188/1573] New translations KubeflowMode.md (Chinese
Simplified)
---
zh_CN/docs/KubeflowMode.md | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/zh_CN/docs/KubeflowMode.md b/zh_CN/docs/KubeflowMode.md
index 0021cfaf69..37251bb3c1 100644
--- a/zh_CN/docs/KubeflowMode.md
+++ b/zh_CN/docs/KubeflowMode.md
@@ -2,7 +2,7 @@
NNI 支持在 [Kubeflow](https://github.com/kubeflow/kubeflow)上运行,称为 kubeflow 模式。 在开始使用 NNI 的 kubeflow 模式前,需要现有一个 kubernetes 集群,可以是私有部署的,或者是 [Azure Kubernetes Service(AKS)](https://azure.microsoft.com/en-us/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 模式下,每个尝试程序会在 kubernetes 集群中作为一个 kubeflow 作业来运行。
-## 私有部署的 Kubernetes 的先决条件
+## 私有部署的 Kubernetes 的准备工作
1. 采用 Kubernetes 1.8 或更高版本。 根据[指南](https://kubernetes.io/docs/setup/)来安装 Kubernetes。
2. 在 Kubernetes 集群中下载、安装、部署 **Kubelow**。 根据[指南](https://www.kubeflow.org/docs/started/getting-started/)安装 Kubeflow。
@@ -14,9 +14,9 @@ NNI 支持在 [Kubeflow](https://github.com/kubeflow/kubeflow)上运行,称为
apt-get install nfs-common
-7. Install **NNI**, follow the install guide [here](GetStarted.md).
+7. 参考[指南](GetStarted.md)安装 **NNI**。
-## Prerequisite for Azure Kubernetes Service
+## Azure 部署的 Kubernetes 的准备工作
1. NNI support kubeflow based on Azure Kubernetes Service, follow the [guideline](https://azure.microsoft.com/en-us/services/kubernetes-service/) to set up Azure Kubernetes Service.
2. Install [Azure CLI](https://docs.microsoft.com/en-us/cli/azure/install-azure-cli?view=azure-cli-latest) and **kubectl**. Use `az login` to set azure account, and connect kubectl client to AKS, refer this [guideline](https://docs.microsoft.com/en-us/azure/aks/kubernetes-walkthrough#connect-to-the-cluster).
From 4c47bb18eae4e6c1574f9a0307f7165cb30e5a68 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Mon, 7 Jan 2019 11:41:42 +0800
Subject: [PATCH 0189/1573] New translations KubeflowMode.md (Chinese
Simplified)
---
zh_CN/docs/KubeflowMode.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/zh_CN/docs/KubeflowMode.md b/zh_CN/docs/KubeflowMode.md
index 37251bb3c1..ad2f978cd9 100644
--- a/zh_CN/docs/KubeflowMode.md
+++ b/zh_CN/docs/KubeflowMode.md
@@ -26,7 +26,7 @@ NNI 支持在 [Kubeflow](https://github.com/kubeflow/kubeflow)上运行,称为
## 设计
-![](../docs/img/kubeflow_training_design.png) Kubeflow training service instantiates a kubernetes rest client to interact with your K8s cluster's API server.
+![](../../docs/img/kubeflow_training_design.png) Kubeflow training service instantiates a kubernetes rest client to interact with your K8s cluster's API server.
For each trial, we will upload all the files in your local codeDir path (configured in nni_config.yaml) together with NNI generated files like parameter.cfg into a storage volumn. Right now we support two kinds of storage volumns: [nfs](https://en.wikipedia.org/wiki/Network_File_System) and [azure file storage](https://azure.microsoft.com/en-us/services/storage/files/), you should configure the storage volumn in nni config yaml file. After files are prepared, Kubeflow training service will call K8S rest API to create kubeflow jobs ([tf-operator](https://github.com/kubeflow/tf-operator) job or [pytorch-operator](https://github.com/kubeflow/pytorch-operator) job) in K8S, and mount your storage volumn into the job's pod. Output files of kubeflow job, like stdout, stderr, trial.log or model files, will also be copied back to the storage volumn. NNI will show the storage volumn's URL for each trial in WebUI, to allow user browse the log files and job's output files.
From 605f47bdde6b45b1c6c5cfac9c1f29ada545b774 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Mon, 7 Jan 2019 11:52:47 +0800
Subject: [PATCH 0190/1573] New translations README.md (Chinese Simplified)
---
zh_CN/README.md | 98 ++++++++++++++++++++++++++-----------------------
1 file changed, 53 insertions(+), 45 deletions(-)
diff --git a/zh_CN/README.md b/zh_CN/README.md
index 76c225621a..2bc19c28ca 100644
--- a/zh_CN/README.md
+++ b/zh_CN/README.md
@@ -19,24 +19,32 @@ NNI (Neural Network Intelligence) 是自动机器学习(AutoML)实验的工
* 定制自动机器学习算法,或比较不同的自动机器学习算法。
* 在自己的机器学习平台中支持自动机器学习。
-## **安装和验证**
+## Related Projects
-**通过 pip 命令安装**
+Targeting at openness and advancing state-of-art technology, [Microsoft Research (MSR)](https://www.microsoft.com/en-us/research/group/systems-research-group-asia/) had also released few other open source projects.
-* 当前支持 Linux 和 MacOS。测试并支持的版本包括:Ubuntu 16.04 及更高版本,MacOS 10.14.1。 在 `python >= 3.5` 的环境中,只需要运行 `pip install` 即可完成安装。.
+* [OpenPAI](https://github.com/Microsoft/pai) : an open source platform that provides complete AI model training and resource management capabilities, it is easy to extend and supports on-premise, cloud and hybrid environments in various scale.
+* [FrameworkController](https://github.com/Microsoft/frameworkcontroller) : an open source general-purpose Kubernetes Pod Controller that orchestrate all kinds of applications on Kubernetes by a single controller.
+* [MMdnn](https://github.com/Microsoft/MMdnn) : A comprehensive, cross-framework solution to convert, visualize and diagnose deep neural network models. The "MM" in MMdnn stands for model management and "dnn" is an acronym for deep neural network. We encourage researchers and students leverage these projects to accelerate the AI development and research.
+
+## **Install & Verify**
+
+**Install through pip**
+
+* We support Linux and MacOS in current stage, Ubuntu 16.04 or higher, along with MacOS 10.14.1 are tested and supported. Simply run the following `pip install` in an environment that has `python >= 3.5`.
```bash
- python3 -m pip install --user --upgrade nni
+ python3 -m pip install --upgrade nni
```
-* 注意:
- * 如果在 docker 容器中以 root 运行,需要从上述安装命令中删除 `--user`。
- * 如果遇到如`Segmentation fault` 这样的任何错误请参考 [常见问题](docs/FAQ.md)。
+* Note:
+ * If you are in docker container (as root), please remove `--user` from the installation command.
+ * If there is any error like `Segmentation fault`, please refer to [FAQ](docs/FAQ.md)
-**通过源代码安装**
+**Install through source code**
-* 当前支持 Linux(Ubuntu 16.04 及更高版本) 和 MacOS(10.14.1)。
-* 在 `python >= 3.5` 的环境中运行命令: `git` 和 `wget`,确保安装了这两个组件。
+* We support Linux (Ubuntu 16.04 or higher), MacOS (10.14.1) in our current stage.
+* Run the following commands in an environment that has `python >= 3.5`, `git` and `wget`.
```bash
git clone -b v0.4.1 https://github.com/Microsoft/nni.git
@@ -44,25 +52,25 @@ NNI (Neural Network Intelligence) 是自动机器学习(AutoML)实验的工
source install.sh
```
-参考[安装 NNI](docs/Installation.md) 了解系统需求。
+For the system requirements of NNI, please refer to [Install NNI](docs/Installation.md)
-**验证安装**
+**Verify install**
-以下示例实验依赖于 TensorFlow 。 在运行前确保安装了 **TensorFlow**。
+The following example is an experiment built on TensorFlow. Make sure you have **TensorFlow installed** before running it.
-* 通过克隆源代码下载示例。
+* Download the examples via clone the source code.
```bash
git clone -b v0.4.1 https://github.com/Microsoft/nni.git
```
-* 运行 mnist 示例。
+* Run the mnist example.
```bash
nnictl create --config nni/examples/trials/mnist/config.yml
```
-* 在命令行中等待输出 `INFO: Successfully started experiment!`。 此消息表明实验已成功启动。 通过命令行输出的 `Web UI url` 来访问实验的界面。
+* Wait for the message `INFO: Successfully started experiment!` in the command line. This message indicates that your experiment has been successfully started. You can explore the experiment using the `Web UI url`.
```
INFO: Starting restful server...
@@ -91,51 +99,51 @@ NNI (Neural Network Intelligence) 是自动机器学习(AutoML)实验的工
```
-* 在浏览器中打开 `Web UI url`,可看到下图的实验详细信息,以及所有的尝试任务。 查看[这里的](docs/WebUI.md)更多页面示例。
+* Open the `Web UI url` in your browser, you can view detail information of the experiment and all the submitted trial jobs as shown below. [Here](docs/WebUI.md) are more Web UI pages.
|
|
-## **文档**
+## **Documentation**
-* [NNI 概述](docs/Overview.md)
-* [快速入门](docs/GetStarted.md)
+* [NNI overview](docs/Overview.md)
+* [Quick start](docs/GetStarted.md)
-## **入门**
+## **How to**
-* [安装 NNI](docs/Installation.md)
-* [使用命令行工具 nnictl](docs/NNICTLDOC.md)
-* [使用 NNIBoard](docs/WebUI.md)
-* [如何定义搜索空间](docs/SearchSpaceSpec.md)
-* [如何定义一次尝试](docs/howto_1_WriteTrial.md)
-* [配置实验](docs/ExperimentConfig.md)
-* [如何使用标记](docs/howto_1_WriteTrial.md#nni-python-annotation)
+* [Install NNI](docs/Installation.md)
+* [Use command line tool nnictl](docs/NNICTLDOC.md)
+* [Use NNIBoard](docs/WebUI.md)
+* [How to define search space](docs/SearchSpaceSpec.md)
+* [How to define a trial](docs/howto_1_WriteTrial.md)
+* [Config an experiment](docs/ExperimentConfig.md)
+* [How to use annotation](docs/howto_1_WriteTrial.md#nni-python-annotation)
-## **教程**
+## **Tutorials**
-* [在本机运行实验 (支持多 GPU 卡)](docs/tutorial_1_CR_exp_local_api.md)
-* [在多机上运行实验](docs/tutorial_2_RemoteMachineMode.md)
-* [在 OpenPAI 上运行实验](docs/PAIMode.md)
-* [在 Kubeflow 上运行实验。](docs/KubeflowMode.md)
-* [使用不同的调参器和评估器](docs/tutorial_3_tryTunersAndAssessors.md)
-* [实现自定义调参器](docs/howto_2_CustomizedTuner.md)
-* [实现自定义评估器](examples/assessors/README.md)
-* [使用进化算法为阅读理解任务找到好模型](examples/trials/ga_squad/README.md)
+* [Run an experiment on local (with multiple GPUs)?](docs/tutorial_1_CR_exp_local_api.md)
+* [Run an experiment on multiple machines?](docs/tutorial_2_RemoteMachineMode.md)
+* [Run an experiment on OpenPAI?](docs/PAIMode.md)
+* [Run an experiment on Kubeflow?](docs/KubeflowMode.md)
+* [Try different tuners and assessors](docs/tutorial_3_tryTunersAndAssessors.md)
+* [Implement a customized tuner](docs/howto_2_CustomizedTuner.md)
+* [Implement a customized assessor](examples/assessors/README.md)
+* [Use Genetic Algorithm to find good model architectures for Reading Comprehension task](examples/trials/ga_squad/README.md)
-## **贡献**
+## **Contribute**
-欢迎贡献代码或提交建议,可在 [GitHub issues](https://github.com/Microsoft/nni/issues) 跟踪需求和缺陷。
+This project welcomes contributions and suggestions, we use [GitHub issues](https://github.com/Microsoft/nni/issues) for tracking requests and bugs.
-推荐新贡献者从标有 **good first issue** 的简单需求开始。
+Issues with the **good first issue** label are simple and easy-to-start ones that we recommend new contributors to start with.
-如要安装 NNI 开发环境,参考: [配置 NNI 开发环境](docs/SetupNNIDeveloperEnvironment.md)。
+To set up environment for NNI development, refer to the instruction: [Set up NNI developer environment](docs/SetupNNIDeveloperEnvironment.md)
-在写代码之前,请查看并熟悉 NNI 代码贡献指南:[贡献](docs/CONTRIBUTING.md)。
+Before start coding, review and get familiar with the NNI Code Contribution Guideline: [Contributing](docs/CONTRIBUTING.md)
-我们正在编写 [如何调试](docs/HowToDebug.md) 的页面,欢迎提交建议和问题。
+We are in construction of the instruction for [How to Debug](docs/HowToDebug.md), you are also welcome to contribute questions or suggestions on this area.
-## **许可协议**
+## **License**
-整个代码库遵循 [MIT 许可协议](https://github.com/Microsoft/nni/blob/master/LICENSE)
\ No newline at end of file
+The entire codebase is under [MIT license](https://github.com/Microsoft/nni/blob/master/LICENSE)
\ No newline at end of file
From 4de4394bba90ef9a9852af7f3a041ed7dcb74206 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Mon, 7 Jan 2019 11:53:05 +0800
Subject: [PATCH 0191/1573] New translations README.md (Chinese Simplified)
---
zh_CN/examples/tuners/enas_nni/README.md | 5 +++++
1 file changed, 5 insertions(+)
create mode 100644 zh_CN/examples/tuners/enas_nni/README.md
diff --git a/zh_CN/examples/tuners/enas_nni/README.md b/zh_CN/examples/tuners/enas_nni/README.md
new file mode 100644
index 0000000000..1fdd887b53
--- /dev/null
+++ b/zh_CN/examples/tuners/enas_nni/README.md
@@ -0,0 +1,5 @@
+**Run ENAS in NNI**
+===
+
+Now we have an enas example [enas-nni](https://github.com/countif/enas_nni) run in nni from our contributors. Thanks our lovely contributors.
+And welcome more and more people to join us!
\ No newline at end of file
From 9d639f910b5ac2d4476dc61e430d40fc1aecd706 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Mon, 7 Jan 2019 12:01:37 +0800
Subject: [PATCH 0192/1573] New translations KubeflowMode.md (Chinese
Simplified)
---
zh_CN/docs/KubeflowMode.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/zh_CN/docs/KubeflowMode.md b/zh_CN/docs/KubeflowMode.md
index ad2f978cd9..514be88df2 100644
--- a/zh_CN/docs/KubeflowMode.md
+++ b/zh_CN/docs/KubeflowMode.md
@@ -1,6 +1,6 @@
# **在 Kubeflow 上运行实验。**
-NNI 支持在 [Kubeflow](https://github.com/kubeflow/kubeflow)上运行,称为 kubeflow 模式。 在开始使用 NNI 的 kubeflow 模式前,需要现有一个 kubernetes 集群,可以是私有部署的,或者是 [Azure Kubernetes Service(AKS)](https://azure.microsoft.com/en-us/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 模式下,每个尝试程序会在 kubernetes 集群中作为一个 kubeflow 作业来运行。
+NNI 支持在 [Kubeflow](https://github.com/kubeflow/kubeflow)上运行,称为 kubeflow 模式。 在开始使用 NNI 的 kubeflow 模式前,需要有一个 kubernetes 集群,可以是私有部署的,或者是 [Azure Kubernetes Service(AKS)](https://azure.microsoft.com/en-us/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 模式下,每个尝试程序会在 Kubernetes 集群中作为一个 kubeflow 作业来运行。
## 私有部署的 Kubernetes 的准备工作
From b179b9f6049e434c3b10d1907942849178e2f862 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Mon, 7 Jan 2019 12:01:38 +0800
Subject: [PATCH 0193/1573] New translations HowToChooseTuner.md (Chinese
Simplified)
---
zh_CN/docs/HowToChooseTuner.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/zh_CN/docs/HowToChooseTuner.md b/zh_CN/docs/HowToChooseTuner.md
index eda6fac4e3..9aa7a1e31d 100644
--- a/zh_CN/docs/HowToChooseTuner.md
+++ b/zh_CN/docs/HowToChooseTuner.md
@@ -161,7 +161,7 @@ NNI 中的 SMAC 只支持部分类型的[搜索空间](./SearchSpaceSpec.md),
**Hyperband**
-[Hyperband](https://arxiv.org/pdf/1603.06560.pdf) 尝试用有限的资源来探索尽量多的组合,从最有可能的组合中找到最好结果。 它的基本思路是生成大量的配置,并运行少量的步骤来找到有可能好的配置,然后继续训练找到其中更好的配置。 参考 [这里](../src/sdk/pynni/nni/hyperband_advisor/README.md),了解更多信息。
+[Hyperband](https://arxiv.org/pdf/1603.06560.pdf) 尝试用有限的资源来探索尽量多的组合,从最有可能的组合中找到最好结果。 它的基本思路是生成大量的配置,并运行少量的步骤来找到有可能好的配置,然后继续训练找到其中更好的配置。 参考[这里](../src/sdk/pynni/nni/hyperband_advisor/README.md),了解更多信息。
*建议场景*:当搜索空间很大,但计算资源有限时建议使用。 中间结果能够很好的反映最终结果的情况下,此算法会非常有效。
@@ -183,7 +183,7 @@ NNI 中的 SMAC 只支持部分类型的[搜索空间](./SearchSpaceSpec.md),
**Network Morphism**
-[Network Morphism](7) 提供了深度学习模型的自动架构搜索功能。 每个子网络都继承于父网络的知识和形态,并变换网络的不同形态,包括深度,宽度,跳层连接(skip-connection)。 接着,使用历史的架构和指标,来估计子网络的值。 然后会选择最有希望的模型进行训练。 参考[这里](../src/sdk/pynni/nni/networkmorphism_tuner/README.md),了解更多信息。
+[Network Morphism](7) 提供了深度学习模型的自动架构搜索功能。 每个子网络都继承于父网络的知识和形态,并变换网络的不同形态,包括深度,宽度,跨层连接(skip-connection)。 接着,使用历史的架构和指标,来估计子网络的值。 然后会选择最有希望的模型进行训练。 参考[这里](../src/sdk/pynni/nni/networkmorphism_tuner/README.md),了解更多信息。
*安装*: NetworkMorphism 需要 [pyTorch](https://pytorch.org/get-started/locally),必须提前安装它。
From 8e9338157cbcc5ff00dcae11c43f494f1bb470b6 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Mon, 7 Jan 2019 12:11:31 +0800
Subject: [PATCH 0194/1573] New translations KubeflowMode.md (Chinese
Simplified)
---
zh_CN/docs/KubeflowMode.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/zh_CN/docs/KubeflowMode.md b/zh_CN/docs/KubeflowMode.md
index 514be88df2..8f3e3d803c 100644
--- a/zh_CN/docs/KubeflowMode.md
+++ b/zh_CN/docs/KubeflowMode.md
@@ -18,8 +18,8 @@ NNI 支持在 [Kubeflow](https://github.com/kubeflow/kubeflow)上运行,称为
## Azure 部署的 Kubernetes 的准备工作
-1. NNI support kubeflow based on Azure Kubernetes Service, follow the [guideline](https://azure.microsoft.com/en-us/services/kubernetes-service/) to set up Azure Kubernetes Service.
-2. Install [Azure CLI](https://docs.microsoft.com/en-us/cli/azure/install-azure-cli?view=azure-cli-latest) and **kubectl**. Use `az login` to set azure account, and connect kubectl client to AKS, refer this [guideline](https://docs.microsoft.com/en-us/azure/aks/kubernetes-walkthrough#connect-to-the-cluster).
+1. NNI 支持基于 Azure Kubernetes Service 的 Kubeflow,参考[指南](https://azure.microsoft.com/en-us/services/kubernetes-service/)来设置 Azure Kubernetes Service。
+2. 安装 [Azure CLI](https://docs.microsoft.com/en-us/cli/azure/install-azure-cli?view=azure-cli-latest) 和 **kubectl**。 使用 `az login` 命令来设置 Azure 账户吗,并将 kubectl 客户端连接到 AKS,参考此[指南](https://docs.microsoft.com/en-us/azure/aks/kubernetes-walkthrough#connect-to-the-cluster)。
3. Deploy kubeflow on Azure Kubernetes Service, follow the [guideline](https://www.kubeflow.org/docs/started/getting-started/).
4. Follow the [guideline](https://docs.microsoft.com/en-us/azure/storage/common/storage-quickstart-create-account?tabs=portal) to create azure file storage account. If you use Azure Kubernetes Service, nni need Azure Storage Service to store code files and the output files.
5. To access Azure storage service, nni need the access key of the storage account, and nni use [Azure Key Vault](https://azure.microsoft.com/en-us/services/key-vault/) Service to protect your private key. Set up Azure Key Vault Service, add a secret to Key Vault to store the access key of Azure storage account. Follow this [guideline](https://docs.microsoft.com/en-us/azure/key-vault/quick-create-cli) to store the access key.
From 08f399aeab71b153abe69a62ca215da530765507 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Mon, 7 Jan 2019 12:21:29 +0800
Subject: [PATCH 0195/1573] New translations KubeflowMode.md (Chinese
Simplified)
---
zh_CN/docs/KubeflowMode.md | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/zh_CN/docs/KubeflowMode.md b/zh_CN/docs/KubeflowMode.md
index 8f3e3d803c..470f0c064e 100644
--- a/zh_CN/docs/KubeflowMode.md
+++ b/zh_CN/docs/KubeflowMode.md
@@ -20,15 +20,15 @@ NNI 支持在 [Kubeflow](https://github.com/kubeflow/kubeflow)上运行,称为
1. NNI 支持基于 Azure Kubernetes Service 的 Kubeflow,参考[指南](https://azure.microsoft.com/en-us/services/kubernetes-service/)来设置 Azure Kubernetes Service。
2. 安装 [Azure CLI](https://docs.microsoft.com/en-us/cli/azure/install-azure-cli?view=azure-cli-latest) 和 **kubectl**。 使用 `az login` 命令来设置 Azure 账户吗,并将 kubectl 客户端连接到 AKS,参考此[指南](https://docs.microsoft.com/en-us/azure/aks/kubernetes-walkthrough#connect-to-the-cluster)。
-3. Deploy kubeflow on Azure Kubernetes Service, follow the [guideline](https://www.kubeflow.org/docs/started/getting-started/).
-4. Follow the [guideline](https://docs.microsoft.com/en-us/azure/storage/common/storage-quickstart-create-account?tabs=portal) to create azure file storage account. If you use Azure Kubernetes Service, nni need Azure Storage Service to store code files and the output files.
-5. To access Azure storage service, nni need the access key of the storage account, and nni use [Azure Key Vault](https://azure.microsoft.com/en-us/services/key-vault/) Service to protect your private key. Set up Azure Key Vault Service, add a secret to Key Vault to store the access key of Azure storage account. Follow this [guideline](https://docs.microsoft.com/en-us/azure/key-vault/quick-create-cli) to store the access key.
+3. 在 Azure Kubernetes Service 上部署 Kubeflow,参考此[指南](https://www.kubeflow.org/docs/started/getting-started/)。
+4. 参考此[指南](https://docs.microsoft.com/en-us/azure/storage/common/storage-quickstart-create-account?tabs=portal)来创建 Azure 文件存储账户。 NNI 需要 Azure Storage Service 来存取代码和输出文件。
+5. NNI 需要访问密钥来连接 Azure 存储服务,NNI 使用 [Azure Key Vault](https://azure.microsoft.com/en-us/services/key-vault/) 服务来保护私钥。 设置 Azure Key Vault 服务,并添加密钥到 Key Vault 中来存取 Azure 存储账户。 参考[指南](https://docs.microsoft.com/en-us/azure/key-vault/quick-create-cli)来存储访问密钥。
## 设计
-![](../../docs/img/kubeflow_training_design.png) Kubeflow training service instantiates a kubernetes rest client to interact with your K8s cluster's API server.
+![](../../docs/img/kubeflow_training_design.png) Kubeflow 训练服务会实例化一个 kubernetes 客户端来与 Kubernetes 集群的 API 服务器交互。
-For each trial, we will upload all the files in your local codeDir path (configured in nni_config.yaml) together with NNI generated files like parameter.cfg into a storage volumn. Right now we support two kinds of storage volumns: [nfs](https://en.wikipedia.org/wiki/Network_File_System) and [azure file storage](https://azure.microsoft.com/en-us/services/storage/files/), you should configure the storage volumn in nni config yaml file. After files are prepared, Kubeflow training service will call K8S rest API to create kubeflow jobs ([tf-operator](https://github.com/kubeflow/tf-operator) job or [pytorch-operator](https://github.com/kubeflow/pytorch-operator) job) in K8S, and mount your storage volumn into the job's pod. Output files of kubeflow job, like stdout, stderr, trial.log or model files, will also be copied back to the storage volumn. NNI will show the storage volumn's URL for each trial in WebUI, to allow user browse the log files and job's output files.
+对于每个尝试,会上传本机 codeDir 路径(在 nni_config.yaml 中配置)中的所有文件,包括 parameter.cfg 这样的生成的文件到存储卷中。 当前支持两种存储卷:[nfs](https://en.wikipedia.org/wiki/Network_File_System) 和 [Azure 文件存储](https://azure.microsoft.com/en-us/services/storage/files/),需要在 NNI 的 yaml 文件中进行配置。 当文件准备好后,Kubeflow 训练服务会调用 Kubernetes 的 API 来创建 Kubeflow 作业 ([tf-operator](https://github.com/kubeflow/tf-operator) 作业或 [pytorch-operator](https://github.com/kubeflow/pytorch-operator) 作业) ,并将存储卷挂载到作业的 pod 中。 Output files of kubeflow job, like stdout, stderr, trial.log or model files, will also be copied back to the storage volumn. NNI will show the storage volumn's URL for each trial in WebUI, to allow user browse the log files and job's output files.
## Run an experiment
From f4a4b3250184b611fd81acc70eff06e596ead82c Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Mon, 7 Jan 2019 12:31:46 +0800
Subject: [PATCH 0196/1573] New translations KubeflowMode.md (Chinese
Simplified)
---
zh_CN/docs/KubeflowMode.md | 36 ++++++++++++++++++------------------
1 file changed, 18 insertions(+), 18 deletions(-)
diff --git a/zh_CN/docs/KubeflowMode.md b/zh_CN/docs/KubeflowMode.md
index 470f0c064e..07f26354c1 100644
--- a/zh_CN/docs/KubeflowMode.md
+++ b/zh_CN/docs/KubeflowMode.md
@@ -28,28 +28,28 @@ NNI 支持在 [Kubeflow](https://github.com/kubeflow/kubeflow)上运行,称为
![](../../docs/img/kubeflow_training_design.png) Kubeflow 训练服务会实例化一个 kubernetes 客户端来与 Kubernetes 集群的 API 服务器交互。
-对于每个尝试,会上传本机 codeDir 路径(在 nni_config.yaml 中配置)中的所有文件,包括 parameter.cfg 这样的生成的文件到存储卷中。 当前支持两种存储卷:[nfs](https://en.wikipedia.org/wiki/Network_File_System) 和 [Azure 文件存储](https://azure.microsoft.com/en-us/services/storage/files/),需要在 NNI 的 yaml 文件中进行配置。 当文件准备好后,Kubeflow 训练服务会调用 Kubernetes 的 API 来创建 Kubeflow 作业 ([tf-operator](https://github.com/kubeflow/tf-operator) 作业或 [pytorch-operator](https://github.com/kubeflow/pytorch-operator) 作业) ,并将存储卷挂载到作业的 pod 中。 Output files of kubeflow job, like stdout, stderr, trial.log or model files, will also be copied back to the storage volumn. NNI will show the storage volumn's URL for each trial in WebUI, to allow user browse the log files and job's output files.
+对于每个尝试,会上传本机 codeDir 路径(在 nni_config.yaml 中配置)中的所有文件,包括 parameter.cfg 这样的生成的文件到存储卷中。 当前支持两种存储卷:[nfs](https://en.wikipedia.org/wiki/Network_File_System) 和 [Azure 文件存储](https://azure.microsoft.com/en-us/services/storage/files/),需要在 NNI 的 yaml 文件中进行配置。 当文件准备好后,Kubeflow 训练服务会调用 Kubernetes 的 API 来创建 Kubeflow 作业 ([tf-operator](https://github.com/kubeflow/tf-operator) 作业或 [pytorch-operator](https://github.com/kubeflow/pytorch-operator) 作业) ,并将存储卷挂载到作业的 pod 中。 Kubeflow 作业的输出文件,例如 stdout, stderr, trial.log 以及模型文件,也会被复制回存储卷。 NNI 会在网页中显示每个尝试的存储卷的 URL,以便浏览日志和输出文件。
-## Run an experiment
+## 运行实验
-Use `examples/trials/mnist` as an example. The nni config yaml file's content is like:
+以 `examples/trials/mnist` 为例。 NNI 的 yaml 配置文件如下:
authorName: your_name
experimentName: example_mnist
- # how many trials could be concurrently running
+ # 并发运行数量
trialConcurrency: 4
- # maximum experiment running duration
+ # 实验的最长运行时间
maxExecDuration: 3h
- # empty means never stop
+ # 空意味着一直运行
maxTrialNum: 100
- # choice: local, remote, pai, kubeflow
+ # 可选的项目: local, remote, pai, kubeflow
trainingServicePlatform: kubeflow
- # choice: true, false
+ # 可选的项目: true, false
useAnnotation: false
tuner:
builtinTunerName: TPE
classArgs:
- #choice: maximize, minimize
+ #可选的项目: maximize, minimize
optimize_mode: maximize
trial:
codeDir: ~/nni/examples/trials/mnist
@@ -75,7 +75,7 @@ Use `examples/trials/mnist` as an example. The nni config yaml file's content is
path: {your_nfs_server_exported_path}
-If you use Azure Kubernetes Service, you should set `kubeflowConfig` in your config yaml file as follows:
+如果使用了 Azure Kubernetes Service,需要在 yaml 文件中如下设置 `kubeflowConfig`:
kubeflowConfig:
operator: tf-operator
@@ -88,23 +88,23 @@ If you use Azure Kubernetes Service, you should set `kubeflowConfig` in your con
azureShare: {your_azure_share_name}
-Note: You should explicitly set `trainingServicePlatform: kubeflow` in nni config yaml file if you want to start experiment in kubeflow mode.
+注意:如果用 kubeflow 模式运行,需要在 yaml 文件中显式设置 `trainingServicePlatform: kubeflow`。
-Trial configuration in kubeflow mode have the following configuration keys:
+kubeflow 模式的配置有下列主键:
* codeDir
- * code directory, where you put training code and config files
-* worker (required). This config section is used to configure tensorflow worker role
+ * 代码目录,存放训练代码和配置文件
+* worker (必填)。 此部分用于配置 TensorFlow 的 worker 角色
* replicas
- * Required key. Should be positive number depends on how many replication your want to run for tensorflow worker role.
+ * 必填。 需要运行的 TensorFlow woker 角色的数量,必须为正数。
* command
- * Required key. Command to launch your trial job, like ```python mnist.py```
+ * 必填。 用来运行尝试作业的命令,例如: ```python mnist.py```
* memoryMB
- * Required key. Should be positive number based on your trial program's memory requirement
+ * 必填。 尝试程序的内存需求,必须为正数。
* cpuNum
* gpuNum
* image
- * Required key. In kubeflow mode, your trial program will be scheduled by Kubernetes to run in [Pod](https://kubernetes.io/docs/concepts/workloads/pods/pod/). This key is used to specify the Docker image used to create the pod where your trail program will run.
+ * 必填。 在 kubeflow 模式中,Kubernetes 会安排尝试程序在 [Pod](https://kubernetes.io/docs/concepts/workloads/pods/pod/) 中执行。 此键用来指定尝试程序的 pod 使用的 Docker 映像。
* We already build a docker image [nnimsra/nni](https://hub.docker.com/r/msranni/nni/) on [Docker Hub](https://hub.docker.com/). It contains NNI python packages, Node modules and javascript artifact files required to start experiment, and all of NNI dependencies. The docker file used to build this image can be found at [here](../deployment/Dockerfile.build.base). You can either use this image directly in your config file, or build your own image based on it.
* ps (optional). This config section is used to configure tensorflow parameter server role.
From 805a9f908f0b2805d76b9c45f4b296efac27b71d Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Mon, 7 Jan 2019 12:41:11 +0800
Subject: [PATCH 0197/1573] New translations KubeflowMode.md (Chinese
Simplified)
---
zh_CN/docs/KubeflowMode.md | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/zh_CN/docs/KubeflowMode.md b/zh_CN/docs/KubeflowMode.md
index 07f26354c1..e28e10b804 100644
--- a/zh_CN/docs/KubeflowMode.md
+++ b/zh_CN/docs/KubeflowMode.md
@@ -105,18 +105,18 @@ kubeflow 模式的配置有下列主键:
* gpuNum
* image
* 必填。 在 kubeflow 模式中,Kubernetes 会安排尝试程序在 [Pod](https://kubernetes.io/docs/concepts/workloads/pods/pod/) 中执行。 此键用来指定尝试程序的 pod 使用的 Docker 映像。
- * We already build a docker image [nnimsra/nni](https://hub.docker.com/r/msranni/nni/) on [Docker Hub](https://hub.docker.com/). It contains NNI python packages, Node modules and javascript artifact files required to start experiment, and all of NNI dependencies. The docker file used to build this image can be found at [here](../deployment/Dockerfile.build.base). You can either use this image directly in your config file, or build your own image based on it.
-* ps (optional). This config section is used to configure tensorflow parameter server role.
+ * [Docker Hub](https://hub.docker.com/) 上有预制的 NNI Docker 映像 [nnimsra/nni](https://hub.docker.com/r/msranni/nni/)。 它包含了用来启动 NNI 实验所依赖的所有 Python 包,Node 模块和 JavaScript。 用来生成此映像的文件在[这里](../deployment/Dockerfile.build.base)。 可以直接使用此映像,或参考它来生成自己的映像。
+* ps (可选)。 此部分用于配置 TensorFlow 的 parameter 服务器角色。
-Once complete to fill nni experiment config file and save (for example, save as exp_kubeflow.yaml), then run the following command
+完成并保存 NNI 实验配置文件后(例如可保存为:exp_kubeflow.yaml),运行以下命令:
nnictl create --config exp_kubeflow.yaml
-to start the experiment in kubeflow mode. NNI will create Kubeflow tfjob for each trial, and the job name format is something like `nni_exp_{experiment_id}_trial_{trial_id}`. You can see the kubeflow tfjob created by NNI in your Kubernetes dashboard.
+来在 Kubeflow 模式下启动实验。 NNI 会为每个尝试创建 Kubeflow tfjob,作业名称的格式为 `nni_exp_{experiment_id}_trial_{trial_id}`。 可以在 Kubernetes 面板中看到创建的 Kubeflow tfjob。
-Notice: In kubeflow mode, NNIManager will start a rest server and listen on a port which is your NNI WebUI's port plus 1. For example, if your WebUI port is `8080`, the rest server will listen on `8081`, to receive metrics from trial job running in Kubernetes. So you should `enable 8081` TCP port in your firewall rule to allow incoming traffic.
+注意:Kubeflow 模式下,NNIManager 会启动 RESTful 服务,监听端口为 NNI 网页服务器的端口加1。 例如,如果网页端口为`8080`,那么 RESTful 服务器会监听在 `8081`端口,来接收运行在 Kubernetes 中的尝试作业的指标。 因此,需要在防火墙中启用端口 `8081` 的 TCP 协议,以允许传入流量。
-Once a trial job is completed, you can goto NNI WebUI's overview page (like http://localhost:8080/oview) to check trial's information.
+当一个尝试作业完成后,可以在 NNI 网页的概述页面(如:http://localhost:8080/oview)中查看尝试的信息。
-Any problems when using NNI in kubeflow mode, plesae create issues on [NNI github repo](https://github.com/Microsoft/nni), or send mail to nni@microsoft.com
\ No newline at end of file
+如果在使用 Kubeflow 模式时遇到任何问题,请到 [NNI github](https://github.com/Microsoft/nni)中创建问题,或发信给 nni@microsoft.com。
\ No newline at end of file
From 405f33b6973dff8ae74e0efeea4bf52357094da4 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Mon, 7 Jan 2019 13:00:36 +0800
Subject: [PATCH 0198/1573] New translations NNICTLDOC.md (Chinese Simplified)
---
zh_CN/docs/NNICTLDOC.md | 648 ++++++++++++++++++++++------------------
1 file changed, 350 insertions(+), 298 deletions(-)
diff --git a/zh_CN/docs/NNICTLDOC.md b/zh_CN/docs/NNICTLDOC.md
index 1b7c188198..d37e74266a 100644
--- a/zh_CN/docs/NNICTLDOC.md
+++ b/zh_CN/docs/NNICTLDOC.md
@@ -1,4 +1,6 @@
-# nnictl
+nnictl
+
+===
## Introduction
@@ -8,235 +10,276 @@
nnictl support commands:
- nnictl create
- nnictl stop
- nnictl update
- nnictl resume
- nnictl trial
- nnictl experiment
- nnictl config
- nnictl log
- nnictl webui
- nnictl tensorboard
- nnictl top
-
+```bash
+nnictl create
+nnictl stop
+nnictl update
+nnictl resume
+nnictl trial
+nnictl experiment
+nnictl config
+nnictl log
+nnictl webui
+nnictl tensorboard
+nnictl top
+```
### Manage an experiment
* **nnictl create**
-
- * Description
-
- You can use this command to create a new experiment, using the configuration specified in config file. After this command is successfully done, the context will be set as this experiment, which means the following command you issued is associated with this experiment, unless you explicitly changes the context(not supported yet).
-
- * Usage
-
- nnictl create [OPTIONS]
-
- Options:
-
- | Name, shorthand | Required | Default | Description |
- | --------------- | -------- | ------- | ------------------------------------- |
- | --config, -c | True | | yaml configure file of the experiment |
- | --port, -p | False | | the port of restful server |
+
+ * Description
+
+ You can use this command to create a new experiment, using the configuration specified in config file.
+ After this command is successfully done, the context will be set as this experiment,
+ which means the following command you issued is associated with this experiment,
+ unless you explicitly changes the context(not supported yet).
+
+
+ * Usage
+
+ ```bash
+ nnictl create [OPTIONS]
+ ```
+
+ Options:
+ | Name, shorthand | Required|Default | Description |
+ | ------ | ------ | ------ |------ |
+ | --config, -c| True| |yaml configure file of the experiment|
+ | --port, -p | False| |the port of restful server|
+
* **nnictl resume**
-
- * Description
-
- You can use this command to resume a stopped experiment.
-
- * Usage
-
- nnictl resume [OPTIONS]
- Options:
-
- | Name, shorthand | Required | Default | Description |
- | --------------- | -------- | ------- | ---------------------------------------------- |
- | id | False | | The id of the experiment you want to resume |
- | --port, -p | False | | Rest port of the experiment you want to resume |
+
+ * Description
+
+ You can use this command to resume a stopped experiment.
+
+ * Usage
+
+ ```bash
+ nnictl resume [OPTIONS]
+ ```
+
+ Options:
+
+ | Name, shorthand | Required | Default | Description |
+ | --------------- | -------- | ------- | ---------------------------------------------- |
+ | id | False | | The id of the experiment you want to resume |
+ | --port, -p | False | | Rest port of the experiment you want to resume |
* **nnictl stop**
-
- * Description
-
- You can use this command to stop a running experiment or multiple experiments.
-
- * Usage
-
- nnictl stop [id]
-
- * Detail
-
- 1.If there is an id specified, and the id matches the running experiment, nnictl will stop the corresponding experiment, or will print error message. 2.If there is no id specified, and there is an experiment running, stop the running experiment, or print error message. 3.If the id ends with *, nnictl will stop all experiments whose ids matchs the regular. 4.If the id does not exist but match the prefix of an experiment id, nnictl will stop the matched experiment. 5.If the id does not exist but match multiple prefix of the experiment ids, nnictl will give id information. 6.Users could use 'nnictl stop all' to stop all experiments
+
+ * Description
+
+ You can use this command to stop a running experiment or multiple experiments.
+
+ * Usage
+
+ ```bash
+ nnictl stop [id]
+ ```
+
+ * Detail
+
+ 1. If there is an id specified, and the id matches the running experiment, nnictl will stop the corresponding experiment, or will print error message.
+
+ 2. If there is no id specified, and there is an experiment running, stop the running experiment, or print error message.
+
+ 3. If the id ends with *, nnictl will stop all experiments whose ids matchs the regular.
+
+ 4. If the id does not exist but match the prefix of an experiment id, nnictl will stop the matched experiment.
+
+ 5. If the id does not exist but match multiple prefix of the experiment ids, nnictl will give id information.
+
+ 6. Users could use 'nnictl stop all' to stop all experiments
* **nnictl update**
-
- * **nnictl update searchspace**
+
+ * **nnictl update searchspace**
+
+ * Description
- * Description
-
- You can use this command to update an experiment's search space.
+ You can use this command to update an experiment's search space.
+
+ * Usage
- * Usage
-
- nnictl update searchspace [OPTIONS]
-
- Options:
-
-
- | Name, shorthand | Required | Default | Description |
- | --------------- | -------- | ------- | -------------------------------------- |
- | id | False | | ID of the experiment you want to set |
- | --filename, -f | True | | the file storing your new search space |
-
- * **nnictl update concurrency**
- * Description
-
- You can use this command to update an experiment's concurrency.
-
- * Usage
-
- nnictl update concurrency [OPTIONS]
-
- Options:
-
- | Name, shorthand | Required | Default | Description |
- | --------------- | -------- | ------- | --------------------------------------- |
- | id | False | | ID of the experiment you want to set |
- | --value, -v | True | | the number of allowed concurrent trials |
-
- * **nnictl update duration**
-
- * Description
-
- You can use this command to update an experiment's concurrency.
-
-
- * Usage
-
- nnictl update duration [OPTIONS]
-
- Options:
-
- | Name, shorthand | Required | Default | Description |
- | --------------- | -------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
- | id | False | | ID of the experiment you want to set |
- | --value, -v | True | | the experiment duration will be NUMBER seconds. SUFFIX may be 's' for seconds (the default), 'm' for minutes, 'h' for hours or 'd' for days. |
-
- * **nnictl update trialnum**
- * Description
-
- You can use this command to update an experiment's maxtrialnum.
-
- * Usage
-
- nnictl update trialnum [OPTIONS]
-
- Options:
-
- | Name, shorthand | Required | Default | Description |
- | --------------- | -------- | ------- | --------------------------------------------- |
- | id | False | | ID of the experiment you want to set |
- | --value, -v | True | | the new number of maxtrialnum you want to set |
-
-* **nnictl trial**
-
- * **nnictl trial ls**
+ ```bash
+ nnictl update searchspace [OPTIONS]
+ ```
- * Description
-
- You can use this command to show trial's information.
+ Options:
- * Usage
-
- nnictl trial ls
+ | Name, shorthand | Required | Default | Description |
+ | --------------- | -------- | ------- | -------------------------------------- |
+ | id | False | | ID of the experiment you want to set |
+ | --filename, -f | True | | the file storing your new search space |
+
+ * **nnictl update concurrency**
+
+ * Description
+
+ You can use this command to update an experiment's concurrency.
+
+ * Usage
+
+ ```bash
+ nnictl update concurrency [OPTIONS]
+ ```
Options:
- | Name, shorthand | Required | Default | Description |
- | --------------- | -------- | ------- | ------------------------------------ |
- | id | False | | ID of the experiment you want to set |
-
- * **nnictl trial kill**
+ | Name, shorthand | Required | Default | Description |
+ | --------------- | -------- | ------- | --------------------------------------- |
+ | id | False | | ID of the experiment you want to set |
+ | --value, -v | True | | the number of allowed concurrent trials |
+
+ * **nnictl update duration**
* Description
-
- You can use this command to kill a trial job.
+
+ You can use this command to update an experiment's concurrency.
* Usage
-
- nnictl trial kill [OPTIONS]
-
-
- Options:
-
- | Name, shorthand | Required | Default | Description |
- | --------------- | -------- | ------- | ------------------------------------ |
- | id | False | | ID of the experiment you want to set |
- | --trialid, -t | True | | ID of the trial you want to kill. |
-
- * **nnictl top**
+
+ ```bash
+ nnictl update duration [OPTIONS]
+ ```
+
+ Options:
+
+ | Name, shorthand | Required | Default | Description |
+ | --------------- | -------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
+ | id | False | | ID of the experiment you want to set |
+ | --value, -v | True | | the experiment duration will be NUMBER seconds. SUFFIX may be 's' for seconds (the default), 'm' for minutes, 'h' for hours or 'd' for days. |
+
+ * **nnictl update trialnum**
* Description
-
- Monitor all of running experiments.
+
+ You can use this command to update an experiment's maxtrialnum.
* Usage
-
- nnictl top
-
-
- Options:
-
- | Name, shorthand | Required | Default | Description |
- | --------------- | -------- | ------- | ------------------------------------------------------------------------------------------------------------ |
- | id | False | | ID of the experiment you want to set |
- | --time, -t | False | | The interval to update the experiment status, the unit of time is second, and the default value is 3 second. |
-
-### Manage experiment information
+
+ ```bash
+ nnictl update trialnum [OPTIONS]
+ ```
+
+ Options:
+
+ | Name, shorthand | Required | Default | Description |
+ | --------------- | -------- | ------- | --------------------------------------------- |
+ | id | False | | ID of the experiment you want to set |
+ | --value, -v | True | | the new number of maxtrialnum you want to set |
-* **nnictl experiment show**
-
- * Description
+* **nnictl trial**
+
+ * **nnictl trial ls**
+
+ * Description
- Show the information of experiment.
-
- * Usage
+ You can use this command to show trial's information.
+
+ * Usage
- nnictl experiment show
+ ```bash
+ nnictl trial ls
+ ```
Options:
| Name, shorthand | Required | Default | Description |
| --------------- | -------- | ------- | ------------------------------------ |
| id | False | | ID of the experiment you want to set |
-
-* **nnictl experiment status**
-
- * Description
+
+ * **nnictl trial kill**
+
+ * Description
- Show the status of experiment.
-
- * Usage
+ You can use this command to kill a trial job.
+
+ * Usage
- nnictl experiment status
+ ```bash
+ nnictl trial kill [OPTIONS]
+ ```
Options:
| Name, shorthand | Required | Default | Description |
| --------------- | -------- | ------- | ------------------------------------ |
| id | False | | ID of the experiment you want to set |
+ | --trialid, -t | True | | ID of the trial you want to kill. |
+
+ * **nnictl top**
+
+ * Description
+
+ Monitor all of running experiments.
+
+ * Usage
+
+ ```bash
+ nnictl top
+ ```
+
+ Options:
+
+ | Name, shorthand | Required | Default | Description |
+ | --------------- | -------- | ------- | ------------------------------------------------------------------------------------------------------------ |
+ | id | False | | ID of the experiment you want to set |
+ | --time, -t | False | | The interval to update the experiment status, the unit of time is second, and the default value is 3 second. |
+
+### Manage experiment information
+
+* **nnictl experiment show**
+
+ * Description
+
+ Show the information of experiment.
+
+ * Usage
+
+ ```bash
+ nnictl experiment show
+ ```
+
+ Options:
+
+ | Name, shorthand | Required | Default | Description |
+ | --------------- | -------- | ------- | ------------------------------------ |
+ | id | False | | ID of the experiment you want to set |
+
+* **nnictl experiment status**
+
+ * Description
+
+ Show the status of experiment.
+
+ * Usage
+
+ ```bash
+ nnictl experiment status
+ ```
+
+ Options:
+
+ | Name, shorthand | Required|Default | Description |
+ | ------ | ------ | ------ |------ |
+ | id| False| |ID of the experiment you want to set|
+
* **nnictl experiment list**
-
- * Description
-
- Show the information of all the (running) experiments.
-
- * Usage
+
+ * Description
+
+ Show the information of all the (running) experiments.
+
+ * Usage
+ ```bash
nnictl experiment list
+ ```
Options:
@@ -245,135 +288,144 @@ nnictl support commands:
| all | False | False | Show all of experiments, including stopped experiments. |
* **nnictl config show**
-
- * Description
-
- Display the current context information.
-
-
- * Usage
-
- nnictl config show
-
+
+ * Description
+
+ Display the current context information.
+
+ * Usage
+
+ ```bash
+ nnictl config show
+ ```
### Manage log
* **nnictl log stdout**
-
- * Description
-
- Show the stdout log content.
-
- * Usage
-
- nnictl log stdout [options]
-
-
- Options:
-
- | Name, shorthand | Required | Default | Description |
- | --------------- | -------- | ------- | ------------------------------------ |
- | id | False | | ID of the experiment you want to set |
- | --head, -h | False | | show head lines of stdout |
- | --tail, -t | False | | show tail lines of stdout |
- | --path, -p | False | | show the path of stdout file |
+
+ * Description
+
+ Show the stdout log content.
+
+ * Usage
+
+ ```bash
+ nnictl log stdout [options]
+ ```
+
+ Options:
+
+ | Name, shorthand | Required|Default | Description |
+ | ------ | ------ | ------ |------ |
+ | id| False| |ID of the experiment you want to set|
+ | --head, -h| False| |show head lines of stdout|
+ | --tail, -t| False| |show tail lines of stdout|
+ | --path, -p| False| |show the path of stdout file|
+
* **nnictl log stderr**
-
- * Description
-
- Show the stderr log content.
-
- * Usage
-
- nnictl log stderr [options]
-
- Options:
-
- | Name, shorthand | Required | Default | Description |
- | --------------- | -------- | ------- | ------------------------------------ |
- | id | False | | ID of the experiment you want to set |
- | --head, -h | False | | show head lines of stderr |
- | --tail, -t | False | | show tail lines of stderr |
- | --path, -p | False | | show the path of stderr file |
+
+ * Description
+
+ Show the stderr log content.
+
+ * Usage
+
+ ```bash
+ nnictl log stderr [options]
+ ```
+
+ Options:
+
+ | Name, shorthand | Required | Default | Description |
+ | --------------- | -------- | ------- | ------------------------------------ |
+ | id | False | | ID of the experiment you want to set |
+ | --head, -h | False | | show head lines of stderr |
+ | --tail, -t | False | | show tail lines of stderr |
+ | --path, -p | False | | show the path of stderr file |
* **nnictl log trial**
-
- * Description
-
- Show trial log path.
-
- * Usage
-
- nnictl log trial [options]
-
- Options:
-
- | Name, shorthand | Required | Default | Description |
- | --------------- | -------- | ------- | --------------- |
- | id | False | | the id of trial |
+
+ * Description
+
+ Show trial log path.
+
+ * Usage
+
+ ```bash
+ nnictl log trial [options]
+ ```
+
+ Options:
+
+ | Name, shorthand | Required | Default | Description |
+ | --------------- | -------- | ------- | --------------- |
+ | id | False | | the id of trial |
### Manage webui
* **nnictl webui url**
-
- * Description
-
- Show the urls of the experiment.
-
- * Usage
-
- nnictl webui url
-
-
- Options:
-
- | Name, shorthand | Required | Default | Description |
- | --------------- | -------- | ------- | ------------------------------------ |
- | id | False | | ID of the experiment you want to set |
+
+ * Description
+
+ Show the urls of the experiment.
+
+ * Usage
+
+ ```bash
+ nnictl webui url
+ ```
+
+ Options:
+
+ | Name, shorthand | Required | Default | Description |
+ | --------------- | -------- | ------- | ------------------------------------ |
+ | id | False | | ID of the experiment you want to set |
### Manage tensorboard
* **nnictl tensorboard start**
-
- * Description
-
- Start the tensorboard process.
-
- * Usage
-
- nnictl tensorboard start
-
-
- Options:
-
- | Name, shorthand | Required | Default | Description |
- | --------------- | -------- | ------- | ------------------------------------ |
- | id | False | | ID of the experiment you want to set |
- | --trialid | False | | ID of the trial |
- | --port | False | 6006 | The port of the tensorboard process |
-
- * Detail
-
- 1. NNICTL support tensorboard function in local and remote platform for the moment, other platforms will be supported later.
- 2. If you want to use tensorboard, you need to write your tensorboard log data to environment variable [NNI_OUTPUT_DIR] path.
- 3. In local mode, nnictl will set --logdir=[NNI_OUTPUT_DIR] directly and start a tensorboard process.
- 4. In remote mode, nnictl will create a ssh client to copy log data from remote machine to local temp directory firstly, and then start a tensorboard process in your local machine. You need to notice that nnictl only copy the log data one time when you use the command, if you want to see the later result of tensorboard, you should execute nnictl tensorboard command again.
- 5. If there is only one trial job, you don't need to set trialid. If there are multiple trial jobs running, you should set the trialid, or you could use [nnictl tensorboard start --trialid all] to map --logdir to all trial log paths.
+
+ * Description
+
+ Start the tensorboard process.
+
+ * Usage
+
+ ```bash
+ nnictl tensorboard start
+ ```
+
+ Options:
+
+ | Name, shorthand | Required | Default | Description |
+ | --------------- | -------- | ------- | ------------------------------------ |
+ | id | False | | ID of the experiment you want to set |
+ | --trialid | False | | ID of the trial |
+ | --port | False | 6006 | The port of the tensorboard process |
+
+ * Detail
+
+ 1. NNICTL support tensorboard function in local and remote platform for the moment, other platforms will be supported later.
+ 2. If you want to use tensorboard, you need to write your tensorboard log data to environment variable [NNI_OUTPUT_DIR] path.
+ 3. In local mode, nnictl will set --logdir=[NNI_OUTPUT_DIR] directly and start a tensorboard process.
+ 4. In remote mode, nnictl will create a ssh client to copy log data from remote machine to local temp directory firstly, and then start a tensorboard process in your local machine. You need to notice that nnictl only copy the log data one time when you use the command, if you want to see the later result of tensorboard, you should execute nnictl tensorboard command again.
+ 5. If there is only one trial job, you don't need to set trialid. If there are multiple trial jobs running, you should set the trialid, or you could use [nnictl tensorboard start --trialid all] to map --logdir to all trial log paths.
* **nnictl tensorboard stop**
-
- * Description
-
- Stop all of the tensorboard process.
-
- * Usage
-
- nnictl tensorboard stop
-
-
- Options:
-
- | Name, shorthand | Required | Default | Description |
- | --------------- | -------- | ------- | ------------------------------------ |
- | id | False | | ID of the experiment you want to set |
\ No newline at end of file
+
+ * Description
+
+ Stop all of the tensorboard process.
+
+ * Usage
+
+ ```bash
+ nnictl tensorboard stop
+ ```
+
+ Options:
+
+ | Name, shorthand | Required | Default | Description |
+ | --------------- | -------- | ------- | ------------------------------------ |
+ | id | False | | ID of the experiment you want to set |
\ No newline at end of file
From 85fa8328f833e9b9419be2caea5edcb1fea12571 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Mon, 7 Jan 2019 13:03:08 +0800
Subject: [PATCH 0199/1573] New translations NNICTLDOC.md (Chinese Simplified)
---
zh_CN/docs/NNICTLDOC.md | 89 ++++++++++++++++++++---------------------
1 file changed, 44 insertions(+), 45 deletions(-)
diff --git a/zh_CN/docs/NNICTLDOC.md b/zh_CN/docs/NNICTLDOC.md
index d37e74266a..39753ed9d4 100644
--- a/zh_CN/docs/NNICTLDOC.md
+++ b/zh_CN/docs/NNICTLDOC.md
@@ -2,7 +2,7 @@ nnictl
===
-## Introduction
+## 介绍
**nnictl** is a command line tool, which can be used to control experiments, such as start/stop/resume an experiment, start/stop NNIBoard, etc.
@@ -38,16 +38,17 @@ nnictl top
* Usage
- ```bash
- nnictl create [OPTIONS]
- ```
-
- Options:
- | Name, shorthand | Required|Default | Description |
- | ------ | ------ | ------ |------ |
- | --config, -c| True| |yaml configure file of the experiment|
- | --port, -p | False| |the port of restful server|
-
+ ```bash
+ nnictl create [OPTIONS]
+ ```
+
+ Options:
+
+
+ | Name, shorthand | Required | Default | Description |
+ | --------------- | -------- | ------- | ------------------------------------- |
+ | --config, -c | True | | yaml configure file of the experiment |
+ | --port, -p | False | | the port of restful server |
* **nnictl resume**
@@ -258,34 +259,33 @@ nnictl top
* Usage
- ```bash
- nnictl experiment status
- ```
-
- Options:
-
- | Name, shorthand | Required|Default | Description |
- | ------ | ------ | ------ |------ |
- | id| False| |ID of the experiment you want to set|
-
+ ```bash
+ nnictl experiment status
+ ```
+
+ Options:
+
+ | Name, shorthand | Required | Default | Description |
+ | --------------- | -------- | ------- | ------------------------------------ |
+ | id | False | | ID of the experiment you want to set |
* **nnictl experiment list**
* Description
Show the information of all the (running) experiments.
+
+ * Usage
- * Usage
-
- ```bash
- nnictl experiment list
- ```
-
- Options:
-
- | Name, shorthand | Required | Default | Description |
- | --------------- | -------- | ------- | ------------------------------------------------------- |
- | all | False | False | Show all of experiments, including stopped experiments. |
+ ```bash
+ nnictl experiment list
+ ```
+
+ Options:
+
+ | Name, shorthand | Required | Default | Description |
+ | --------------- | -------- | ------- | ------------------------------------------------------- |
+ | all | False | False | Show all of experiments, including stopped experiments. |
* **nnictl config show**
@@ -309,19 +309,18 @@ nnictl top
* Usage
- ```bash
- nnictl log stdout [options]
- ```
-
- Options:
-
- | Name, shorthand | Required|Default | Description |
- | ------ | ------ | ------ |------ |
- | id| False| |ID of the experiment you want to set|
- | --head, -h| False| |show head lines of stdout|
- | --tail, -t| False| |show tail lines of stdout|
- | --path, -p| False| |show the path of stdout file|
-
+ ```bash
+ nnictl log stdout [options]
+ ```
+
+ Options:
+
+ | Name, shorthand | Required | Default | Description |
+ | --------------- | -------- | ------- | ------------------------------------ |
+ | id | False | | ID of the experiment you want to set |
+ | --head, -h | False | | show head lines of stdout |
+ | --tail, -t | False | | show tail lines of stdout |
+ | --path, -p | False | | show the path of stdout file |
* **nnictl log stderr**
From 2dbe2ea69358070afa0271e74cc1588d3db96804 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Mon, 7 Jan 2019 13:11:49 +0800
Subject: [PATCH 0200/1573] New translations NNICTLDOC.md (Chinese Simplified)
---
zh_CN/docs/NNICTLDOC.md | 58 ++++++++++++++++++++---------------------
1 file changed, 28 insertions(+), 30 deletions(-)
diff --git a/zh_CN/docs/NNICTLDOC.md b/zh_CN/docs/NNICTLDOC.md
index 39753ed9d4..ab8faa675f 100644
--- a/zh_CN/docs/NNICTLDOC.md
+++ b/zh_CN/docs/NNICTLDOC.md
@@ -4,11 +4,11 @@ nnictl
## 介绍
-**nnictl** is a command line tool, which can be used to control experiments, such as start/stop/resume an experiment, start/stop NNIBoard, etc.
+**nnictl** 是一个命令行工具,用来控制 NNI 实验,如启动、停止、继续实验,启动、停止 NNIBoard 等等。
-## Commands
+## 命令
-nnictl support commands:
+nnictl 支持的命令:
```bash
nnictl create
@@ -24,70 +24,68 @@ nnictl tensorboard
nnictl top
```
-### Manage an experiment
+### 管理实验
* **nnictl create**
- * Description
+ * 说明
- You can use this command to create a new experiment, using the configuration specified in config file.
- After this command is successfully done, the context will be set as this experiment,
- which means the following command you issued is associated with this experiment,
- unless you explicitly changes the context(not supported yet).
+ 此命令使用参数中的配置文件,来创建新的实验。
+ 此命令成功完成后,上下文会被设置为此实验。这意味着如果不显式改变上下文(暂不支持),输入的以下命令,都作用于此实验。
- * Usage
+ * 用法
```bash
nnictl create [OPTIONS]
```
- Options:
+ 选项:
- | Name, shorthand | Required | Default | Description |
- | --------------- | -------- | ------- | ------------------------------------- |
- | --config, -c | True | | yaml configure file of the experiment |
- | --port, -p | False | | the port of restful server |
+ | 参数及缩写 | 是否必需 | 默认值 | 说明 |
+ | ------------ | ----- | --- | ------------- |
+ | --config, -c | True | | 实验的 yaml 配置文件 |
+ | --port, -p | False | | RESTful 服务的端口 |
* **nnictl resume**
- * Description
+ * 说明
- You can use this command to resume a stopped experiment.
+ 使用此命令恢复已停止的实验。
- * Usage
+ * 用法
```bash
nnictl resume [OPTIONS]
```
- Options:
+ 选项:
- | Name, shorthand | Required | Default | Description |
- | --------------- | -------- | ------- | ---------------------------------------------- |
- | id | False | | The id of the experiment you want to resume |
- | --port, -p | False | | Rest port of the experiment you want to resume |
+ | 参数及缩写 | 是否必需 | 默认值 | 说明 |
+ | ---------- | ----- | --- | ---------------------- |
+ | id | False | | 要恢复的实验标识 |
+ | --port, -p | False | | 要恢复的实验使用的 RESTful 服务端口 |
* **nnictl stop**
- * Description
+ * 说明
- You can use this command to stop a running experiment or multiple experiments.
+ 使用此命令来停止正在运行的单个或多个实验。
- * Usage
+ * 用法
```bash
nnictl stop [id]
```
- * Detail
+ * 详细说明
- 1. If there is an id specified, and the id matches the running experiment, nnictl will stop the corresponding experiment, or will print error message.
+ 1. 如果指定了 id,并且此 id 匹配正在运行的实验,nnictl 会停止相应的实验,否则会输出错误信息。
- 2. If there is no id specified, and there is an experiment running, stop the running experiment, or print error message.
+ 2. 如果没有指定 id,并且当前有运行的实验,则会停止该实验,否则会输出错误信息。
- 3. If the id ends with *, nnictl will stop all experiments whose ids matchs the regular.
+ 3. 如果 id 以 * 结尾,nnictl 会停止所有匹配此通配符的实验。
4. If the id does not exist but match the prefix of an experiment id, nnictl will stop the matched experiment.
From 9f24084cb7740d4a562627f3209fb7ae2bba8de3 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Mon, 7 Jan 2019 13:21:40 +0800
Subject: [PATCH 0201/1573] New translations NNICTLDOC.md (Chinese Simplified)
---
zh_CN/docs/NNICTLDOC.md | 148 ++++++++++++++++++++--------------------
1 file changed, 74 insertions(+), 74 deletions(-)
diff --git a/zh_CN/docs/NNICTLDOC.md b/zh_CN/docs/NNICTLDOC.md
index ab8faa675f..92dfc64505 100644
--- a/zh_CN/docs/NNICTLDOC.md
+++ b/zh_CN/docs/NNICTLDOC.md
@@ -87,189 +87,189 @@ nnictl top
3. 如果 id 以 * 结尾,nnictl 会停止所有匹配此通配符的实验。
- 4. If the id does not exist but match the prefix of an experiment id, nnictl will stop the matched experiment.
+ 4. 如果 id 不存在,但匹配了某个实验的 id 前缀,nnictl 会停止匹配的实验。
- 5. If the id does not exist but match multiple prefix of the experiment ids, nnictl will give id information.
+ 5. 如果 id 不存在,但匹配多个实验 id 的前缀,nnictl 会输出这些 id 的信息。
- 6. Users could use 'nnictl stop all' to stop all experiments
+ 6. 可使用 'nnictl stop all' 来停止所有的实验。
* **nnictl update**
* **nnictl update searchspace**
- * Description
+ * 说明
- You can use this command to update an experiment's search space.
+ 可以用此命令来更新实验的搜索空间。
- * Usage
+ * 用法
```bash
nnictl update searchspace [OPTIONS]
```
- Options:
+ 选项:
- | Name, shorthand | Required | Default | Description |
- | --------------- | -------- | ------- | -------------------------------------- |
- | id | False | | ID of the experiment you want to set |
- | --filename, -f | True | | the file storing your new search space |
+ | 参数及缩写 | 是否必需 | 默认值 | 说明 |
+ | -------------- | ----- | --- | ----------- |
+ | id | False | | 需要设置的实验的 id |
+ | --filename, -f | True | | 新的搜索空间文件名 |
* **nnictl update concurrency**
- * Description
+ * 说明
- You can use this command to update an experiment's concurrency.
+ 可以用此命令来更新实验的并发设置。
- * Usage
+ * 用法
```bash
nnictl update concurrency [OPTIONS]
```
- Options:
+ 选项:
- | Name, shorthand | Required | Default | Description |
- | --------------- | -------- | ------- | --------------------------------------- |
- | id | False | | ID of the experiment you want to set |
- | --value, -v | True | | the number of allowed concurrent trials |
+ | 参数及缩写 | 是否必需 | 默认值 | 说明 |
+ | ----------- | ----- | --- | ------------ |
+ | id | False | | 需要设置的实验的 id |
+ | --value, -v | True | | 允许同时运行的尝试的数量 |
* **nnictl update duration**
- * Description
+ * 说明
- You can use this command to update an experiment's concurrency.
+ 可以用此命令来更新实验的运行时间。
- * Usage
+ * 用法
```bash
nnictl update duration [OPTIONS]
```
- Options:
+ 选项:
- | Name, shorthand | Required | Default | Description |
- | --------------- | -------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
- | id | False | | ID of the experiment you want to set |
- | --value, -v | True | | the experiment duration will be NUMBER seconds. SUFFIX may be 's' for seconds (the default), 'm' for minutes, 'h' for hours or 'd' for days. |
+ | 参数及缩写 | 是否必需 | 默认值 | 说明 |
+ | ----------- | ----- | --- | -------------------------------------------------------------- |
+ | id | False | | 需要设置的实验的 id |
+ | --value, -v | True | | 实验持续时间如没有单位,则为秒。 后缀可以为 's' 即秒 (默认值), 'm' 即分钟, 'h' 即小时或 'd' 即天。 |
* **nnictl update trialnum**
- * Description
+ * 说明
- You can use this command to update an experiment's maxtrialnum.
+ 可以用此命令来更新实验的最大尝试数量。
- * Usage
+ * 用法
```bash
nnictl update trialnum [OPTIONS]
```
- Options:
+ 选项:
- | Name, shorthand | Required | Default | Description |
- | --------------- | -------- | ------- | --------------------------------------------- |
- | id | False | | ID of the experiment you want to set |
- | --value, -v | True | | the new number of maxtrialnum you want to set |
+ | 参数及缩写 | 是否必需 | 默认值 | 说明 |
+ | ----------- | ----- | --- | --------------------- |
+ | id | False | | 需要设置的实验的 id |
+ | --value, -v | True | | 需要设置的 maxtrialnum 的数量 |
* **nnictl trial**
* **nnictl trial ls**
- * Description
+ * 说明
- You can use this command to show trial's information.
+ 使用此命令来查看尝试的信息。
- * Usage
+ * 用法
```bash
nnictl trial ls
```
- Options:
+ 选项:
- | Name, shorthand | Required | Default | Description |
- | --------------- | -------- | ------- | ------------------------------------ |
- | id | False | | ID of the experiment you want to set |
+ | 参数及缩写 | 是否必需 | 默认值 | 说明 |
+ | ----- | ----- | --- | ----------- |
+ | id | False | | 需要设置的实验的 id |
* **nnictl trial kill**
- * Description
+ * 说明
- You can use this command to kill a trial job.
+ 此命令用于终止尝试。
- * Usage
+ * 用法
```bash
nnictl trial kill [OPTIONS]
```
- Options:
+ 选项:
- | Name, shorthand | Required | Default | Description |
- | --------------- | -------- | ------- | ------------------------------------ |
- | id | False | | ID of the experiment you want to set |
- | --trialid, -t | True | | ID of the trial you want to kill. |
+ | 参数及缩写 | 是否必需 | 默认值 | 说明 |
+ | ------------- | ----- | --- | ------------ |
+ | id | False | | 需要设置的实验的 id |
+ | --trialid, -t | True | | 需要终止的尝试的 id。 |
* **nnictl top**
- * Description
+ * 说明
- Monitor all of running experiments.
+ 查看正在运行的实验。
- * Usage
+ * 用法
```bash
nnictl top
```
- Options:
+ 选项:
- | Name, shorthand | Required | Default | Description |
- | --------------- | -------- | ------- | ------------------------------------------------------------------------------------------------------------ |
- | id | False | | ID of the experiment you want to set |
- | --time, -t | False | | The interval to update the experiment status, the unit of time is second, and the default value is 3 second. |
+ | 参数及缩写 | 是否必需 | 默认值 | 说明 |
+ | ---------- | ----- | --- | -------------------------- |
+ | id | False | | 需要设置的实验的 id |
+ | --time, -t | False | | 刷新实验状态的时间间隔,单位为秒,默认值为 3 秒。 |
-### Manage experiment information
+### 管理实验信息
* **nnictl experiment show**
- * Description
+ * 说明
- Show the information of experiment.
+ 显示实验的信息。
- * Usage
+ * 用法
```bash
nnictl experiment show
```
- Options:
+ 选项:
- | Name, shorthand | Required | Default | Description |
- | --------------- | -------- | ------- | ------------------------------------ |
- | id | False | | ID of the experiment you want to set |
+ | 参数及缩写 | 是否必需 | 默认值 | 说明 |
+ | ----- | ----- | --- | ----------- |
+ | id | False | | 需要设置的实验的 id |
* **nnictl experiment status**
- * Description
+ * 说明
- Show the status of experiment.
+ 显示实验的状态。
- * Usage
+ * 用法
```bash
nnictl experiment status
```
- Options:
+ 选项:
- | Name, shorthand | Required | Default | Description |
- | --------------- | -------- | ------- | ------------------------------------ |
- | id | False | | ID of the experiment you want to set |
+ | 参数及缩写 | 是否必需 | 默认值 | 说明 |
+ | ----- | ----- | --- | ----------- |
+ | id | False | | 需要设置的实验的 id |
* **nnictl experiment list**
- * Description
+ * 说明
Show the information of all the (running) experiments.
From 04801b1d7defff2aa3f0bfd492bf9e30be9c3a7e Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Mon, 7 Jan 2019 13:31:35 +0800
Subject: [PATCH 0202/1573] New translations NNICTLDOC.md (Chinese Simplified)
---
zh_CN/docs/NNICTLDOC.md | 136 ++++++++++++++++++++--------------------
1 file changed, 68 insertions(+), 68 deletions(-)
diff --git a/zh_CN/docs/NNICTLDOC.md b/zh_CN/docs/NNICTLDOC.md
index 92dfc64505..6415e5dff2 100644
--- a/zh_CN/docs/NNICTLDOC.md
+++ b/zh_CN/docs/NNICTLDOC.md
@@ -271,158 +271,158 @@ nnictl top
* 说明
- Show the information of all the (running) experiments.
+ 显示正在运行的实验的信息
- * Usage
+ * 用法
```bash
nnictl experiment list
```
- Options:
+ 选项:
- | Name, shorthand | Required | Default | Description |
- | --------------- | -------- | ------- | ------------------------------------------------------- |
- | all | False | False | Show all of experiments, including stopped experiments. |
+ | 参数及缩写 | 是否必需 | 默认值 | 说明 |
+ | ----- | ----- | ----- | ---------------- |
+ | all | False | False | 显示所有实验,包括已停止的实验。 |
* **nnictl config show**
- * Description
+ * 说明
- Display the current context information.
+ 显示当前上下文信息。
- * Usage
+ * 用法
```bash
nnictl config show
```
-### Manage log
+### 管理日志
* **nnictl log stdout**
- * Description
+ * 说明
- Show the stdout log content.
+ 显示 stdout 日志内容。
- * Usage
+ * 用法
```bash
nnictl log stdout [options]
```
- Options:
+ 选项:
- | Name, shorthand | Required | Default | Description |
- | --------------- | -------- | ------- | ------------------------------------ |
- | id | False | | ID of the experiment you want to set |
- | --head, -h | False | | show head lines of stdout |
- | --tail, -t | False | | show tail lines of stdout |
- | --path, -p | False | | show the path of stdout file |
+ | 参数及缩写 | 是否必需 | 默认值 | 说明 |
+ | ---------- | ----- | --- | ---------------- |
+ | id | False | | 需要设置的实验的 id |
+ | --head, -h | False | | 显示 stdout 开始的若干行 |
+ | --tail, -t | False | | 显示 stdout 结尾的若干行 |
+ | --path, -p | False | | 显示 stdout 文件的路径 |
* **nnictl log stderr**
- * Description
+ * 说明
- Show the stderr log content.
+ 显示 stderr 日志内容。
- * Usage
+ * 用法
```bash
nnictl log stderr [options]
```
- Options:
+ 选项:
- | Name, shorthand | Required | Default | Description |
- | --------------- | -------- | ------- | ------------------------------------ |
- | id | False | | ID of the experiment you want to set |
- | --head, -h | False | | show head lines of stderr |
- | --tail, -t | False | | show tail lines of stderr |
- | --path, -p | False | | show the path of stderr file |
+ | 参数及缩写 | 是否必需 | 默认值 | 说明 |
+ | ---------- | ----- | --- | ---------------- |
+ | id | False | | 需要设置的实验的 id |
+ | --head, -h | False | | 显示 stderr 开始的若干行 |
+ | --tail, -t | False | | 显示 stderr 结尾的若干行 |
+ | --path, -p | False | | 显示 stderr 文件的路径 |
* **nnictl log trial**
- * Description
+ * 说明
- Show trial log path.
+ 显示尝试日志的路径。
- * Usage
+ * 用法
```bash
nnictl log trial [options]
```
- Options:
+ 选项:
- | Name, shorthand | Required | Default | Description |
- | --------------- | -------- | ------- | --------------- |
- | id | False | | the id of trial |
+ | 参数及缩写 | 是否必需 | 默认值 | 说明 |
+ | ----- | ----- | --- | ------ |
+ | id | False | | 尝试的 id |
-### Manage webui
+### 管理网页
* **nnictl webui url**
- * Description
+ * 说明
- Show the urls of the experiment.
+ 显示实验的 URL。
- * Usage
+ * 用法
```bash
nnictl webui url
```
- Options:
+ 选项:
- | Name, shorthand | Required | Default | Description |
- | --------------- | -------- | ------- | ------------------------------------ |
- | id | False | | ID of the experiment you want to set |
+ | 参数及缩写 | 是否必需 | 默认值 | 说明 |
+ | ----- | ----- | --- | ----------- |
+ | id | False | | 需要设置的实验的 id |
-### Manage tensorboard
+### 管理 tensorboard
* **nnictl tensorboard start**
- * Description
+ * 说明
- Start the tensorboard process.
+ 启动 tensorboard 进程。
- * Usage
+ * 用法
```bash
nnictl tensorboard start
```
- Options:
+ 选项:
- | Name, shorthand | Required | Default | Description |
- | --------------- | -------- | ------- | ------------------------------------ |
- | id | False | | ID of the experiment you want to set |
- | --trialid | False | | ID of the trial |
- | --port | False | 6006 | The port of the tensorboard process |
+ | 参数及缩写 | 是否必需 | 默认值 | 说明 |
+ | --------- | ----- | ---- | ----------------- |
+ | id | False | | 需要设置的实验的 id |
+ | --trialid | False | | 尝试的 id |
+ | --port | False | 6006 | tensorboard 进程的端口 |
- * Detail
+ * 详细说明
- 1. NNICTL support tensorboard function in local and remote platform for the moment, other platforms will be supported later.
- 2. If you want to use tensorboard, you need to write your tensorboard log data to environment variable [NNI_OUTPUT_DIR] path.
- 3. In local mode, nnictl will set --logdir=[NNI_OUTPUT_DIR] directly and start a tensorboard process.
- 4. In remote mode, nnictl will create a ssh client to copy log data from remote machine to local temp directory firstly, and then start a tensorboard process in your local machine. You need to notice that nnictl only copy the log data one time when you use the command, if you want to see the later result of tensorboard, you should execute nnictl tensorboard command again.
- 5. If there is only one trial job, you don't need to set trialid. If there are multiple trial jobs running, you should set the trialid, or you could use [nnictl tensorboard start --trialid all] to map --logdir to all trial log paths.
+ 1. NNICTL 当前仅支持本机和远程平台的 tensorboard,其它平台暂不支持。
+ 2. 如果要使用 tensorboard,需要将 tensorboard 日志输出到环境变量 [NNI_OUTPUT_DIR] 路径下。
+ 3. 在 local 模式中,nnictl 会直接设置 --logdir=[NNI_OUTPUT_DIR] 并启动 tensorboard 进程。
+ 4. 在 remote 模式中,nnictl 会创建一个 ssh 客户端来将日志数据从远程计算机复制到本机临时目录中,然后在本机开始 tensorboard 进程。 需要注意的是,nnictl 只在使用此命令时复制日志数据,如果要查看最新的 tensorboard 结果,需要再次执行 nnictl tensorboard 命令。
+ 5. 如果只有一个尝试任务,不需要设置 trialid。 如果有多个运行的尝试作业,需要设置 trialid,或使用 [nnictl tensorboard start --trialid all] 来将 --logdir 映射到所有尝试的路径。
* **nnictl tensorboard stop**
- * Description
+ * 说明
- Stop all of the tensorboard process.
+ 停止所有 tensorboard 进程。
- * Usage
+ * 用法
```bash
nnictl tensorboard stop
```
- Options:
+ 选项:
- | Name, shorthand | Required | Default | Description |
- | --------------- | -------- | ------- | ------------------------------------ |
- | id | False | | ID of the experiment you want to set |
\ No newline at end of file
+ | 参数及缩写 | 是否必需 | 默认值 | 说明 |
+ | ----- | ----- | --- | ----------- |
+ | id | False | | 需要设置的实验的 id |
\ No newline at end of file
From 1cc9b2498b698cfc2aeb7de0b1865986b08197c5 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Mon, 7 Jan 2019 13:33:45 +0800
Subject: [PATCH 0203/1573] New translations NNICTLDOC.md (Chinese Simplified)
---
zh_CN/docs/NNICTLDOC.md | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/zh_CN/docs/NNICTLDOC.md b/zh_CN/docs/NNICTLDOC.md
index 6415e5dff2..ed25e80bc2 100644
--- a/zh_CN/docs/NNICTLDOC.md
+++ b/zh_CN/docs/NNICTLDOC.md
@@ -30,9 +30,7 @@ nnictl top
* 说明
- 此命令使用参数中的配置文件,来创建新的实验。
- 此命令成功完成后,上下文会被设置为此实验。这意味着如果不显式改变上下文(暂不支持),输入的以下命令,都作用于此实验。
-
+ 此命令使用参数中的配置文件,来创建新的实验。 此命令成功完成后,上下文会被设置为此实验。这意味着如果不显式改变上下文(暂不支持),输入的以下命令,都作用于此实验。
* 用法
From b1829dbe9063f646991fe23b80951a5d4dbd9086 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Mon, 7 Jan 2019 13:38:26 +0800
Subject: [PATCH 0204/1573] New translations Overview.md (Chinese Simplified)
---
zh_CN/docs/Overview.md | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/zh_CN/docs/Overview.md b/zh_CN/docs/Overview.md
index 6fb6e3979d..7170dbb0bf 100644
--- a/zh_CN/docs/Overview.md
+++ b/zh_CN/docs/Overview.md
@@ -1,15 +1,15 @@
-# NNI Overview
+# NNI 概述
-NNI (Neural Network Intelligence) is a toolkit to help users run automated machine learning experiments. For each experiment, user only need to define a search space and update a few lines of code, and then leverage NNI build-in algorithms and training services to search the best hyper parameters and/or neural architecture.
+NNI (Neural Network Intelligence) 是自动机器学习(AutoML)实验的工具包。 每次实验,用户只需要定义搜索空间,改动几行代码,就能利用 NNI 内置的算法和训练服务来搜索最好的超参组合以及神经网络结构。
-> Step 1: [Define search space](SearchSpaceSpec.md)
+> 第一步:[定义搜索空间](SearchSpaceSpec.md)
>
-> Step 2: [Update model codes](howto_1_WriteTrial.md)
+> 第二步:[改动模型代码](howto_1_WriteTrial.md)
>
-> Step 3: [Define Experiment](ExperimentConfig.md)
+> 第三步:[定义实验配置](ExperimentConfig.md)
-
+
After user submits the experiment through a command line tool [nnictl](../tools/README.md), a demon process (NNI manager) take care of search process. NNI manager continuously get search settings that generated by tuning algorithms, then NNI manager asks the training service component to dispatch and run trial jobs in a targeted training environment (e.g. local machine, remote servers and cloud). The results of trials jobs such as model accurate will send back to tuning algorithms for generating more meaningful search settings. NNI manager stops the search process after it find the best models.
@@ -17,7 +17,7 @@ After user submits the experiment through a command line tool [nnictl](../tools/
## Architecture Overview
-
+
User can use the nnictl and/or a visualized Web UI nniboard to monitor and debug a given experiment.
From 4da26648ab833bbb018af3f243ff780a55f92d2a Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Mon, 7 Jan 2019 13:40:13 +0800
Subject: [PATCH 0205/1573] New translations Overview.md (Chinese Simplified)
---
zh_CN/docs/Overview.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/zh_CN/docs/Overview.md b/zh_CN/docs/Overview.md
index 7170dbb0bf..f11f2e5b50 100644
--- a/zh_CN/docs/Overview.md
+++ b/zh_CN/docs/Overview.md
@@ -17,7 +17,7 @@ After user submits the experiment through a command line tool [nnictl](../tools/
## Architecture Overview
-
+
User can use the nnictl and/or a visualized Web UI nniboard to monitor and debug a given experiment.
From e13c95b7c33c7aa20393dcb12dfe0b4a6b147983 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Mon, 7 Jan 2019 13:41:33 +0800
Subject: [PATCH 0206/1573] New translations Overview.md (Chinese Simplified)
---
zh_CN/docs/Overview.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/zh_CN/docs/Overview.md b/zh_CN/docs/Overview.md
index f11f2e5b50..959c5b093f 100644
--- a/zh_CN/docs/Overview.md
+++ b/zh_CN/docs/Overview.md
@@ -12,7 +12,7 @@ NNI (Neural Network Intelligence) 是自动机器学习(AutoML)实验的工
-After user submits the experiment through a command line tool [nnictl](../tools/README.md), a demon process (NNI manager) take care of search process. NNI manager continuously get search settings that generated by tuning algorithms, then NNI manager asks the training service component to dispatch and run trial jobs in a targeted training environment (e.g. local machine, remote servers and cloud). The results of trials jobs such as model accurate will send back to tuning algorithms for generating more meaningful search settings. NNI manager stops the search process after it find the best models.
+用户通过命令行工具 [nnictl](../tools/README.md) 创建实验后,守护进程(NNI 管理器)会开始搜索过程。 NNI manager continuously get search settings that generated by tuning algorithms, then NNI manager asks the training service component to dispatch and run trial jobs in a targeted training environment (e.g. local machine, remote servers and cloud). The results of trials jobs such as model accurate will send back to tuning algorithms for generating more meaningful search settings. NNI manager stops the search process after it find the best models.
## Architecture Overview
From 6edc181b2e277dfad7f955df2d1f45b40106c381 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Mon, 7 Jan 2019 13:52:08 +0800
Subject: [PATCH 0207/1573] New translations Overview.md (Chinese Simplified)
---
zh_CN/docs/Overview.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/zh_CN/docs/Overview.md b/zh_CN/docs/Overview.md
index 959c5b093f..e3df97ab78 100644
--- a/zh_CN/docs/Overview.md
+++ b/zh_CN/docs/Overview.md
@@ -12,9 +12,9 @@ NNI (Neural Network Intelligence) 是自动机器学习(AutoML)实验的工
-用户通过命令行工具 [nnictl](../tools/README.md) 创建实验后,守护进程(NNI 管理器)会开始搜索过程。 NNI manager continuously get search settings that generated by tuning algorithms, then NNI manager asks the training service component to dispatch and run trial jobs in a targeted training environment (e.g. local machine, remote servers and cloud). The results of trials jobs such as model accurate will send back to tuning algorithms for generating more meaningful search settings. NNI manager stops the search process after it find the best models.
+用户通过命令行工具 [nnictl](../tools/README.md) 创建实验后,守护进程(NNI 管理器)会开始搜索过程。 NNI 管理器不断地通过搜索配置的优化算法来生成参数配置,并通过训练服务组件,在目标训练环境中(例如:本机、远程服务器、云服务等),来调度并运行尝试的任务。 尝试任务的模型精度等结果会返回给优化算法,以便生成更好的参数配置。 NNI 管理器会在找到最佳模型后停止搜索过程。
-## Architecture Overview
+## 体系结构概述
From b766680665828643b3c8805a6958a0c7268560f9 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Mon, 7 Jan 2019 14:01:56 +0800
Subject: [PATCH 0208/1573] New translations Overview.md (Chinese Simplified)
---
zh_CN/docs/Overview.md | 22 +++++++++++-----------
1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/zh_CN/docs/Overview.md b/zh_CN/docs/Overview.md
index e3df97ab78..08792217e8 100644
--- a/zh_CN/docs/Overview.md
+++ b/zh_CN/docs/Overview.md
@@ -20,27 +20,27 @@ NNI (Neural Network Intelligence) 是自动机器学习(AutoML)实验的工
-User can use the nnictl and/or a visualized Web UI nniboard to monitor and debug a given experiment.
+用户可以用 nnictl 或可视化的 WEB 界面 NNIBoard 来查看并调试指定的实验。
-NNI provides a set of examples in the package to get you familiar with the above process. In the following example [/examples/trials/mnist], we had already set up the configuration and updated the training codes for you. You can directly run the following command to start an experiment.
+NNI 提供了一组样例来帮助熟悉以上过程。
-## Key Concepts
+## 主要概念
-**Experiment** in NNI is a method for testing different assumptions (hypotheses) by Trials under conditions constructed and controlled by NNI. During the experiment, one or more conditions are allowed to change in an organized manner and effects of these changes on associated conditions.
+**Experiment(实验)**,在 NNI 中是通过 Trial(尝试)在给定的条件来测试不同的假设情况。 在实验过程中,会有条理的修改一个或多个条件,以便测试它们对相关条件的影响。
-### **Trial**
+### **Trial(尝试)**
-**Trial** in NNI is an individual attempt at applying a set of parameters on a model.
+**Trial(尝试)**是将一组参数在模型上独立的一次尝试。
-### **Tuner**
+### **Tuner(调参器)**
-**Tuner** in NNI is an implementation of Tuner API for a special tuning algorithm. [Read more about the Tuners supported in the latest NNI release](HowToChooseTuner.md)
+**Tuner(调参器)**,在 NNI 中是实现了调参器 API 的某个超参调优算法。 [了解 NNI 中最新内置的调参器](HowToChooseTuner.md)
-### **Assessor**
+### **Assessor(评估器)**
-**Assessor** in NNI is an implementation of Assessor API for optimizing the execution of experiment.
+**Assessor(评估器)**,实现了评估器 API,用来加速实验执行过程。
-## Learn More
+## 了解更多信息
* [Get started](GetStarted.md)
* [Install NNI](Installation.md)
From 5f75f9df3df222f1e0b9dcbe6776133b3e330502 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Mon, 7 Jan 2019 14:03:19 +0800
Subject: [PATCH 0209/1573] New translations Overview.md (Chinese Simplified)
---
zh_CN/docs/Overview.md | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/zh_CN/docs/Overview.md b/zh_CN/docs/Overview.md
index 08792217e8..345a9cde6e 100644
--- a/zh_CN/docs/Overview.md
+++ b/zh_CN/docs/Overview.md
@@ -42,14 +42,14 @@ NNI 提供了一组样例来帮助熟悉以上过程。
## 了解更多信息
-* [Get started](GetStarted.md)
-* [Install NNI](Installation.md)
-* [Use command line tool nnictl](NNICTLDOC.md)
-* [Use NNIBoard](WebUI.md)
-* [Use annotation](howto_1_WriteTrial.md#nni-python-annotation)
+* [开始使用](GetStarted.md)
+* [安装 NNI](Installation.md)
+* [使用命令行工具 nnictl](NNICTLDOC.md)
+* [使用 NNIBoard](WebUI.md)
+* [使用标记](howto_1_WriteTrial.md#nni-python-annotation)
-### **Tutorials**
+### **教程**
-* [How to run an experiment on local (with multiple GPUs)?](tutorial_1_CR_exp_local_api.md)
-* [How to run an experiment on multiple machines?](tutorial_2_RemoteMachineMode.md)
-* [How to run an experiment on OpenPAI?](PAIMode.md)
\ No newline at end of file
+* [如何在本机运行实验 (支持多 GPU 卡)?](tutorial_1_CR_exp_local_api.md)
+* [如何在多机上运行实验?](tutorial_2_RemoteMachineMode.md)
+* [如何在 OpenPAI 上运行实验?](PAIMode.md)
\ No newline at end of file
From c9dd2e88e8b6b0e86df693a99dec96751f4b0499 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Mon, 7 Jan 2019 14:11:47 +0800
Subject: [PATCH 0210/1573] New translations PAIMode.md (Chinese Simplified)
---
zh_CN/docs/PAIMode.md | 42 +++++++++++++++++++++---------------------
1 file changed, 21 insertions(+), 21 deletions(-)
diff --git a/zh_CN/docs/PAIMode.md b/zh_CN/docs/PAIMode.md
index e350126d26..64e8a4e935 100644
--- a/zh_CN/docs/PAIMode.md
+++ b/zh_CN/docs/PAIMode.md
@@ -1,26 +1,26 @@
# **在 OpenPAI 上运行实验**
-NNI 支持在 [OpenPAI](https://github.com/Microsoft/pai) (简称 pai)上运行实验,即 pai 模式。 在使用 NNI 的 pai 模式前, 需要有 [OpenPAI](https://github.com/Microsoft/pai) 群集的账户。 See [here](https://github.com/Microsoft/pai#how-to-deploy) if you don't have any OpenPAI account and want to deploy an OpenPAI cluster. In pai mode, your trial program will run in pai's container created by Docker.
+NNI 支持在 [OpenPAI](https://github.com/Microsoft/pai) (简称 pai)上运行实验,即 pai 模式。 在使用 NNI 的 pai 模式前, 需要有 [OpenPAI](https://github.com/Microsoft/pai) 群集的账户。 如果没有 OpenPAI 账户,参考[这里](https://github.com/Microsoft/pai#how-to-deploy)来进行部署。 在 pai 模式中,会在 Docker 创建的容器中运行尝试程序。
-## Setup environment
+## 设置环境
-Install NNI, follow the install guide [here](GetStarted.md).
+参考[指南](GetStarted.md)安装 NNI。
-## Run an experiment
+## 运行实验
-Use `examples/trials/mnist-annotation` as an example. The nni config yaml file's content is like:
+以 `examples/trials/mnist-annotation` 为例。 NNI 的 yaml 配置文件如下:
authorName: your_name
experimentName: auto_mnist
- # how many trials could be concurrently running
+ # 并发运行的尝试数量
trialConcurrency: 2
- # maximum experiment running duration
+ # 实验的最长持续运行时间
maxExecDuration: 3h
- # empty means never stop
+ # 空表示一直运行
maxTrialNum: 100
- # choice: local, remote, pai
+ # 可选项: local, remote, pai
trainingServicePlatform: pai
- # choice: true, false
+ # 可选项: true, false
useAnnotation: true
tuner:
builtinTunerName: TPE
@@ -35,35 +35,35 @@ Use `examples/trials/mnist-annotation` as an example. The nni config yaml file's
image: openpai/pai.example.tensorflow
dataDir: hdfs://10.1.1.1:9000/nni
outputDir: hdfs://10.1.1.1:9000/nni
- # Configuration to access OpenPAI Cluster
+ # 配置访问的 OpenPAI 集群
paiConfig:
userName: your_pai_nni_user
passWord: your_pai_password
host: 10.1.1.1
-Note: You should set `trainingServicePlatform: pai` in nni config yaml file if you want to start experiment in pai mode.
+注意:如果用 pai 模式运行,需要在 yaml 文件中设置 `trainingServicePlatform: pai`。
-Compared with LocalMode and [RemoteMachineMode](RemoteMachineMode.md), trial configuration in pai mode have five additional keys:
+与本机模式,以及[远程计算机模式](RemoteMachineMode.md)相比,pai 模式的尝试有额外的配置:
* cpuNum
- * Required key. Should be positive number based on your trial program's CPU requirement
+ * 必填。 尝试程序的 CPU 需求,必须为正数。
* memoryMB
- * Required key. Should be positive number based on your trial program's memory requirement
+ * 必填。 尝试程序的内存需求,必须为正数。
* image
- * Required key. In pai mode, your trial program will be scheduled by OpenPAI to run in [Docker container](https://www.docker.com/). This key is used to specify the Docker image used to create the container in which your traill will run.
- * We already build a docker image [nnimsra/nni](https://hub.docker.com/r/msranni/nni/) on [Docker Hub](https://hub.docker.com/). It contains NNI python packages, Node modules and javascript artifact files required to start experiment, and all of NNI dependencies. The docker file used to build this image can be found at [here](../deployment/Dockerfile.build.base). You can either use this image directly in your config file, or build your own image based on it.
+ * 必填。 在 pai 模式中,尝试程序由 OpenPAI 在 [Docker 容器](https://www.docker.com/)中安排运行。 此键用来指定尝试程序的容器使用的 Docker 映像。
+ * [Docker Hub](https://hub.docker.com/) 上有预制的 NNI Docker 映像 [nnimsra/nni](https://hub.docker.com/r/msranni/nni/)。 它包含了用来启动 NNI 实验所依赖的所有 Python 包,Node 模块和 JavaScript。 用来生成此映像的文件在[这里](../deployment/Dockerfile.build.base)。 可以直接使用此映像,或参考它来生成自己的映像。
* dataDir
- * Optional key. It specifies the HDFS data direcotry for trial to download data. The format should be something like hdfs://{your HDFS host}:9000/{your data directory}
+ * 可选。 指定了尝试用于下载数据的 HDFS 数据目录。 格式应为 hdfs://{your HDFS host}:9000/{数据目录}
* outputDir
- * Optional key. It specifies the HDFS output direcotry for trial. Once the trial is completed (either succeed or fail), trial's stdout, stderr will be copied to this directory by NNI sdk automatically. The format should be something like hdfs://{your HDFS host}:9000/{your output directory}
+ * 可选。 指定了尝试的 HDFS 输出目录。 尝试在完成(成功或失败)后,尝试的 stdout, stderr 会被 NNI 自动复制到此目录中。 格式应为 hdfs://{your HDFS host}:9000/{输出目录}
-Once complete to fill nni experiment config file and save (for example, save as exp_pai.yaml), then run the following command
+完成并保存 NNI 实验配置文件后(例如可保存为:exp_pai.yaml),运行以下命令:
nnictl create --config exp_pai.yaml
-to start the experiment in pai mode. NNI will create OpanPAI job for each trial, and the job name format is something like `nni_exp_{experiment_id}_trial_{trial_id}`. You can see the pai jobs created by NNI in your OpenPAI cluster's web portal, like: ![](./img/nni_pai_joblist.jpg)
+来在 pai 模式下启动实验。 NNI will create OpanPAI job for each trial, and the job name format is something like `nni_exp_{experiment_id}_trial_{trial_id}`. You can see the pai jobs created by NNI in your OpenPAI cluster's web portal, like: ![](./img/nni_pai_joblist.jpg)
Notice: In pai mode, NNIManager will start a rest server and listen on a port which is your NNI WebUI's port plus 1. For example, if your WebUI port is `8080`, the rest server will listen on `8081`, to receive metrics from trial job running in Kubernetes. So you should `enable 8081` TCP port in your firewall rule to allow incoming traffic.
From 83867b90c9bb5b5b67602b0ce6122a476bf82f82 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Mon, 7 Jan 2019 14:15:09 +0800
Subject: [PATCH 0211/1573] New translations PAIMode.md (Chinese Simplified)
---
zh_CN/docs/PAIMode.md | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/zh_CN/docs/PAIMode.md b/zh_CN/docs/PAIMode.md
index 64e8a4e935..34def5b29c 100644
--- a/zh_CN/docs/PAIMode.md
+++ b/zh_CN/docs/PAIMode.md
@@ -63,15 +63,15 @@ NNI 支持在 [OpenPAI](https://github.com/Microsoft/pai) (简称 pai)上运
nnictl create --config exp_pai.yaml
-来在 pai 模式下启动实验。 NNI will create OpanPAI job for each trial, and the job name format is something like `nni_exp_{experiment_id}_trial_{trial_id}`. You can see the pai jobs created by NNI in your OpenPAI cluster's web portal, like: ![](./img/nni_pai_joblist.jpg)
+来在 pai 模式下启动实验。 NNI 会为每个尝试创建 OpenPAI 作业,作业名称的格式为 `nni_exp_{experiment_id}_trial_{trial_id}`。 可以在 OpenPAI 集群的网站中看到 NNI 创建的作业,例如: ![](../../docs/img/nni_pai_joblist.jpg)
Notice: In pai mode, NNIManager will start a rest server and listen on a port which is your NNI WebUI's port plus 1. For example, if your WebUI port is `8080`, the rest server will listen on `8081`, to receive metrics from trial job running in Kubernetes. So you should `enable 8081` TCP port in your firewall rule to allow incoming traffic.
Once a trial job is completed, you can goto NNI WebUI's overview page (like http://localhost:8080/oview) to check trial's information.
-Expand a trial information in trial list view, click the logPath link like: ![](./img/nni_webui_joblist.jpg)
+Expand a trial information in trial list view, click the logPath link like: ![](../../docs/img/nni_webui_joblist.jpg)
-And you will be redirected to HDFS web portal to browse the output files of that trial in HDFS: ![](./img/nni_trial_hdfs_output.jpg)
+And you will be redirected to HDFS web portal to browse the output files of that trial in HDFS: ![](../../docs/img/nni_trial_hdfs_output.jpg)
You can see there're three fils in output folder: stderr, stdout, and trial.log
From c0c7edf0fcf41a8a2741f065b1ff274a46c76056 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Mon, 7 Jan 2019 14:20:00 +0800
Subject: [PATCH 0212/1573] New translations PAIMode.md (Chinese Simplified)
---
zh_CN/docs/PAIMode.md | 77 ++++++++++++++++++++++---------------------
1 file changed, 39 insertions(+), 38 deletions(-)
diff --git a/zh_CN/docs/PAIMode.md b/zh_CN/docs/PAIMode.md
index 34def5b29c..f58835f751 100644
--- a/zh_CN/docs/PAIMode.md
+++ b/zh_CN/docs/PAIMode.md
@@ -10,37 +10,38 @@ NNI 支持在 [OpenPAI](https://github.com/Microsoft/pai) (简称 pai)上运
以 `examples/trials/mnist-annotation` 为例。 NNI 的 yaml 配置文件如下:
- authorName: your_name
- experimentName: auto_mnist
- # 并发运行的尝试数量
- trialConcurrency: 2
- # 实验的最长持续运行时间
- maxExecDuration: 3h
- # 空表示一直运行
- maxTrialNum: 100
- # 可选项: local, remote, pai
- trainingServicePlatform: pai
- # 可选项: true, false
- useAnnotation: true
- tuner:
- builtinTunerName: TPE
- classArgs:
- optimize_mode: maximize
- trial:
- command: python3 mnist.py
- codeDir: ~/nni/examples/trials/mnist-annotation
- gpuNum: 0
- cpuNum: 1
- memoryMB: 8196
- image: openpai/pai.example.tensorflow
- dataDir: hdfs://10.1.1.1:9000/nni
- outputDir: hdfs://10.1.1.1:9000/nni
- # 配置访问的 OpenPAI 集群
- paiConfig:
- userName: your_pai_nni_user
- passWord: your_pai_password
- host: 10.1.1.1
-
+```yaml
+authorName: your_name
+experimentName: auto_mnist
+# 并发运行的尝试数量
+trialConcurrency: 2
+# 实验的最长持续运行时间
+maxExecDuration: 3h
+# 空表示一直运行
+maxTrialNum: 100
+# 可选项: local, remote, pai
+trainingServicePlatform: pai
+# 可选项: true, false
+useAnnotation: true
+tuner:
+ builtinTunerName: TPE
+ classArgs:
+ optimize_mode: maximize
+trial:
+ command: python3 mnist.py
+ codeDir: ~/nni/examples/trials/mnist-annotation
+ gpuNum: 0
+ cpuNum: 1
+ memoryMB: 8196
+ image: openpai/pai.example.tensorflow
+ dataDir: hdfs://10.1.1.1:9000/nni
+ outputDir: hdfs://10.1.1.1:9000/nni
+# 配置访问的 OpenPAI 集群
+paiConfig:
+ userName: your_pai_nni_user
+ passWord: your_pai_password
+ host: 10.1.1.1
+```
注意:如果用 pai 模式运行,需要在 yaml 文件中设置 `trainingServicePlatform: pai`。
@@ -65,16 +66,16 @@ NNI 支持在 [OpenPAI](https://github.com/Microsoft/pai) (简称 pai)上运
来在 pai 模式下启动实验。 NNI 会为每个尝试创建 OpenPAI 作业,作业名称的格式为 `nni_exp_{experiment_id}_trial_{trial_id}`。 可以在 OpenPAI 集群的网站中看到 NNI 创建的作业,例如: ![](../../docs/img/nni_pai_joblist.jpg)
-Notice: In pai mode, NNIManager will start a rest server and listen on a port which is your NNI WebUI's port plus 1. For example, if your WebUI port is `8080`, the rest server will listen on `8081`, to receive metrics from trial job running in Kubernetes. So you should `enable 8081` TCP port in your firewall rule to allow incoming traffic.
+注意:pai 模式下,NNIManager 会启动 RESTful 服务,监听端口为 NNI 网页服务器的端口加1。 例如,如果网页端口为`8080`,那么 RESTful 服务器会监听在 `8081`端口,来接收运行在 Kubernetes 中的尝试作业的指标。 因此,需要在防火墙中启用端口 `8081` 的 TCP 协议,以允许传入流量。
-Once a trial job is completed, you can goto NNI WebUI's overview page (like http://localhost:8080/oview) to check trial's information.
+当一个尝试作业完成后,可以在 NNI 网页的概述页面(如:http://localhost:8080/oview)中查看尝试的信息。
-Expand a trial information in trial list view, click the logPath link like: ![](../../docs/img/nni_webui_joblist.jpg)
+在尝试列表页面中展开尝试信息,点击如下的 logPath: ![](../../docs/img/nni_webui_joblist.jpg)
-And you will be redirected to HDFS web portal to browse the output files of that trial in HDFS: ![](../../docs/img/nni_trial_hdfs_output.jpg)
+接着将会打开 HDFS 的 WEB 界面,并浏览到尝试的输出文件: ![](../../docs/img/nni_trial_hdfs_output.jpg)
-You can see there're three fils in output folder: stderr, stdout, and trial.log
+在输出目录中可以看到三个文件:stderr, stdout, 以及 trial.log
-If you also want to save trial's other output into HDFS, like model files, you can use environment variable `NNI_OUTPUT_DIR` in your trial code to save your own output files, and NNI SDK will copy all the files in `NNI_OUTPUT_DIR` from trial's container to HDFS.
+如果希望将尝试的模型数据等其它输出保存到HDFS中,可在尝试代码中使用 `NNI_OUTPUT_DIR` 来自己保存输出文件,NNI SDK会从尝试的容器中将 `NNI_OUTPUT_DIR` 中的文件复制到 HDFS 中。
-Any problems when using NNI in pai mode, plesae create issues on [NNI github repo](https://github.com/Microsoft/nni), or send mail to nni@microsoft.com
\ No newline at end of file
+如果在使用 pai 模式时遇到任何问题,请到 [NNI github](https://github.com/Microsoft/nni)中创建问题,或发信给 nni@microsoft.com。
\ No newline at end of file
From 65a60fa53e9193ed56786509cdae44da21198216 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Mon, 7 Jan 2019 14:21:43 +0800
Subject: [PATCH 0213/1573] New translations RELEASE.md (Chinese Simplified)
---
zh_CN/docs/RELEASE.md | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/zh_CN/docs/RELEASE.md b/zh_CN/docs/RELEASE.md
index b19a9b9800..58118b190e 100644
--- a/zh_CN/docs/RELEASE.md
+++ b/zh_CN/docs/RELEASE.md
@@ -1,9 +1,9 @@
-# Release 0.4 - 12/6/2018
+# 发布 0.4 - 12/6/2018
-## Major Features
+## 主要功能
-* [Kubeflow Training service](./KubeflowMode.md)
- * Support tf-operator
+* [Kubeflow 训练服务](./KubeflowMode.md)
+ * 支持 tf-operator
* [Distributed trial example](../examples/trials/mnist-distributed/dist_mnist.py) on Kubeflow
* [Grid search tuner](../src/sdk/pynni/nni/README.md#Grid)
* [Hyperband tuner](../src/sdk/pynni/nni/README.md#Hyperband)
From e47bebdc06628cb87460187894866e396abd372f Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Mon, 7 Jan 2019 14:31:44 +0800
Subject: [PATCH 0214/1573] New translations RELEASE.md (Chinese Simplified)
---
zh_CN/docs/RELEASE.md | 58 +++++++++++++++++++++----------------------
1 file changed, 29 insertions(+), 29 deletions(-)
diff --git a/zh_CN/docs/RELEASE.md b/zh_CN/docs/RELEASE.md
index 58118b190e..bfc270a1b8 100644
--- a/zh_CN/docs/RELEASE.md
+++ b/zh_CN/docs/RELEASE.md
@@ -4,37 +4,37 @@
* [Kubeflow 训练服务](./KubeflowMode.md)
* 支持 tf-operator
- * [Distributed trial example](../examples/trials/mnist-distributed/dist_mnist.py) on Kubeflow
-* [Grid search tuner](../src/sdk/pynni/nni/README.md#Grid)
-* [Hyperband tuner](../src/sdk/pynni/nni/README.md#Hyperband)
-* Support launch NNI experiment on MAC
+ * Kubeflow 上的[分布式尝试样例](../examples/trials/mnist-distributed/dist_mnist.py)
+* [网格搜索调参器](../src/sdk/pynni/nni/README.md#Grid)
+* [Hyperband 调参器](../src/sdk/pynni/nni/README.md#Hyperband)
+* 支持在 MAC 上运行 NNI 实验
* WebUI
- * UI support for hyperband tuner
- * Remove tensorboard button
- * Show experiment error message
- * Show line numbers in search space and trial profile
- * Support search a specific trial by trial number
- * Show trial's hdfsLogPath
- * Download experiment parameters
-
-## Others
-
-* Asynchronous dispatcher
-* Docker file update, add pytorch library
-* Refactor 'nnictl stop' process, send SIGTERM to nni manager process, rather than calling stop Rest API.
-* OpenPAI training service bug fix
- * Support NNI Manager IP configuration(nniManagerIp) in PAI cluster config file, to fix the issue that user’s machine has no eth0 device
- * File number in codeDir is capped to 1000 now, to avoid user mistakenly fill root dir for codeDir
- * Don’t print useless ‘metrics is empty’ log int PAI job’s stdout. Only print useful message once new metrics are recorded, to reduce confusion when user checks PAI trial’s output for debugging purpose
- * Add timestamp at the beginning of each log entry in trial keeper.
-
-# Release 0.3.0 - 11/2/2018
-
-## NNICTL new features and updates
-
-* Support running multiple experiments simultaneously.
+ * 支持 hyperband 调参器
+ * 移除 tensorboard 按钮
+ * 显示实验的错误消息
+ * 显示搜索空间和尝试配置的行号
+ * 支持通过指定的尝试 id 来搜索
+ * 显示尝试的 hdfsLogPath
+ * 下载实验参数
+
+## 其它
+
+* 异步调度
+* 更新 Docker 文件,增加 pytorch 库
+* 重构 'nnictl stop' 过程,发送 SIGTERM 给 NNI 管理器进程,而不是调用停止 Restful API.
+* OpenPAI 训练服务修复缺陷
+ * 在 NNI 管理器中为 PAI 集群配置文件支持 IP 配置(nniManagerIp),来修复用户计算机没有 eth0 设备的问题。
+ * codeDir 中的文件数量上限改为1000,避免用户无意中填写了 root 目录。
+ * 移除 PAI 作业的 stdout 日志中无用的 ‘metrics is empty’。 在新指标被记录时,仅输出有用的消息,来减少用户检查 PAI 尝试输出时的困惑。
+ * 在尝试 keeper 的开始增加时间戳。
+
+# 发布 0.3.0 - 11/2/2018
+
+## NNICTL 的新功能和更新
+
+* 支持同时运行多个实验。
- Before v0.3, NNI only supports running single experiment once a time. After this realse, users are able to run multiple experiments simultaneously. Each experiment will require a unique port, the 1st experiment will be set to the default port as previous versions. You can specify a unique port for the rest experiments as below:
+ 在 v0.3 以前,NNI 仅支持一次运行一个实验。 此版本开始,用户可以同时运行多个实验。 Each experiment will require a unique port, the 1st experiment will be set to the default port as previous versions. You can specify a unique port for the rest experiments as below:
nnictl create --port 8081 --config
From 569e602b29e88cbea247e017163458e3479d1ba3 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Mon, 7 Jan 2019 14:41:31 +0800
Subject: [PATCH 0215/1573] New translations RELEASE.md (Chinese Simplified)
---
zh_CN/docs/RELEASE.md | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/zh_CN/docs/RELEASE.md b/zh_CN/docs/RELEASE.md
index bfc270a1b8..9a837626a8 100644
--- a/zh_CN/docs/RELEASE.md
+++ b/zh_CN/docs/RELEASE.md
@@ -34,17 +34,17 @@
* 支持同时运行多个实验。
- 在 v0.3 以前,NNI 仅支持一次运行一个实验。 此版本开始,用户可以同时运行多个实验。 Each experiment will require a unique port, the 1st experiment will be set to the default port as previous versions. You can specify a unique port for the rest experiments as below:
+ 在 v0.3 以前,NNI 仅支持一次运行一个实验。 此版本开始,用户可以同时运行多个实验。 每个实验都需要一个唯一的端口,第一个实验会像以前版本一样使用默认端口。 需要为其它实验指定唯一端口:
nnictl create --port 8081 --config
-* Support updating max trial number. use ```nnictl update --help``` to learn more. Or refer to [NNICTL Spec](https://github.com/Microsoft/nni/blob/master/docs/NNICTLDOC.md) for the fully usage of NNICTL.
+* 支持更新最大尝试的数量。 使用 ```nnictl update --help``` 了解更多信息。 或参考 [NNICTL 说明](https://github.com/Microsoft/nni/blob/master/docs/NNICTLDOC.md)来查看完整帮助。
-## API new features and updates
+## API 的新功能和更新
-* breaking change: nn.get_parameters() is refactored to nni.get_next_parameter. All examples of prior releases can not run on v0.3, please clone nni repo to get new examples. If you had applied NNI to your own codes, please update the API accordingly.
+* 不兼容的改动:nn.get_parameters() 改为 nni.get_next_parameter。 所有以前版本的样例将无法在 v0.3 上运行,需要重新克隆 NNI 代码库获取新样例。 如果在自己的代码中使用了 NNI,也需要相应的更新。
-* New API **nni.get_sequence_id()**. Each trial job is allocated a unique sequence number, which can be retrieved by nni.get_sequence_id() API.
+* 新 API **nni.get_sequence_id()**。 每个尝试任务都会被分配一个唯一的序列数字,可通过 nni.get_sequence_id() API 来获取。
git clone -b v0.3 https://github.com/Microsoft/nni.git
From e86d80821b2c57e975ef45a40aeaffcd2daa13d0 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Mon, 7 Jan 2019 14:51:33 +0800
Subject: [PATCH 0216/1573] New translations RELEASE.md (Chinese Simplified)
---
zh_CN/docs/RELEASE.md | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/zh_CN/docs/RELEASE.md b/zh_CN/docs/RELEASE.md
index 9a837626a8..8ea50dc4cb 100644
--- a/zh_CN/docs/RELEASE.md
+++ b/zh_CN/docs/RELEASE.md
@@ -48,14 +48,14 @@
git clone -b v0.3 https://github.com/Microsoft/nni.git
-* **nni.report_final_result(result)** API supports more data types for result parameter. It can be of following types:
+* **nni.report_final_result(result)** API 支持了更多结果参数的类型。 可用类型:
* int
* float
- * A python dict containing 'default' key, the value of 'default' key should be of type int or float. The dict can contain any other key value pairs.
+ * 包含有 'default' 键值的 dict,'default' 的值必须为 int 或 float。 dict 可以包含任何其它键值对。
-## New tuner support
+## 新的内置调参器
-* **Batch Tuner** which iterates all parameter combination, can be used to submit batch trial jobs.
+* **Batch Tuner(批处理调参器)** 会执行所有曹参组合,可被用来批量提交尝试任务。
## New examples
From 30fb9e48da3faf6ef1a07e58b34a5acf078e666b Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Mon, 7 Jan 2019 15:11:39 +0800
Subject: [PATCH 0217/1573] New translations RELEASE.md (Chinese Simplified)
---
zh_CN/docs/RELEASE.md | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/zh_CN/docs/RELEASE.md b/zh_CN/docs/RELEASE.md
index 8ea50dc4cb..ab4371d2a3 100644
--- a/zh_CN/docs/RELEASE.md
+++ b/zh_CN/docs/RELEASE.md
@@ -57,21 +57,21 @@
* **Batch Tuner(批处理调参器)** 会执行所有曹参组合,可被用来批量提交尝试任务。
-## New examples
+## 新样例
-* A NNI Docker image for public usage: ```docker pull msranni/nni:latest```
-* New trial example: [NNI Sklearn Example](https://github.com/Microsoft/nni/tree/master/examples/trials/sklearn)
-* New competition example: [Kaggle Competition TGS Salt Example](https://github.com/Microsoft/nni/tree/master/examples/trials/kaggle-tgs-salt)
+* 公共的 NNI Docker 映像: ```docker pull msranni/nni:latest```
+* 新的尝试样例: [NNI Sklearn 样例](https://github.com/Microsoft/nni/tree/master/examples/trials/sklearn)
+* 新的竞赛样例:[Kaggle Competition TGS Salt](https://github.com/Microsoft/nni/tree/master/examples/trials/kaggle-tgs-salt)
-## Others
+## 其它
-* UI refactoring, refer to [WebUI doc](WebUI.md) for how to work with the new UI.
-* Continuous Integration: NNI had switched to Azure pipelines
-* [Known Issues in release 0.3.0](https://github.com/Microsoft/nni/labels/nni030knownissues).
+* 界面重构,参考[网页文档](WebUI.md),了解如何使用新界面。
+* 持续集成:NNI 已切换到 Azure pipelines。
+* [0.3.0 的已知问题](https://github.com/Microsoft/nni/labels/nni030knownissues)。
-# Release 0.2.0 - 9/29/2018
+# 发布 0.2.0 - 9/29/2018
-## Major Features
+## 主要功能
* Support [OpenPAI](https://github.com/Microsoft/pai) (aka pai) Training Service (See [here](./PAIMode.md) for instructions about how to submit NNI job in pai mode)
* Support training services on pai mode. NNI trials will be scheduled to run on OpenPAI cluster
From 105883e91b55d0c2a88b8b9a657e462fba627000 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Mon, 7 Jan 2019 15:19:59 +0800
Subject: [PATCH 0218/1573] New translations RELEASE.md (Chinese Simplified)
---
zh_CN/docs/RELEASE.md | 82 +++++++++++++++++++++----------------------
1 file changed, 41 insertions(+), 41 deletions(-)
diff --git a/zh_CN/docs/RELEASE.md b/zh_CN/docs/RELEASE.md
index ab4371d2a3..ec8af9436b 100644
--- a/zh_CN/docs/RELEASE.md
+++ b/zh_CN/docs/RELEASE.md
@@ -5,8 +5,8 @@
* [Kubeflow 训练服务](./KubeflowMode.md)
* 支持 tf-operator
* Kubeflow 上的[分布式尝试样例](../examples/trials/mnist-distributed/dist_mnist.py)
-* [网格搜索调参器](../src/sdk/pynni/nni/README.md#Grid)
-* [Hyperband 调参器](../src/sdk/pynni/nni/README.md#Hyperband)
+* [网格搜索调参器](../../src/sdk/pynni/nni/README.md#Grid)
+* [Hyperband 调参器](../../src/sdk/pynni/nni/README.md#Hyperband)
* 支持在 MAC 上运行 NNI 实验
* WebUI
* 支持 hyperband 调参器
@@ -73,42 +73,42 @@
## 主要功能
-* Support [OpenPAI](https://github.com/Microsoft/pai) (aka pai) Training Service (See [here](./PAIMode.md) for instructions about how to submit NNI job in pai mode)
- * Support training services on pai mode. NNI trials will be scheduled to run on OpenPAI cluster
- * NNI trial's output (including logs and model file) will be copied to OpenPAI HDFS for further debugging and checking
-* Support [SMAC](https://www.cs.ubc.ca/~hutter/papers/10-TR-SMAC.pdf) tuner (See [here](HowToChooseTuner.md) for instructions about how to use SMAC tuner)
- * [SMAC](https://www.cs.ubc.ca/~hutter/papers/10-TR-SMAC.pdf) is based on Sequential Model-Based Optimization (SMBO). It adapts the most prominent previously used model class (Gaussian stochastic process models) and introduces the model class of random forests to SMBO to handle categorical parameters. The SMAC supported by NNI is a wrapper on [SMAC3](https://github.com/automl/SMAC3)
-* Support NNI installation on [conda](https://conda.io/docs/index.html) and python virtual environment
-* Others
- * Update ga squad example and related documentation
- * WebUI UX small enhancement and bug fix
-
-## Known Issues
-
-[Known Issues in release 0.2.0](https://github.com/Microsoft/nni/labels/nni020knownissues).
-
-# Release 0.1.0 - 9/10/2018 (initial release)
-
-Initial release of Neural Network Intelligence (NNI).
-
-## Major Features
-
-* Installation and Deployment
- * Support pip install and source codes install
- * Support training services on local mode(including Multi-GPU mode) as well as multi-machines mode
-* Tuners, Assessors and Trial
- * Support AutoML algorithms including: hyperopt_tpe, hyperopt_annealing, hyperopt_random, and evolution_tuner
- * Support assessor(early stop) algorithms including: medianstop algorithm
- * Provide Python API for user defined tuners and assessors
- * Provide Python API for user to wrap trial code as NNI deployable codes
-* Experiments
- * Provide a command line toolkit 'nnictl' for experiments management
- * Provide a WebUI for viewing experiments details and managing experiments
-* Continuous Integration
- * Support CI by providing out-of-box integration with [travis-ci](https://github.com/travis-ci) on ubuntu
-* Others
- * Support simple GPU job scheduling
-
-## Known Issues
-
-[Known Issues in release 0.1.0](https://github.com/Microsoft/nni/labels/nni010knownissues).
\ No newline at end of file
+* 支持 [OpenPAI](https://github.com/Microsoft/pai) (又称 pai) 训练服务 (参考[这里](./PAIMode.md)来了解如何在 pai 模式下提交 NNI 任务)
+ * 支持 pai 模式的训练服务。 NNI 尝试可发送至 OpenPAI 集群上运行
+ * NNI 尝试输出 (包括日志和模型文件) 会被复制到 OpenPAI 的 HDFS 中。
+* 支持 [SMAC](https://www.cs.ubc.ca/~hutter/papers/10-TR-SMAC.pdf) 调参器 (参考[这里](HowToChooseTuner.md),了解如何使用 SMAC 调参器)
+ * [SMAC](https://www.cs.ubc.ca/~hutter/papers/10-TR-SMAC.pdf) 基于 Sequential Model-Based Optimization (SMBO). 它会利用使用过的突出的模型(高斯随机过程模型),并将随机森林引入到SMBO中,来处理分类参数。 NNI 的 SMAC 通过包装 [SMAC3](https://github.com/automl/SMAC3) 来支持。
+* 支持将 NNI 安装在 [conda](https://conda.io/docs/index.html) 和 Python 虚拟环境中。
+* 其它
+ * 更新 ga squad 样例与相关文档
+ * 用户体验改善及缺陷修复
+
+## 已知问题
+
+[0.2.0 的已知问题](https://github.com/Microsoft/nni/labels/nni020knownissues)。
+
+# 发布 0.1.0 - 9/10/2018 (首个版本)
+
+首次发布 Neural Network Intelligence (NNI)。
+
+## 主要功能
+
+* 安装和部署
+ * 支持 pip 和源代码安装
+ * 支持本机(包括多 GPU 卡)训练和远程多机训练模式
+* 调参器,评估器和尝试
+ * 支持的自动机器学习算法包括: hyperopt_tpe, hyperopt_annealing, hyperopt_random, 和 evolution_tuner。
+ * 支持评估器(提前终止)算法包括:medianstop。
+ * 提供 Python API 来自定义调参器和评估器
+ * 提供 Python API 来包装尝试代码,以便能在 NNI 中运行
+* 实验
+ * 提供命令行工具 'nnictl' 来管理实验
+ * 提供网页界面来查看并管理实验
+* 持续集成
+ * 使用 Ubuntu 的 [travis-ci](https://github.com/travis-ci) 来支持持续集成
+* 其它
+ * 支持简单的 GPU 任务调度
+
+## 已知问题
+
+[0.1.0 的已知问题](https://github.com/Microsoft/nni/labels/nni010knownissues)。
\ No newline at end of file
From c1dc6a7aa83a22349cb8eaf96119feb8805e8414 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Mon, 7 Jan 2019 15:20:35 +0800
Subject: [PATCH 0219/1573] New translations RELEASE.md (Chinese Simplified)
---
zh_CN/docs/RELEASE.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/zh_CN/docs/RELEASE.md b/zh_CN/docs/RELEASE.md
index ec8af9436b..653c8546ac 100644
--- a/zh_CN/docs/RELEASE.md
+++ b/zh_CN/docs/RELEASE.md
@@ -5,8 +5,8 @@
* [Kubeflow 训练服务](./KubeflowMode.md)
* 支持 tf-operator
* Kubeflow 上的[分布式尝试样例](../examples/trials/mnist-distributed/dist_mnist.py)
-* [网格搜索调参器](../../src/sdk/pynni/nni/README.md#Grid)
-* [Hyperband 调参器](../../src/sdk/pynni/nni/README.md#Hyperband)
+* [网格搜索调参器](../src/sdk/pynni/nni/README.md#Grid)
+* [Hyperband 调参器](../src/sdk/pynni/nni/README.md#Hyperband)
* 支持在 MAC 上运行 NNI 实验
* WebUI
* 支持 hyperband 调参器
From fba0f0ec9e7cf3b0d243c82b4ec9278c03f0a4f8 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Mon, 7 Jan 2019 15:23:32 +0800
Subject: [PATCH 0220/1573] New translations RemoteMachineMode.md (Chinese
Simplified)
---
zh_CN/docs/RemoteMachineMode.md | 81 +++++++++++++++++----------------
1 file changed, 42 insertions(+), 39 deletions(-)
diff --git a/zh_CN/docs/RemoteMachineMode.md b/zh_CN/docs/RemoteMachineMode.md
index 657b15f48a..689b3f3ebd 100644
--- a/zh_CN/docs/RemoteMachineMode.md
+++ b/zh_CN/docs/RemoteMachineMode.md
@@ -1,6 +1,6 @@
-# **Run an Experiment on Multiple Machines**
+**Run an Experiment on Multiple Machines**
-NNI supports running an experiment on multiple machines through SSH channel, called `remote` mode. NNI assumes that you have access to those machines, and already setup the environment for running deep learning training code.
+=== NNI supports running an experiment on multiple machines through SSH channel, called `remote` mode. NNI assumes that you have access to those machines, and already setup the environment for running deep learning training code.
e.g. Three machines and you login in with account `bob` (Note: the account is not necessarily the same on different machine):
@@ -18,7 +18,9 @@ For remote machines that are used only to run trials but not the nnictl, you can
* **Install python SDK through pip**
+ ```bash
python3 -m pip install --user --upgrade nni-sdk
+ ```
## Run an experiment
@@ -26,45 +28,46 @@ Install NNI on another machine which has network accessibility to those three ma
We use `examples/trials/mnist-annotation` as an example here. `cat ~/nni/examples/trials/mnist-annotation/config_remote.yml` to see the detailed configuration file:
- authorName: default
- experimentName: example_mnist
- trialConcurrency: 1
- maxExecDuration: 1h
- maxTrialNum: 10
- #choice: local, remote, pai
- trainingServicePlatform: remote
- #choice: true, false
- useAnnotation: true
- tuner:
- #choice: TPE, Random, Anneal, Evolution, BatchTuner
- #SMAC (SMAC should be installed through nnictl)
- builtinTunerName: TPE
- classArgs:
- #choice: maximize, minimize
- optimize_mode: maximize
- trial:
- command: python3 mnist.py
- codeDir: .
- gpuNum: 0
- #machineList can be empty if the platform is local
- machineList:
-
- - ip: 10.1.1.1
- username: bob
- passwd: bob123
- #port can be skip if using default ssh port 22
- #port: 22
- - ip: 10.1.1.2
- username: bob
- passwd: bob123
- - ip: 10.1.1.3
- username: bob
- passwd: bob123
-
+```yaml
+authorName: default
+experimentName: example_mnist
+trialConcurrency: 1
+maxExecDuration: 1h
+maxTrialNum: 10
+#choice: local, remote, pai
+trainingServicePlatform: remote
+#choice: true, false
+useAnnotation: true
+tuner:
+ #choice: TPE, Random, Anneal, Evolution, BatchTuner
+ #SMAC (SMAC should be installed through nnictl)
+ builtinTunerName: TPE
+ classArgs:
+ #choice: maximize, minimize
+ optimize_mode: maximize
+trial:
+ command: python3 mnist.py
+ codeDir: .
+ gpuNum: 0
+#machineList can be empty if the platform is local
+machineList:
+ - ip: 10.1.1.1
+ username: bob
+ passwd: bob123
+ #port can be skip if using default ssh port 22
+ #port: 22
+ - ip: 10.1.1.2
+ username: bob
+ passwd: bob123
+ - ip: 10.1.1.3
+ username: bob
+ passwd: bob123
+```
Simply filling the `machineList` section and then run:
- nnictl create --config ~/nni/examples/trials/mnist-annotation/config_remote.yml
-
+```bash
+nnictl create --config ~/nni/examples/trials/mnist-annotation/config_remote.yml
+```
to start the experiment.
\ No newline at end of file
From 0aba172afa960ede0a5084458b4ccdca94bf8835 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Mon, 7 Jan 2019 15:31:51 +0800
Subject: [PATCH 0221/1573] New translations RemoteMachineMode.md (Chinese
Simplified)
---
zh_CN/docs/RemoteMachineMode.md | 50 +++++++++++++++++----------------
1 file changed, 26 insertions(+), 24 deletions(-)
diff --git a/zh_CN/docs/RemoteMachineMode.md b/zh_CN/docs/RemoteMachineMode.md
index 689b3f3ebd..b2fa4508bc 100644
--- a/zh_CN/docs/RemoteMachineMode.md
+++ b/zh_CN/docs/RemoteMachineMode.md
@@ -1,32 +1,34 @@
-**Run an Experiment on Multiple Machines**
+**在多机上运行实验**
-=== NNI supports running an experiment on multiple machines through SSH channel, called `remote` mode. NNI assumes that you have access to those machines, and already setup the environment for running deep learning training code.
+===
-e.g. Three machines and you login in with account `bob` (Note: the account is not necessarily the same on different machine):
+NNI 支持通过 SSH 通道在多台计算机上运行实验,称为 `remote` 模式。 NNI 需要这些计算机的访问权限,并提前配置好深度学习训练环境。
-| IP | Username | Password |
-| -------- | -------- | -------- |
-| 10.1.1.1 | bob | bob123 |
-| 10.1.1.2 | bob | bob123 |
-| 10.1.1.3 | bob | bob123 |
+例如:有三台服务器,登录账户为 `bob`(注意:账户不必在各台计算机上一致):
-## Setup NNI environment
+| IP | 用户名 | 密码 |
+| -------- | --- | ------ |
+| 10.1.1.1 | bob | bob123 |
+| 10.1.1.2 | bob | bob123 |
+| 10.1.1.3 | bob | bob123 |
-Install NNI on each of your machines following the install guide [here](GetStarted.md).
+## 设置 NNI 环境
-For remote machines that are used only to run trials but not the nnictl, you can just install python SDK:
+按照[指南](GetStarted.md)在每台计算机上安装 NNI。
-* **Install python SDK through pip**
+对于只需要运行尝试,不需要使用 nnictl 命令的计算机,可只安装 SDK:
+
+* **通过 pip 安装 SDK**
```bash
python3 -m pip install --user --upgrade nni-sdk
```
-## Run an experiment
+## 运行实验
-Install NNI on another machine which has network accessibility to those three machines above, or you can just use any machine above to run nnictl command line tool.
+在另一台计算机,或在其中任何一台上安装 NNI,并运行 nnictl 工具。
-We use `examples/trials/mnist-annotation` as an example here. `cat ~/nni/examples/trials/mnist-annotation/config_remote.yml` to see the detailed configuration file:
+以 `examples/trials/mnist-annotation` 为例。 `cat ~/nni/examples/trials/mnist-annotation/config_remote.yml` 来查看详细配置:
```yaml
authorName: default
@@ -34,27 +36,27 @@ experimentName: example_mnist
trialConcurrency: 1
maxExecDuration: 1h
maxTrialNum: 10
-#choice: local, remote, pai
+#可选项: local, remote, pai
trainingServicePlatform: remote
-#choice: true, false
+#可选项: true, false
useAnnotation: true
tuner:
- #choice: TPE, Random, Anneal, Evolution, BatchTuner
- #SMAC (SMAC should be installed through nnictl)
+ #可选项: TPE, Random, Anneal, Evolution, BatchTuner
+ #SMAC (SMAC 需要通过 nnictl 安装)
builtinTunerName: TPE
classArgs:
- #choice: maximize, minimize
+ #可选项: maximize, minimize
optimize_mode: maximize
trial:
command: python3 mnist.py
codeDir: .
gpuNum: 0
-#machineList can be empty if the platform is local
+#local 模式下 machineList 可为空
machineList:
- ip: 10.1.1.1
username: bob
passwd: bob123
- #port can be skip if using default ssh port 22
+ #使用默认端口 22 时,该配置可跳过
#port: 22
- ip: 10.1.1.2
username: bob
@@ -64,10 +66,10 @@ machineList:
passwd: bob123
```
-Simply filling the `machineList` section and then run:
+简单填写 `machineList` 部分,然后运行:
```bash
nnictl create --config ~/nni/examples/trials/mnist-annotation/config_remote.yml
```
-to start the experiment.
\ No newline at end of file
+来启动实验。
\ No newline at end of file
From e11769ad81a953d235abf4a463d36858584f21ee Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Mon, 7 Jan 2019 15:41:54 +0800
Subject: [PATCH 0222/1573] New translations SearchSpaceSpec.md (Chinese
Simplified)
---
zh_CN/docs/SearchSpaceSpec.md | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/zh_CN/docs/SearchSpaceSpec.md b/zh_CN/docs/SearchSpaceSpec.md
index 0a153145a3..ede1d5e09b 100644
--- a/zh_CN/docs/SearchSpaceSpec.md
+++ b/zh_CN/docs/SearchSpaceSpec.md
@@ -1,8 +1,8 @@
-## How to define search space?
+## 如何定义搜索空间?
-### Hyper-parameter Search Space
+### 超参搜索空间
-* A search space configure example as follow:
+* 超参搜索空间配置样例:
```python
{
@@ -15,18 +15,18 @@
```
-The example define ```dropout_rate``` as variable which priori distribution is uniform distribution, and its value from ```0.1``` and ```0.5```. The tuner will sample parameters/architecture by understanding the search space first.
+此样例定义了 `dropout_rate` 变量,它的先验分布为均匀分布,值在 `0.1` 与 `0.5` 之间。 调参器会首先了解搜索空间,然后从中采样。
-User should define the name of variable, type and candidate value of variable. The candidate type and value for variable is here:
+用户需要定义变量名、类型和取值范围。 变量类型和取值范围包括:
* {"_type":"choice","_value":options}
- * Which means the variable value is one of the options, which should be a list The elements of options can themselves be [nested] stochastic expressions. In this case, the stochastic choices that only appear in some of the options become conditional parameters.
+ * 变量值会是列表中的 options 之一。options 的元素可以是 [nested] 嵌套的随机表达式。 在这种情况下,随机选项仅会出现在某些选项满足条件时。
* {"_type":"randint","_value":[upper]}
- * Which means the variable value is a random integer in the range [0, upper). The semantics of this distribution is that there is no more correlation in the loss function between nearby integer values, as compared with more distant integer values. This is an appropriate distribution for describing random seeds for example. If the loss function is probably more correlated for nearby integer values, then you should probably use one of the "quantized" continuous distributions, such as either quniform, qloguniform, qnormal or qlognormal. Note that if you want to change lower bound, you can use `quniform` for now.
+ * 此变量为范围 [0, upper) 之间的随机整数。 这种分布的语义,在较远整数与附近整数之间的损失函数无太大关系, 这是用来描述随机种子的较好分布。 如果损失函数与较近的整数更相关,则应该使用某个"quantized"的连续分布,如quniform, qloguniform, qnormal 或 qlognormal。 Note that if you want to change lower bound, you can use `quniform` for now.
* {"_type":"uniform","_value":[low, high]}
From 76176256b8011a044ee709fcef13a3d7ace1d50a Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Mon, 7 Jan 2019 15:52:03 +0800
Subject: [PATCH 0223/1573] New translations SearchSpaceSpec.md (Chinese
Simplified)
---
zh_CN/docs/SearchSpaceSpec.md | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/zh_CN/docs/SearchSpaceSpec.md b/zh_CN/docs/SearchSpaceSpec.md
index ede1d5e09b..9f1a07772d 100644
--- a/zh_CN/docs/SearchSpaceSpec.md
+++ b/zh_CN/docs/SearchSpaceSpec.md
@@ -26,18 +26,18 @@
* {"_type":"randint","_value":[upper]}
- * 此变量为范围 [0, upper) 之间的随机整数。 这种分布的语义,在较远整数与附近整数之间的损失函数无太大关系, 这是用来描述随机种子的较好分布。 如果损失函数与较近的整数更相关,则应该使用某个"quantized"的连续分布,如quniform, qloguniform, qnormal 或 qlognormal。 Note that if you want to change lower bound, you can use `quniform` for now.
+ * 此变量为范围 [0, upper) 之间的随机整数。 这种分布的语义,在较远整数与附近整数之间的损失函数无太大关系, 这是用来描述随机种子的较好分布。 如果损失函数与较近的整数更相关,则应该使用某个"quantized"的连续分布,如quniform, qloguniform, qnormal 或 qlognormal。 注意,如果需要改动数字下限,可以使用 `quniform`。
* {"_type":"uniform","_value":[low, high]}
- * Which means the variable value is a value uniformly between low and high.
+ * 变量是 low 和 high 之间均匀分布的值。
* When optimizing, this variable is constrained to a two-sided interval.
* {"_type":"quniform","_value":[low, high, q]}
- * Which means the variable value is a value like round(uniform(low, high) / q) * q
+ * 这表示变量值会类似于 round(uniform(low, high) / q) * q
* Suitable for a discrete value with respect to which the objective is still somewhat "smooth", but which should be bounded both above and below. If you want to uniformly choose integer from a range [low, high], you can write `_value` like this: `[low, high, 1]`.
From 83b67f37859b88ef690a15908740d3097779f765 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Mon, 7 Jan 2019 16:05:35 +0800
Subject: [PATCH 0224/1573] New translations SearchSpaceSpec.md (Chinese
Simplified)
---
zh_CN/docs/SearchSpaceSpec.md | 28 ++++++++++++++--------------
1 file changed, 14 insertions(+), 14 deletions(-)
diff --git a/zh_CN/docs/SearchSpaceSpec.md b/zh_CN/docs/SearchSpaceSpec.md
index 9f1a07772d..d484509dd1 100644
--- a/zh_CN/docs/SearchSpaceSpec.md
+++ b/zh_CN/docs/SearchSpaceSpec.md
@@ -38,46 +38,46 @@
* {"_type":"quniform","_value":[low, high, q]}
* 这表示变量值会类似于 round(uniform(low, high) / q) * q
- * Suitable for a discrete value with respect to which the objective is still somewhat "smooth", but which should be bounded both above and below. If you want to uniformly choose integer from a range [low, high], you can write `_value` like this: `[low, high, 1]`.
+ * 适用于离散,同时反映了某种"平滑"的数值,但上下限都有限制。 如果需要从范围 [low, high] 中均匀选择整数,可以如下定义 `_value`:`[low, high, 1]`。
* {"_type":"loguniform","_value":[low, high]}
- * Which means the variable value is a value drawn from a range [low, high] according to a loguniform distribution like exp(uniform(log(low), log(high))), so that the logarithm of the return value is uniformly distributed.
- * When optimizing, this variable is constrained to be positive.
+ * 变量值在范围 [low, high] 中是 loguniform 分布,如 exp(uniform(log(low), log(high))),因此返回值是对数均匀分布的。
+ * 当优化时,此变量必须是正数。
* {"_type":"qloguniform","_value":[low, high, q]}
- * Which means the variable value is a value like round(loguniform(low, high)) / q) * q
- * Suitable for a discrete variable with respect to which the objective is "smooth" and gets smoother with the size of the value, but which should be bounded both above and below.
+ * 这表示变量值会类似于 round(loguniform(low, high)) / q) * q
+ * 适用于值是“平滑”的离散变量,但上下限均有限制。
* {"_type":"normal","_value":[label, mu, sigma]}
- * Which means the variable value is a real value that's normally-distributed with mean mu and standard deviation sigma. When optimizing, this is an unconstrained variable.
+ * 变量值为实数,且为正态分布,均值为 mu,标准方差为 sigma。 优化时,此变量不受约束。
* {"_type":"qnormal","_value":[label, mu, sigma, q]}
- * Which means the variable value is a value like round(normal(mu, sigma) / q) * q
- * Suitable for a discrete variable that probably takes a value around mu, but is fundamentally unbounded.
+ * 这表示变量值会类似于 round(normal(mu, sigma) / q) * q
+ * 适用于在 mu 周围的离散变量,且没有上下限限制。
* {"_type":"lognormal","_value":[label, mu, sigma]}
- * Which means the variable value is a value drawn according to exp(normal(mu, sigma)) so that the logarithm of the return value is normally distributed. When optimizing, this variable is constrained to be positive.
+ * 变量值为 exp(normal(mu, sigma)) 分布,范围值是对数的正态分布。 当优化时,此变量必须是正数。
* {"_type":"qlognormal","_value":[label, mu, sigma, q]}
- * Which means the variable value is a value like round(exp(normal(mu, sigma)) / q) * q
- * Suitable for a discrete variable with respect to which the objective is smooth and gets smoother with the size of the variable, which is bounded from one side.
+ * 这表示变量值会类似于 round(exp(normal(mu, sigma)) / q) * q
+ * 适用于值是“平滑”的离散变量,但某一边有界。
-Note that SMAC only supports a subset of the types above, including `choice`, `randint`, `uniform`, `loguniform`, `quniform(q=1)`. In the current version, SMAC does not support cascaded search space (i.e., conditional variable in SMAC).
+注意:SMAC 仅支持部分类型,包括 `choice`, `randint`, `uniform`, `loguniform`, `quniform(q=1)`。 当前版本中,SMAC 不支持级联搜索空间(即,SMAC中的条件变量)。
-Note that GridSearch Tuner only supports a subset of the types above, including `choic`, `quniform` and `qloguniform`, where q here specifies the number of values that will be sampled. Details about the last two type as follows
+注意,网格搜索调参器仅支持部分类型,包括 `choice`, `quniform` and `qloguniform`, 这里的 q 指定了采样的数量。 最后两种类型的细节如下:
-* Type 'quniform' will receive three values [low, high, q], where [low, high] specifies a range and 'q' specifies the number of values that will be sampled evenly. Note that q should be at least 2. It will be sampled in a way that the first sampled value is 'low', and each of the following values is (high-low)/q larger that the value in front of it.
+* 类型 'quniform' 接收三个值 [low, high, q], 其中 [low, high] 指定了范围,而 'q' 指定了会被均匀采样的值的数量。 注意 q 至少为 2。 它的第一个采样值为 'low',每个采样值都会比前一个大 (high-low)/q 。
* Type 'qloguniform' behaves like 'quniform' except that it will first change the range to [log(low), log(high)] and sample and then change the sampled value back.
\ No newline at end of file
From e334dcf2bcac66b6c9763cad6a93c80008dedfa9 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Mon, 7 Jan 2019 16:06:43 +0800
Subject: [PATCH 0225/1573] New translations SearchSpaceSpec.md (Chinese
Simplified)
---
zh_CN/docs/SearchSpaceSpec.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/zh_CN/docs/SearchSpaceSpec.md b/zh_CN/docs/SearchSpaceSpec.md
index d484509dd1..99ce44a9bd 100644
--- a/zh_CN/docs/SearchSpaceSpec.md
+++ b/zh_CN/docs/SearchSpaceSpec.md
@@ -80,4 +80,4 @@
注意,网格搜索调参器仅支持部分类型,包括 `choice`, `quniform` and `qloguniform`, 这里的 q 指定了采样的数量。 最后两种类型的细节如下:
* 类型 'quniform' 接收三个值 [low, high, q], 其中 [low, high] 指定了范围,而 'q' 指定了会被均匀采样的值的数量。 注意 q 至少为 2。 它的第一个采样值为 'low',每个采样值都会比前一个大 (high-low)/q 。
-* Type 'qloguniform' behaves like 'quniform' except that it will first change the range to [log(low), log(high)] and sample and then change the sampled value back.
\ No newline at end of file
+* 类型 'qloguniform' 的行为与 'quniform' 类似,不同处在于首先将范围改为 [log(low), log(high)] 采样后,再将数值还原。
\ No newline at end of file
From d66f96860e9f460c1f8dc5333b9a0e74b37d026d Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Mon, 7 Jan 2019 16:12:17 +0800
Subject: [PATCH 0226/1573] New translations SetupNNIDeveloperEnvironment.md
(Chinese Simplified)
---
zh_CN/docs/SetupNNIDeveloperEnvironment.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/zh_CN/docs/SetupNNIDeveloperEnvironment.md b/zh_CN/docs/SetupNNIDeveloperEnvironment.md
index 3b877bb32a..48b134d4a4 100644
--- a/zh_CN/docs/SetupNNIDeveloperEnvironment.md
+++ b/zh_CN/docs/SetupNNIDeveloperEnvironment.md
@@ -1,6 +1,6 @@
-# **Set up NNI developer environment**
+# **设置 NNI 开发环境**
-## Best practice for debug NNI source code
+## 调试 NNI 源代码的最佳实践
For debugging NNI source code, your development environment should be under Ubuntu 16.04 (or above) system with python 3 and pip 3 installed, then follow the below steps.
From 90ed79a22a3667a6c5bc6fcaea61005d17fb5258 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Mon, 7 Jan 2019 16:20:16 +0800
Subject: [PATCH 0227/1573] New translations SetupNNIDeveloperEnvironment.md
(Chinese Simplified)
---
zh_CN/docs/SetupNNIDeveloperEnvironment.md | 38 +++++++++++-----------
1 file changed, 19 insertions(+), 19 deletions(-)
diff --git a/zh_CN/docs/SetupNNIDeveloperEnvironment.md b/zh_CN/docs/SetupNNIDeveloperEnvironment.md
index 48b134d4a4..22c4df1f5f 100644
--- a/zh_CN/docs/SetupNNIDeveloperEnvironment.md
+++ b/zh_CN/docs/SetupNNIDeveloperEnvironment.md
@@ -2,57 +2,57 @@
## 调试 NNI 源代码的最佳实践
-For debugging NNI source code, your development environment should be under Ubuntu 16.04 (or above) system with python 3 and pip 3 installed, then follow the below steps.
+要调试 NNI 源代码,需要 Ubuntu 16.04 或更高版本系统的开发环境,并需要安装 Python 3.x 以及 pip3,然后遵循以下步骤。
-**1. Clone the source code**
+**1. 克隆源代码**
-Run the command
+运行命令
git clone https://github.com/Microsoft/nni.git
-to clone the source code
+来克隆源代码
-**2. Prepare the debug environment and install dependencies**
+**2. 准备调试环境并安装依赖项**
-Change directory to the source code folder, then run the command
+将目录切换到源码目录,然后运行命令
make install-dependencies
-to install the dependent tools for the environment
+来安装环境的依赖项工具
-**3. Build source code**
+**3. 生成源代码**
-Run the command
+运行命令
make build
-to build the source code
+来生成源代码
-**4. Install NNI to development environment**
+**4. 将 NNI 安装到开发环境中**
-Run the command
+运行命令
make dev-install
-to install the distribution content to development environment, and create cli scripts
+来安装分发内容到开发环境,并创建 cli 脚本
-**5. Check if the environment is ready**
+**5. 检查环境是否正确**
-Now, you can try to start an experiment to check if your environment is ready. For example, run the command
+尝试启动实验来检查环境。 例如,运行命令
nnictl create --config ~/nni/examples/trials/mnist/config.yml
-And open WebUI to check if everything is OK
+并打开网页界面查看
-**6. Redeploy**
+**6. 重新部署**
-After the code changes, use **step 3** to rebuild your codes, then the changes will take effect immediately.
+代码改动后,用**第 3 步**来重新生成代码,改动会立即生效。
* * *
-At last, wish you have a wonderful day. For more contribution guidelines on making PR's or issues to NNI source code, you can refer to our [CONTRIBUTING](./CONTRIBUTING.md) document.
\ No newline at end of file
+最后,希望一切顺利。 参考[贡献](./CONTRIBUTING.md)文档,来了解更多创建拉取请求或问题的指南。
\ No newline at end of file
From 6001579be340558fe5e504e11cac273f329d567f Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Mon, 7 Jan 2019 16:22:00 +0800
Subject: [PATCH 0228/1573] New translations StartExperiment.md (Chinese
Simplified)
---
zh_CN/docs/StartExperiment.md | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/zh_CN/docs/StartExperiment.md b/zh_CN/docs/StartExperiment.md
index 521d25cb8a..b992517861 100644
--- a/zh_CN/docs/StartExperiment.md
+++ b/zh_CN/docs/StartExperiment.md
@@ -1,8 +1,8 @@
-# How to start an experiment
+# 如何启动实验
-## 1.Introduce
+## 1. 简介
-There are few steps to start an new experiment of nni, here are the process.
+There are few steps to start an new experiment of nni, here are the process.
## 2.Details
From f1d1e052ffc177be109bfc1e35ba3e0716ae7403 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Mon, 7 Jan 2019 16:28:53 +0800
Subject: [PATCH 0229/1573] New translations StartExperiment.md (Chinese
Simplified)
---
zh_CN/docs/StartExperiment.md | 44 +++++++++++++++++------------------
1 file changed, 22 insertions(+), 22 deletions(-)
diff --git a/zh_CN/docs/StartExperiment.md b/zh_CN/docs/StartExperiment.md
index b992517861..e5cf07b87f 100644
--- a/zh_CN/docs/StartExperiment.md
+++ b/zh_CN/docs/StartExperiment.md
@@ -2,40 +2,40 @@
## 1. 简介
-There are few steps to start an new experiment of nni, here are the process.
+NNI 实验的启动分为几步,流程如下。
-## 2.Details
+## 2. 详细说明
-### 2.1 Check environment
+### 2.1 检查环境
-1. Check if there is an old experiment running
-2. Check if the port of restfurl server is free.
-3. Validate the content of config yaml file.
-4. Prepare a config file to to record the information of this experiment.
+1. 检查是否有旧的实验正在运行。
+2. 检查 RESTful 服务端口是否可用。
+3. 验证 yaml 配置文件的内容。
+4. 准备配置文件来记录实验信息。
-### 2.2 Start restful server
+### 2.2 启动 RESTful 服务
-Start an restful server process to manage nni experiment, the default port is 8080.
+启动 RESTful 服务进程来管理 NNI 实验,默认端口为 8080。
-### 2.3 Check restful server
+### 2.3 检查 RESTful 服务
-Check whether restful server process is successfully started and could get a response when send message to restful server.
+检查是否 RESTful 服务进程成功启动,发送到 RESTful 服务的消息是否正常返回。
-### 2.4 Set experiment config
+### 2.4 设置实验配置
-Call restful server to set experiment config before starting an experiment, experiment config includes the config values in config yaml file.
+在启动实验前调用 RESTful 服务来设置实验配置,包括 yaml 配置文件中的值。
-### 2.5 Check experiment cofig
+### 2.5 检查实验配置
-Check the response content of restful srver, if the status code of response is 200, the config is successfully set.
+检查 RESTful 服务的返回内容,如果状态为 200,则表示配置设置成功。
-### 2.6 Start Experiment
+### 2.6 启动实验
-Call restful server process to setup an experiment.
+调用 RESTful 服务进程来设置实验。
-### 2.7 Check experiment
+### 2.7 检查实验
-1. Check the response of restful server.
-2. Handle error information.
-3. Print success or error information to screen.
-4. Save configuration information to config file of nnictl.
\ No newline at end of file
+1. 检查 RESTful 服务的返回值。
+2. 处理错误信息。
+3. 输出成功或失败信息。
+4. 保存配置信息到 nnictl 的配置文件。
\ No newline at end of file
From 69e08a8e0c8329aa32418b886d2aa00c39af3863 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Mon, 7 Jan 2019 16:31:55 +0800
Subject: [PATCH 0230/1573] New translations tutorial_1_CR_exp_local_api.md
(Chinese Simplified)
---
zh_CN/docs/tutorial_1_CR_exp_local_api.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/zh_CN/docs/tutorial_1_CR_exp_local_api.md b/zh_CN/docs/tutorial_1_CR_exp_local_api.md
index fa2f4a1986..ee062bd82e 100644
--- a/zh_CN/docs/tutorial_1_CR_exp_local_api.md
+++ b/zh_CN/docs/tutorial_1_CR_exp_local_api.md
@@ -1,4 +1,4 @@
-# **Tutorial: Create and Run an Experiment on local with NNI API**
+# **教程:使用 NNI API 在本地创建和运行实验**
In this tutorial, we will use the example in [~/examples/trials/mnist] to explain how to create and run an experiment on local with NNI API.
From c49c0f015254de3a9c6c18ac8078201464070af1 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Mon, 7 Jan 2019 16:41:57 +0800
Subject: [PATCH 0231/1573] New translations tutorial_1_CR_exp_local_api.md
(Chinese Simplified)
---
zh_CN/docs/tutorial_1_CR_exp_local_api.md | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/zh_CN/docs/tutorial_1_CR_exp_local_api.md b/zh_CN/docs/tutorial_1_CR_exp_local_api.md
index ee062bd82e..11c95b4f1c 100644
--- a/zh_CN/docs/tutorial_1_CR_exp_local_api.md
+++ b/zh_CN/docs/tutorial_1_CR_exp_local_api.md
@@ -1,10 +1,10 @@
# **教程:使用 NNI API 在本地创建和运行实验**
-In this tutorial, we will use the example in [~/examples/trials/mnist] to explain how to create and run an experiment on local with NNI API.
+本教程会使用 [~/examples/trials/mnist] 样例来解释如何在本地使用 NNI API 来创建并运行实验。
-> Before starts
+> 在开始前
-You have an implementation for MNIST classifer using convolutional layers, the Python code is in `mnist_before.py`.
+要有一个使用卷积层对 MNIST 分类的代码,如 `mnist_before.py`。
> Step 1 - Update model codes
From c4a17f279a1a40a5c755d86546a0600bbb187ec7 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Mon, 7 Jan 2019 16:49:37 +0800
Subject: [PATCH 0232/1573] New translations tutorial_1_CR_exp_local_api.md
(Chinese Simplified)
---
zh_CN/docs/tutorial_1_CR_exp_local_api.md | 66 +++++++++++------------
1 file changed, 33 insertions(+), 33 deletions(-)
diff --git a/zh_CN/docs/tutorial_1_CR_exp_local_api.md b/zh_CN/docs/tutorial_1_CR_exp_local_api.md
index 11c95b4f1c..33cbf98fc7 100644
--- a/zh_CN/docs/tutorial_1_CR_exp_local_api.md
+++ b/zh_CN/docs/tutorial_1_CR_exp_local_api.md
@@ -6,48 +6,48 @@
要有一个使用卷积层对 MNIST 分类的代码,如 `mnist_before.py`。
-> Step 1 - Update model codes
+> 第一步:更新模型代码
-To enable NNI API, make the following changes:
+对代码进行以下改动来启用 NNI API:
- 1.1 Declare NNI API
- Include `import nni` in your trial code to use NNI APIs.
+ 1.1 声明 NNI API
+ 在尝试代码中通过 `import nni` 来导入 NNI API。
- 1.2 Get predefined parameters
- Use the following code snippet:
+ 1.2 获取预定义的参数
+ 参考下列代码片段:
RECEIVED_PARAMS = nni.get_next_parameter()
- to get hyper-parameters' values assigned by tuner. `RECEIVED_PARAMS` is an object, for example:
+ 来获得调参器分配的超参值。 `RECEIVED_PARAMS` 是一个对象,例如:
{"conv_size": 2, "hidden_size": 124, "learning_rate": 0.0307, "dropout_rate": 0.2029}
- 1.3 Report NNI results
- Use the API:
+ 1.3 向 NNI 返回结果
+ 使用 API:
`nni.report_intermediate_result(accuracy)`
- to send `accuracy` to assessor.
+ 返回 `accuracy` 的值给评估器。
- Use the API:
+ 使用 API:
`nni.report_final_result(accuracy)`
- to send `accuracy` to tuner.
+ 返回 `accuracy` 的值给调参器。
-We had made the changes and saved it to `mnist.py`.
+将改动保存到 `mnist.py` 文件中。
-**NOTE**:
+**注意**:
- accuracy - The `accuracy` could be any python object, but if you use NNI built-in tuner/assessor, `accuracy` should be a numerical variable (e.g. float, int).
- assessor - The assessor will decide which trial should early stop based on the history performance of trial (intermediate result of one trial).
- tuner - The tuner will generate next parameters/architecture based on the explore history (final result of all trials).
+ accuracy - 如果使用 NNI 内置的调参器/评估器,那么 `accuracy` 必须是数值(如 float, int)。在定制调参器/评估器时 `accuracy` 可以是任何类型的 Python 对象。
+ 评估器 - 会根据尝试的历史值(即其中间结果),来决定这次尝试是否应该提前终止。
+ 调参器 - 会根据探索的历史(所有尝试的最终结果)来生成下一组参数、架构。
-> Step 2 - Define SearchSpace
+> 第二步:定义搜索空间
-The hyper-parameters used in `Step 1.2 - Get predefined parameters` is defined in a `search_space.json` file like below:
+在 `Step 1.2 获取预定义的参数` 中使用的超参定义在 `search_space.json` 文件中:
{
"dropout_rate":{"_type":"uniform","_value":[0.1,0.5]},
@@ -57,37 +57,37 @@ The hyper-parameters used in `Step 1.2 - Get predefined parameters` is defined i
}
-Refer to to learn more about search space.
+参考 [SearchSpaceSpec.md](./SearchSpaceSpec.md) 进一步了解搜索空间。
-> Step 3 - Define Experiment
+> 第三步:定义实验
>
-> > 3.1 enable NNI API mode
+> > 3.1 启用 NNI API 模式
-To enable NNI API mode, you need to set useAnnotation to *false* and provide the path of SearchSpace file (you just defined in step 1):
+要启用 NNI 的 API 模式,需要将 useAnnotation 设置为 *false*,并提供搜索空间文件的路径(即第一步中定义的文件):
useAnnotation: false
searchSpacePath: /path/to/your/search_space.json
-To run an experiment in NNI, you only needed:
+在 NNI 中运行实验,只需要:
-* Provide a runnable trial
-* Provide or choose a tuner
-* Provide a yaml experiment configure file
-* (optional) Provide or choose an assessor
+* 可运行的尝试的代码
+* 实现或选择调参器
+* 准备 yaml 的实验配置文件
+* (可选) 实现或选择评估器
-**Prepare trial**:
+**准备尝试**:
-> A set of examples can be found in ~/nni/examples after your installation, run `ls ~/nni/examples/trials` to see all the trial examples.
+> 在克隆代码后,可以在 ~/nni/examples 中找到一些样例,运行 `ls examples/trials` 查看所有尝试样例。
-Let's use a simple trial example, e.g. mnist, provided by NNI. After you installed NNI, NNI examples have been put in ~/nni/examples, run `ls ~/nni/examples/trials` to see all the trial examples. You can simply execute the following command to run the NNI mnist example:
+先从 NNI 提供的简单尝试样例,如 MNIST 开始。 NNI 样例在代码目录的 examples 中,运行 `ls ~/nni/examples/trials` 可以看到所有实验的样例。 执行下面的命令可轻松运行 NNI 的 mnist 样例:
python ~/nni/examples/trials/mnist-annotation/mnist.py
-This command will be filled in the yaml configure file below. Please refer to [here](howto_1_WriteTrial) for how to write your own trial.
+上面的命令会写在 yaml 文件中。 参考[这里](./howto_1_WriteTrial.md)来写出自己的实验代码。
-**Prepare tuner**: NNI supports several popular automl algorithms, including Random Search, Tree of Parzen Estimators (TPE), Evolution algorithm etc. Users can write their own tuner (refer to [here](CustomizedTuner.md)), but for simplicity, here we choose a tuner provided by NNI as below:
+**准备调参器**: NNI 支持多种流行的自动机器学习算法,包括:Random Search(随机搜索),Tree of Parzen Estimators (TPE),Evolution(进化算法)等等。 也可以实现自己的调参器(参考[这里](./CustomizedTuner.md))。下面使用了 NNI 内置的调参器:
tuner:
builtinTunerName: TPE
From e30611901e080fb5b754a2c2042eaa234c8da6ea Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Mon, 7 Jan 2019 17:01:44 +0800
Subject: [PATCH 0233/1573] New translations tutorial_1_CR_exp_local_api.md
(Chinese Simplified)
---
zh_CN/docs/tutorial_1_CR_exp_local_api.md | 38 +++++++++++------------
1 file changed, 19 insertions(+), 19 deletions(-)
diff --git a/zh_CN/docs/tutorial_1_CR_exp_local_api.md b/zh_CN/docs/tutorial_1_CR_exp_local_api.md
index 33cbf98fc7..d30fa111bc 100644
--- a/zh_CN/docs/tutorial_1_CR_exp_local_api.md
+++ b/zh_CN/docs/tutorial_1_CR_exp_local_api.md
@@ -95,26 +95,26 @@
optimize_mode: maximize
-*builtinTunerName* is used to specify a tuner in NNI, *classArgs* are the arguments pass to the tuner (the spec of builtin tuners can be found [here]()), *optimization_mode* is to indicate whether you want to maximize or minimize your trial's result.
+*builtinTunerName* 用来指定 NNI 中的调参器,*classArgs* 是传入到调参器的参数(内置调参器在[这里]()),*optimization_mode* 表明需要最大化还是最小化尝试的结果。
-**Prepare configure file**: Since you have already known which trial code you are going to run and which tuner you are going to use, it is time to prepare the yaml configure file. NNI provides a demo configure file for each trial example, `cat ~/nni/examples/trials/mnist-annotation/config.yml` to see it. Its content is basically shown below:
+**准备配置文件**:实现尝试的代码,并选择或实现自定义的调参器后,就要准备 yaml 配置文件了。 NNI 为每个尝试样例都提供了演示的配置文件,用命令`cat ~/nni/examples/trials/mnist-annotation/config.yml` 来查看其内容。 大致内容如下:
authorName: your_name
experimentName: auto_mnist
- # how many trials could be concurrently running
- trialConcurrency: 1
+ # 并发运行数量
+ trialConcurrency: 2
- # maximum experiment running duration
+ # 实验运行时间
maxExecDuration: 3h
- # empty means never stop
+ # 可为空,即数量不限
maxTrialNum: 100
- # choice: local, remote
+ # 可选值为: local, remote
trainingServicePlatform: local
- # choice: true, false
+ # 可选值为: true, false
useAnnotation: true
tuner:
builtinTunerName: TPE
@@ -126,28 +126,28 @@
gpuNum: 0
-Here *useAnnotation* is true because this trial example uses our python annotation (refer to [here](../tools/annotation/README.md) for details). For trial, we should provide *trialCommand* which is the command to run the trial, provide *trialCodeDir* where the trial code is. The command will be executed in this directory. We should also provide how many GPUs a trial requires.
+因为这个尝试代码使用了 NNI 标记的方法(参考[这里](../tools/annotation/README.md) ),所以*useAnnotation* 为 true。 *command* 是运行尝试代码所需要的命令,*codeDir* 是尝试代码的相对位置。 命令会在此目录中执行。 同时,也需要提供每个尝试进程所需的 GPU 数量。
-With all these steps done, we can run the experiment with the following command:
+完成上述步骤后,可通过下列命令来启动实验:
nnictl create --config ~/nni/examples/trials/mnist-annotation/config.yml
-You can refer to [here](NNICTLDOC.md) for more usage guide of *nnictl* command line tool.
+参考[这里](NNICTLDOC.md)来了解 *nnictl* 命令行工具的更多用法。
-## View experiment results
+## 查看实验结果
-The experiment has been running now. Oher than *nnictl*, NNI also provides WebUI for you to view experiment progress, to control your experiment, and some other appealing features.
+实验应该一直在运行。 除了 *nnictl* 以外,还可以通过 NNI 的网页来查看实验进程,进行控制和其它一些有意思的功能。
-## Using multiple local GPUs to speed up search
+## 使用多个本地 GPU 加快搜索速度
-The following steps assume that you have 4 NVIDIA GPUs installed at local and [tensorflow with GPU support](https://www.tensorflow.org/install/gpu). The demo enables 4 concurrent trail jobs and each trail job uses 1 GPU.
+下列步骤假设本机有 4 块 NVIDIA GPUs,参考 [tensorflow with GPU support](https://www.tensorflow.org/install/gpu)。 演示启用了 4 个并发的尝试任务,每个尝试任务使用了 1 块 GPU。
-**Prepare configure file**: NNI provides a demo configuration file for the setting above, `cat ~/nni/examples/trials/mnist-annotation/config_gpu.yml` to see it. The trailConcurrency and gpuNum are different from the basic configure file:
+**准备配置文件**:NNI 提供了演示用的配置文件,使用 `cat examples/trials/mnist-annotation/config_gpu.yml` 来查看。 trailConcurrency 和 gpuNum 与基本配置文件不同:
...
- # how many trials could be concurrently running
+ # 可同时运行的尝试数量
trialConcurrency: 4
...
@@ -158,9 +158,9 @@ The following steps assume that you have 4 NVIDIA GPUs installed at local and [t
gpuNum: 1
-We can run the experiment with the following command:
+用下列命令运行实验:
nnictl create --config ~/nni/examples/trials/mnist-annotation/config_gpu.yml
-You can use *nnictl* command line tool or WebUI to trace the training progress. *nvidia_smi* command line tool can also help you to monitor the GPU usage during training.
\ No newline at end of file
+可以用 *nnictl* 命令行工具或网页界面来跟踪训练过程。 *nvidia_smi* 命令行工具能在训练过程中查看 GPU 使用情况。
\ No newline at end of file
From 3c5cfc75822c6e6ec6f9541c5659000ac63c0881 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Mon, 7 Jan 2019 17:07:35 +0800
Subject: [PATCH 0234/1573] Delete tutorial_3_tryTunersAndAccessors.md
---
.../docs/tutorial_3_tryTunersAndAccessors.md | 45 -------------------
1 file changed, 45 deletions(-)
delete mode 100644 zh_CN/docs/tutorial_3_tryTunersAndAccessors.md
diff --git a/zh_CN/docs/tutorial_3_tryTunersAndAccessors.md b/zh_CN/docs/tutorial_3_tryTunersAndAccessors.md
deleted file mode 100644
index 7473623f9a..0000000000
--- a/zh_CN/docs/tutorial_3_tryTunersAndAccessors.md
+++ /dev/null
@@ -1,45 +0,0 @@
-# Tutorial - Try different Tuners and Accessors
-
-NNI provides an easy to adopt approach to set up parameter tuning algorithms as well as early stop policies, we call them **Tuners** and **Accessors**.
-
-**Tuner** specifies the algorithm you use to generate hyperparameter sets for each trial. In NNI, we support two approaches to set the tuner.
-
-1. Directly use tuner provided by nni sdk
-
- required fields: builtinTunerName and classArgs.
-
-
-2. Customize your own tuner file
-
- required fields: codeDirectory, classFileName, className and classArgs.
-
-
-### **Learn More about tuners**
-
-* For detailed defintion and usage aobut the required field, please refer to [Config an experiment](ExperimentConfig.md)
-* [Tuners in the latest NNI release](../src/sdk/pynni/nni/README.md)
-* [How to implement your own tuner](howto_2_CustomizedTuner.md)
-
-**Assessor** specifies the algorithm you use to apply early stop policy. In NNI, there are two approaches to set theassessor.
-
-1. Directly use accessor provided by nni sdk
-
- required fields: builtinAssessorName and classArgs.
-
-
-2. Customize your own tuner file
-
- required fields: codeDirectory, classFileName, className and classArgs.
-
-
-### **Learn More about assessor**
-
-* For detailed defintion and usage aobut the required field, please refer to [Config an experiment](ExperimentConfig.md)
-* Find more about the detailed instruction about [enable accessor](EnableAssessor.md)
-* [How to implement your own assessor](../examples/assessors/README.md)
-
-## **Learn More**
-
-* [How to run an experiment on local (with multiple GPUs)?](tutorial_1_CR_exp_local_api.md)
-* [How to run an experiment on multiple machines?](tutorial_2_RemoteMachineMode.md)
-* [How to run an experiment on OpenPAI?](PAIMode.md)
\ No newline at end of file
From ba950bb6a9aaac0986bbb6e49322c3300149ba3e Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Mon, 7 Jan 2019 17:12:17 +0800
Subject: [PATCH 0235/1573] New translations tutorial_2_RemoteMachineMode.md
(Chinese Simplified)
---
zh_CN/docs/tutorial_2_RemoteMachineMode.md | 49 +++++++++++-----------
1 file changed, 24 insertions(+), 25 deletions(-)
diff --git a/zh_CN/docs/tutorial_2_RemoteMachineMode.md b/zh_CN/docs/tutorial_2_RemoteMachineMode.md
index db8be9295d..14c6d9bf6d 100644
--- a/zh_CN/docs/tutorial_2_RemoteMachineMode.md
+++ b/zh_CN/docs/tutorial_2_RemoteMachineMode.md
@@ -1,58 +1,57 @@
-# **Tutorial: Run an experiment on multiple machines**
+# **教程:在多机上运行实验**
-NNI supports running an experiment on multiple machines through SSH channel, called `remote` mode. NNI assumes that you have access to those machines, and already setup the environment for running deep learning training code.
+NNI 支持通过 SSH 通道在多台计算机上运行实验,称为 `remote` 模式。 NNI 需要这些计算机的访问权限,并提前配置好深度学习训练环境。
-e.g. Three machines and you login in with account `bob` (Note: the account is not necessarily the same on different machine):
+例如:有三台服务器,登录账户为 `bob`(注意:账户不必在各台计算机上一致):
-| IP | Username | Password |
-| -------- | -------- | -------- |
-| 10.1.1.1 | bob | bob123 |
-| 10.1.1.2 | bob | bob123 |
-| 10.1.1.3 | bob | bob123 |
+| IP | 用户名 | 密码 |
+| -------- | --- | ------ |
+| 10.1.1.1 | bob | bob123 |
+| 10.1.1.2 | bob | bob123 |
+| 10.1.1.3 | bob | bob123 |
-## Setup NNI environment
+## 设置 NNI 环境
-Install NNI on each of your machines following the install guide [here](GetStarted.md).
+按照[指南](GetStarted.md)在每台计算机上安装 NNI。
-For remote machines that are used only to run trials but not the nnictl, you can just install python SDK:
+对于只需要运行尝试,不需要使用 nnictl 命令的计算机,可只安装 SDK:
-* **Install python SDK through pip**
+* **通过 pip 安装 SDK**
python3 -m pip install --user --upgrade nni-sdk
-## Run an experiment
+## 运行实验
-Install NNI on another machine which has network accessibility to those three machines above, or you can just use any machine above to run nnictl command line tool.
+在另一台计算机,或在其中任何一台上安装 NNI,并运行 nnictl 工具。
-We use `examples/trials/mnist-annotation` as an example here. `cat ~/nni/examples/trials/mnist-annotation/config_remote.yml` to see the detailed configuration file:
+以 `examples/trials/mnist-annotation` 为例。 `cat ~/nni/examples/trials/mnist-annotation/config_remote.yml` 来查看详细配置:
authorName: default
experimentName: example_mnist
trialConcurrency: 1
maxExecDuration: 1h
maxTrialNum: 10
- #choice: local, remote, pai
+ #可选项: local, remote, pai
trainingServicePlatform: remote
- #choice: true, false
+ #可选项: true, false
useAnnotation: true
tuner:
- #choice: TPE, Random, Anneal, Evolution, BatchTuner
- #SMAC (SMAC should be installed through nnictl)
+ #可选项: TPE, Random, Anneal, Evolution, BatchTuner
+ #SMAC (SMAC 需要通过 nnictl 安装)
builtinTunerName: TPE
classArgs:
- #choice: maximize, minimize
+ #可选项: maximize, minimize
optimize_mode: maximize
trial:
command: python3 mnist.py
codeDir: .
gpuNum: 0
- #machineList can be empty if the platform is local
+ #local 模式下 machineList 可为空
machineList:
-
- ip: 10.1.1.1
username: bob
passwd: bob123
- #port can be skip if using default ssh port 22
+ #使用默认端口 22 时,该配置可跳过
#port: 22
- ip: 10.1.1.2
username: bob
@@ -62,9 +61,9 @@ We use `examples/trials/mnist-annotation` as an example here. `cat ~/nni/example
passwd: bob123
-Simply filling the `machineList` section and then run:
+简单填写 `machineList` 部分,然后运行:
nnictl create --config ~/nni/examples/trials/mnist-annotation/config_remote.yml
-to start the experiment.
\ No newline at end of file
+来启动实验。
\ No newline at end of file
From 70d1c60c0dadacb342368729ed14dfe631d463e4 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Mon, 7 Jan 2019 17:12:18 +0800
Subject: [PATCH 0236/1573] New translations
tutorial_3_tryTunersAndAssessors.md (Chinese Simplified)
---
zh_CN/docs/tutorial_3_tryTunersAndAssessors.md | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/zh_CN/docs/tutorial_3_tryTunersAndAssessors.md b/zh_CN/docs/tutorial_3_tryTunersAndAssessors.md
index c09e319c5d..311ec945a8 100644
--- a/zh_CN/docs/tutorial_3_tryTunersAndAssessors.md
+++ b/zh_CN/docs/tutorial_3_tryTunersAndAssessors.md
@@ -1,12 +1,12 @@
-# Tutorial - Try different Tuners and Assessors
+# 教程 - 尝试不同的调参器和评估器
-NNI provides an easy to adopt approach to set up parameter tuning algorithms as well as early stop policies, we call them **Tuners** and **Assessors**.
+NNI 提供了简单的方法来设置不同的参数优化算法,以及提前终止策略。NNI 将它们分别称为**调参器**和**评估器**。
-**Tuner** specifies the algorithm you use to generate hyperparameter sets for each trial. In NNI, we support two approaches to set the tuner.
+**调参器** 指定了为每个尝试生成参数的算法。 在 NNI 中,有两种方法来设置调参器。
-1. Directly use tuner provided by nni sdk
+1. 直接使用 NNI 提供的调参器
- required fields: builtinTunerName and classArgs.
+ 必填字段:builtinTunerName 和 classArgs。
2. Customize your own tuner file
From ce7b9348be829a2e3e96498fb16f17a16f1f0df8 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Mon, 7 Jan 2019 17:16:27 +0800
Subject: [PATCH 0237/1573] New translations
tutorial_3_tryTunersAndAssessors.md (Chinese Simplified)
---
.../docs/tutorial_3_tryTunersAndAssessors.md | 38 +++++++++----------
1 file changed, 19 insertions(+), 19 deletions(-)
diff --git a/zh_CN/docs/tutorial_3_tryTunersAndAssessors.md b/zh_CN/docs/tutorial_3_tryTunersAndAssessors.md
index 311ec945a8..6c655c20a1 100644
--- a/zh_CN/docs/tutorial_3_tryTunersAndAssessors.md
+++ b/zh_CN/docs/tutorial_3_tryTunersAndAssessors.md
@@ -9,37 +9,37 @@ NNI 提供了简单的方法来设置不同的参数优化算法,以及提前
必填字段:builtinTunerName 和 classArgs。
-2. Customize your own tuner file
+2. 自定义调参器文件
- required fields: codeDirectory, classFileName, className and classArgs.
+ 必填字段:codeDirectory, classFileName, className 和 classArgs。
-### **Learn More about tuners**
+### **了解有关调参器的更多信息**
-* For detailed defintion and usage aobut the required field, please refer to [Config an experiment](ExperimentConfig.md)
-* [Tuners in the latest NNI release](HowToChooseTuner.md)
-* [How to implement your own tuner](howto_2_CustomizedTuner.md)
+* 有关所需字段的详细定义和用法,参考[配置实验](ExperimentConfig.md)。
+* [NNI 最新版本支持的调参器](HowToChooseTuner.md)
+* [如何自定义调参器](howto_2_CustomizedTuner.md)
-**Assessor** specifies the algorithm you use to apply early stop policy. In NNI, there are two approaches to set theassessor.
+**评估器** 指定了用于提前终止尝试的策略。 在 NNI 中,支持两种方法来设置评估器。
-1. Directly use assessor provided by nni sdk
+1. 直接使用 NNI 提供的评估器
- required fields: builtinAssessorName and classArgs.
+ 必填字段:builtinAssessorName 和 classArgs。
-2. Customize your own assessor file
+2. 自定义评估器文件
- required fields: codeDirectory, classFileName, className and classArgs.
+ 必填字段:codeDirectory, classFileName, className 和 classArgs。
-### **Learn More about assessor**
+### **了解有关评估器的更多信息**
-* For detailed defintion and usage aobut the required field, please refer to [Config an experiment](ExperimentConfig.md)
-* Find more about the detailed instruction about [enable assessor](EnableAssessor.md)
-* [How to implement your own assessor](../examples/assessors/README.md)
+* 有关所需字段的详细定义和用法,参考[配置实验](ExperimentConfig.md)。
+* 查看[启用评估器](EnableAssessor.md),了解更多信息。
+* [如何自定义评估器](../examples/assessors/README.md)
-## **Learn More**
+## **了解更多信息**
-* [How to run an experiment on local (with multiple GPUs)?](tutorial_1_CR_exp_local_api.md)
-* [How to run an experiment on multiple machines?](tutorial_2_RemoteMachineMode.md)
-* [How to run an experiment on OpenPAI?](PAIMode.md)
\ No newline at end of file
+* [如何在本机运行实验 (支持多 GPU 卡)?](tutorial_1_CR_exp_local_api.md)
+* [如何在多机上运行实验?](tutorial_2_RemoteMachineMode.md)
+* [如何在 OpenPAI 上运行实验?](PAIMode.md)
\ No newline at end of file
From 40ad763f4d3d91f1b76bdb447c33eadfc6b2245b Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Mon, 7 Jan 2019 17:18:30 +0800
Subject: [PATCH 0238/1573] New translations WebUI.md (Chinese Simplified)
---
zh_CN/docs/WebUI.md | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/zh_CN/docs/WebUI.md b/zh_CN/docs/WebUI.md
index 7583b9bc21..e72a5f9370 100644
--- a/zh_CN/docs/WebUI.md
+++ b/zh_CN/docs/WebUI.md
@@ -1,23 +1,23 @@
# WebUI
-## View summary page
+## 查看概要页面
Click the tab "Overview".
* See the experiment trial profile and search space message.
* Support to download the experiment result.
-![](./img/over1.png)
+![](../../docs/img/over1.png)
* See good performance trials.
-![](./img/over2.png)
+![](../../docs/img/over2.png)
## View job default metric
Click the tab "Default Metric" to see the point graph of all trials. Hover to see its specific default metric and search space message.
-![](./img/accuracy.png)
+![](../../docs/img/accuracy.png)
## View hyper parameter
@@ -26,13 +26,13 @@ Click the tab "Hyper Parameter" to see the parallel graph.
* You can select the percentage to see top trials.
* Choose two axis to swap its positions
-![](./img/hyperPara.png)
+![](../../docs/img/hyperPara.png)
## View Trial Duration
Click the tab "Trial Duration" to see the bar graph.
-![](./img/trial_duration.png)
+![](../../docs/img/trial_duration.png)
## View trials status
@@ -41,10 +41,10 @@ Click the tab "Trials Detail" to see the status of the all trials. Specifically:
* Trial detail: trial's id, trial's duration, start time, end time, status, accuracy and search space file.
* If you run a pai experiment, you can also see the hdfsLogPath.
-![](./img/table_openrow.png)
+![](../../docs/img/table_openrow.png)
* Kill: you can kill a job that status is running.
* Support to search for a specific trial.
* Intermediate Result Graph.
-![](./img/intermediate.png)
\ No newline at end of file
+![](../../docs/img/intermediate.png)
\ No newline at end of file
From 6300f01ed28cc370defa65b7a953032281b34db7 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Mon, 7 Jan 2019 17:22:02 +0800
Subject: [PATCH 0239/1573] New translations WebUI.md (Chinese Simplified)
---
zh_CN/docs/WebUI.md | 26 +++++++++++++-------------
1 file changed, 13 insertions(+), 13 deletions(-)
diff --git a/zh_CN/docs/WebUI.md b/zh_CN/docs/WebUI.md
index e72a5f9370..4c33977182 100644
--- a/zh_CN/docs/WebUI.md
+++ b/zh_CN/docs/WebUI.md
@@ -2,39 +2,39 @@
## 查看概要页面
-Click the tab "Overview".
+点击标签 "Overview"。
-* See the experiment trial profile and search space message.
-* Support to download the experiment result.
+* 查看实验的配置和搜索空间内容。
+* 支持下载实验结果。
![](../../docs/img/over1.png)
-* See good performance trials.
+* 查看最好结果的尝试。
![](../../docs/img/over2.png)
-## View job default metric
+## 查看任务默认指标
-Click the tab "Default Metric" to see the point graph of all trials. Hover to see its specific default metric and search space message.
+点击 "Default Metric" 来查看所有尝试的点图。 悬停鼠标来查看默认指标和搜索空间信息。
![](../../docs/img/accuracy.png)
-## View hyper parameter
+## 查看超参
-Click the tab "Hyper Parameter" to see the parallel graph.
+点击 "Hyper Parameter" 标签查看图像。
-* You can select the percentage to see top trials.
-* Choose two axis to swap its positions
+* 可选择百分比查看最好的尝试。
+* 选择两个轴来交换位置。
![](../../docs/img/hyperPara.png)
-## View Trial Duration
+## 查看尝试运行时间
-Click the tab "Trial Duration" to see the bar graph.
+点击 "Trial Duration" 标签来查看柱状图。
![](../../docs/img/trial_duration.png)
-## View trials status
+## 查看尝试状态
Click the tab "Trials Detail" to see the status of the all trials. Specifically:
From ee3e0426d1c229ffab7613c6d6b50833c9ab34fd Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Mon, 7 Jan 2019 17:25:33 +0800
Subject: [PATCH 0240/1573] New translations WebUI.md (Chinese Simplified)
---
zh_CN/docs/WebUI.md | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/zh_CN/docs/WebUI.md b/zh_CN/docs/WebUI.md
index 4c33977182..c46ae49d2c 100644
--- a/zh_CN/docs/WebUI.md
+++ b/zh_CN/docs/WebUI.md
@@ -36,15 +36,15 @@
## 查看尝试状态
-Click the tab "Trials Detail" to see the status of the all trials. Specifically:
+点击 "Trials Detail" 标签查看所有尝试的状态。 特别是:
-* Trial detail: trial's id, trial's duration, start time, end time, status, accuracy and search space file.
-* If you run a pai experiment, you can also see the hdfsLogPath.
+* 尝试详情:尝试的 id,持续时间,开始时间,结束时间,状态,精度和搜索空间。
+* 如果在 pai 模式下,还可以看到 hdfsLogPath。
![](../../docs/img/table_openrow.png)
-* Kill: you can kill a job that status is running.
-* Support to search for a specific trial.
-* Intermediate Result Graph.
+* Kill: 可终止正在运行的任务。
+* 支持搜索某个特定的尝试。
+* 中间结果图。
![](../../docs/img/intermediate.png)
\ No newline at end of file
From ec6cb0a814354abd76c07a1cbce587b6fb355b25 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Mon, 7 Jan 2019 17:32:00 +0800
Subject: [PATCH 0241/1573] New translations WebUI.md (Chinese Simplified)
---
zh_CN/docs/WebUI.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/zh_CN/docs/WebUI.md b/zh_CN/docs/WebUI.md
index c46ae49d2c..087d64b5dc 100644
--- a/zh_CN/docs/WebUI.md
+++ b/zh_CN/docs/WebUI.md
@@ -1,4 +1,4 @@
-# WebUI
+# Web 界面
## 查看概要页面
From 9712157453afe2ea873681671615227ee4caa50a Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Mon, 7 Jan 2019 17:32:02 +0800
Subject: [PATCH 0242/1573] New translations README.md (Chinese Simplified)
---
zh_CN/examples/assessors/README.md | 24 ++++++++++++------------
1 file changed, 12 insertions(+), 12 deletions(-)
diff --git a/zh_CN/examples/assessors/README.md b/zh_CN/examples/assessors/README.md
index 1a2903fab5..d058123b1b 100644
--- a/zh_CN/examples/assessors/README.md
+++ b/zh_CN/examples/assessors/README.md
@@ -1,10 +1,10 @@
-# Define your own Assessor
+# 自定义评估器
-*Assessor receive intermediate result from Trial and decide whether the Trial should be killed. Once the Trial experiment meets the early stop conditions, the assessor will kill the Trial.*
+*评估器从尝试中接收中间结果,并决定此尝试是否应该终止。 一旦尝试满足提前终止条件,评估器将终止此尝试。*
-So, if users want to implement a customized Assessor, they only need to:
+因此,如果要自定义评估器,需要:
-**1) Inherit an assessor of a base Assessor class**
+**1) 继承于 Assessor 基类,创建评估器类**
```python
from nni.assessor import Assessor
@@ -14,7 +14,7 @@ class CustomizedAssessor(Assessor):
...
```
-**2) Implement assess trial function**
+**2) 实现评估尝试的函数**
```python
from nni.assessor import Assessor, AssessResult
@@ -25,15 +25,15 @@ class CustomizedAssessor(Assessor):
def assess_trial(self, trial_history):
"""
- Determines whether a trial should be killed. Must override.
- trial_history: a list of intermediate result objects.
- Returns AssessResult.Good or AssessResult.Bad.
+ 决定是否应该终止尝试。 必须重载。
+ trial_history: 中间结果列表对象。
+ 返回 AssessResult.Good 或 AssessResult.Bad。
"""
- # you code implement here.
+ # 代码实现于此处。
...
```
-**3) Write a script to run Assessor**
+**3) 实现脚本来运行评估器**
```python
import argparse
@@ -42,7 +42,7 @@ import CustomizedAssesor
def main():
parser = argparse.ArgumentParser(description='parse command line parameters.')
- # parse your assessor arg here.
+ # 在这里解析评估器的参数
...
FLAGS, unparsed = parser.parse_known_args()
@@ -52,7 +52,7 @@ def main():
main()
```
-Please noted in 2). The object ```trial_history``` are exact the object that Trial send to Assesor by using SDK ```report_intermediate_result``` function.
+注意 2) 中。 对象 ```trial_history``` are exact the object that Trial send to Assesor by using SDK ```report_intermediate_result``` function.
Also, user could override the ```run``` function in Assessor to control the process logic.
From 40be919f42b21a21eba21ac131cb4475314b1eb0 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Mon, 7 Jan 2019 17:36:45 +0800
Subject: [PATCH 0243/1573] New translations README.md (Chinese Simplified)
---
zh_CN/examples/assessors/README.md | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/zh_CN/examples/assessors/README.md b/zh_CN/examples/assessors/README.md
index d058123b1b..32d46effe6 100644
--- a/zh_CN/examples/assessors/README.md
+++ b/zh_CN/examples/assessors/README.md
@@ -38,11 +38,11 @@ class CustomizedAssessor(Assessor):
```python
import argparse
-import CustomizedAssesor
+import CustomizedAssessor
def main():
parser = argparse.ArgumentParser(description='parse command line parameters.')
- # 在这里解析评估器的参数
+ # parse your assessor arg here.
...
FLAGS, unparsed = parser.parse_known_args()
@@ -52,10 +52,10 @@ def main():
main()
```
-注意 2) 中。 对象 ```trial_history``` are exact the object that Trial send to Assesor by using SDK ```report_intermediate_result``` function.
+注意 2) 中, 对象 `trial_history` 和 `report_intermediate_result` 函数返回给评估器的完全一致。
-Also, user could override the ```run``` function in Assessor to control the process logic.
+也可以重载评估器的 `run` 函数来控制过程逻辑。
-More detail example you could see:
+更多样例,可参考:
> - [Base-Assessor](https://msrasrg.visualstudio.com/NeuralNetworkIntelligenceOpenSource/_git/Default?_a=contents&path=%2Fsrc%2Fsdk%2Fpynni%2Fnni%2Fassessor.py&version=GBadd_readme)
\ No newline at end of file
From 651afa851a61c740ada60b6ef934729a6dadd172 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Mon, 7 Jan 2019 17:42:14 +0800
Subject: [PATCH 0244/1573] New translations README.md (Chinese Simplified)
---
zh_CN/examples/trials/cifar10_pytorch/README.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/zh_CN/examples/trials/cifar10_pytorch/README.md b/zh_CN/examples/trials/cifar10_pytorch/README.md
index e5b6c87ec2..00c0d4bae4 100644
--- a/zh_CN/examples/trials/cifar10_pytorch/README.md
+++ b/zh_CN/examples/trials/cifar10_pytorch/README.md
@@ -1,3 +1,3 @@
-This example requires pytorch. pytorch install package should be chosen based on python version and cuda version.
+此样例需要安装 Pytorch。 Pytorch 安装包需要选择所基于的 Python 和 CUDA 版本。
-Here is an example of the environment python==3.5 and cuda == 8.0, then using the following commands to install pytorch: python3 -m pip install http://download.pytorch.org/whl/cu80/torch-0.4.1-cp35-cp35m-linux_x86_64.whl python3 -m pip install torchvision
\ No newline at end of file
+以下是 python==3.5 和 cuda == 8.0 下的环境样例,使用下列命令来安装 Pytorch: python3 -m pip install http://download.pytorch.org/whl/cu80/torch-0.4.1-cp35-cp35m-linux_x86_64.whl python3 -m pip install torchvision
\ No newline at end of file
From 739f906c66318f68129456a8051ed89073197b7f Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Mon, 7 Jan 2019 17:42:16 +0800
Subject: [PATCH 0245/1573] New translations README.md (Chinese Simplified)
---
zh_CN/examples/trials/ga_squad/README.md | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/zh_CN/examples/trials/ga_squad/README.md b/zh_CN/examples/trials/ga_squad/README.md
index 9ba6f34a43..8459904c59 100644
--- a/zh_CN/examples/trials/ga_squad/README.md
+++ b/zh_CN/examples/trials/ga_squad/README.md
@@ -1,10 +1,10 @@
-# Automatic Model Architecture Search for Reading Comprehension
+# 在阅读理解上使用自动模型架构搜索
-This example shows us how to use Genetic Algorithm to find good model architectures for Reading Comprehension task.
+该样例展示了如何使用遗传算法为阅读理解任务找到好的模型架构。
-## Search Space
+## 搜索空间
-Since attention and recurrent neural network (RNN) module have been proven effective in Reading Comprehension. We conclude the search space as follow:
+对于阅读理解项目,注意力和循环神经网络(RNN)模块已经被证明非常有效。 使用的搜索空间如下:
1. IDENTITY (Effectively means keep training).
2. INSERT-RNN-LAYER (Inserts a LSTM. Comparing the performance of GRU and LSTM in our experiment, we decided to use LSTM here.)
From 7664c5fe9628a20d51959b9e2009537970bc0d48 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Mon, 7 Jan 2019 17:45:57 +0800
Subject: [PATCH 0246/1573] New translations README.md (Chinese Simplified)
---
zh_CN/examples/trials/ga_squad/README.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/zh_CN/examples/trials/ga_squad/README.md b/zh_CN/examples/trials/ga_squad/README.md
index 8459904c59..059c4d6346 100644
--- a/zh_CN/examples/trials/ga_squad/README.md
+++ b/zh_CN/examples/trials/ga_squad/README.md
@@ -6,7 +6,7 @@
对于阅读理解项目,注意力和循环神经网络(RNN)模块已经被证明非常有效。 使用的搜索空间如下:
-1. IDENTITY (Effectively means keep training).
+1. IDENTITY (Effectively 表示继续训练)。
2. INSERT-RNN-LAYER (Inserts a LSTM. Comparing the performance of GRU and LSTM in our experiment, we decided to use LSTM here.)
3. REMOVE-RNN-LAYER
4. INSERT-ATTENTION-LAYER(Inserts a attention layer.)
@@ -14,7 +14,7 @@
6. ADD-SKIP (Identity between random layers).
7. REMOVE-SKIP (Removes random skip).
-![ga-squad-logo](./ga_squad.png)
+![ga-squad-logo](../../../../examples/trials/ga_squad/ga_squad.png)
## New version
From fa72f10657801a913fc91414b00def8215f72d0a Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Mon, 7 Jan 2019 17:47:35 +0800
Subject: [PATCH 0247/1573] New translations README.md (Chinese Simplified)
---
zh_CN/examples/trials/ga_squad/README.md | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/zh_CN/examples/trials/ga_squad/README.md b/zh_CN/examples/trials/ga_squad/README.md
index 059c4d6346..a586d4ea8d 100644
--- a/zh_CN/examples/trials/ga_squad/README.md
+++ b/zh_CN/examples/trials/ga_squad/README.md
@@ -35,16 +35,18 @@ Execute the following command to download needed files using the downloading scr
### Download manually
1. download "dev-v1.1.json" and "train-v1.1.json" in https://rajpurkar.github.io/SQuAD-explorer/
-
+
+ ```bash
wget https://rajpurkar.github.io/SQuAD-explorer/dataset/train-v1.1.json
wget https://rajpurkar.github.io/SQuAD-explorer/dataset/dev-v1.1.json
-
+ ```
2. download "glove.840B.300d.txt" in https://nlp.stanford.edu/projects/glove/
-
+
+ ```bash
wget http://nlp.stanford.edu/data/glove.840B.300d.zip
unzip glove.840B.300d.zip
-
+ ```
### Update configuration
From 289603f96abc34212fb55fda23bec7a310fc81be Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Mon, 7 Jan 2019 17:57:08 +0800
Subject: [PATCH 0248/1573] New translations README.md (Chinese Simplified)
---
zh_CN/examples/trials/ga_squad/README.md | 54 ++++++++++++------------
1 file changed, 27 insertions(+), 27 deletions(-)
diff --git a/zh_CN/examples/trials/ga_squad/README.md b/zh_CN/examples/trials/ga_squad/README.md
index a586d4ea8d..32618007a1 100644
--- a/zh_CN/examples/trials/ga_squad/README.md
+++ b/zh_CN/examples/trials/ga_squad/README.md
@@ -7,59 +7,59 @@
对于阅读理解项目,注意力和循环神经网络(RNN)模块已经被证明非常有效。 使用的搜索空间如下:
1. IDENTITY (Effectively 表示继续训练)。
-2. INSERT-RNN-LAYER (Inserts a LSTM. Comparing the performance of GRU and LSTM in our experiment, we decided to use LSTM here.)
+2. INSERT-RNN-LAYER (插入 LSTM。 在实验中比较了 GRU 和 LSTM 的性能后,我们决定在这里采用 LSTM。)
3. REMOVE-RNN-LAYER
-4. INSERT-ATTENTION-LAYER(Inserts a attention layer.)
+4. INSERT-ATTENTION-LAYER (插入注意力层。)
5. REMOVE-ATTENTION-LAYER
-6. ADD-SKIP (Identity between random layers).
-7. REMOVE-SKIP (Removes random skip).
+6. ADD-SKIP (在随机层之间一致).
+7. REMOVE-SKIP (移除随机跳过).
![ga-squad-logo](../../../../examples/trials/ga_squad/ga_squad.png)
-## New version
+## 新版本
-Also we have another version which time cost is less and performance is better. We will release soon.
+另一个时间更快,性能更好的版本正在开发中。 很快将发布。
-# How to run this example?
+# 如何运行此样例?
-## Run this example on local or remote
+## 在本机或远程上运行此样例
-### Use downloading script to download data
+### 使用下载脚本来下载数据
-Execute the following command to download needed files using the downloading script:
+执行下列命令来下载所需要的数据:
chmod +x ./download.sh
./download.sh
-### Download manually
+### 手动下载
-1. download "dev-v1.1.json" and "train-v1.1.json" in https://rajpurkar.github.io/SQuAD-explorer/
+1. 在 https://rajpurkar.github.io/SQuAD-explorer/ 下载 "dev-v1.1.json" 和 "train-v1.1.json"。
```bash
wget https://rajpurkar.github.io/SQuAD-explorer/dataset/train-v1.1.json
wget https://rajpurkar.github.io/SQuAD-explorer/dataset/dev-v1.1.json
```
-2. download "glove.840B.300d.txt" in https://nlp.stanford.edu/projects/glove/
+2. 在 https://nlp.stanford.edu/projects/glove/ 下载 "glove.840B.300d.txt"。
```bash
wget http://nlp.stanford.edu/data/glove.840B.300d.zip
unzip glove.840B.300d.zip
```
-### Update configuration
+### 更新配置
-Modify `nni/examples/trials/ga_squad/config.yml`, here is the default configuration:
+修改 `nni/examples/trials/ga_squad/config.yml`,以下是默认配置:
authorName: default
experimentName: example_ga_squad
trialConcurrency: 1
maxExecDuration: 1h
maxTrialNum: 1
- #choice: local, remote
+ #可选项: local, remote
trainingServicePlatform: local
- #choice: true, false
+ #可选项: true, false
useAnnotation: false
tuner:
codeDir: ~/nni/examples/tuners/ga_customer_tuner
@@ -73,33 +73,33 @@ Modify `nni/examples/trials/ga_squad/config.yml`, here is the default configurat
gpuNum: 0
-In the "trial" part, if you want to use GPU to perform the architecture search, change `gpuNum` from `0` to `1`. You need to increase the `maxTrialNum` and `maxExecDuration`, according to how long you want to wait for the search result.
+在 "trial" 部分中,如果需要使用 GPU 来进行架构搜索,可将 `gpuNum` 从 `0` 改为 `1`。 根据训练时长,可以增加 `maxTrialNum` 和 `maxExecDuration`。
-`trialConcurrency` is the number of trials running concurrently, which is the number of GPUs you want to use, if you are setting `gpuNum` to 1.
+`trialConcurrency` 是并发运行的尝试的数量。如果将 `gpuNum` 设置为 1,则需要与 GPU 数量一致。
-### submit this job
+### 提交任务
nnictl create --config ~/nni/examples/trials/ga_squad/config.yml
-## Run this example on OpenPAI
+## 在 OpenPAI 上运行此样例
-Due to the memory limitation of upload, we only upload the source code and complete the data download and training on OpenPAI. This experiment requires sufficient memory that `memoryMB >= 32G`, and the training may last for several hours.
+根据上传大小的限制,仅上传源代码,并在训练过程中下载数据。 本实验需要的内存 `memoryMB >= 32G`,训练过程可能需要数小时。
-### Update configuration
+### 更新配置
-Modify `nni/examples/trials/ga_squad/config_pai.yaml`, here is the default configuration:
+修改 `nni/examples/trials/ga_squad/config_pai.yaml`,以下是默认配置:
authorName: default
experimentName: example_ga_squad
trialConcurrency: 1
maxExecDuration: 1h
maxTrialNum: 10
- #choice: local, remote, pai
+ #可选项: local, remote, pai
trainingServicePlatform: pai
- #choice: true, false
+ #可选项: true, false
useAnnotation: false
- #Your nni_manager ip
+ # nni_manager 的 ip
nniManagerIp: 10.10.10.10
tuner:
codeDir: ../../tuners/ga_customer_tuner
From c57bfc250df9b63c038a2eaa478b85a19ab92c31 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Mon, 7 Jan 2019 18:02:01 +0800
Subject: [PATCH 0249/1573] New translations README.md (Chinese Simplified)
---
zh_CN/examples/trials/ga_squad/README.md | 36 ++++++++++++------------
1 file changed, 18 insertions(+), 18 deletions(-)
diff --git a/zh_CN/examples/trials/ga_squad/README.md b/zh_CN/examples/trials/ga_squad/README.md
index 32618007a1..fb896d5453 100644
--- a/zh_CN/examples/trials/ga_squad/README.md
+++ b/zh_CN/examples/trials/ga_squad/README.md
@@ -113,45 +113,45 @@
gpuNum: 0
cpuNum: 1
memoryMB: 32869
- #The docker image to run nni job on pai
+ #在 OpenPAI 上运行 NNI 任务的 Docker 映像
image: msranni/nni:latest
- #The hdfs directory to store data on pai, format 'hdfs://host:port/directory'
+ #在 OpenPAI 的 hdfs 目录上存储数据的目录,如:'hdfs://host:port/directory'
dataDir: hdfs://10.10.10.10:9000/username/nni
- #The hdfs directory to store output data generated by nni, format 'hdfs://host:port/directory'
+ #在 OpenPAI 的 hdfs 目录上存储输出的目录,如:'hdfs://host:port/directory'
outputDir: hdfs://10.10.10.10:9000/username/nni
paiConfig:
- #The username to login pai
+ #登录 OpenPAI 的用户名
userName: username
- #The password to login pai
+ #登录 OpenPAI 的密码
passWord: password
- #The host of restful server of pai
+ # OpenPAI 的 RESTful 服务器地址
host: 10.10.10.10
-Please change the default value to your personal account and machine information. Including `nniManagerIp`, `dataDir`, `outputDir`, `userName`, `passWord` and `host`.
+将默认值改为个人账户和服务器信息。 包括 `nniManagerIp`, `dataDir`, `outputDir`, `userName`, `passWord` 和 `host`。
-In the "trial" part, if you want to use GPU to perform the architecture search, change `gpuNum` from `0` to `1`. You need to increase the `maxTrialNum` and `maxExecDuration`, according to how long you want to wait for the search result.
+在 "trial" 部分中,如果需要使用 GPU 来进行架构搜索,可将 `gpuNum` 从 `0` 改为 `1`。 根据训练时长,可以增加 `maxTrialNum` 和 `maxExecDuration`。
-`trialConcurrency` is the number of trials running concurrently, which is the number of GPUs you want to use, if you are setting `gpuNum` to 1.
+`trialConcurrency` 是并发运行的尝试的数量。如果将 `gpuNum` 设置为 1,则需要与 GPU 数量一致。
-### submit this job
+### 提交任务
nnictl create --config ~/nni/examples/trials/ga_squad/config_pai.yml
-# Techinal details about the trial
+# 关于此尝试的技术细节
-## How does it works
+## 实现方法
-The evolution-algorithm based architecture for question answering has two different parts just like any other examples: the trial and the tuner.
+基于进化算法架构的问答和其它样例一样,有两个部分:尝试和调参器。
-### The trial
+### 尝试
-The trial has a lot of different files, functions and classes. Here we will only give most of those files a brief introduction:
+尝试有大量的文件、函数和类。 这里只简单介绍最重要的文件:
-* `attention.py` contains an implementation for attention mechanism in Tensorflow.
-* `data.py` contains functions for data preprocessing.
-* `evaluate.py` contains the evaluation script.
+* `attention.py` 包含了 Tensorflow 注意力算法的实现。
+* `data.py` 包含了数据处理函数。
+* `evaluate.py` 包含了评估脚本。
* `graph.py` contains the definition of the computation graph.
* `rnn.py` contains an implementation for GRU in Tensorflow.
* `train_model.py` is a wrapper for the whole question answering model.
From 7762439fc9a5754c1d2c5ccf87e5d72070146d62 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Mon, 7 Jan 2019 18:11:43 +0800
Subject: [PATCH 0250/1573] New translations README.md (Chinese Simplified)
---
zh_CN/examples/trials/ga_squad/README.md | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/zh_CN/examples/trials/ga_squad/README.md b/zh_CN/examples/trials/ga_squad/README.md
index fb896d5453..25ed8d20aa 100644
--- a/zh_CN/examples/trials/ga_squad/README.md
+++ b/zh_CN/examples/trials/ga_squad/README.md
@@ -152,13 +152,13 @@
* `attention.py` 包含了 Tensorflow 注意力算法的实现。
* `data.py` 包含了数据处理函数。
* `evaluate.py` 包含了评估脚本。
-* `graph.py` contains the definition of the computation graph.
-* `rnn.py` contains an implementation for GRU in Tensorflow.
-* `train_model.py` is a wrapper for the whole question answering model.
+* `graph.py` 包含了计算图的定义。
+* `rnn.py` 包含了 TensorFlow 的 GRU 实现。
+* `train_model.py` 是整个文档模型的封装。
-Among those files, `trial.py` and `graph_to_tf.py` is special.
+这些文件中,`trial.py` 和 `graph_to_tf.py` 非常特别。
-`graph_to_tf.py` has a function named as `graph_to_network`, here is its skeleton code:
+`graph_to_tf.py` 有一个叫做 `graph_to_network`的函数,其框架代码如下:
def graph_to_network(input1,
input2,
@@ -187,15 +187,15 @@ Among those files, `trial.py` and `graph_to_tf.py` is special.
# ......
elif graph.layers[topo_i].graph_type == LayerType.attention.value:
# ......
- # More layers to handle
+ # 处理更多层
-As we can see, this function is actually a compiler, that converts the internal model DAG configuration (which will be introduced in the `Model configuration format` section) `graph`, to a Tensorflow computation graph.
+正如我们看到的,这个函数实际上是个编译器。它将内部模型的 DAG 配置`图`(在`模型配置格式`章节介绍)转换为 Tensorflow 的计算图。
topology = graph.is_topology()
-performs topological sorting on the internal graph representation, and the code inside the loop:
+将内部图表示进行拓扑排序,代码在下列循环中:
for _, topo_i in enumerate(topology):
From d46fa81d128738086b3b84e44ea2a8d67eb9364d Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Mon, 7 Jan 2019 18:22:32 +0800
Subject: [PATCH 0251/1573] New translations README.md (Chinese Simplified)
---
zh_CN/examples/trials/ga_squad/README.md | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/zh_CN/examples/trials/ga_squad/README.md b/zh_CN/examples/trials/ga_squad/README.md
index 25ed8d20aa..75ee64c99f 100644
--- a/zh_CN/examples/trials/ga_squad/README.md
+++ b/zh_CN/examples/trials/ga_squad/README.md
@@ -200,17 +200,17 @@
for _, topo_i in enumerate(topology):
-performs actually conversion that maps each layer to a part in Tensorflow computation graph.
+执行实际转换,将每层映射为 TensorFlow 计算图中的一部分。
-### The tuner
+### 调参器
-The tuner is much more simple than the trial. They actually share the same `graph.py`. Besides, the tuner has a `customer_tuner.py`, the most important class in which is `CustomerTuner`:
+调参器比尝试代码简单很多。 它们共用了同样的 `graph.py`。 此外,调参器有 `customer_tuner.py`,其中最重要的类是 `CustomerTuner`:
class CustomerTuner(Tuner):
# ......
def generate_parameters(self, parameter_id):
- """Returns a set of trial graph config, as a serializable object.
+ """将一组尝试图配置作为序列化对象返回。
parameter_id : int
"""
if len(self.population) <= 0:
@@ -238,14 +238,14 @@ The tuner is much more simple than the trial. They actually share the same `grap
# ......
-As we can see, the overloaded method `generate_parameters` implements a pretty naive mutation algorithm. The code lines:
+重载函数 `generate_parameters` 实现了简单的变异算法。 代码如下:
if self.population[0].result > self.population[1].result:
self.population[0] = self.population[1]
indiv = copy.deepcopy(self.population[0])
-controls the mutation process. It will always take two random individuals in the population, only keeping and mutating the one with better result.
+控制突变过程。 It will always take two random individuals in the population, only keeping and mutating the one with better result.
## Model configuration format
From a380d324e6baf594469afdd49ecd43ddd8094079 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Mon, 7 Jan 2019 18:28:08 +0800
Subject: [PATCH 0252/1573] New translations README.md (Chinese Simplified)
---
zh_CN/examples/trials/ga_squad/README.md | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/zh_CN/examples/trials/ga_squad/README.md b/zh_CN/examples/trials/ga_squad/README.md
index 75ee64c99f..9bf0859cd3 100644
--- a/zh_CN/examples/trials/ga_squad/README.md
+++ b/zh_CN/examples/trials/ga_squad/README.md
@@ -245,11 +245,11 @@
indiv = copy.deepcopy(self.population[0])
-控制突变过程。 It will always take two random individuals in the population, only keeping and mutating the one with better result.
+控制突变过程。 它会在种群中随机取出两个个体,对更好结果的一个保留数据,并突变另一个。
-## Model configuration format
+## 模型配置格式
-Here is an example of the model configuration, which is passed from the tuner to the trial in the architecture search procedure.
+这是模型配置的样例,在架构搜索过程中,从调参器传入尝试代码。
{
"max_layer_num": 50,
@@ -295,11 +295,11 @@ Here is an example of the model configuration, which is passed from the tuner to
}
-Every model configuration will has a "layers" section, which is a JSON list of layer definitions. The definition of each layer is also a JSON object, where:
+每个模型配置都有一个 "layers" 部分,这是层定义的 JSON 列表。 每层的定义也是一个 JSON 对象:
-* `type` is the type of the layer. 0, 1, 2, 3, 4 correspond to attention, self-attention, RNN, input and output layer respectively.
-* `size` is the length of the output. "x", "y" correspond to document length / question length, respectively.
-* `input_size` is the number of inputs the layer has.
-* `input` is the indices of layers taken as input of this layer.
-* `output` is the indices of layers use this layer's output as their input.
-* `is_delete` means whether the layer is still available.
\ No newline at end of file
+* `type` 是层的类型。 0, 1, 2, 3, 4 对应注意力、自注意力、RNN、输入和输出层。
+* `size` 是输出的长度。 "x", "y" 对应文档长度和问题长度。
+* `input_size` 是该层的输入数量。
+* `input` 表示输入层的索引。
+* `output` 是输出层的索引,该层会作为这些层的输入。
+* `is_delete` 表示此层是否可用。
\ No newline at end of file
From 0e47820d5113890b96d53c102cc6cdb073a9b035 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Mon, 7 Jan 2019 18:32:38 +0800
Subject: [PATCH 0253/1573] New translations README.md (Chinese Simplified)
---
zh_CN/examples/trials/kaggle-tgs-salt/README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/zh_CN/examples/trials/kaggle-tgs-salt/README.md b/zh_CN/examples/trials/kaggle-tgs-salt/README.md
index 835bc9329b..c7d15ce4f0 100644
--- a/zh_CN/examples/trials/kaggle-tgs-salt/README.md
+++ b/zh_CN/examples/trials/kaggle-tgs-salt/README.md
@@ -1,4 +1,4 @@
-## 33rd place solution code for Kaggle [TGS Salt Identification Chanllenge](https://www.kaggle.com/c/tgs-salt-identification-challenge)
+## Kaggle 比赛 [TGS Salt Identification Chanllenge](https://www.kaggle.com/c/tgs-salt-identification-challenge) 第 33 名的解决方案
This example shows how to enable AutoML for competition code by running it on NNI without any code change. To run this code on NNI, firstly you need to run it standalone, then configure the config.yml and:
From fb053509678bb3307c8200402f447165f3101858 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Mon, 7 Jan 2019 18:32:40 +0800
Subject: [PATCH 0254/1573] New translations README.md (Chinese Simplified)
---
zh_CN/README.md | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/zh_CN/README.md b/zh_CN/README.md
index 2bc19c28ca..d0c9f87caa 100644
--- a/zh_CN/README.md
+++ b/zh_CN/README.md
@@ -19,15 +19,15 @@ NNI (Neural Network Intelligence) 是自动机器学习(AutoML)实验的工
* 定制自动机器学习算法,或比较不同的自动机器学习算法。
* 在自己的机器学习平台中支持自动机器学习。
-## Related Projects
+## 相关项目
-Targeting at openness and advancing state-of-art technology, [Microsoft Research (MSR)](https://www.microsoft.com/en-us/research/group/systems-research-group-asia/) had also released few other open source projects.
+以开发和先进技术为目标,[Microsoft Research (MSR)](https://www.microsoft.com/en-us/research/group/systems-research-group-asia/) 发布了一些开源项目。
* [OpenPAI](https://github.com/Microsoft/pai) : an open source platform that provides complete AI model training and resource management capabilities, it is easy to extend and supports on-premise, cloud and hybrid environments in various scale.
* [FrameworkController](https://github.com/Microsoft/frameworkcontroller) : an open source general-purpose Kubernetes Pod Controller that orchestrate all kinds of applications on Kubernetes by a single controller.
* [MMdnn](https://github.com/Microsoft/MMdnn) : A comprehensive, cross-framework solution to convert, visualize and diagnose deep neural network models. The "MM" in MMdnn stands for model management and "dnn" is an acronym for deep neural network. We encourage researchers and students leverage these projects to accelerate the AI development and research.
-## **Install & Verify**
+## **安装和验证**
**Install through pip**
From be4f6e1b6378747e31250c782d28cea186df05ad Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Mon, 7 Jan 2019 18:41:57 +0800
Subject: [PATCH 0255/1573] New translations README.md (Chinese Simplified)
---
zh_CN/examples/trials/kaggle-tgs-salt/README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/zh_CN/examples/trials/kaggle-tgs-salt/README.md b/zh_CN/examples/trials/kaggle-tgs-salt/README.md
index c7d15ce4f0..96520c1c6f 100644
--- a/zh_CN/examples/trials/kaggle-tgs-salt/README.md
+++ b/zh_CN/examples/trials/kaggle-tgs-salt/README.md
@@ -1,6 +1,6 @@
## Kaggle 比赛 [TGS Salt Identification Chanllenge](https://www.kaggle.com/c/tgs-salt-identification-challenge) 第 33 名的解决方案
-This example shows how to enable AutoML for competition code by running it on NNI without any code change. To run this code on NNI, firstly you need to run it standalone, then configure the config.yml and:
+此样例展示了如何在没有任何代码改动的情况下通过 NNI 来为竞赛代码使用自动机器学习。 要在 NNI 上运行此代码,首先需要单独运行它,然后配置 config.yml:
nnictl create --config config.yml
From 3d372cc2f2ea67565ade6bb86164c6a1d6a6b168 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Mon, 7 Jan 2019 18:41:58 +0800
Subject: [PATCH 0256/1573] New translations README.md (Chinese Simplified)
---
zh_CN/README.md | 92 ++++++++++++++++++++++++-------------------------
1 file changed, 46 insertions(+), 46 deletions(-)
diff --git a/zh_CN/README.md b/zh_CN/README.md
index d0c9f87caa..db4c2279bd 100644
--- a/zh_CN/README.md
+++ b/zh_CN/README.md
@@ -23,28 +23,28 @@ NNI (Neural Network Intelligence) 是自动机器学习(AutoML)实验的工
以开发和先进技术为目标,[Microsoft Research (MSR)](https://www.microsoft.com/en-us/research/group/systems-research-group-asia/) 发布了一些开源项目。
-* [OpenPAI](https://github.com/Microsoft/pai) : an open source platform that provides complete AI model training and resource management capabilities, it is easy to extend and supports on-premise, cloud and hybrid environments in various scale.
-* [FrameworkController](https://github.com/Microsoft/frameworkcontroller) : an open source general-purpose Kubernetes Pod Controller that orchestrate all kinds of applications on Kubernetes by a single controller.
-* [MMdnn](https://github.com/Microsoft/MMdnn) : A comprehensive, cross-framework solution to convert, visualize and diagnose deep neural network models. The "MM" in MMdnn stands for model management and "dnn" is an acronym for deep neural network. We encourage researchers and students leverage these projects to accelerate the AI development and research.
+* [OpenPAI](https://github.com/Microsoft/pai):作为开源平台,提供了完整的 AI 模型训练和资源管理能力,能轻松扩展,并支持各种规模的私有部署、云和混合环境。
+* [FrameworkController](https://github.com/Microsoft/frameworkcontroller):开源的通用 Kubernetes Pod 控制器,通过单个控制器来编排 Kubernetes 上所有类型的应用。
+* [MMdnn](https://github.com/Microsoft/MMdnn):一个完成、跨框架的解决方案,能够转换、可视化、诊断深度神经网络模型。 MMdnn 中的 "MM" 表示model management(模型管理),而 "dnn" 是 deep neural network(深度神经网络)的缩写。 我们鼓励研究人员和学生利用这些项目来加速 AI 开发和研究。
## **安装和验证**
-**Install through pip**
+**通过 pip 命令安装**
-* We support Linux and MacOS in current stage, Ubuntu 16.04 or higher, along with MacOS 10.14.1 are tested and supported. Simply run the following `pip install` in an environment that has `python >= 3.5`.
+* 当前支持 Linux 和 MacOS。测试并支持的版本包括:Ubuntu 16.04 及更高版本,MacOS 10.14.1。 在 `python >= 3.5` 的环境中,只需要运行 `pip install` 即可完成安装。
```bash
python3 -m pip install --upgrade nni
```
-* Note:
- * If you are in docker container (as root), please remove `--user` from the installation command.
- * If there is any error like `Segmentation fault`, please refer to [FAQ](docs/FAQ.md)
+* 注意:
+ * 如果在 docker 容器中以 root 运行,需要从上述安装命令中删除 `--user`。
+ * 如果遇到如`Segmentation fault` 这样的任何错误请参考 [常见问题](docs/FAQ.md)。
-**Install through source code**
+**通过源代码安装**
-* We support Linux (Ubuntu 16.04 or higher), MacOS (10.14.1) in our current stage.
-* Run the following commands in an environment that has `python >= 3.5`, `git` and `wget`.
+* 当前支持 Linux(Ubuntu 16.04 及更高版本) 和 MacOS(10.14.1)。
+* 在 `python >= 3.5` 的环境中运行命令: `git` 和 `wget`,确保安装了这两个组件。
```bash
git clone -b v0.4.1 https://github.com/Microsoft/nni.git
@@ -52,25 +52,25 @@ NNI (Neural Network Intelligence) 是自动机器学习(AutoML)实验的工
source install.sh
```
-For the system requirements of NNI, please refer to [Install NNI](docs/Installation.md)
+参考[安装 NNI](docs/Installation.md) 了解系统需求。
-**Verify install**
+**验证安装**
-The following example is an experiment built on TensorFlow. Make sure you have **TensorFlow installed** before running it.
+以下示例实验依赖于 TensorFlow 。 在运行前确保安装了 **TensorFlow**。
-* Download the examples via clone the source code.
+* 通过克隆源代码下载示例。
```bash
git clone -b v0.4.1 https://github.com/Microsoft/nni.git
```
-* Run the mnist example.
+* 运行 mnist 示例。
```bash
nnictl create --config nni/examples/trials/mnist/config.yml
```
-* Wait for the message `INFO: Successfully started experiment!` in the command line. This message indicates that your experiment has been successfully started. You can explore the experiment using the `Web UI url`.
+* 在命令行中等待输出 `INFO: Successfully started experiment!`。 此消息表明实验已成功启动。 通过命令行输出的 `Web UI url` 来访问实验的界面。
```
INFO: Starting restful server...
@@ -99,51 +99,51 @@ The following example is an experiment built on TensorFlow. Make sure you have *
```
-* Open the `Web UI url` in your browser, you can view detail information of the experiment and all the submitted trial jobs as shown below. [Here](docs/WebUI.md) are more Web UI pages.
+* 在浏览器中打开 `Web UI url`,可看到下图的实验详细信息,以及所有的尝试任务。 查看[这里的](docs/WebUI.md)更多页面示例。
|
|
-## **Documentation**
+## **文档**
-* [NNI overview](docs/Overview.md)
-* [Quick start](docs/GetStarted.md)
+* [NNI 概述](docs/Overview.md)
+* [快速入门](docs/GetStarted.md)
-## **How to**
+## **入门**
-* [Install NNI](docs/Installation.md)
-* [Use command line tool nnictl](docs/NNICTLDOC.md)
-* [Use NNIBoard](docs/WebUI.md)
-* [How to define search space](docs/SearchSpaceSpec.md)
-* [How to define a trial](docs/howto_1_WriteTrial.md)
-* [Config an experiment](docs/ExperimentConfig.md)
-* [How to use annotation](docs/howto_1_WriteTrial.md#nni-python-annotation)
+* [安装 NNI](docs/Installation.md)
+* [使用命令行工具 nnictl](docs/NNICTLDOC.md)
+* [使用 NNIBoard](docs/WebUI.md)
+* [如何定义搜索空间](docs/SearchSpaceSpec.md)
+* [如何定义一次尝试](docs/howto_1_WriteTrial.md)
+* [配置实验](docs/ExperimentConfig.md)
+* [如何使用标记](docs/howto_1_WriteTrial.md#nni-python-annotation)
-## **Tutorials**
+## **教程**
-* [Run an experiment on local (with multiple GPUs)?](docs/tutorial_1_CR_exp_local_api.md)
-* [Run an experiment on multiple machines?](docs/tutorial_2_RemoteMachineMode.md)
-* [Run an experiment on OpenPAI?](docs/PAIMode.md)
-* [Run an experiment on Kubeflow?](docs/KubeflowMode.md)
-* [Try different tuners and assessors](docs/tutorial_3_tryTunersAndAssessors.md)
-* [Implement a customized tuner](docs/howto_2_CustomizedTuner.md)
-* [Implement a customized assessor](examples/assessors/README.md)
-* [Use Genetic Algorithm to find good model architectures for Reading Comprehension task](examples/trials/ga_squad/README.md)
+* [在本机运行实验 (支持多 GPU 卡)](docs/tutorial_1_CR_exp_local_api.md)
+* [在多机上运行实验](docs/tutorial_2_RemoteMachineMode.md)
+* [在 OpenPAI 上运行实验](docs/PAIMode.md)
+* [在 Kubeflow 上运行实验。](docs/KubeflowMode.md)
+* [使用不同的调参器和评估器](docs/tutorial_3_tryTunersAndAssessors.md)
+* [实现自定义调参器](docs/howto_2_CustomizedTuner.md)
+* [实现自定义评估器](examples/assessors/README.md)
+* [使用进化算法为阅读理解任务找到好模型](examples/trials/ga_squad/README.md)
-## **Contribute**
+## **贡献**
-This project welcomes contributions and suggestions, we use [GitHub issues](https://github.com/Microsoft/nni/issues) for tracking requests and bugs.
+欢迎贡献代码或提交建议,可在 [GitHub issues](https://github.com/Microsoft/nni/issues) 跟踪需求和缺陷。
-Issues with the **good first issue** label are simple and easy-to-start ones that we recommend new contributors to start with.
+推荐新贡献者从标有 **good first issue** 的简单需求开始。
-To set up environment for NNI development, refer to the instruction: [Set up NNI developer environment](docs/SetupNNIDeveloperEnvironment.md)
+如要安装 NNI 开发环境,参考: [配置 NNI 开发环境](docs/SetupNNIDeveloperEnvironment.md)。
-Before start coding, review and get familiar with the NNI Code Contribution Guideline: [Contributing](docs/CONTRIBUTING.md)
+在写代码之前,请查看并熟悉 NNI 代码贡献指南:[贡献](docs/CONTRIBUTING.md)。
-We are in construction of the instruction for [How to Debug](docs/HowToDebug.md), you are also welcome to contribute questions or suggestions on this area.
+我们正在编写 [如何调试](docs/HowToDebug.md) 的页面,欢迎提交建议和问题。
-## **License**
+## **许可协议**
-The entire codebase is under [MIT license](https://github.com/Microsoft/nni/blob/master/LICENSE)
\ No newline at end of file
+整个代码库遵循 [MIT 许可协议](https://github.com/Microsoft/nni/blob/master/LICENSE)
\ No newline at end of file
From a0fcda36b214c567820178e0e774c27b271e9198 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Mon, 7 Jan 2019 18:52:19 +0800
Subject: [PATCH 0257/1573] New translations README.md (Chinese Simplified)
---
.../examples/trials/kaggle-tgs-salt/README.md | 30 +++++++++----------
1 file changed, 15 insertions(+), 15 deletions(-)
diff --git a/zh_CN/examples/trials/kaggle-tgs-salt/README.md b/zh_CN/examples/trials/kaggle-tgs-salt/README.md
index 96520c1c6f..662ec750f8 100644
--- a/zh_CN/examples/trials/kaggle-tgs-salt/README.md
+++ b/zh_CN/examples/trials/kaggle-tgs-salt/README.md
@@ -5,46 +5,46 @@
nnictl create --config config.yml
-This code can still run standalone, the code is for reference, it requires at least one week effort to reproduce the competition result.
+此代码仍然能够单独运行,但需要至少一周来重现竞赛的结果。
-[Solution summary](https://www.kaggle.com/c/tgs-salt-identification-challenge/discussion/69593)
+[解决方案概述](https://www.kaggle.com/c/tgs-salt-identification-challenge/discussion/69593)
-Preparation:
+准备:
-Download competition data, run preprocess.py to prepare training data.
+下载完整的数据,运行 preprocess.py 来准备数据。
-Stage 1:
+阶段 1:
-Train fold 0-3 for 100 epochs, for each fold, train 3 models:
+将目录 0-3 训练 100 个 epoch,对于每个目录,训练三个模型:
python3 train.py --ifolds 0 --epochs 100 --model_name UNetResNetV4
python3 train.py --ifolds 0 --epochs 100 --model_name UNetResNetV5 --layers 50
python3 train.py --ifolds 0 --epochs 100 --model_name UNetResNetV6
-Stage 2:
+阶段 2:
-Fine tune stage 1 models for 300 epochs with cosine annealing lr scheduler:
+使用余弦退火学习率调度器运行 300 次 epoch 来微调阶段 1 的模型:
python3 train.py --ifolds 0 --epochs 300 --lrs cosine --lr 0.001 --min_lr 0.0001 --model_name UNetResNetV4
-Stage 3:
+阶段 3:
-Fine tune Stage 2 models with depths channel:
+用深度通道微调阶段 2 的模型:
python3 train.py --ifolds 0 --epochs 300 --lrs cosine --lr 0.001 --min_lr 0.0001 --model_name UNetResNetV4 --depths
-Stage 4:
+阶段 4:
-Make prediction for each model, then ensemble the result to generate peasdo labels.
+为每个模型进行预测,组合结果生成伪标签。
-Stage 5:
+阶段 5:
-Fine tune stage 3 models with pseudo labels
+用伪标签微调阶段 3 的模型
python3 train.py --ifolds 0 --epochs 300 --lrs cosine --lr 0.001 --min_lr 0.0001 --model_name UNetResNetV4 --depths --pseudo
-Stage 6: Ensemble all stage 3 and stage 5 models.
\ No newline at end of file
+阶段 6: 将所有阶段 3 和阶段 5 的模型组合起来。
\ No newline at end of file
From 9b4650b99639f6ae1d060bb4ddbfb25035121c11 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Mon, 7 Jan 2019 18:52:21 +0800
Subject: [PATCH 0258/1573] New translations README.md (Chinese Simplified)
---
zh_CN/examples/trials/network_morphism/README.md | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/zh_CN/examples/trials/network_morphism/README.md b/zh_CN/examples/trials/network_morphism/README.md
index 9e56b183b4..21367cc631 100644
--- a/zh_CN/examples/trials/network_morphism/README.md
+++ b/zh_CN/examples/trials/network_morphism/README.md
@@ -1,22 +1,22 @@
-# Network Morphism for Automatic Model Architecture Search in NNI
+# 在 NNI 中用网络形态算法来进行自动模型结构搜索
-The Network Morphism is a build-in Tuner using network morphism techniques to search and evaluate the new network architecture. This example shows us how to use it to find good model architectures for deep learning.
+Network Morphism (网络形态)是内置的调参器,它使用了网络形态技术来搜索和评估新的网络结构。 该样例展示了如何使用它来为深度学习找到好的模型架构。
-## How to run this example?
+## 如何运行此样例?
-### 1. Training framework support
+### 1. 训练框架支持
-The network morphism now is framework-based, and we have not implemented the framework-free methods. The training frameworks which we have supported yet are Pytorch and Keras. If you get familiar with the intermediate JSON format, you can build your own model in your own training framework. In the future, we will change to intermediate format from JSON to ONNX in order to get a [standard intermediate representation spec](https://github.com/onnx/onnx/blob/master/docs/IR.md).
+网络形态当前基于框架,还没有实现与框架脱离的方法。 当前支持 Pytorch 和 Keras。 如果熟悉 JSON 中间格式,可以在自定义的训练框架中生成自己的模型。 随后,我们会将中间结果从 JSON 转换为 ONNX,从而能够成为[标准的中间表达](https://github.com/onnx/onnx/blob/master/docs/IR.md)。
-### 2. Install the requirements
+### 2. 安装需求
```bash
-# install the requirements packages
+# 安装依赖包
cd examples/trials/network_morphism/
pip install -r requirements.txt
```
-### 3. Update configuration
+### 3. 更新配置
Modify `examples/trials/network_morphism/cifar10/config.yaml` to fit your own task, note that searchSpacePath is not required in our configuration. Here is the default configuration:
From dedfefbcae548283957ad37710c2e7661b8f3aa2 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Mon, 7 Jan 2019 19:01:54 +0800
Subject: [PATCH 0259/1573] New translations README.md (Chinese Simplified)
---
.../trials/network_morphism/README.md | 56 +++++++++----------
1 file changed, 28 insertions(+), 28 deletions(-)
diff --git a/zh_CN/examples/trials/network_morphism/README.md b/zh_CN/examples/trials/network_morphism/README.md
index 21367cc631..dabc6f2522 100644
--- a/zh_CN/examples/trials/network_morphism/README.md
+++ b/zh_CN/examples/trials/network_morphism/README.md
@@ -18,7 +18,7 @@ pip install -r requirements.txt
### 3. 更新配置
-Modify `examples/trials/network_morphism/cifar10/config.yaml` to fit your own task, note that searchSpacePath is not required in our configuration. Here is the default configuration:
+修改 `examples/trials/network_morphism/cifar10/config.yaml` 来适配自己的任务。注意,searchSpacePath 在配置中不需要。 默认配置:
```yaml
authorName: default
@@ -26,83 +26,83 @@ experimentName: example_cifar10-network-morphism
trialConcurrency: 1
maxExecDuration: 48h
maxTrialNum: 200
-#choice: local, remote, pai
+#可选项: local, remote, pai
trainingServicePlatform: local
-#choice: true, false
+#可选项: true, false
useAnnotation: false
tuner:
- #choice: TPE, Random, Anneal, Evolution, BatchTuner, NetworkMorphism
- #SMAC (SMAC should be installed through nnictl)
+ #可选项: TPE, Random, Anneal, Evolution, BatchTuner, NetworkMorphism
+ #SMAC (SMAC 需要通过 nnictl 安装)
builtinTunerName: NetworkMorphism
classArgs:
- #choice: maximize, minimize
+ #可选项: maximize, minimize
optimize_mode: maximize
- #for now, this tuner only supports cv domain
+ #当前仅支持视觉领域
task: cv
- #modify to fit your input image width
+ #修改来适配自己的图像大小
input_width: 32
- #modify to fit your input image channel
+ #修改来适配自己的图像通道
input_channel: 3
- #modify to fit your number of classes
+ #修改来适配自己的分类数量
n_output_node: 10
trial:
- # your own command here
+ # 自己的命令
command: python3 cifar10_keras.py
codeDir: .
gpuNum: 0
```
-In the "trial" part, if you want to use GPU to perform the architecture search, change `gpuNum` from `0` to `1`. You need to increase the `maxTrialNum` and `maxExecDuration`, according to how long you want to wait for the search result.
+在 "trial" 部分中,如果需要使用 GPU 来进行架构搜索,可将 `gpuNum` 从 `0` 改为 `1`。 根据训练时长,可以增加 `maxTrialNum` 和 `maxExecDuration`。
-`trialConcurrency` is the number of trials running concurrently, which is the number of GPUs you want to use, if you are setting `gpuNum` to 1.
+`trialConcurrency` 是并发运行的尝试的数量。如果将 `gpuNum` 设置为 1,则需要与 GPU 数量一致。
-### 4. Call "json\_to\_graph()" function in your own code
+### 4. 在代码中调用 "json\_to\_graph()" 函数
-Modify your code and call "json\_to\_graph()" function to build a pytorch model or keras model from received json string. Here is the simple example.
+修改代码来调用 "json\_to\_graph()" 函数来从收到的 JSON 字符串生成一个 Pytorch 或 Keras 模型。 简单样例:
```python
import nni
from nni.networkmorphism_tuner.graph import json_to_graph
def build_graph_from_json(ir_model_json):
- """build a pytorch model from json representation
+ """从 JSON 生成 Pytorch 模型
"""
graph = json_to_graph(ir_model_json)
model = graph.produce_torch_model()
return model
-# trial get next parameter from network morphism tuner
+# 从网络形态调参器中获得下一组参数
RCV_CONFIG = nni.get_next_parameter()
-# call the function to build pytorch model or keras model
+# 调用函数来生成 Pytorch 或 Keras 模型
net = build_graph_from_json(RCV_CONFIG)
-# training procedure
+# 训练过程
# ....
-# report the final accuracy to nni
+# 将最终精度返回给 NNI
nni.report_final_result(best_acc)
```
-### 5. Submit this job
+### 5. 提交任务
```bash
-# You can use nni command tool "nnictl" to create the a job which submit to the nni
-# finally you successfully commit a Network Morphism Job to nni
+# 可以使用命令行工具 "nnictl" 来创建任务
+# 最终会成功提交一个网络形态任务到 NNI
nnictl create --config config.yaml
```
-## Trial Examples
+## 尝试样例
-The trial has some examples which can guide you which located in `examples/trials/network_morphism/`. You can refer to it and modify to your own task. Hope this will help you to build your code.
+下面的代码可在 `examples/trials/network_morphism/` 中找到。 可参考此代码来更新自己的任务。 希望它对你有用。
### FashionMNIST
-`Fashion-MNIST` is a dataset of [Zalando](https://jobs.zalando.com/tech/)'s article images—consisting of a training set of 60,000 examples and a test set of 10,000 examples. Each example is a 28x28 grayscale image, associated with a label from 10 classes. It is a modern image classification dataset widely used to replacing MNIST as a baseline dataset, because the dataset MNIST is too easy and overused.
+`Fashion-MNIST` 是来自 [Zalando](https://jobs.zalando.com/tech/) 文章的图片 — 有 60,000 个样例的训练集和 10,000 个样例的测试集。 每个样例是 28x28 的灰度图,分为 10 个类别。 由于 MNIST 数据集过于简单,该数据集现在开始被广泛使用,用来替换 MNIST 作为基准数据集。
-There are two examples, [FashionMNIST-keras.py](./FashionMNIST/FashionMNIST_keras.py) and [FashionMNIST-pytorch.py](./FashionMNIST/FashionMNIST_pytorch.py). Attention, you should change the `input_width` to 28 and `input_channel` to 1 in `config.yaml` for this dataset.
+这里有两个样例,[FashionMNIST-keras.py](./FashionMNIST/FashionMNIST_keras.py) 和 [FashionMNIST-pytorch.py](./FashionMNIST/FashionMNIST_pytorch.py)。 注意,在 `config.yaml` 中,需要为此数据集修改 `input_width` 为 28,以及 `input_channel` 为 1。
### Cifar10
-The `CIFAR-10` dataset [Canadian Institute For Advanced Research](https://www.cifar.ca/) is a collection of images that are commonly used to train machine learning and computer vision algorithms. It is one of the most widely used datasets for machine learning research. The CIFAR-10 dataset contains 60,000 32x32 color images in 10 different classes.
+`CIFAR-10` 数据集 [Canadian Institute For Advanced Research](https://www.cifar.ca/) 是广泛用于机器学习和视觉算法训练的数据集。 它是机器学习领域最广泛使用的数据集之一。 The CIFAR-10 dataset contains 60,000 32x32 color images in 10 different classes.
There are two examples, [cifar10-keras.py](./cifar10/cifar10_keras.py) and [cifar10-pytorch.py](./cifar10/cifar10_pytorch.py). The value `input_width` is 32 and the value `input_channel` is 3 in `config.yaml` for this dataset.
\ No newline at end of file
From d6c1002edb5645f35bb06fc09fef4a6ca5e1627c Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Mon, 7 Jan 2019 19:02:56 +0800
Subject: [PATCH 0260/1573] New translations README.md (Chinese Simplified)
---
zh_CN/examples/trials/network_morphism/README.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/zh_CN/examples/trials/network_morphism/README.md b/zh_CN/examples/trials/network_morphism/README.md
index dabc6f2522..9245d9a928 100644
--- a/zh_CN/examples/trials/network_morphism/README.md
+++ b/zh_CN/examples/trials/network_morphism/README.md
@@ -103,6 +103,6 @@ nnictl create --config config.yaml
### Cifar10
-`CIFAR-10` 数据集 [Canadian Institute For Advanced Research](https://www.cifar.ca/) 是广泛用于机器学习和视觉算法训练的数据集。 它是机器学习领域最广泛使用的数据集之一。 The CIFAR-10 dataset contains 60,000 32x32 color images in 10 different classes.
+`CIFAR-10` 数据集 [Canadian Institute For Advanced Research](https://www.cifar.ca/) 是广泛用于机器学习和视觉算法训练的数据集。 它是机器学习领域最广泛使用的数据集之一。 CIFAR-10 数据集包含了 60,000 张 32x32 的彩色图片,分为 10 类。
-There are two examples, [cifar10-keras.py](./cifar10/cifar10_keras.py) and [cifar10-pytorch.py](./cifar10/cifar10_pytorch.py). The value `input_width` is 32 and the value `input_channel` is 3 in `config.yaml` for this dataset.
\ No newline at end of file
+这里有两个样例,[cifar10-keras.py](./cifar10/cifar10_keras.py) 和 [cifar10-pytorch.py](./cifar10/cifar10_pytorch.py)。 在 `config.yaml` 中,该数据集 `input_width` 的值是 32,并且 `input_channel` 是 3。
\ No newline at end of file
From 906d64d167b1c8cc9001ad07fc40d3ce18eefa8e Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Mon, 7 Jan 2019 19:12:16 +0800
Subject: [PATCH 0261/1573] New translations README.md (Chinese Simplified)
---
zh_CN/examples/trials/README.md | 28 ++++++++++++++--------------
1 file changed, 14 insertions(+), 14 deletions(-)
diff --git a/zh_CN/examples/trials/README.md b/zh_CN/examples/trials/README.md
index 70065a8c13..6bac86a086 100644
--- a/zh_CN/examples/trials/README.md
+++ b/zh_CN/examples/trials/README.md
@@ -1,4 +1,4 @@
-# How to write a Trial running on NNI?
+# 如何在 NNI 中实现尝试的代码?
*Trial receive the hyper-parameter/architecture configure from Tuner, and send intermediate result to Assessor and final result to Tuner.*
@@ -6,7 +6,7 @@ So when user want to write a Trial running on NNI, she/he should:
**1)Have an original Trial could run**,
-Trial's code could be any machine learning code that could run in local. Here we use ```mnist-keras.py``` as example:
+Trial's code could be any machine learning code that could run in local. 这里使用 `mnist-kraas. py` 作为样例:
```python
import argparse
@@ -86,7 +86,7 @@ if __name__ == '__main__':
**2)Get configure from Tuner**
-User import ```nni``` and use ```nni.get_next_parameter()``` to receive configure. Please noted **10**, **24** and **25** line in the following code.
+User import `nni` and use `nni.get_next_parameter()` to receive configure. Please noted **10**, **24** and **25** line in the following code.
```python
import argparse
@@ -119,7 +119,7 @@ if __name__ == '__main__':
**3) Send intermediate result**
-Use ```nni.report_intermediate_result``` to send intermediate result to Assessor. Please noted **5** line in the following code.
+Use `nni.report_intermediate_result` to send intermediate result to Assessor. Please noted **5** line in the following code.
```python
...
@@ -142,7 +142,7 @@ def train(args, params):
**4) Send final result**
-Use ```nni.report_final_result``` to send final result to Trial. Please noted **15** line in the following code.
+Use `nni.report_final_result` to send final result to Trial. Please noted **15** line in the following code.
```python
...
@@ -163,7 +163,7 @@ def train(args, params):
...
```
-Here is the complete example:
+这是完整的样例:
```python
import argparse
@@ -186,7 +186,7 @@ NUM_CLASSES = 10
def create_mnist_model(hyper_params, input_shape=(H, W, 1), num_classes=NUM_CLASSES):
'''
- Create simple convolutional model
+ 创建简单的卷积模型
'''
layers = [
Conv2D(32, kernel_size=(3, 3), activation='relu', input_shape=input_shape),
@@ -209,7 +209,7 @@ def create_mnist_model(hyper_params, input_shape=(H, W, 1), num_classes=NUM_CLAS
def load_mnist_data(args):
'''
- Load MNIST dataset
+ 加载 MNIST 数据集
'''
(x_train, y_train), (x_test, y_test) = mnist.load_data()
@@ -225,18 +225,18 @@ def load_mnist_data(args):
class SendMetrics(keras.callbacks.Callback):
'''
- Keras callback to send metrics to NNI framework
+ Keras 回调来返回中间结果给 NNI
'''
def on_epoch_end(self, epoch, logs={}):
'''
- Run on end of each epoch
+ 在每个 epoch 结束时运行
'''
LOG.debug(logs)
nni.report_intermediate_result(logs)
def train(args, params):
'''
- Train model
+ 训练模型
'''
x_train, y_train, x_test, y_test = load_mnist_data(args)
model = create_mnist_model(params)
@@ -250,7 +250,7 @@ def train(args, params):
def generate_default_params():
'''
- Generate default hyper parameters
+ 生成默认超参
'''
return {
'optimizer': 'Adam',
@@ -267,12 +267,12 @@ if __name__ == '__main__':
ARGS, UNKNOWN = PARSER.parse_known_args()
try:
- # get parameters from tuner
+ # 从调参器中获取参数
RECEIVED_PARAMS = nni.get_next_parameter()
LOG.debug(RECEIVED_PARAMS)
PARAMS = generate_default_params()
PARAMS.update(RECEIVED_PARAMS)
- # train
+ # 训练
train(ARGS, PARAMS)
except Exception as e:
LOG.exception(e)
From 1371b0ca732e362f33de961db01733f79b32289e Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Mon, 7 Jan 2019 19:12:17 +0800
Subject: [PATCH 0262/1573] New translations README.md (Chinese Simplified)
---
zh_CN/examples/trials/network_morphism/README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/zh_CN/examples/trials/network_morphism/README.md b/zh_CN/examples/trials/network_morphism/README.md
index 9245d9a928..ad0583b08c 100644
--- a/zh_CN/examples/trials/network_morphism/README.md
+++ b/zh_CN/examples/trials/network_morphism/README.md
@@ -6,7 +6,7 @@ Network Morphism (网络形态)是内置的调参器,它使用了网络形
### 1. 训练框架支持
-网络形态当前基于框架,还没有实现与框架脱离的方法。 当前支持 Pytorch 和 Keras。 如果熟悉 JSON 中间格式,可以在自定义的训练框架中生成自己的模型。 随后,我们会将中间结果从 JSON 转换为 ONNX,从而能够成为[标准的中间表达](https://github.com/onnx/onnx/blob/master/docs/IR.md)。
+网络形态当前基于框架,还没有实现与框架脱离的方法。 当前支持 Pytorch 和 Keras。 如果熟悉 JSON 中间格式,可以在自定义的训练框架中生成自己的模型。 随后,我们会将中间结果从 JSON 转换为 ONNX,从而能够成为[标准的中间表示](https://github.com/onnx/onnx/blob/master/docs/IR.md)。
### 2. 安装需求
From 5133f8bf7fee0408bed00dce48efa632d6cc1619 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Tue, 8 Jan 2019 09:43:12 +0800
Subject: [PATCH 0263/1573] New translations README.md (Chinese Simplified)
---
zh_CN/examples/trials/README.md | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/zh_CN/examples/trials/README.md b/zh_CN/examples/trials/README.md
index 6bac86a086..5aa6c7c671 100644
--- a/zh_CN/examples/trials/README.md
+++ b/zh_CN/examples/trials/README.md
@@ -1,12 +1,12 @@
# 如何在 NNI 中实现尝试的代码?
-*Trial receive the hyper-parameter/architecture configure from Tuner, and send intermediate result to Assessor and final result to Tuner.*
+*尝试从调参器中接收超参和架构配置,并将中间结果发送给评估器,最终结果发送给调参器。*
-So when user want to write a Trial running on NNI, she/he should:
+当用户需要在 NNI 上运行尝试时,需要:
-**1)Have an original Trial could run**,
+**1) 写好原始的训练代码**。
-Trial's code could be any machine learning code that could run in local. 这里使用 `mnist-kraas. py` 作为样例:
+尝试的代码可以是任何能在本机运行的机器学习代码。 这里使用 `mnist-kraas. py` 作为样例:
```python
import argparse
@@ -84,9 +84,9 @@ if __name__ == '__main__':
train(ARGS, PARAMS)
```
-**2)Get configure from Tuner**
+**2) 从调参器获取配置**
-User import `nni` and use `nni.get_next_parameter()` to receive configure. Please noted **10**, **24** and **25** line in the following code.
+导入 `NNI` 并用 `nni.get_next_parameter()` 来接收参数。 注意代码中的 **10**, **24** 和 **25** 行。
```python
import argparse
@@ -117,9 +117,9 @@ if __name__ == '__main__':
train(ARGS, PARAMS)
```
-**3) Send intermediate result**
+**3) 发送中间结果**
-Use `nni.report_intermediate_result` to send intermediate result to Assessor. Please noted **5** line in the following code.
+用 `nni.report_intermediate_result` 将中间结果发送给评估器。 注意第 **5** 行。
```python
...
@@ -140,9 +140,9 @@ def train(args, params):
...
```
-**4) Send final result**
+**4) 发送最终结果**
-Use `nni.report_final_result` to send final result to Trial. Please noted **15** line in the following code.
+用 `nni.report_final_result` 将最终结果发送给调参器。 注意第 **15** 行。
```python
...
From 58f1aa4aa9b92cca1d25d089ea3a57149ab6eda9 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Tue, 8 Jan 2019 09:43:13 +0800
Subject: [PATCH 0264/1573] New translations README.md (Chinese Simplified)
---
zh_CN/examples/tuners/enas_nni/README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/zh_CN/examples/tuners/enas_nni/README.md b/zh_CN/examples/tuners/enas_nni/README.md
index 1fdd887b53..0c55375cd8 100644
--- a/zh_CN/examples/tuners/enas_nni/README.md
+++ b/zh_CN/examples/tuners/enas_nni/README.md
@@ -1,4 +1,4 @@
-**Run ENAS in NNI**
+**在 NNI 中运行 ENAS**
===
Now we have an enas example [enas-nni](https://github.com/countif/enas_nni) run in nni from our contributors. Thanks our lovely contributors.
From 4117a2e2fdec63f896aff3d94f605b6d04a0e0ba Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Tue, 8 Jan 2019 09:45:52 +0800
Subject: [PATCH 0265/1573] New translations README.md (Chinese Simplified)
---
.../src/sdk/pynni/nni/curvefitting_assessor/README.md | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/zh_CN/src/sdk/pynni/nni/curvefitting_assessor/README.md b/zh_CN/src/sdk/pynni/nni/curvefitting_assessor/README.md
index 19ca01e72b..f54f9cd3bc 100644
--- a/zh_CN/src/sdk/pynni/nni/curvefitting_assessor/README.md
+++ b/zh_CN/src/sdk/pynni/nni/curvefitting_assessor/README.md
@@ -1,13 +1,13 @@
-# Curve Fitting Assessor on NNI
+# NNI 中的 Curve Fitting 评估器
-## 1. Introduction
+## 1. 介绍
-Curve Fitting Assessor is a LPA(learning, predicting, assessing) algorithm. It stops a pending trial X at step S if the prediction of final epoch's performance is worse than the best final performance in the trial history.
+Curve Fitting 评估器是一个 LPA (learning, predicting, assessing,即学习、预测、评估) 的算法。 如果预测的尝试 X 在 step S 比性能最好的尝试要差,就会提前终止它。
-In this algorithm, we use 12 curves to fit the learning curve, the large set of parametric curve models are chosen from [reference paper](http://aad.informatik.uni-freiburg.de/papers/15-IJCAI-Extrapolation_of_Learning_Curves.pdf). The learning curves' shape coincides with our prior knowlwdge about the form of learning curves: They are typically increasing, saturating functions.
+此算法中,使用了 12 条曲线来拟合学习曲线,从[参考论文](http://aad.informatik.uni-freiburg.de/papers/15-IJCAI-Extrapolation_of_Learning_Curves.pdf)中选择了大量的参数曲线模型。 学习曲线的形状与先验知识是一致的:都是典型的递增的、饱和的函数。
-
+
We combine all learning curve models into a single, more powerful model. This combined model is given by a weighted linear combination:
From 0197efbc165ec84caa741b06de9ecdcf6517d0e9 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Tue, 8 Jan 2019 09:46:05 +0800
Subject: [PATCH 0266/1573] New translations README.md (Chinese Simplified)
---
zh_CN/examples/tuners/enas_nni/README.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/zh_CN/examples/tuners/enas_nni/README.md b/zh_CN/examples/tuners/enas_nni/README.md
index 0c55375cd8..bbea28dd5d 100644
--- a/zh_CN/examples/tuners/enas_nni/README.md
+++ b/zh_CN/examples/tuners/enas_nni/README.md
@@ -1,5 +1,5 @@
**在 NNI 中运行 ENAS**
===
-Now we have an enas example [enas-nni](https://github.com/countif/enas_nni) run in nni from our contributors. Thanks our lovely contributors.
-And welcome more and more people to join us!
\ No newline at end of file
+来自贡献者的 [enas-nni](https://github.com/countif/enas_nni) 可运行在 NNI 中。 非常感谢!
+欢迎更多志愿者加入我们!
\ No newline at end of file
From f3d8e26fbcf0598bb37665f33d439a2ab71317a2 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Tue, 8 Jan 2019 09:48:52 +0800
Subject: [PATCH 0267/1573] New translations PAIMode.md (Chinese Simplified)
---
zh_CN/docs/PAIMode.md | 65 +++++++++++++++++++++----------------------
1 file changed, 32 insertions(+), 33 deletions(-)
diff --git a/zh_CN/docs/PAIMode.md b/zh_CN/docs/PAIMode.md
index f58835f751..a1360ed960 100644
--- a/zh_CN/docs/PAIMode.md
+++ b/zh_CN/docs/PAIMode.md
@@ -10,38 +10,37 @@ NNI 支持在 [OpenPAI](https://github.com/Microsoft/pai) (简称 pai)上运
以 `examples/trials/mnist-annotation` 为例。 NNI 的 yaml 配置文件如下:
-```yaml
-authorName: your_name
-experimentName: auto_mnist
-# 并发运行的尝试数量
-trialConcurrency: 2
-# 实验的最长持续运行时间
-maxExecDuration: 3h
-# 空表示一直运行
-maxTrialNum: 100
-# 可选项: local, remote, pai
-trainingServicePlatform: pai
-# 可选项: true, false
-useAnnotation: true
-tuner:
- builtinTunerName: TPE
- classArgs:
- optimize_mode: maximize
-trial:
- command: python3 mnist.py
- codeDir: ~/nni/examples/trials/mnist-annotation
- gpuNum: 0
- cpuNum: 1
- memoryMB: 8196
- image: openpai/pai.example.tensorflow
- dataDir: hdfs://10.1.1.1:9000/nni
- outputDir: hdfs://10.1.1.1:9000/nni
-# 配置访问的 OpenPAI 集群
-paiConfig:
- userName: your_pai_nni_user
- passWord: your_pai_password
- host: 10.1.1.1
-```
+ authorName: your_name
+ experimentName: auto_mnist
+ # 并发运行的尝试数量
+ trialConcurrency: 2
+ # 实验的最长持续运行时间
+ maxExecDuration: 3h
+ # 空表示一直运行
+ maxTrialNum: 100
+ # 可选项: local, remote, pai
+ trainingServicePlatform: pai
+ # 可选项: true, false
+ useAnnotation: true
+ tuner:
+ builtinTunerName: TPE
+ classArgs:
+ optimize_mode: maximize
+ trial:
+ command: python3 mnist.py
+ codeDir: ~/nni/examples/trials/mnist-annotation
+ gpuNum: 0
+ cpuNum: 1
+ memoryMB: 8196
+ image: openpai/pai.example.tensorflow
+ dataDir: hdfs://10.1.1.1:9000/nni
+ outputDir: hdfs://10.1.1.1:9000/nni
+ # 配置访问的 OpenPAI 集群
+ paiConfig:
+ userName: your_pai_nni_user
+ passWord: your_pai_password
+ host: 10.1.1.1
+
注意:如果用 pai 模式运行,需要在 yaml 文件中设置 `trainingServicePlatform: pai`。
@@ -64,7 +63,7 @@ paiConfig:
nnictl create --config exp_pai.yaml
-来在 pai 模式下启动实验。 NNI 会为每个尝试创建 OpenPAI 作业,作业名称的格式为 `nni_exp_{experiment_id}_trial_{trial_id}`。 可以在 OpenPAI 集群的网站中看到 NNI 创建的作业,例如: ![](../../docs/img/nni_pai_joblist.jpg)
+来在 pai 模式下启动实验。 NNI will create OpanPAI job for each trial, and the job name format is something like `nni_exp_{experiment_id}_trial_{trial_id}`. 可以在 OpenPAI 集群的网站中看到 NNI 创建的作业,例如: ![](../../docs/img/nni_pai_joblist.jpg)
注意:pai 模式下,NNIManager 会启动 RESTful 服务,监听端口为 NNI 网页服务器的端口加1。 例如,如果网页端口为`8080`,那么 RESTful 服务器会监听在 `8081`端口,来接收运行在 Kubernetes 中的尝试作业的指标。 因此,需要在防火墙中启用端口 `8081` 的 TCP 协议,以允许传入流量。
From 05b69c509aa7ae5f675cf54100519728b060bad6 Mon Sep 17 00:00:00 2001
From: Chi Song
Date: Tue, 8 Jan 2019 09:48:53 +0800
Subject: [PATCH 0268/1573] New translations over1.png (Chinese Simplified)
---
zh_CN/docs/img/over1.png | Bin 0 -> 64843 bytes
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 zh_CN/docs/img/over1.png
diff --git a/zh_CN/docs/img/over1.png b/zh_CN/docs/img/over1.png
new file mode 100644
index 0000000000000000000000000000000000000000..7b5c6a0db3ffd3675327890b591a90522caed07a
GIT binary patch
literal 64843
zcmc$_bySpL_cn@vgoq$WONoGjq=a;-bVzr1cQYd*qI5S5NOyOGba!`m_ssA;81K8j
z?~ilVI_r1NnMFJdPu%yu_rCVEuYJ!CIT=yRN5qd15D+lM#oo&!ARy->ARs29Ap-A6
z*i`%gem!uI7ZpY*9C*GB{DEvDBrSx1P!fUx)q4p1jczNZ=750kr0xFuL8nc&Ap!z)
zN&LN#qO0~^1BNG_QT%4eJRe`#+j*YLq~3wEz}3EizJtBO2DnF}_N-pr>_VlZ5Aku=ZrQJqkW$
z-$QKVcGVl+fB(RKX0UzwpVQ<5GycE4Xg`}=%4}-<%q*a_qmAGou2zX2KM{18F>t^1>Fi^Cl&P|E|L`)ZdS^IpOS^-m_=Q*4@a&tqNX9vBF6_NV-@?6=mx2
zatPL`{)o{{ZvNlr)t|Y&a-C<*-q4}7;VY}tw|J>z+_6_f|`g@DkGX#ws*$wE_q&8%wIy$T_;!T*5pky_5X}DbeVh~8I
z9Ur^9SL
zCJxbHOukNci(j!C4Yq>O$)O99c@?ZOuz`R)I7lj~22V*?(zNaFLcO6T)bZB!O7QQp
z`6mI^(1mp_=Rt~QToh_<%eF_(334w58g*Sx*LUqdN%mHd>;(@kf>`2EZ*M}Qs1s!J
zudkppvgr$pF451El>2gcXe{GlE#eM&b4C#8X4o#=Y_8*Hg=oKT`sGD(L!RlW%Iq#z
z#y@LR_}xEoUb$HB_(EZ1$ByH9?GP|Gm&F;)vb%iEUvX6#EH!Djdt|(tW6!
zX`?&fts}a2GTQYYB~9_%ibXdMx!vKpn!_XZu#Wx*k{50;xgpL}kzzG{j)tWBKlIRzu*OzK5RfXvQuOQAh`9zJEM1CaHD44ahORCR=1^DQx79(NOqvnv?@$M|uQ!U7
zbVwBw4EGMIzUA+g=~i)p#BkFVc&^9;T|Pml^LBfxW|Cz^9v3d$)$x;YApHeGIX1wQ
z-rIRT7I#i7(F!pII>%n{_812a2peQm92dYKDU5aVgI$n3beX}&@*EA*YqPmMkJFGV
zxSHUs%CFGf;5^L670P;~kv1W#Z8MKin~))=;3@a{JS71>8OI+{<3sZHx}`$hMNE
z{=*Ui084al@;>cW)bZ^;(V|evjILRYNhoIxsDj)Sb=X{t>5D!q5_`@EJ|}5Y_Oi0w
z2cQ*j#f{kbwi%lAJ7!0t!;|@PWlQ_(8Gdd{FpSzO2bQEaoH`;G>q~?
z{b9jFE#tT2x!+fAR?8EgYn=~_ayCKjPlp2rTt0YOjNRmr1ovX9t2=XmW|V3O6uO
zLFYrpIq`80_xWxo(L;f_lW9U^&B#QdENl_tBXTKicn`>PC(qG~0{r!f}_ip+?
zNLSUsrVjlS&Ul2GG#i9wK}OjBb=@t=`zh;e6oA2yeXS!BEFI`3C;yOt*uA43?v?Th
zmAiMoK4o~4KHF)-Z98NCq*{B3iUrv3X23hDW&L1A#BmcipGG36t9WEaUr^6k!(jl
z4`k8R!@};@uXFIUKc?tzv8pN_Sf|1Ta0eV=@ZQYPY%Y>%s>1k%2SX2Yd-5;tJvguI
z;NiU8$q7=~nTL>XmsBHkSGK&WgK5@bgXv@8=zr4_AK+35H$c?2fzM0I6%q{y3fJFE
z96n?}7uycz>xXpz1b{VKuZjEUmTF=sx9D*$wLs=PMvpdCiweWs#2bR+S?O_;ukce6
z@;yGIakUEAm`>0MG;T3u5pFyCqqp?c=E^w9qT4Fc+|x&YgEj0PiBj(KZG6a}Bv1SG
z(pEbUs79RLc!#`m!ouY%+2rvrXL
z2Y4@ix9S4(!BM)>^&$C9{G|qYw(#+1qEE>wIYQ&NP2N1he-rqt9Uw7E?E>&{=;=^)
zZNR&76O?dD65j~_vOoVg7qsd-Gii&!vz_h~oVbMJWV=bx>U9?!~Z!vTt+kE;>}@idyI&D!Ton%EP#1zd0Zzcyw8
zY@B%>q?e}+Kc^iLvkTU$zOY=^E{M&v&fsz8RFge{mS#{NHu!)~dS)_sWGybgEO2@y
zxW#PPU>Y%n#n7v(KS^r1VX`T`#9rVBjWT9b?j&V(wsnCyyOX|%R0l{7fzk*UZxMUx?QV=s~-66p>
zgi?zz3%z7&sLu9GAXxX=ipy|a#KAfC(mA=wK5YpmG82HB^x{wgQ|=Ir8iir{&=W@S
z&x=2W^J5t)0yN+@iIZP$vC?+GqyMBpx~hDmCA)cQrVXN9b%563zDiS5st{vUWjZkB
zx+3tn!kWIpw<(~t{`{l7r{%XLl
zlLs0N9r0SSyj-*PqCJy}VEr)!ww_BhL!*6D
zkV@Yz%YBHZ)JgUqDj5sFn!`;`$_yB^ie#4jZqj;Av$#T>KKi{cyC0)w10|<3v&m_<
z%@YGAKRKt~=6Hbb!AtGQb9xFhW$RvgF=l5%FR_wfea@n$`*4Sqpl5Q9>?_Sd(FrO&
znLE9dvO)O?npG8^cDo{5RVo~BiWZ^Y4cuNC3i!)$;@#tViXc!J#EsfKQ4^<;h^HO+
zfian^xwQ)<0?5GBhLh-4Ka)o7z=Cz-bK&vBCp!DwU$53<7T{Cs~ZBr1)Zd+X1lWivSS>J)#mjqYdcwxiHSp4WtwUVG5E^3H%QjRun1lAc4eoa
zcUNm&&%a}WAi_(1?1o-m-ci|IGP=;>706{2$p-oDl(oR4*x#hD=id4oXC6!i3z@3b
zOd9I^ymr@zonvP0;ah_`TAeyGj23cSpye5zjhYb2(Ca;ol1>l-?J58@t6qyh+V0oO
zGrvfJwJv<2l*ID%LOVc{79mNVcV4GUY9X1dImo+zB9-{Ti`AT^8;4LU#43DshHLnnj0{t7u
z`*mf=9<^S5>CEYMQx^An4ug(ur@=>Ei5@GF${`!iM}55DP>TZ9wLl0!i_Xe(lv-lFB@hvr*VphvBKS4Yq#*i-<$BS$b~!uZ`D(sZN%vCvzc_-xMOv~TE4UYu<9>m^W#t}
zIoyLZ#kV%32q)39@9`MbQJwW{a^4kU528sc)h#xRjo7b_xW+tf!i<=r=RKlo2$n;W
zrZC&OnXAxXd94LoU=$=djjP69hy2~0n+mYp@LZQ`!bU|j{3UO-TN@T}VW?h_hpblb{OWcG`O&lull2@d2P(9DUAEaV$n4L+
z<ie!O8UOhZ=vi;aWsb%08weaXxzB_Ya
zs=4y)6G@%TZt|g}PWrtzXI08TOJbY;A
z){C|q`9W;~y;X14FRd7hEMhfl;IcthRs-f+@u<<3YA^i@7Ee}Qs(lReLytVSbaT#6
zgmsWO8K{(WgyJ_;ZFgRKa@o|Yc8wpcB$U@*kV|qjl;rBY)~R;f-ym4z5PfDP`T!U0
zKA}$2-&?nl-_R(;jYkRQI^(BK1i1kmP(Z#`q+sW+v4Q>CgV>tr*IZg{_n;*I4U_L{
z=<`qGcOVM~P7fsbbr4n~D;f>7?98SlcJiXSHItYLa0Y!nqsW
zUGXWZ3O!M4R1SX7(J8S@7FXM$2dRu?S{!q^sh#a8q)HHVwm9K+^C{oSKTvNCoZFht
zpOU5LXj0W5v*{j1c8)KLlbWB}w!GQ>kRK*#!NJFD*T1i@yQo^{be$``NF+hyFkaPB
zc+IkJbe>5bqUA6$H>?KWf79Yo_SAm
z^l=}j)Bg3w(68*7t5pUDPNpDE<)C-23Xd1NDO>2j?NUXR4S(Qb>uk`MJVhTpcUlz3
zKe(wgvX2g7>EV%4!gbwM=V)}XExX2iNY0$zFjRg78L2L{Ynty@$!58(f0?%!8(hpQ
zy)=>0y8~KOHzh}Zo(n=M-I$Iq=v|EZC}XEQx5Q9%TdOpZvqmGwX4&5yrO~~?GD)l4
z&}he@K|R}iVOmF8ez9vTKBB7aS{dt${#zgT4)9uvS7DfddrqSErn(COA$tHa(ycswPsyVb~)SjoXdBh%=xRVcpK9T0EX92^i
z6jh8B=&8J!@WlyKG&A}A&Abk33)TbH4?Rd}iZ^zP@^8)BGfR4_B8wt8eTh2}|2NC4
z_esU;bw6KeLZ8!OGQOM)$KU}45^-F-t=~P2K3&((9~3`DHz?p3sn+}GAlaMoHe{5I
zGxS?Yd7Pkf$3r!|x`&Y=k4mLgBUERJT@Idc#>C@&R86LlgEkIC>O;O28i+VJ?fHVd
zBzHmFcG8QNbJDt5sTSmJG4pS7Vb*eCS?Ev@dy(H9l?~-xH$-cP3=j9}{AW;EcTC|t
zYh@|CWCYVCr~vZ#&!9tTyvTq&`^#pd-kEZ7cRPiXNt#u;gnYF`t#QuvWngg_YSsRp
zw((@3v}Hj6`m-u`R;+Hi$jeC9X{n{|=xBO^4hyGft2=MgK-*NK{Nt5I1!Igsj=Rqc
zRUk$}y$n4>lQNdtVVeY(uP3uYTGAAglR9dbgdXc{6VrGWeZJp#rF22_Yv&p7S;w$HwtX(a5~ku-dOcOIMhlDaCDNj@2C7l>YR~HO0-8G1+q;Jk=SJjgU!-d6UZjVeJZQ+nC^^l)-kWA
zY)JG&e>NCZ<2DY*5gtc&rkm2~O;&Tru%0b>YQzI6Fw3`U9DW5d>H2l>xor$gU#87JVoZo0%Eif5`ZYTCjnjIcmd+P3}!&8Q_jElT_sN-b#k&+SUO0=3pnO
zvW1WFcu3}Yh(Hox4An!fA1r4^?ALE5`aPN$l-*(lkC8u}hA|6s;EKf`*%_4$rzda@
zazcm%CT~g>3!q^f{_Cp(?25@e#8$w9p-#XJwm0lo_rYnB6U8l@1h~~ZS>p$XIEufd
zDe#!f9nYhO8L`51V9MQ@D-|E(Dl|S0YTRNv?8{yAx2-#ABqyanvBM+^Z}f-46?BoF
z3+RHVjMK8#4uHP;t8(MME*~HvA8Nf%swwFLQ;ceH}3M)uBXqLx{yJa1^syB9I#Ofl8XPRyS|cu;l@Tr?scDp5bbBt
z8#WjmiB0xYK+(zO1#nTD#~SBY20NydYEdzeFR!V7IA(@;XJ-kEVPJr0-|3HcZoowiP
zW|~dj*E2cc19TW
zgGJ6vQ=i72PUl2KSw_RCvi>C7@g>w!fy6X=fSL5Q^xcPrTCjUTvbs#xhsbnyQ-{(>
zHp&aJPT|eD@ri%+BEYk+r?z{UG;n6)Lz0>}%;s56-e#ghca~=Ej&DAmFz;e%t2!-d
zF5mjW-Op}-UWu#4{_vr!@nCZ`pgxo2g+Miq{R}s0^7-X8!TQ6Z{Y8v-Yu;+JW_jx#
z1NpEu&+Uy48^B-_?c>NGK-!daPW-84VE$yZP#RZ^Y3MxKe5#T)32`;(AFkqjes`de&`r}&x)-rcA}ePFM4CXs!Ie*0RRlSGK3Dlkb4`#R
zQ{nX*G@yxFkY-<2TTP?v?oGw={JhD6s+VG{AomMyf8W`7)Hl6mgQy>c*_Q3XDj=@USe0=f2Rb#61Icc
z8gmIChhzvk#r5FDZMmK!f7UYuccm{MR{a-nZ`G3
zh}r=CDCD?Aehg=Y2PZ0qPM}Yf7NcPSy%&k8TA|_=OPIHiBAfIIg2K6!esLZW0cr(_
zkCAlg4G{qebs5J~z7}g*-G?Qj?~)sYtuMlAc(PH9Tj01&K(70WAeb(AJzh3-L3gtZOZDkl_5xn#E^yR;H
zWn}4nTx`TJP%Xf&2DP=SJP(OZNbb1J0+_w;yyiZh(4~L5#A?uT@x0p}%p50`)ko|;
zodZNJ&Tj?xN;mjZ<=Z=$2%zC?oSZX#YjjuwpusJ!87S+aRzmas4JM1T9v7ktRgZA5
zm~5MG8!sAtamq-mcdHVV&%FH)U~6mEy;Xp2k)^pVt*K2W;d;ABgxb}aypHv-OC
zIOTEyu5YxPZ#gZ$n1Ev5%U7~R<2tn$4+~xxht5j*xE_!rEdcL;LGI_c6>VwmG}*Gz}^bn++fh>$k}ehFv_njD*U#2N2ftv>&x1wE@9~D5rUXB
z4wBku-M${~F^4Y#B=L`3{K{_ax4$+4l6QcLO(Z*8_-z3+JC0xORP|5eg#t}N4S@Rh
z$;%lo0>+p0GIRD@d*i?o4|-m3#R;;i13i`;0Z(r!G%iTh1eup5oRQVLJiU|GxosJ#
ztTKX9%{ygky6Z{HL4c3^OxI8Oj&^=S#?`-PjB%ODUYVr>E
zcp0RYF8wQ?1AziSzv-l*zdvwa*MVRlTYBkhoRU}shhI}dIE>m#K9I9VJfQLs#kDEq
zs$E`sXuh_HHx~Bb-seNKjb-64LmZcPFiV5i(7TZvOZRZqUy(g_*zb@otu{ow0|k2e
z#D$I`k4#eljd*nOu{{AE(D+lTFB$7RKh%<6sLrixpr6`7a@*yaTN$a-rZB?J^pV+xA24w%Q=;=Rf>Z{GCik{pzTe0kLG#x!2=1a$Y>WuH7)^>ksOY;EFRmA&U1
zm03!-VxvHd0Mm_YrUD2Lpi#;}-k^G{H){2e1pdy20d}jBHi3cr&SCY(eLEJ&+a~z?
z)OR1xBiQ$2rphiNPJsrx&_U#zIi5Nhz!HJPf*e1HrO5Vjd_A&Z8)1)dT~}5r09XPL
z-y$^lQEEF@9ZIc^Tz-V7$O2a`Aj^IK|rlHJ6RZu1+<%^O{&QsvqF%(IY|%7fX1*z#G9c+
zQUHdiLZqV;@^2wcwZXv$&?u4+rYUL6G^-|DC=bVo0*0*!kK`ZVmg|%R3@c^veqaaa
zV?-q3R{6jIVgMsJT;xm5dSZnaYV`
z7C+1r=sc_`70y?0cOowUU35S?4BLE06Uw_BaQHlBTUwM6h2+ysC|MJb_
zjNW^9-{MT7wNi6Ag8Fq%_a~0g(TN9L1MQ!bw5#D+jY~H0&G9yUc_jCt|G*9d%_?l`jAh=`EtRG+}Y`^x8Z4ag`$0DckkJ7
zs2kjm#fjvJmT9dcY_e`}h${!0t@a%4fAh!#rt9zZp|Nm)b^s`Sd$~Q^l^VuEWpYx4
zTNO(60xZlCIQKLz4oqBiJl)gaMSlT>0KLfOF3qs^7Xc?aI(Y;|!4y>&S6}80DY}nB
zLteOuYTQdocV{ylMZ_-5;f-9D;{cNla;7zIf(tW@AKA2%hl~Eyx&sI!m^s7y4gR0r-fd^I73fhCAkOd=aOYI_lD+
zj#rMcKwRCJycPIa8FmNlC{}Vbb(G1jDCc1{8v~g`Nuhdg&kkixEYqmRjJZi13x6$i
z&+q}v;fV>X<*otFxgOyCc2)M>pCRk;8MY9)X7wv8VBz(AAhu2w#pi4b#O_
z>xkxwDJDOD4B;>*R28wvdCb6;H*)d9e^_{CPF;VIegD&5{0<9-T>s0GC`$w#>dX%;
zWowf!r7$xqbsEI*=MNe2#lt*Q6@rtsS>2M
zj|D>H|(25ZQ<
zT_3MHrD(B&e-FD}{69SzEeYKd_3vHu{n&UZ5&m<3L{Z{oYy@1izyI~7!jwh(??9Tv
zzR@B#BY)YVEW!)@wAOvUsSE+3g`%wR{+getTC_Na{_fxUi<_^9h#tLHdZE+9tJ|6p+y8C<5$e2|;sTBM)M?YwjUAI#G+|PHY
zjW_$^PP?c=c%esaR38JeB?T@2-fTSj&)pE9&HFO1zK5W{dHtG*#~FaBMPP54+v&y+
zY6^}ar=MRf1bs>7b%+{_s&|vEh_OLvKDQ;pZDKo
z5q|RfHq1myZyo9umQ!|*RwUFYYaUjcs2&kN%L^yL-zO
zS5+;1GV7Ey$zwxCwu^dS9K@_aTE(2Gv$E2+?v5bNpR+S?i`pn|T;bXJ_Ogo_
zr}2{cx3j9p7$e5rw;iUnnuG`VtGa3x&bS&w=Y`A{LTjXId>lVyWnGt7@1GJG&^u@j
z8zWwSlkeG2+BtYbmHX`AuornjU&@qbNb^9!YTNy{A)2v(nEVnO+q|>0L!j-d*Zlbb
zFmo4tChdCD;h#V}u8gbbLZpIn4ubUSyORD3G(TIic$mK(?Ls!0{nu<^zk3x?DW(PSSQ8ZibXNUGj1>
zb2c$ofjNz@8fV|y7)OnC@zn8m=Isp3FUk5zi7Q6o<83_I>c(*CCyGwsVRgi!&A5l4
zg5GxIi9Sns*}a%Hg812Kl%gHnRIBfD&w1
zHhIOO^ummHY}-wHiq+e2hd&b&ld<3RM#b~mzvZ@IeqWoZkJ3#t@92O#-g+LnvFUKH
zNp|sL^dOrz8*J5#e8j%M(0-U~{Xb|qQqPQyi~G)OB>iB%ZZMu*vM-qE?Z$Q%1hkWr
zMFxZuD!HfaKq8mETP`8Z(8ns3>h@eZ$kF3dn@g-$eI6%d#t(E}8~64LRhrNcPUPgS
z;T_!8u1CLIdp8Rc$$I$<^CzAH3Oo{jj?>n@mD$_nyl1nH!qAEX*VSaO9>>mQE1y@J
zXmDH0^bp2uj%HbWTwY-^4)mZCAXKBx8HgGe0_y3E$p(1BH8k8ZS51t
z02X6%6Z#k*o`Zg00Ru_>=4mwjCQ9$R=hx!kxf%EjeTSUh{0CS=kn+yuf4k_Q+pR2d@U0==;vr|Mp~Qf!>h*xY?!@VEvJ_w4d}rWu5A?6V
z;&OGG79^nW-IVG*rT>NT@_=9<=oR>_-*tVmTSnCSYVw+ohd_N(!qjjYU)_m@$e~+d
zHZNsv17}tjvs?MvX8HSt>o^7)+r{(f%vI>53uIFHb#M1`Z7z}IP?~|m*?F@if1)4;
zU=s%)czsOQ-og+qq1uPe)B9UDn+5*>@A5}}E53p=gBlkPtEA{^
zwy7KqlyT_tcXprzcB3oV1muKd^=iM&JB0&v^};Br!m~dq8sP}*KIfj$*lv$xTwh=F
zxt|dVfS^aqZQbXXq}+}p>Eauwy2b;E;{3L)U(xkBsM85fJh@Gkj(aT|`lWL!`vq(3
z2D~~O_`I>IxoRS$bcLTOxNHLb5<3BVYyD>>76(!WLQk8-qoj0yvV~wis%`%EDg#}S
z*v!URIktHd{9z(Eq<))b=)@p_vC7lg-1ct1LWOZq7s&@O2cy9^IYKUnUm?AI=yRRl
z@Xco7<4O35%E`(*#)uGsozoWPs>k`1lU1&_IRLB6pRwBkHcZ6qU?GZ+p}E=rCKZCr
z-}{&zzh6LRR4>o=xID0Ff?ezuHSrtuL{dveE2@-{JSSk%*3{N!L_rV@B0m3xD?3Ej
z_~B8xJ^=o|iplI$m{toVw=)k&-%X#${xEBsj?jgBEk#a$;1bZcxLuchovfXoonHP0
zR>^EYQ(Wq)Nq!N~a*G<2pg;S`u3PieFF?%_F%Hv$d-3G8j{TRo=C4;3WM*nv=LA7@
zB4*>~Gqnnv*F)swguK7=dN@y&Ex65Vq-dS|L>CU|8o
zVpq)GduCYz-Ek{BARgj-4t1Y?>)*9`UKr0C<-WhJSO|)y&qC3-G*Qost+?HDSoH&&
z41k?s(5N!|`a*WxS77aG?Sn`@k8d85jde67JRIt;Iw{rkE~JPnJ?W=E2sEKXfo*(%
z(r!L-NQ_ffu1O!Knd8j&JC%jfMcVm(HBD&lj-VAdYDPL^k`7>L_QfFBSX&Dv$H@L6BI{^l|_eNLpV5qk;j{LnhA4VbR%ix*TT
z@i2Z}k>@dR^vTyZ&EAjKZZSzcAJrkDN#bH8W
zDOR3GyaZ;_SS=
z$P)&-pt*)09Bh}nIe>z0$p`Ar!E@z)b#D*BE^ISx!tcfCn&qaSnn18*j{`0iNl;O4
zu0K49S+BJ(?rpp9mp)1&VfBSNmqQ^Rl#H{lgl)*?j-)Jlj*Ew*zZ$r3uSRupdjoFX
zp0`1z5PH27J@t{l#+7G$-1^iZGrjt_q^rB5pz&lw|TN>ey6vjHSbr}(x5Dz
z!s6cj$=?_0HVqNc8uVr5XZI69+7QPUwWK5Cd
zqw7rw69WUo>(|@UWm(liV@yix8E>rwvJK+ZxLvHxy3ba^)z(KQpGK`yE7}{Ix%n<<
z`b+pPzUlLz=41j3+r?S`#Bs>cdIv)Ckd`KC-gbzmITb1U{^C-;Ply8W$WPdg7~
zkAy^KOk}*xep*GDX+gzO(t9q8sl=}}DY-w>O)bgTsazEGh8@#dF3gD-C2^?pVQ#*w
z0R_Ixp9^vO+XSr?CH@u;=@0I~w3VhcM6#wsCfWPKHcc2N}&A)m+Cr~PT&Zl
zDOWN?gt)Gt*LVpwBcovbE;(khBmV-r7?QP%u+Ud&T_K?d*UdWV!T_xWK5WDAe{;52
z4kHs;Obn;}+_POjcZ#;ZWAYdIQ#he<{$G@A|1Fg&K5hM>lR|AkO$OAB!y?-B6lq-%
z7{4R)i;%I_eXaREL;@S(WbOWAO9-EJL;uy3S{Plg{*QNmp91*sl2{uqP%QncjcwDH
z(I2F~_5OWV;KvuF{}izQBL(t*E8hR<())WHIQf_m?CnX=J!4hHlH&bMfs@S
z;bY)a^5vm)WsRWte7gTdg|RCNXz^c0pSI(Z$;|e>PF6c-=~6VL(iVZiE3Q?#s${1o|ZL=Dg0!B
zOvsBM2tIzA6J@XQK(Dt=M(JgsIIv^M9^bRiR_J9Ap}2I)_U>0$gi~&Us-0Aj3c}~m
z)JsRbrs4p#7YN!wdQCH5iYSGymFOP%K)sH@t
zN7Jnj%gkHi1grTGUVI*P;W~MQg=@M&M@ADG#pysuO;e4E8C=E!T={Z=M$XU-IV9oD
zXJVEx>03^3-iPJZ{qi6*WQ6au=A2oMJ!o$vzUy8`KgFLaf6VmE*Rm!lJeq4*BpNT+
zGgk0vXMTSH1myvOuy4SjJkob!Lsw>&6YS)+SFm|A#Hg)bS$aTd^Z%$rPZ#X6j*tuI
z5IXetfA$e^y&U}~ErOljLtI>HFstx`-tv6b23)+4Js&WvXhKa49#>VT`n{ol4hYf6
zm)^{EI|t$bW?e1O&sU%>VEy^uzzi$-261<5J`T4VmHt6-@o??W>)%mAzcQ
zNBd*{$JAY1WyXu1V{4svAn4hQG5`FNugp~b?%^FXhv(=VlQQH2AibBt3>Y`M^g!M~
z0S3yllm;X+i@qi&=wO1k1%bo
zW&@f)--X_Adob-e#LPPb)Eg3RLTi$VAxrC-JN$Rra@Gm_dNU9
zsc$!9G4^@O6BHU|W^UHT@<+R&2i>>`g3S%6ZBQhUq?sFo)#T1%floK&c<{@Giq4W(
zEqAIkd1^^YSw`F4GnhN9ScRE^>%2&cK#Hza_0z%06Vbc_;+)FRX^~w1cm+RiRqPQw4&FFLRewQ{
zo@1PPGTFIF`{HNG{-Dn2#eO%OdHaZXjk0)q0{*Bh&lhg!+6g|jH}7R9!qP=V^6{Nq
zBT_|eb$TAP`@1qL(3y^Qir0#*o&z{$I+msR&*cBfgYTtWgZ%J
zdy8b_`!22CqjGpAPAWO=dxPg1j?DBleewamv02C{0S&J+svzpmmnfvkpDP`ZMi#Xw
zrXwZugJ~P3Q{XPN)5?v~6tf<){5%)i8j#2lu?dtadI`_c1&B@TjjkWA2yPd@;ty!-
z^|+;$Z%=!FAr9`YeaXm^2aC}<-zV|~&loMDM(87V1Jm~C-OOL?7~VZ{Rj5!4uJ*iM
zMmtlo@0f`uPh*ud{D6&2p%p2>#m$(P?Z6dN9K3yl`U5|gvQ;=|`nYO>p_q`}!q*F)
z#x^8Q!=#-+&=~5L>1FYnq>l3=?+0XlCbKPz6O>8D&=OrB4VF
z<)UYKQnrjH7VR3NI4n|>SBSvjE`}ueB<8W>rEOuV6*=WG+dxk65hvy3WrM^<;wJ4Qmh8qvwJ0!@KZLYAM)zh$c8^j9N
zW4?Tn*KFDF?c$77sjsE-2+_x@)viPQl*RjK;X$NU_N@OmBGSGIrM*szgW8(u0)Q$r
z^$Bo2NdzxEm&~VF8d-&o@6E|+=tGpgBr{}Ex7A?Gdb_sM$6WCI%vLYBJ+2%P%d;Bj
zH;OF#pe}5^;^qEe>y@P!L${8t^En-?bpqAP1g(-WG+)5nTQcFibwYQV=%K_j`55}q
z9mX|ELMwx;u11$8+JY!0<5NO&q;gB?X*sn*_T*wt@gNUvrD?>RG+_h!bVZ<}OdHcd@7EOkvdB4c!FO7Cl083f^i2MR8Li9UlcS7Ga
zQip!h9qz8c;=Ws$3NVv={!sNf_Ef^=506>imGlRT0Sh2%WG*|t2<3G94+Wt~+OuRq
zR{I4R(pTE`{O=IBAFr-FE5=Z5cwdmmXI3=nPL$x(k8O%O3julPl(myjs9BQs^9ZmM
zpEL2DscFg2=dc!BsBsjaJZRXw;WH~JkatdHkDZulO)5>b3@oT$(9Qj9)hwH7qLjQG
zAUBATI&M>76f_(n>?tokm}>vd+={p|dX|H7>VZTg$1L%x`ww-7Gw())lJ|>=q{O0p
zarl*dr8L{9l1}C^5$_(EC=^ilq@vFe<9`C={r&)vc97bv0Wu{%aaV|19r0O!4
z!$eON+`jLFltPtCue`5((W_AtsC5%ILS0cYlTV~NWskaXaCT+z@Bw>pi5YG~j`Cmy
z-dpSfrI1f?%2a`5R^`dNm+2X$5_})kx1BTlBHG%5?d;#V`$SPMC~@g0bxu>9-2}a*
z(9jnh%dyet@w=dZ4^nlvOpm7TFSF5KnKu?z)3;tw|4OTxguf#*-Cch8g%T@hzcs^n
zvptP8$BvbH9PXRQ#9In00_3KvzL1Hldh~sy2?3jos&`CJ
zV)7QJHNt<6=k%AFujjj6OGJj>&{g8;k@?yeBOutEWw*M=S-2>-BDMt7=$*?o;9SO&
z4!2Q1cS9~z7Ww&$2s8Za8|A4o83xs9JC4k#jqdCWJ<=4M^*|JQ%p;dQgmQwOMQiU(
z9orbtTC^TUxtaqLW0dN<)sSJr%Crf4Bz)wt{)jX7b3!fdeE$C8@r}FmjN%@$JT1hO
zM;2tM&xT0y-y9eAJWb>qKuMjHrM}L0Xrj5Ho8@w>!BKU?mkN?rbvqwBp4#QbKIFjd
z!LbOr${h?a$55H>*)?|-{p(5@BKG&T2`(K1?I9pwS%OK%
zUZn~(FsYGGx+mg@ATO}jIXcV+N5-om7c2GNNzEWek_?zGL6Ml2a(t+YRZUxZf>(?3
zC$(Q{gQNPTEls{9Mf+kzJ(}l0O=;65NN+fFg+Fxpfuhc-;vUCgVT>mJCF(64`zM)$
zgNMrA>oaIm^+obqiW8R}SaLaX>`lYcZ1Vpt^s?lfTrorzDB!oC(By#db$G83Pn
z-K=o^XsZ>n(KBhw;lT;lhZbD3nsthrm+SM!x96FAVHLle4!<_&Rfbze-Qs1C5nF_)
z*Yt*!I>$rMW+&j=s-kOiY1d&~{B;ZFh9PlkHVOQj_1tM7Hr^piqv}k!prws
zyTMCAmQzkB73JTRM^8}Z>AUc~z!*l!`*mAtti<(1A|+BWxT?dnX2y(^ln`O*+YN2!
zHSMp@POtVuvPr4^9P&ErjEVRHt*p*%$Eej24D$lbqp~wr^GET?RhgeU(Y17vva3$V
z_sb2w^uaqa$5|#z8HB^TP^7g+o1W8k$Kwdl^gO
zAAT|TX)Pl^wj_}}z65W!!u=gxrAS1Shb97I9!ob9?JebZwKNXpKHeA8iVeBnao*yJ
zeYa@+4E|aDg7f2sko>&sOMudbhJ!l^jrp(`o&=PEfT?|hRdItur}-?1nJ6L8&N*A(hb;t~E{DDCJ>T^Xjry6v?Mi!lum9ux
zh&1aw{W>)C-7^|K^qx3^t#d+)sPz|Nz~>4lxR*R8p9J}zQpIbR1tbwwVI<(`qKchY
zIdkRIRYGu`>v3{_9h-fOxr%GPXtygsLMRP-34X6-d#mt_?ac43FFqmy>m#Gk!p1x#
z)5WU@b<6UWk%K@;IY)Wtdl${&Z`W~Bv?Zj+oQ3SH?p*D!PW{j=Nvvv~?JaJhg=Rm%
zW|6;@FE+sWzW*cE(+XYi8M<`O)WC5TW*x?h!GS&mnS7}fj%U$NpZhpbQl!Nw5MnWF
z=_1a43~c<46WXh2%6(k`ig@PK9r
zY4xD;D(U%o)fbk!-22M#_v`=74H5rTnJ@jGrC~HyUF!%4OMd+iS)I{3*t*sMbtdiM
zbNu+{&)CY@hWOoSWxC}75nyE;1{-q!o?_}?ap+(E<@*G4nRvMZq#w7-9lHnNJN_|;
zx5P8tWacQgCkUbAq3BX?E9~P1aeE5gRoHrn5Cl1%Rvr|kOL4rNjz=%wRLR0=2-AFk
z{h_o2nRSZOoGgwA0b$A;s80>UHH%nqZ0;n2o}#`%O7)M1$Pn)QEMa#$nm4cn?DFKWynR|oNf}3_lzi|`@_m&?f>#H
zc2K=k(`iN9;`*Hz81mnH!lPx@O?%_DZ9c71a}C8y%=o4%>g^Nz;$mD{>$ob;HRMi!`ty+-l1jFHGbLVcWgo|~PY%wOPB+ln_>
zt~~=mqpwls_q;YOTbzVhKkP@OUQSAUJ7A54CQ&_*KU^sU4S~^*M_*)6T$r`CHl$6Ka?H$69u3QgY71oLwG@^gY;tghENY4Qwd5s6C`>nvl_D9
zV@nlmxaES_p6pZ=N32m=APOw|eQ+a++Q(dM2;`UVJ15gFlVJV?WmOtZMyu{g;VT>?
z`oe?w4J{;Vl?M=H{-y6(M!nHXA*gxzn!!@Nuuv;$VMH@YNA86@-F&uP2V3m-7o$J+
zmE}ou`e8j3{hz4p
zKGbh~!FvC1BvVNLWmWzsO=Fsd^170iSg@@@dvwmQtnc6aitnRn%1cW`62@nOK4dj`
z5FyW=DHtapW9++;+e=bA_i>DI3uie7aG74Z(yh4MlPw0XO!l>KG?K6wvZD-s#iS!b
zocX5c6MP1FYC?A1B+6}gp@9~&4df~lsR=^)RmLxhU(laZMrh)BqW4?`c%|39m>_P~
z5o8}2JUS|iW_Wb+WBWC6{hX8NtUH>}jnVm;-2Gv&L}cag&Fn~?3@gmL
zH&KPdcKLw5B=(5F)Yp7c1NE~Ck0iVMLTHiKh9bn*HISDpXwGRswr(QKL(%QjDj-bI
zXfxnLu<47k+MPPH^x;&GVb)v{n|F>RKULm;R0%l!8oXa`PI1++8FT%TU3%!_{NnF4
zL~|ut1s!#1)1mLHMaY{he%Wh=noTxY)^Nak`Ep`$!Hch%xV#^(&YTv_7;b0qbH~vJ
z^LwxvZ4}LV_x!OP@VHLgC3?aD(*S-iK1Y47Pc
zFfr_YOeuau_`%wDWYy5(*yt;%Ou0okn#TLor4)S3F|}8mtf;WlA}Ayp&$Y_9+YEQZ
zbd-vrzbS~?T;Wwllu9iHX|R1*dBs#}{bzyqA+@#*=(=dyOf+R$88(sU
z4%xhBY9ng+fmNbTg%BnAi@HVr$JHk+UUo3ZPpQ_MyxK$FM6H;fogdV9)~5ErD0M5bx*yGdrqvoh
zyS$aKZT_tYg=8Zhvtf=hd%BNJuSKO^%<;Ym6R-Tfs9);{EdR$CS+cU!gqmCvHmy;lN!sJX2xv06{mu#-4U~(yEFx;
z@$#iK!eImh2rF`S61f)9
zpQwF8?~x|t77n!-i9|oAYS6}$9v+!vs)FLl?-cQ
zq5GzgH}mHFx<^QecDTHyK(yx1?CB~*1c+Z=kr^MZ6B-5%N4$W|*f$*0J_$dOs-8A;
z$$sM%5p;~uz)4N25n9H00!llNQnU+n{;_cXEVj%M^G{C3oSjsowciKe2Zw49EG+XZ
z$K6+bfjce&Po?Equj)|qI?EYinpPW)HEhx4n8e3Ca)!Iyxig&P
zF7V{_;pAVm-Q$?rKVlC-KtpA#TU}fCCdU!S&Ir%fwR=akA>GeJFFlfJxcXA5o}}3s
z^cXyn1W^<-zwYKo_nE^(>+Ph
zdPk@hT?4^Fn#$}i%-9U*@^nz~GLc2lRCLw3DW@+CdA*?i(XiajV0++9Nexdv07Yjrxl!hlizEs|l8G1>IJs=92C~}W#
zxcj-l(=-#9*7!~=PUCs(gW;2Z85}`)zu~(>_3~jM*y=ucI9q&OXNu|1^WwQ6A&--$
zdZqWX+fu?}k!)?|{Ah%yA=bftkag&H2E&JW2q1L2#}w#
z3Rk2=bLV!-aL{Vk^^)LLAc^!yYp2)C+tKGH`e8G+EsSwKR;S{XIJQltEO581GO)tF
z`BA4m#tx*f->&1E?9k89^!I5U;kqy-9tPmdveA1cVTBLH^{FI4Qh`|ojcDLjODXz+
z$eVk4sxOLMcF2V|(Y+&nD}CrvR1g;#!oC2%)4fkG`2IqKTly~0{o}W^A#$XDDv%ME
zg{)%!|LraRE2;6A2mT8K0;xlX0gk>sC-s+h4^BgQ)#7ZWu0Flk?6kZ&oXl#n@;PvNdb;jaA_UTt5e|dHLy2*uf!Zb@Augxrr_-neO2oTjm5>@oFfs0^dO%=
zG2q>e#{yPDKLG-yS_n+Wy^76wd!nYMM$_PJLQS2)?dlUmq(@JIc4w+YH7qRbUf|r?
z%E#vSy~SmBvPe-``LTz1Gd_g0FrP^7RSLU>!sWqtG&D5Ysc?MuApZg8cUQ8fgjC_E
zP%L|ui07XXRFK%1^(=K)5X~YWzFL2$rWGas(QEKgV|=G_QN;W~=!6oJK#7YZ^!!af
zEHOTQI7={#y2tHm9TRANH~JvHFJtvtj&tkk&YpDq>RpQx6!5uqN2S2zJL=4f61bj_
zWmc}_e0zPixVY%=?+?^BgA)*6_ZVxw$JEg(kGZpW>KMW1I2OGhuLoR9Lqh`NBbe{1
zj=Sr0Zl}I*{K-c9WuT8#O#~vPDCM1*T8pu}-#1TiabpCZy?kQ`WDWffnY3%f?6P>&
zaSN!N;EqTTEP)9$YK255J(+_8AR_-cQ7|Nm$uD+s*aak&KwO#WeIl(x?!F!)X-QV0
z0~9BV+)7Db%sm^UgAhf6
zElM^|{pNVJx2pZx8cc3K!f5IXo3Gizrhodk<-*^78{;Eic%2WF#d?N)zILR?d?c
z|BQf$q{IgLg43)0W`79rObYB8LAeAJDJ3Djyp`MM7AI^Q{;x2fWOcdn_U
z!{hzyjm#R@6QcUnZih?U+}tJTNYtTDpVD%q9hXUuD?HSB
znn0!|SceRJ4;k-Z(rZx?k@(7i-*I)i6$Vx0KgSWrPNe~&qM3>XS>`seN#j$F;#Bo-
zyEkkNPn{3A+B4cO6uMy4XhD#kXtgzz6t2(SLV5&W8*;I=P0I3LLziip3ETzG7w_OY
z&0C!vDDjJ2MCC7iywh>(F3U5wu
zaKL;lQ~n^5kCG=?&CM+>rK1ycSQRU!#8pgAK7kSX^_|1}LUU>X83j8=ZRNzzg@P+98CB%|gsFORb`vr9{q{i~!v>nTkNpPf|W
zC(AA(K@$D+nKy>hi=Xw?x-M_z-vsf4f)BKN%lw$rFaEVMC#PYjZ%qxGOa~3F>KDip
zMjbVMeFd}iTi!#QCr`rCL_p!kWQA_y;^M33T$fTAi5kM^ugZ1RJ+{ws7bUfS?D9B^
z9G@AlJz-PdsQs((B1}or)KU{6i)D7AeU(9zp{~MKHYJnuOty5eFq{xbsGkWI)G;>d
zK%$BA3FMGNad9O2XZcV1DbA|gKMnsnUYiE;y%JEe*%zgu>~nE8sfbCy5iFxZNBu!tH`T0!X7huNcsj??fAIXqt9sTt26?`XCr)Evv_YWJ8igH!Wb=WrnZXywh^>!Fzm~z
zVXUBV6gwmU8+dln0Qn!liPCO(?$^&2DrC&Jd0nEwsrzwnV-A3o+X-WCmqLT1;14A-
zXis#!dpEdX8S={`O6%am2?}57-A8+}K+XqS`&fHrXJQU^ig$052QIxfM#>$T`GDNK
zw8d%J!Mu)HHAyWYe81>c>SyH52V9CNgy?j&_b6mOvzNE0W2%d!B)>WlG5Jo1*++Bu
zbX1g-gfOBfcuyiYY*h61?-rfLl&Q|__4SFHg=_pBYc>8>U+`S(MQygc4bfNUVfs)Y
zNxdobs=%wxXknOk?@BNA(3=@eAEvlg3h&LkrWM@!v=(`I!H}*>1^@Et@Kcg4d2?-%
ztVydsnbF>H=FK0yHiNVF^lCPH`mE?Y3HH@HVR6U3@jRn}NFrZXvIzH+dp8*Wl=Jmd
zair#c5;dP6oql!u#maf>xi}82eiH7@Ym%42nbOT)!e_Nvxqm4>2(sQr`Sd(aJvtTz
zN7Td3d8i=Z%ZocTxq;P+b1tt5)do${8A)8yQ@L3CDTe;2K9`1rYtS
zF5s~L{_!3&7Ll^(@@HODYNH#_J_kQDJX~t)6}>G^)>2S1pUIPqdVq%ah=_+H@HV_S
znN3Wr|Il@WR?W`4l!lng(S14V1bNCr>VV!O5H3?X7pXXGg6IpLj*kx~0AuQ7J`
z;Lvx}=Pm_lYjgJjtq91l{`MzI(QVdL|+I`vWF3+v2>f0vx-v)}OoIv<-5p9MYAw
z>^3tDj-K}ISB30tUSRJ41jFfZVyYv~4VstnEmm2ZXF59x?x%6haUv%rCk|yLer;ZG
zYQ}kp6lzg(>y7MWiAy|QIA3S_T6heh`vc!BvzuqG^DDtj|L=3>DJvdY4*wz-2-Q@L)fjFv%JgM{tISnjXUw{1up
z6O~R6o!7kfWUk07POPxr^>d5ZjEILn)XNg{JtLVh~mF^x?ye1ElfM#jVUNceYBBeP{^UcbS^o)h;riN
zHW*G!@N(4qW6i0BPXd*=ePVL6axTq>z{<+*usKHb$j=Q9f|1tHqSL4SqNUlT*sK`7
z8d5Kku}u2HJ%0E-q_N6-9ZpRnAeX`>4%W_M^jRq182{xW5Dgc}r%9x(Z)}WY@~0Kv
zTiJ{1!(key6j0WRdWP$>EQFN3%1OIH-Fdzd&%o#h1b9-Ccrc(NoI>qX}dvE
zP@oLql)!e?tnyw%JL!ohV{mGzE%KCAcTrcbk9p~O(ED&XxFw94>j
zjid~k$GqDz8bcOC7LQTrRrXcsL~CYUkl<}!nUT75)V~g1Zi>(#k7eTT(J@3F`XyF)
zIm+#JCv9JG290?n46j4m^t&ZvEEX%y^7VV8WQ(Dw7g6bQ+SKOCj
z3$*PEwoUya>FtqH@e259yhq#m{3NT(#gB2kOWZ@Lk1|ejpIv+`=RMe)XFinQaC;AO
z(ZKtQk;n9pj8LJ?7RWvc#g5`T>HnG|Dh@3=?jy8U3Y7@{@N2vSmQb_}kaQeb{twZF
zv+c>}8Jgp2@!^D~Ps_8=)0O({vayA;Psdu$z3ZN49kTm(jMq5!^uJ#7gB7UJ_igs#5RkfL0^!wFhN(!qFDhk-t*p%SK0=={5(2yN5Y2}q8gtuPjdxLv8
z@1rIf?V#!hJDhb=d$W(QgycXnJ-F2~gxJf7
zCuU~0!9K_ah-2VBKIiLNqc;-lRzA1Y#afn_rGRWO~&Uoh!fG{&s*v28JVinF1QPA}`aha8yw7MP=#@8DAK0oJew7SQRU(r-NO
zxi2r3Efi0!pc_(#`Z@dC43U;f>U`nfUuCx`6k1=uX*gT{E|LiJHC&HhLQy0aQ80xp
zAA=xP>>Er&Q&Sabrplm$?T)f?R^Q7Ogn*{|_mRZ$+80&qLV=m6WELZ+nSEVpQ&Tcq
zL$%45LEIA2>L`Aw>>@+X6%VTVZ|&li%Yj!H&YyPNuqWNaZF*rk%NeTAOu2Z98(5Ti
zR?Lp!8N3G`p6Lq|HxLM32@)KAu)Bwz-1G84{&Dy47`0-i+{(tv2a?Q}4&;p9Cj-xE
zVKE!@baXrO^}9pN9j_B#v!D1pcQvuFQXY-c65CD^EO7U%&IM5CgmS#kYM`_b-6G|O
zqT{gcXSoS>zW{B8uK(R#r0kt^vy&0PEej{mI_B&H0zi%!NCyT~F=sh$jV7
zCINs|)}MlkG%;$W#dn8Mr4wAIeIs@LveV9)my6S7ZXJ@<@UC2OpqOnT7b
z<+y&MQWom*gIzwmf`zO${U+$CphM2rVHsq2GR+J7Nkuv0{@h<p4_dyn^a%SH6ne+I|*QLF@CNIXhBGi}?u;ytsF
zfm?NSd``bZ%0djIPYyToKiUw#*+>0O6+(4puEljbXY)tNEA`fJD9OA=z+(Dmeqr1^
zj&H{VZW!cS&u4TM`Hln15Gf0R7s7b6+7qHy4vM>IgUqkcXWq6s26e=y-Ar`q-`U5Ke)%Zr11A3QJdF?HWQLxTqhyNWCpNikjb9tNCo)$*0(gBUZ2J2@
zw;KIkAA8+|Ql84Wen;Z6&lS%9(dHMN!KcPRWH;w2#E>Gwki59Evhb;hPn7=vSlZ38
zEbx!Hof8`)`jvr#!YH%PF`7xDTc_0zW(Z9y)AM_Y4#x7@}5w*1n8
zB8UA59q#^xXt}xS@N4U5m|e}2-}c!KH%DxJIBhcnJ!yAi8cDAsp0?J@~a$Y<*(W0&`wwPvzy
zI=0grr-5DOmug*y%X5b|_2+Vj;FVBK
zFxboFZF%o{#nOtIvW}j~I;b6Z*`*)ved>u%s%u0TfBcDsv}X53M^`+RJX