From 15f8671f5f6ff9be730a661b610e1697808ee81b Mon Sep 17 00:00:00 2001 From: Ning Shang Date: Thu, 10 Sep 2020 14:59:38 +0800 Subject: [PATCH] fix experiment import bug and add it cases: experiment import & export --- src/sdk/pynni/nni/msg_dispatcher.py | 1 + test/config/integration_tests.yml | 14 +++++++++++ .../sklearn-classification.yml | 23 +++++++++++++++++++ .../config/nnictl_experiment/test_import.json | 4 ++++ 4 files changed, 42 insertions(+) create mode 100644 test/config/nnictl_experiment/sklearn-classification.yml create mode 100644 test/config/nnictl_experiment/test_import.json diff --git a/src/sdk/pynni/nni/msg_dispatcher.py b/src/sdk/pynni/nni/msg_dispatcher.py index d66aca458c..7e3232e4f9 100644 --- a/src/sdk/pynni/nni/msg_dispatcher.py +++ b/src/sdk/pynni/nni/msg_dispatcher.py @@ -114,6 +114,7 @@ def handle_import_data(self, data): data: a list of dictionaries, each of which has at least two keys, 'parameter' and 'value' """ for entry in data: + entry['value'] = entry['value'] if type(entry['value']) is str else json_tricks.dumps(entry['value']) entry['value'] = json_tricks.loads(entry['value']) self.tuner.import_data(data) diff --git a/test/config/integration_tests.yml b/test/config/integration_tests.yml index dfd34e9ae2..f70d65048a 100644 --- a/test/config/integration_tests.yml +++ b/test/config/integration_tests.yml @@ -171,6 +171,20 @@ testCases: launchCommand: nnictl view $resumeExpId experimentStatusCheck: False +# Experiment import test +- name: nnictl-experiment-import + configFile: test/config/nnictl_experiment/sklearn-classification.yml + setExperimentIdtoVar: $imoprtExpId + stopCommand: nnictl experiment import $imoprtExpId -f config/nnictl_experiment/test_import.json + onExitCommand: nnictl stop + +# Experiment export test +- name: nnictl-experiment-export + configFile: test/config/nnictl_experiment/sklearn-classification.yml + launchCommand: nnictl resume $imoprtExpId + stopCommand: nnictl experiment export --filename config/nnictl_experiment/test_export.json --type json --intermediate + onExitCommand: nnictl stop + - name: multi-thread configFile: test/config/multi_thread/config.yml diff --git a/test/config/nnictl_experiment/sklearn-classification.yml b/test/config/nnictl_experiment/sklearn-classification.yml new file mode 100644 index 0000000000..5a803e40d2 --- /dev/null +++ b/test/config/nnictl_experiment/sklearn-classification.yml @@ -0,0 +1,23 @@ +authorName: nni +experimentName: default_test +maxExecDuration: 5m +maxTrialNum: 4 +trialConcurrency: 2 +searchSpacePath: ../../../examples/trials/sklearn/classification/search_space.json + +tuner: + builtinTunerName: TPE +assessor: + builtinAssessorName: Medianstop + classArgs: + optimize_mode: maximize +trial: + codeDir: ../../../examples/trials/sklearn/classification + command: python3 main.py + gpuNum: 0 + +useAnnotation: false +multiPhase: false +multiThread: false + +trainingServicePlatform: local diff --git a/test/config/nnictl_experiment/test_import.json b/test/config/nnictl_experiment/test_import.json new file mode 100644 index 0000000000..206b9b8486 --- /dev/null +++ b/test/config/nnictl_experiment/test_import.json @@ -0,0 +1,4 @@ +[ + {"parameter": {"C": 0.15940134774738896, "kernel": "sigmoid", "degree": 3, "gamma": 0.07295826917955316, "coef0 ": 0.0978204758732429}, "value": 0.6}, + {"parameter": {"C": 0.5556430724708544, "kernel": "linear", "degree": 3, "gamma": 0.04957496655414671, "coef0 ": 0.08520868779907687}, "value": 0.7} +]