Unverified Commit 754b0043 authored by Yuge Zhang's avatar Yuge Zhang Committed by GitHub
Browse files

Add WebUI mock server and improve hyper-parameter parallel coordinates chart (#2691)

parent 710204be
...@@ -48,7 +48,8 @@ Nothing to do, the code is already linked to package folders. ...@@ -48,7 +48,8 @@ Nothing to do, the code is already linked to package folders.
#### TypeScript #### TypeScript
* If `src/nni_manager` is changed, run `yarn watch` under this folder. It will watch and build code continually. The `nnictl` need to be restarted to reload NNI manager. * If `src/nni_manager` is changed, run `yarn watch` under this folder. It will watch and build code continually. The `nnictl` need to be restarted to reload NNI manager.
* If `src/webui` or `src/nasui` are changed, run `yarn start` under the corresponding folder. The web UI will refresh automatically if code is changed. * If `src/webui` is changed, run `yarn dev`, which will run a mock API server and a webpack dev server simultaneously. Use `EXPERIMENT` environment variable (e.g., `mnist-tfv1-running`) to specify the mock data being used. Built-in mock experiments are listed in `src/webui/mock`. An example of the full command is `EXPERIMENT=mnist-tfv1-running yarn dev`.
* If `src/nasui` is changed, run `yarn start` under the corresponding folder. The web UI will refresh automatically if code is changed. There is also a mock API server that is useful when developing. It can be launched via `node server.js`.
### 5. Submit Pull Request ### 5. Submit Pull Request
......
...@@ -28,8 +28,7 @@ module.exports = function(proxy, allowedHost) { ...@@ -28,8 +28,7 @@ module.exports = function(proxy, allowedHost) {
// So we will disable the host check normally, but enable it if you have // So we will disable the host check normally, but enable it if you have
// specified the `proxy` setting. Finally, we let you override it if you // specified the `proxy` setting. Finally, we let you override it if you
// really know what you're doing with a special environment variable. // really know what you're doing with a special environment variable.
disableHostCheck: disableHostCheck: true,
!proxy || process.env.DANGEROUSLY_DISABLE_HOST_CHECK === 'true',
// Enable gzip compression of generated files. // Enable gzip compression of generated files.
compress: true, compress: true,
// Silence WebpackDevServer's own logs since they're generally not useful. // Silence WebpackDevServer's own logs since they're generally not useful.
......
This diff is collapsed.
{
"checkStatus": {
"status": "RUNNING",
"errors": []
},
"experiment": {
"id": "AKVcExIf",
"revision": 29,
"execDuration": 172,
"logDir": "/home/v-yugzh/nni/experiments/AKVcExIf",
"nextSequenceId": 10,
"params": {
"authorName": "default",
"experimentName": "mnist-nested-search-space",
"trialConcurrency": 2,
"maxExecDuration": 3600,
"maxTrialNum": 100,
"searchSpace": "{\"layer0\": {\"_type\": \"choice\", \"_value\": [{\"_name\": \"Empty\"}, {\"_name\": \"Conv\", \"kernel_size\": {\"_type\": \"choice\", \"_value\": [1, 2, 3, 5]}}, {\"_name\": \"Max_pool\", \"pooling_size\": {\"_type\": \"choice\", \"_value\": [2, 3, 5]}}, {\"_name\": \"Avg_pool\", \"pooling_size\": {\"_type\": \"choice\", \"_value\": [2, 3, 5]}}]}, \"layer1\": {\"_type\": \"choice\", \"_value\": [{\"_name\": \"Empty\"}, {\"_name\": \"Conv\", \"kernel_size\": {\"_type\": \"choice\", \"_value\": [1, 2, 3, 5]}}, {\"_name\": \"Max_pool\", \"pooling_size\": {\"_type\": \"choice\", \"_value\": [2, 3, 5]}}, {\"_name\": \"Avg_pool\", \"pooling_size\": {\"_type\": \"choice\", \"_value\": [2, 3, 5]}}]}, \"layer2\": {\"_type\": \"choice\", \"_value\": [{\"_name\": \"Empty\"}, {\"_name\": \"Conv\", \"kernel_size\": {\"_type\": \"choice\", \"_value\": [1, 2, 3, 5]}}, {\"_name\": \"Max_pool\", \"pooling_size\": {\"_type\": \"choice\", \"_value\": [2, 3, 5]}}, {\"_name\": \"Avg_pool\", \"pooling_size\": {\"_type\": \"choice\", \"_value\": [2, 3, 5]}}]}, \"layer3\": {\"_type\": \"choice\", \"_value\": [{\"_name\": \"Empty\"}, {\"_name\": \"Conv\", \"kernel_size\": {\"_type\": \"choice\", \"_value\": [1, 2, 3, 5]}}, {\"_name\": \"Max_pool\", \"pooling_size\": {\"_type\": \"choice\", \"_value\": [2, 3, 5]}}, {\"_name\": \"Avg_pool\", \"pooling_size\": {\"_type\": \"choice\", \"_value\": [2, 3, 5]}}]}}",
"trainingServicePlatform": "local",
"tuner": {
"builtinTunerName": "TPE",
"classArgs": {
"optimize_mode": "maximize"
},
"checkpointDir": "/home/v-yugzh/nni/experiments/AKVcExIf/checkpoint"
},
"versionCheck": true,
"clusterMetaData": [
{
"key": "codeDir",
"value": "/home/v-yugzh/nnidev/examples/trials/mnist-nested-search-space/."
},
{
"key": "command",
"value": "python3 mnist.py"
}
]
},
"startTime": 1594743000325
},
"trialJobs": [
{
"id": "pWGks",
"status": "SUCCEEDED",
"hyperParameters": [
"{\"parameter_id\":0,\"parameter_source\":\"algorithm\",\"parameters\":{\"layer0\":{\"_name\":\"Conv\",\"kernel_size\":1},\"layer1\":{\"_name\":\"Empty\"},\"layer2\":{\"_name\":\"Empty\"},\"layer3\":{\"_name\":\"Conv\",\"kernel_size\":2}},\"parameter_index\":0}"
],
"logPath": "file://localhost:/home/v-yugzh/nni/experiments/AKVcExIf/trials/pWGks",
"startTime": 1594743010351,
"sequenceId": 0,
"endTime": 1594743024895,
"finalMetricData": [
{
"timestamp": 1594743024475,
"trialJobId": "pWGks",
"parameterId": "0",
"type": "FINAL",
"sequence": 0,
"data": "\"0.8528000116348267\""
}
]
},
{
"id": "MLbm0",
"status": "SUCCEEDED",
"hyperParameters": [
"{\"parameter_id\":1,\"parameter_source\":\"algorithm\",\"parameters\":{\"layer0\":{\"_name\":\"Max_pool\",\"pooling_size\":2},\"layer1\":{\"_name\":\"Avg_pool\",\"pooling_size\":3},\"layer2\":{\"_name\":\"Max_pool\",\"pooling_size\":3},\"layer3\":{\"_name\":\"Conv\",\"kernel_size\":1}},\"parameter_index\":0}"
],
"logPath": "file://localhost:/home/v-yugzh/nni/experiments/AKVcExIf/trials/MLbm0",
"startTime": 1594743010364,
"sequenceId": 1,
"endTime": 1594743034124,
"finalMetricData": [
{
"timestamp": 1594743033740,
"trialJobId": "MLbm0",
"parameterId": "1",
"type": "FINAL",
"sequence": 0,
"data": "\"0.7577000260353088\""
}
]
},
{
"id": "YMsEs",
"status": "SUCCEEDED",
"hyperParameters": [
"{\"parameter_id\":2,\"parameter_source\":\"algorithm\",\"parameters\":{\"layer0\":{\"_name\":\"Empty\"},\"layer1\":{\"_name\":\"Conv\",\"kernel_size\":3},\"layer2\":{\"_name\":\"Max_pool\",\"pooling_size\":3},\"layer3\":{\"_name\":\"Empty\"}},\"parameter_index\":0}"
],
"logPath": "file://localhost:/home/v-yugzh/nni/experiments/AKVcExIf/trials/YMsEs",
"startTime": 1594743035377,
"sequenceId": 2,
"endTime": 1594743058257,
"finalMetricData": [
{
"timestamp": 1594743057822,
"trialJobId": "YMsEs",
"parameterId": "2",
"type": "FINAL",
"sequence": 0,
"data": "\"0.8827000260353088\""
}
]
},
{
"id": "LnVu0",
"status": "SUCCEEDED",
"hyperParameters": [
"{\"parameter_id\":3,\"parameter_source\":\"algorithm\",\"parameters\":{\"layer0\":{\"_name\":\"Avg_pool\",\"pooling_size\":5},\"layer1\":{\"_name\":\"Avg_pool\",\"pooling_size\":2},\"layer2\":{\"_name\":\"Max_pool\",\"pooling_size\":2},\"layer3\":{\"_name\":\"Max_pool\",\"pooling_size\":3}},\"parameter_index\":0}"
],
"logPath": "file://localhost:/home/v-yugzh/nni/experiments/AKVcExIf/trials/LnVu0",
"startTime": 1594743045392,
"sequenceId": 3,
"endTime": 1594743070907,
"finalMetricData": [
{
"timestamp": 1594743070488,
"trialJobId": "LnVu0",
"parameterId": "3",
"type": "FINAL",
"sequence": 0,
"data": "\"0.8062000274658203\""
}
]
},
{
"id": "cGsLm",
"status": "SUCCEEDED",
"hyperParameters": [
"{\"parameter_id\":4,\"parameter_source\":\"algorithm\",\"parameters\":{\"layer0\":{\"_name\":\"Avg_pool\",\"pooling_size\":2},\"layer1\":{\"_name\":\"Empty\"},\"layer2\":{\"_name\":\"Empty\"},\"layer3\":{\"_name\":\"Max_pool\",\"pooling_size\":2}},\"parameter_index\":0}"
],
"logPath": "file://localhost:/home/v-yugzh/nni/experiments/AKVcExIf/trials/cGsLm",
"startTime": 1594743070448,
"sequenceId": 4,
"endTime": 1594743080772,
"finalMetricData": [
{
"timestamp": 1594743080391,
"trialJobId": "cGsLm",
"parameterId": "4",
"type": "FINAL",
"sequence": 0,
"data": "\"0.8560000061988831\""
}
]
},
{
"id": "HPx4W",
"status": "SUCCEEDED",
"hyperParameters": [
"{\"parameter_id\":5,\"parameter_source\":\"algorithm\",\"parameters\":{\"layer0\":{\"_name\":\"Avg_pool\",\"pooling_size\":3},\"layer1\":{\"_name\":\"Conv\",\"kernel_size\":1},\"layer2\":{\"_name\":\"Avg_pool\",\"pooling_size\":3},\"layer3\":{\"_name\":\"Empty\"}},\"parameter_index\":0}"
],
"logPath": "file://localhost:/home/v-yugzh/nni/experiments/AKVcExIf/trials/HPx4W",
"startTime": 1594743085463,
"sequenceId": 5,
"endTime": 1594743097170,
"finalMetricData": [
{
"timestamp": 1594743096730,
"trialJobId": "HPx4W",
"parameterId": "5",
"type": "FINAL",
"sequence": 0,
"data": "\"0.8393999934196472\""
}
]
},
{
"id": "KRmXe",
"status": "SUCCEEDED",
"hyperParameters": [
"{\"parameter_id\":6,\"parameter_source\":\"algorithm\",\"parameters\":{\"layer0\":{\"_name\":\"Max_pool\",\"pooling_size\":5},\"layer1\":{\"_name\":\"Max_pool\",\"pooling_size\":3},\"layer2\":{\"_name\":\"Conv\",\"kernel_size\":3},\"layer3\":{\"_name\":\"Max_pool\",\"pooling_size\":3}},\"parameter_index\":0}"
],
"logPath": "file://localhost:/home/v-yugzh/nni/experiments/AKVcExIf/trials/KRmXe",
"startTime": 1594743095483,
"sequenceId": 6,
"endTime": 1594743143299,
"finalMetricData": [
{
"timestamp": 1594743142896,
"trialJobId": "KRmXe",
"parameterId": "6",
"type": "FINAL",
"sequence": 0,
"data": "\"0.7985000014305115\""
}
]
},
{
"id": "mAp2q",
"status": "SUCCEEDED",
"hyperParameters": [
"{\"parameter_id\":7,\"parameter_source\":\"algorithm\",\"parameters\":{\"layer0\":{\"_name\":\"Max_pool\",\"pooling_size\":3},\"layer1\":{\"_name\":\"Max_pool\",\"pooling_size\":5},\"layer2\":{\"_name\":\"Empty\"},\"layer3\":{\"_name\":\"Empty\"}},\"parameter_index\":0}"
],
"logPath": "file://localhost:/home/v-yugzh/nni/experiments/AKVcExIf/trials/mAp2q",
"startTime": 1594743110497,
"sequenceId": 7,
"endTime": 1594743142998,
"finalMetricData": [
{
"timestamp": 1594743142389,
"trialJobId": "mAp2q",
"parameterId": "7",
"type": "FINAL",
"sequence": 0,
"data": "\"0.7736999988555908\""
}
]
},
{
"id": "fodfO",
"status": "RUNNING",
"hyperParameters": [
"{\"parameter_id\":8,\"parameter_source\":\"algorithm\",\"parameters\":{\"layer0\":{\"_name\":\"Max_pool\",\"pooling_size\":3},\"layer1\":{\"_name\":\"Conv\",\"kernel_size\":5},\"layer2\":{\"_name\":\"Avg_pool\",\"pooling_size\":5},\"layer3\":{\"_name\":\"Max_pool\",\"pooling_size\":3}},\"parameter_index\":0}"
],
"logPath": "file://localhost:/home/v-yugzh/nni/experiments/AKVcExIf/trials/fodfO",
"startTime": 1594743155513,
"sequenceId": 8
},
{
"id": "gsFlu",
"status": "RUNNING",
"hyperParameters": [
"{\"parameter_id\":9,\"parameter_source\":\"algorithm\",\"parameters\":{\"layer0\":{\"_name\":\"Conv\",\"kernel_size\":3},\"layer1\":{\"_name\":\"Conv\",\"kernel_size\":3},\"layer2\":{\"_name\":\"Avg_pool\",\"pooling_size\":3},\"layer3\":{\"_name\":\"Max_pool\",\"pooling_size\":3}},\"parameter_index\":0}"
],
"logPath": "file://localhost:/home/v-yugzh/nni/experiments/AKVcExIf/trials/gsFlu",
"startTime": 1594743155526,
"sequenceId": 9
}
],
"metricData": [
{
"timestamp": 1594743024475,
"trialJobId": "pWGks",
"parameterId": "0",
"type": "FINAL",
"sequence": 0,
"data": "\"0.8528000116348267\""
},
{
"timestamp": 1594743033740,
"trialJobId": "MLbm0",
"parameterId": "1",
"type": "FINAL",
"sequence": 0,
"data": "\"0.7577000260353088\""
},
{
"timestamp": 1594743057822,
"trialJobId": "YMsEs",
"parameterId": "2",
"type": "FINAL",
"sequence": 0,
"data": "\"0.8827000260353088\""
},
{
"timestamp": 1594743070488,
"trialJobId": "LnVu0",
"parameterId": "3",
"type": "FINAL",
"sequence": 0,
"data": "\"0.8062000274658203\""
},
{
"timestamp": 1594743080391,
"trialJobId": "cGsLm",
"parameterId": "4",
"type": "FINAL",
"sequence": 0,
"data": "\"0.8560000061988831\""
},
{
"timestamp": 1594743096730,
"trialJobId": "HPx4W",
"parameterId": "5",
"type": "FINAL",
"sequence": 0,
"data": "\"0.8393999934196472\""
},
{
"timestamp": 1594743142389,
"trialJobId": "mAp2q",
"parameterId": "7",
"type": "FINAL",
"sequence": 0,
"data": "\"0.7736999988555908\""
},
{
"timestamp": 1594743142896,
"trialJobId": "KRmXe",
"parameterId": "6",
"type": "FINAL",
"sequence": 0,
"data": "\"0.7985000014305115\""
}
]
}
{
"checkStatus": {
"status": "RUNNING",
"errors": []
},
"experiment": {
"id": "GD5MnU8G",
"revision": 22,
"execDuration": 172,
"logDir": "/home/user/nni/experiments/GD5MnU8G",
"nextSequenceId": 3,
"params": {
"authorName": "default",
"experimentName": "example_mnist",
"trialConcurrency": 1,
"maxExecDuration": 3600,
"maxTrialNum": 10,
"searchSpace": "{\"dropout_rate\": {\"_type\": \"uniform\", \"_value\": [0.5, 0.9]}, \"conv_size\": {\"_type\": \"choice\", \"_value\": [2, 3, 5, 7]}, \"hidden_size\": {\"_type\": \"choice\", \"_value\": [124, 512, 1024]}, \"batch_size\": {\"_type\": \"choice\", \"_value\": [1, 4, 8, 16, 32]}, \"learning_rate\": {\"_type\": \"choice\", \"_value\": [0.0001, 0.001, 0.01, 0.1]}}",
"trainingServicePlatform": "local",
"tuner": {
"builtinTunerName": "TPE",
"classArgs": {
"optimize_mode": "maximize"
},
"checkpointDir": "/home/user/nni/experiments/GD5MnU8G/checkpoint"
},
"versionCheck": true,
"clusterMetaData": [
{
"key": "codeDir",
"value": "/home/user/nnidev/examples/trials/mnist-tfv1/."
},
{
"key": "command",
"value": "python3 mnist.py"
}
]
},
"startTime": 1594299813929
},
"metricData": [
{
"timestamp": 1594299828333,
"trialJobId": "rIW79",
"parameterId": "0",
"type": "PERIODICAL",
"sequence": 0,
"data": "\"0.0982000008225441\""
},
{
"timestamp": 1594299830651,
"trialJobId": "rIW79",
"parameterId": "0",
"type": "PERIODICAL",
"sequence": 1,
"data": "\"0.3490999937057495\""
},
{
"timestamp": 1594299832941,
"trialJobId": "rIW79",
"parameterId": "0",
"type": "PERIODICAL",
"sequence": 2,
"data": "\"0.617900013923645\""
},
{
"timestamp": 1594299835245,
"trialJobId": "rIW79",
"parameterId": "0",
"type": "PERIODICAL",
"sequence": 3,
"data": "\"0.5990999937057495\""
},
{
"timestamp": 1594299837540,
"trialJobId": "rIW79",
"parameterId": "0",
"type": "PERIODICAL",
"sequence": 4,
"data": "\"0.7716000080108643\""
},
{
"timestamp": 1594299839841,
"trialJobId": "rIW79",
"parameterId": "0",
"type": "PERIODICAL",
"sequence": 5,
"data": "\"0.7502999901771545\""
},
{
"timestamp": 1594299842245,
"trialJobId": "rIW79",
"parameterId": "0",
"type": "PERIODICAL",
"sequence": 6,
"data": "\"0.7602999806404114\""
},
{
"timestamp": 1594299844530,
"trialJobId": "rIW79",
"parameterId": "0",
"type": "PERIODICAL",
"sequence": 7,
"data": "\"0.8100000023841858\""
},
{
"timestamp": 1594299846848,
"trialJobId": "rIW79",
"parameterId": "0",
"type": "PERIODICAL",
"sequence": 8,
"data": "\"0.7455999851226807\""
},
{
"timestamp": 1594299849142,
"trialJobId": "rIW79",
"parameterId": "0",
"type": "PERIODICAL",
"sequence": 9,
"data": "\"0.7925999760627747\""
},
{
"timestamp": 1594299851523,
"trialJobId": "rIW79",
"parameterId": "0",
"type": "PERIODICAL",
"sequence": 10,
"data": "\"0.7462999820709229\""
},
{
"timestamp": 1594299853830,
"trialJobId": "rIW79",
"parameterId": "0",
"type": "PERIODICAL",
"sequence": 11,
"data": "\"0.9067999720573425\""
},
{
"timestamp": 1594299856132,
"trialJobId": "rIW79",
"parameterId": "0",
"type": "PERIODICAL",
"sequence": 12,
"data": "\"0.9067000150680542\""
},
{
"timestamp": 1594299858442,
"trialJobId": "rIW79",
"parameterId": "0",
"type": "PERIODICAL",
"sequence": 13,
"data": "\"0.86080002784729\""
},
{
"timestamp": 1594299860720,
"trialJobId": "rIW79",
"parameterId": "0",
"type": "PERIODICAL",
"sequence": 14,
"data": "\"0.8370000123977661\""
},
{
"timestamp": 1594299863053,
"trialJobId": "rIW79",
"parameterId": "0",
"type": "PERIODICAL",
"sequence": 15,
"data": "\"0.8899999856948853\""
},
{
"timestamp": 1594299865356,
"trialJobId": "rIW79",
"parameterId": "0",
"type": "PERIODICAL",
"sequence": 16,
"data": "\"0.8859999775886536\""
},
{
"timestamp": 1594299867672,
"trialJobId": "rIW79",
"parameterId": "0",
"type": "PERIODICAL",
"sequence": 17,
"data": "\"0.8475000262260437\""
},
{
"timestamp": 1594299869969,
"trialJobId": "rIW79",
"parameterId": "0",
"type": "PERIODICAL",
"sequence": 18,
"data": "\"0.7046999931335449\""
},
{
"timestamp": 1594299872260,
"trialJobId": "rIW79",
"parameterId": "0",
"type": "PERIODICAL",
"sequence": 19,
"data": "\"0.8921999931335449\""
},
{
"timestamp": 1594299874555,
"trialJobId": "rIW79",
"parameterId": "0",
"type": "FINAL",
"sequence": 0,
"data": "\"0.9096999764442444\""
},
{
"timestamp": 1594299892295,
"trialJobId": "vNWGk",
"parameterId": "1",
"type": "PERIODICAL",
"sequence": 0,
"data": "\"0.061400000005960464\""
},
{
"timestamp": 1594299893119,
"trialJobId": "vNWGk",
"parameterId": "1",
"type": "PERIODICAL",
"sequence": 1,
"data": "\"0.18520000576972961\""
},
{
"timestamp": 1594299893942,
"trialJobId": "vNWGk",
"parameterId": "1",
"type": "PERIODICAL",
"sequence": 2,
"data": "\"0.3481999933719635\""
},
{
"timestamp": 1594299894743,
"trialJobId": "vNWGk",
"parameterId": "1",
"type": "PERIODICAL",
"sequence": 3,
"data": "\"0.396699994802475\""
},
{
"timestamp": 1594299895570,
"trialJobId": "vNWGk",
"parameterId": "1",
"type": "PERIODICAL",
"sequence": 4,
"data": "\"0.5094000101089478\""
},
{
"timestamp": 1594299896386,
"trialJobId": "vNWGk",
"parameterId": "1",
"type": "PERIODICAL",
"sequence": 5,
"data": "\"0.5019000172615051\""
},
{
"timestamp": 1594299897188,
"trialJobId": "vNWGk",
"parameterId": "1",
"type": "PERIODICAL",
"sequence": 6,
"data": "\"0.6049000024795532\""
},
{
"timestamp": 1594299897995,
"trialJobId": "vNWGk",
"parameterId": "1",
"type": "PERIODICAL",
"sequence": 7,
"data": "\"0.6504999995231628\""
},
{
"timestamp": 1594299898796,
"trialJobId": "vNWGk",
"parameterId": "1",
"type": "PERIODICAL",
"sequence": 8,
"data": "\"0.7235999703407288\""
},
{
"timestamp": 1594299899618,
"trialJobId": "vNWGk",
"parameterId": "1",
"type": "PERIODICAL",
"sequence": 9,
"data": "\"0.7186999917030334\""
},
{
"timestamp": 1594299900431,
"trialJobId": "vNWGk",
"parameterId": "1",
"type": "PERIODICAL",
"sequence": 10,
"data": "\"0.7455999851226807\""
},
{
"timestamp": 1594299901242,
"trialJobId": "vNWGk",
"parameterId": "1",
"type": "PERIODICAL",
"sequence": 11,
"data": "\"0.7889000177383423\""
},
{
"timestamp": 1594299902095,
"trialJobId": "vNWGk",
"parameterId": "1",
"type": "PERIODICAL",
"sequence": 12,
"data": "\"0.7921000123023987\""
},
{
"timestamp": 1594299902908,
"trialJobId": "vNWGk",
"parameterId": "1",
"type": "PERIODICAL",
"sequence": 13,
"data": "\"0.802299976348877\""
},
{
"timestamp": 1594299903733,
"trialJobId": "vNWGk",
"parameterId": "1",
"type": "PERIODICAL",
"sequence": 14,
"data": "\"0.8083000183105469\""
},
{
"timestamp": 1594299904554,
"trialJobId": "vNWGk",
"parameterId": "1",
"type": "PERIODICAL",
"sequence": 15,
"data": "\"0.8136000037193298\""
},
{
"timestamp": 1594299905352,
"trialJobId": "vNWGk",
"parameterId": "1",
"type": "PERIODICAL",
"sequence": 16,
"data": "\"0.8217999935150146\""
},
{
"timestamp": 1594299906176,
"trialJobId": "vNWGk",
"parameterId": "1",
"type": "PERIODICAL",
"sequence": 17,
"data": "\"0.8299999833106995\""
},
{
"timestamp": 1594299906995,
"trialJobId": "vNWGk",
"parameterId": "1",
"type": "PERIODICAL",
"sequence": 18,
"data": "\"0.8392999768257141\""
},
{
"timestamp": 1594299907795,
"trialJobId": "vNWGk",
"parameterId": "1",
"type": "PERIODICAL",
"sequence": 19,
"data": "\"0.8463000059127808\""
},
{
"timestamp": 1594299908598,
"trialJobId": "vNWGk",
"parameterId": "1",
"type": "FINAL",
"sequence": 0,
"data": "\"0.8449000120162964\""
},
{
"timestamp": 1594299923484,
"trialJobId": "IqYms",
"parameterId": "2",
"type": "PERIODICAL",
"sequence": 0,
"data": "\"0.10899999737739563\""
},
{
"timestamp": 1594299927817,
"trialJobId": "IqYms",
"parameterId": "2",
"type": "PERIODICAL",
"sequence": 1,
"data": "\"0.89410001039505\""
},
{
"timestamp": 1594299932184,
"trialJobId": "IqYms",
"parameterId": "2",
"type": "PERIODICAL",
"sequence": 2,
"data": "\"0.9358999729156494\""
},
{
"timestamp": 1594299936551,
"trialJobId": "IqYms",
"parameterId": "2",
"type": "PERIODICAL",
"sequence": 3,
"data": "\"0.9544000029563904\""
},
{
"timestamp": 1594299940884,
"trialJobId": "IqYms",
"parameterId": "2",
"type": "PERIODICAL",
"sequence": 4,
"data": "\"0.9591000080108643\""
},
{
"timestamp": 1594299945242,
"trialJobId": "IqYms",
"parameterId": "2",
"type": "PERIODICAL",
"sequence": 5,
"data": "\"0.9620000123977661\""
},
{
"timestamp": 1594299949587,
"trialJobId": "IqYms",
"parameterId": "2",
"type": "PERIODICAL",
"sequence": 6,
"data": "\"0.9666000008583069\""
},
{
"timestamp": 1594299953936,
"trialJobId": "IqYms",
"parameterId": "2",
"type": "PERIODICAL",
"sequence": 7,
"data": "\"0.9642999768257141\""
},
{
"timestamp": 1594299958254,
"trialJobId": "IqYms",
"parameterId": "2",
"type": "PERIODICAL",
"sequence": 8,
"data": "\"0.9679999947547913\""
},
{
"timestamp": 1594299962667,
"trialJobId": "IqYms",
"parameterId": "2",
"type": "PERIODICAL",
"sequence": 9,
"data": "\"0.9702000021934509\""
},
{
"timestamp": 1594299967026,
"trialJobId": "IqYms",
"parameterId": "2",
"type": "PERIODICAL",
"sequence": 10,
"data": "\"0.9692000150680542\""
},
{
"timestamp": 1594299971361,
"trialJobId": "IqYms",
"parameterId": "2",
"type": "PERIODICAL",
"sequence": 11,
"data": "\"0.9740999937057495\""
},
{
"timestamp": 1594299975870,
"trialJobId": "IqYms",
"parameterId": "2",
"type": "PERIODICAL",
"sequence": 12,
"data": "\"0.9760000109672546\""
},
{
"timestamp": 1594299980209,
"trialJobId": "IqYms",
"parameterId": "2",
"type": "PERIODICAL",
"sequence": 13,
"data": "\"0.97079998254776\""
},
{
"timestamp": 1594299984578,
"trialJobId": "IqYms",
"parameterId": "2",
"type": "PERIODICAL",
"sequence": 14,
"data": "\"0.9749000072479248\""
}
],
"trialJobs": [
{
"id": "rIW79",
"status": "SUCCEEDED",
"hyperParameters": [
"{\"parameter_id\":0,\"parameter_source\":\"algorithm\",\"parameters\":{\"dropout_rate\":0.5263711332698766,\"conv_size\":7,\"hidden_size\":1024,\"batch_size\":1,\"learning_rate\":0.001},\"parameter_index\":0}"
],
"logPath": "file://localhost:/home/user/nni/experiments/GD5MnU8G/trials/rIW79",
"startTime": 1594299823975,
"sequenceId": 0,
"endTime": 1594299874953,
"finalMetricData": [
{
"timestamp": 1594299874555,
"trialJobId": "rIW79",
"parameterId": "0",
"type": "FINAL",
"sequence": 0,
"data": "\"0.9096999764442444\""
}
]
},
{
"id": "vNWGk",
"status": "SUCCEEDED",
"hyperParameters": [
"{\"parameter_id\":1,\"parameter_source\":\"algorithm\",\"parameters\":{\"dropout_rate\":0.6442863649016913,\"conv_size\":2,\"hidden_size\":124,\"batch_size\":8,\"learning_rate\":0.0001},\"parameter_index\":0}"
],
"logPath": "file://localhost:/home/user/nni/experiments/GD5MnU8G/trials/vNWGk",
"startTime": 1594299889024,
"sequenceId": 1,
"endTime": 1594299908983,
"finalMetricData": [
{
"timestamp": 1594299908598,
"trialJobId": "vNWGk",
"parameterId": "1",
"type": "FINAL",
"sequence": 0,
"data": "\"0.8449000120162964\""
}
]
},
{
"id": "IqYms",
"status": "RUNNING",
"hyperParameters": [
"{\"parameter_id\":2,\"parameter_source\":\"algorithm\",\"parameters\":{\"dropout_rate\":0.8254386039941805,\"conv_size\":7,\"hidden_size\":1024,\"batch_size\":32,\"learning_rate\":0.001},\"parameter_index\":0}"
],
"logPath": "file://localhost:/home/user/nni/experiments/GD5MnU8G/trials/IqYms",
"startTime": 1594299919039,
"sequenceId": 2
}
]
}
{
"checkStatus": {
"status": "RUNNING",
"errors": []
},
"experiment": {
"id": "mw3lSbde",
"revision": 3,
"execDuration": 8,
"logDir": "/***/nni/experiments/mw3lSbde",
"nextSequenceId": 1,
"params": {
"authorName": "NNI Example",
"experimentName": "MNIST TF v2.x",
"trialConcurrency": 1,
"maxExecDuration": 3600,
"maxTrialNum": 10,
"searchSpace": "{\"dropout_rate\": {\"_type\": \"uniform\", \"_value\": [0.5, 0.9]}, \"conv_size\": {\"_type\": \"choice\", \"_value\": [2, 3, 5, 7]}, \"hidden_size\": {\"_type\": \"choice\", \"_value\": [124, 512, 1024]}, \"batch_size\": {\"_type\": \"choice\", \"_value\": [16, 32]}, \"learning_rate\": {\"_type\": \"choice\", \"_value\": [0.0001, 0.001, 0.01, 0.1]}}",
"trainingServicePlatform": "local",
"tuner": {
"builtinTunerName": "TPE",
"classArgs": {
"optimize_mode": "maximize"
},
"checkpointDir": "/***/nni/experiments/mw3lSbde/checkpoint"
},
"versionCheck": true,
"clusterMetaData": [
{
"key": "codeDir",
"value": "/***/nnidev/examples/trials/mnist-tfv2/."
},
{
"key": "command",
"value": "python3 mnist.py"
}
]
},
"startTime": 1595497482108
},
"metricData": [],
"trialJobs": [
{
"id": "Fp0Hv",
"status": "WAITING",
"hyperParameters": [
"{\"parameter_id\":0,\"parameter_source\":\"algorithm\",\"parameters\":{\"dropout_rate\":0.8491269523482741,\"conv_size\":3,\"hidden_size\":512,\"batch_size\":16,\"learning_rate\":0.0001},\"parameter_index\":0}"
],
"logPath": "file://localhost:/***/nni/experiments/mw3lSbde/trials/Fp0Hv",
"startTime": 1595497487135,
"sequenceId": 0
}
]
}
\ No newline at end of file
{
"checkStatus": {
"status": "RUNNING",
"errors": []
},
"experiment": {
"id": "mw3lSbde",
"revision": 34,
"execDuration": 233,
"logDir": "/***/nni/experiments/mw3lSbde",
"nextSequenceId": 9,
"params": {
"authorName": "NNI Example",
"experimentName": "MNIST TF v2.x",
"trialConcurrency": 1,
"maxExecDuration": 3600,
"maxTrialNum": 10,
"searchSpace": "{\"dropout_rate\": {\"_type\": \"uniform\", \"_value\": [0.5, 0.9]}, \"conv_size\": {\"_type\": \"choice\", \"_value\": [2, 3, 5, 7]}, \"hidden_size\": {\"_type\": \"choice\", \"_value\": [124, 512, 1024]}, \"batch_size\": {\"_type\": \"choice\", \"_value\": [16, 32]}, \"learning_rate\": {\"_type\": \"choice\", \"_value\": [0.0001, 0.001, 0.01, 0.1]}}",
"trainingServicePlatform": "local",
"tuner": {
"builtinTunerName": "TPE",
"classArgs": {
"optimize_mode": "maximize"
},
"checkpointDir": "/***/nni/experiments/mw3lSbde/checkpoint"
},
"versionCheck": true,
"clusterMetaData": [
{
"key": "codeDir",
"value": "/***/nnidev/examples/trials/mnist-tfv2/."
},
{
"key": "command",
"value": "python3 mnist.py"
}
]
},
"startTime": 1595497482108
},
"metricData": [
{
"timestamp": 1595497576901,
"trialJobId": "j4kNL",
"parameterId": "7",
"type": "PERIODICAL",
"sequence": 0,
"data": "\"0.9733999967575073\""
},
{
"timestamp": 1595497581844,
"trialJobId": "j4kNL",
"parameterId": "7",
"type": "PERIODICAL",
"sequence": 1,
"data": "\"0.9656999707221985\""
},
{
"timestamp": 1595497586923,
"trialJobId": "j4kNL",
"parameterId": "7",
"type": "PERIODICAL",
"sequence": 2,
"data": "\"0.9750000238418579\""
},
{
"timestamp": 1595497591860,
"trialJobId": "j4kNL",
"parameterId": "7",
"type": "PERIODICAL",
"sequence": 3,
"data": "\"0.9763000011444092\""
},
{
"timestamp": 1595497596908,
"trialJobId": "j4kNL",
"parameterId": "7",
"type": "PERIODICAL",
"sequence": 4,
"data": "\"0.9714000225067139\""
},
{
"timestamp": 1595497601790,
"trialJobId": "j4kNL",
"parameterId": "7",
"type": "PERIODICAL",
"sequence": 5,
"data": "\"0.9714999794960022\""
},
{
"timestamp": 1595497606592,
"trialJobId": "j4kNL",
"parameterId": "7",
"type": "PERIODICAL",
"sequence": 6,
"data": "\"0.9778000116348267\""
},
{
"timestamp": 1595497611480,
"trialJobId": "j4kNL",
"parameterId": "7",
"type": "PERIODICAL",
"sequence": 7,
"data": "\"0.9681000113487244\""
},
{
"timestamp": 1595497616390,
"trialJobId": "j4kNL",
"parameterId": "7",
"type": "PERIODICAL",
"sequence": 8,
"data": "\"0.9779000282287598\""
},
{
"timestamp": 1595497621122,
"trialJobId": "j4kNL",
"parameterId": "7",
"type": "PERIODICAL",
"sequence": 9,
"data": "\"0.9731000065803528\""
},
{
"timestamp": 1595497621903,
"trialJobId": "j4kNL",
"parameterId": "7",
"type": "FINAL",
"sequence": 0,
"data": "\"0.9731000065803528\""
},
{
"timestamp": 1595497651431,
"trialJobId": "lKNIw",
"parameterId": "8",
"type": "PERIODICAL",
"sequence": 0,
"data": "\"0.10279999673366547\""
},
{
"timestamp": 1595497660885,
"trialJobId": "lKNIw",
"parameterId": "8",
"type": "PERIODICAL",
"sequence": 1,
"data": "\"0.10100000351667404\""
},
{
"timestamp": 1595497670089,
"trialJobId": "lKNIw",
"parameterId": "8",
"type": "PERIODICAL",
"sequence": 2,
"data": "\"0.10090000182390213\""
},
{
"timestamp": 1595497679279,
"trialJobId": "lKNIw",
"parameterId": "8",
"type": "PERIODICAL",
"sequence": 3,
"data": "\"0.10090000182390213\""
},
{
"timestamp": 1595497688528,
"trialJobId": "lKNIw",
"parameterId": "8",
"type": "PERIODICAL",
"sequence": 4,
"data": "\"0.09740000218153\""
},
{
"timestamp": 1595497697932,
"trialJobId": "lKNIw",
"parameterId": "8",
"type": "PERIODICAL",
"sequence": 5,
"data": "\"0.10100000351667404\""
},
{
"timestamp": 1595497707053,
"trialJobId": "lKNIw",
"parameterId": "8",
"type": "PERIODICAL",
"sequence": 6,
"data": "\"0.10100000351667404\""
}
],
"trialJobs": [
{
"id": "Fp0Hv",
"status": "FAILED",
"hyperParameters": [
"{\"parameter_id\":0,\"parameter_source\":\"algorithm\",\"parameters\":{\"dropout_rate\":0.8491269523482741,\"conv_size\":3,\"hidden_size\":512,\"batch_size\":16,\"learning_rate\":0.0001},\"parameter_index\":0}"
],
"logPath": "file://localhost:/***/nni/experiments/mw3lSbde/trials/Fp0Hv",
"startTime": 1595497487135,
"sequenceId": 0,
"endTime": 1595497495839,
"stderrPath": "file:/localhost:/***/nni/experiments/mw3lSbde/trials/Fp0Hv/stderr"
},
{
"id": "Av8d8",
"status": "FAILED",
"hyperParameters": [
"{\"parameter_id\":1,\"parameter_source\":\"algorithm\",\"parameters\":{\"dropout_rate\":0.8539541491194952,\"conv_size\":2,\"hidden_size\":512,\"batch_size\":32,\"learning_rate\":0.001},\"parameter_index\":0}"
],
"logPath": "file://localhost:/***/nni/experiments/mw3lSbde/trials/Av8d8",
"startTime": 1595497502178,
"sequenceId": 1,
"endTime": 1595497506253,
"stderrPath": "file:/localhost:/***/nni/experiments/mw3lSbde/trials/Av8d8/stderr"
},
{
"id": "UBdDZ",
"status": "FAILED",
"hyperParameters": [
"{\"parameter_id\":2,\"parameter_source\":\"algorithm\",\"parameters\":{\"dropout_rate\":0.5582646378949779,\"conv_size\":2,\"hidden_size\":124,\"batch_size\":32,\"learning_rate\":0.001},\"parameter_index\":0}"
],
"logPath": "file://localhost:/***/nni/experiments/mw3lSbde/trials/UBdDZ",
"startTime": 1595497512215,
"sequenceId": 2,
"endTime": 1595497516419,
"stderrPath": "file:/localhost:/***/nni/experiments/mw3lSbde/trials/UBdDZ/stderr"
},
{
"id": "JCGDm",
"status": "FAILED",
"hyperParameters": [
"{\"parameter_id\":3,\"parameter_source\":\"algorithm\",\"parameters\":{\"dropout_rate\":0.8554138616916818,\"conv_size\":5,\"hidden_size\":512,\"batch_size\":32,\"learning_rate\":0.001},\"parameter_index\":0}"
],
"logPath": "file://localhost:/***/nni/experiments/mw3lSbde/trials/JCGDm",
"startTime": 1595497522257,
"sequenceId": 3,
"endTime": 1595497525974,
"stderrPath": "file:/localhost:/***/nni/experiments/mw3lSbde/trials/JCGDm/stderr"
},
{
"id": "Q5P5S",
"status": "FAILED",
"hyperParameters": [
"{\"parameter_id\":4,\"parameter_source\":\"algorithm\",\"parameters\":{\"dropout_rate\":0.8034070529122488,\"conv_size\":3,\"hidden_size\":512,\"batch_size\":16,\"learning_rate\":0.001},\"parameter_index\":0}"
],
"logPath": "file://localhost:/***/nni/experiments/mw3lSbde/trials/Q5P5S",
"startTime": 1595497532284,
"sequenceId": 4,
"endTime": 1595497536707,
"stderrPath": "file:/localhost:/***/nni/experiments/mw3lSbde/trials/Q5P5S/stderr"
},
{
"id": "SdVuE",
"status": "FAILED",
"hyperParameters": [
"{\"parameter_id\":5,\"parameter_source\":\"algorithm\",\"parameters\":{\"dropout_rate\":0.7600193252661556,\"conv_size\":3,\"hidden_size\":124,\"batch_size\":16,\"learning_rate\":0.01},\"parameter_index\":0}"
],
"logPath": "file://localhost:/***/nni/experiments/mw3lSbde/trials/SdVuE",
"startTime": 1595497542331,
"sequenceId": 5,
"endTime": 1595497546968,
"stderrPath": "file:/localhost:/***/nni/experiments/mw3lSbde/trials/SdVuE/stderr"
},
{
"id": "CkUem",
"status": "FAILED",
"hyperParameters": [
"{\"parameter_id\":6,\"parameter_source\":\"algorithm\",\"parameters\":{\"dropout_rate\":0.7934026748060359,\"conv_size\":2,\"hidden_size\":512,\"batch_size\":32,\"learning_rate\":0.001},\"parameter_index\":0}"
],
"logPath": "file://localhost:/***/nni/experiments/mw3lSbde/trials/CkUem",
"startTime": 1595497552398,
"sequenceId": 6,
"endTime": 1595497556691,
"stderrPath": "file:/localhost:/***/nni/experiments/mw3lSbde/trials/CkUem/stderr"
},
{
"id": "j4kNL",
"status": "SUCCEEDED",
"hyperParameters": [
"{\"parameter_id\":7,\"parameter_source\":\"algorithm\",\"parameters\":{\"dropout_rate\":0.6587033143176787,\"conv_size\":3,\"hidden_size\":1024,\"batch_size\":32,\"learning_rate\":0.01},\"parameter_index\":0}"
],
"logPath": "file://localhost:/***/nni/experiments/mw3lSbde/trials/j4kNL",
"startTime": 1595497562887,
"sequenceId": 7,
"endTime": 1595497623402,
"finalMetricData": [
{
"timestamp": 1595497621903,
"trialJobId": "j4kNL",
"parameterId": "7",
"type": "FINAL",
"sequence": 0,
"data": "\"0.9731000065803528\""
}
]
},
{
"id": "lKNIw",
"status": "RUNNING",
"hyperParameters": [
"{\"parameter_id\":8,\"parameter_source\":\"algorithm\",\"parameters\":{\"dropout_rate\":0.5795586765663358,\"conv_size\":2,\"hidden_size\":124,\"batch_size\":16,\"learning_rate\":0.1},\"parameter_index\":0}"
],
"logPath": "file://localhost:/***/nni/experiments/mw3lSbde/trials/lKNIw",
"startTime": 1595497632921,
"sequenceId": 8
}
]
}
\ No newline at end of file
{
"checkStatus": {
"status": "DONE",
"errors": []
},
"experiment": {
"id": "mw3lSbde",
"revision": 39,
"execDuration": 265,
"logDir": "/***/nni/experiments/mw3lSbde",
"nextSequenceId": 11,
"params": {
"authorName": "NNI Example",
"experimentName": "MNIST TF v2.x",
"trialConcurrency": 1,
"maxExecDuration": 3600,
"maxTrialNum": 10,
"searchSpace": "{\"dropout_rate\": {\"_type\": \"uniform\", \"_value\": [0.5, 0.9]}, \"conv_size\": {\"_type\": \"choice\", \"_value\": [2, 3, 5, 7]}, \"hidden_size\": {\"_type\": \"choice\", \"_value\": [124, 512, 1024]}, \"batch_size\": {\"_type\": \"choice\", \"_value\": [16, 32]}, \"learning_rate\": {\"_type\": \"choice\", \"_value\": [0.0001, 0.001, 0.01, 0.1]}}",
"trainingServicePlatform": "local",
"tuner": {
"builtinTunerName": "TPE",
"classArgs": {
"optimize_mode": "maximize"
},
"checkpointDir": "/***/nni/experiments/mw3lSbde/checkpoint"
},
"versionCheck": true,
"clusterMetaData": [
{
"key": "codeDir",
"value": "/***/nnidev/examples/trials/mnist-tfv2/."
},
{
"key": "command",
"value": "python3 mnist.py"
}
]
},
"startTime": 1595497482108,
"endTime": 1595497808079
},
"metricData": [
{
"timestamp": 1595497576901,
"trialJobId": "j4kNL",
"parameterId": "7",
"type": "PERIODICAL",
"sequence": 0,
"data": "\"0.9733999967575073\""
},
{
"timestamp": 1595497581844,
"trialJobId": "j4kNL",
"parameterId": "7",
"type": "PERIODICAL",
"sequence": 1,
"data": "\"0.9656999707221985\""
},
{
"timestamp": 1595497586923,
"trialJobId": "j4kNL",
"parameterId": "7",
"type": "PERIODICAL",
"sequence": 2,
"data": "\"0.9750000238418579\""
},
{
"timestamp": 1595497591860,
"trialJobId": "j4kNL",
"parameterId": "7",
"type": "PERIODICAL",
"sequence": 3,
"data": "\"0.9763000011444092\""
},
{
"timestamp": 1595497596908,
"trialJobId": "j4kNL",
"parameterId": "7",
"type": "PERIODICAL",
"sequence": 4,
"data": "\"0.9714000225067139\""
},
{
"timestamp": 1595497601790,
"trialJobId": "j4kNL",
"parameterId": "7",
"type": "PERIODICAL",
"sequence": 5,
"data": "\"0.9714999794960022\""
},
{
"timestamp": 1595497606592,
"trialJobId": "j4kNL",
"parameterId": "7",
"type": "PERIODICAL",
"sequence": 6,
"data": "\"0.9778000116348267\""
},
{
"timestamp": 1595497611480,
"trialJobId": "j4kNL",
"parameterId": "7",
"type": "PERIODICAL",
"sequence": 7,
"data": "\"0.9681000113487244\""
},
{
"timestamp": 1595497616390,
"trialJobId": "j4kNL",
"parameterId": "7",
"type": "PERIODICAL",
"sequence": 8,
"data": "\"0.9779000282287598\""
},
{
"timestamp": 1595497621122,
"trialJobId": "j4kNL",
"parameterId": "7",
"type": "PERIODICAL",
"sequence": 9,
"data": "\"0.9731000065803528\""
},
{
"timestamp": 1595497621903,
"trialJobId": "j4kNL",
"parameterId": "7",
"type": "FINAL",
"sequence": 0,
"data": "\"0.9731000065803528\""
},
{
"timestamp": 1595497651431,
"trialJobId": "lKNIw",
"parameterId": "8",
"type": "PERIODICAL",
"sequence": 0,
"data": "\"0.10279999673366547\""
},
{
"timestamp": 1595497660885,
"trialJobId": "lKNIw",
"parameterId": "8",
"type": "PERIODICAL",
"sequence": 1,
"data": "\"0.10100000351667404\""
},
{
"timestamp": 1595497670089,
"trialJobId": "lKNIw",
"parameterId": "8",
"type": "PERIODICAL",
"sequence": 2,
"data": "\"0.10090000182390213\""
},
{
"timestamp": 1595497679279,
"trialJobId": "lKNIw",
"parameterId": "8",
"type": "PERIODICAL",
"sequence": 3,
"data": "\"0.10090000182390213\""
},
{
"timestamp": 1595497688528,
"trialJobId": "lKNIw",
"parameterId": "8",
"type": "PERIODICAL",
"sequence": 4,
"data": "\"0.09740000218153\""
},
{
"timestamp": 1595497697932,
"trialJobId": "lKNIw",
"parameterId": "8",
"type": "PERIODICAL",
"sequence": 5,
"data": "\"0.10100000351667404\""
},
{
"timestamp": 1595497707053,
"trialJobId": "lKNIw",
"parameterId": "8",
"type": "PERIODICAL",
"sequence": 6,
"data": "\"0.10100000351667404\""
},
{
"timestamp": 1595497716524,
"trialJobId": "lKNIw",
"parameterId": "8",
"type": "PERIODICAL",
"sequence": 7,
"data": "\"0.0957999974489212\""
},
{
"timestamp": 1595497725884,
"trialJobId": "lKNIw",
"parameterId": "8",
"type": "PERIODICAL",
"sequence": 8,
"data": "\"0.10100000351667404\""
},
{
"timestamp": 1595497735081,
"trialJobId": "lKNIw",
"parameterId": "8",
"type": "PERIODICAL",
"sequence": 9,
"data": "\"0.10090000182390213\""
},
{
"timestamp": 1595497736274,
"trialJobId": "lKNIw",
"parameterId": "8",
"type": "FINAL",
"sequence": 0,
"data": "\"0.10090000182390213\""
},
{
"timestamp": 1595497757301,
"trialJobId": "SzWAE",
"parameterId": "9",
"type": "PERIODICAL",
"sequence": 0,
"data": "\"0.0957999974489212\""
},
{
"timestamp": 1595497762181,
"trialJobId": "SzWAE",
"parameterId": "9",
"type": "PERIODICAL",
"sequence": 1,
"data": "\"0.09799999743700027\""
},
{
"timestamp": 1595497767233,
"trialJobId": "SzWAE",
"parameterId": "9",
"type": "PERIODICAL",
"sequence": 2,
"data": "\"0.11349999904632568\""
},
{
"timestamp": 1595497772307,
"trialJobId": "SzWAE",
"parameterId": "9",
"type": "PERIODICAL",
"sequence": 3,
"data": "\"0.09740000218153\""
},
{
"timestamp": 1595497777102,
"trialJobId": "SzWAE",
"parameterId": "9",
"type": "PERIODICAL",
"sequence": 4,
"data": "\"0.11349999904632568\""
},
{
"timestamp": 1595497782132,
"trialJobId": "SzWAE",
"parameterId": "9",
"type": "PERIODICAL",
"sequence": 5,
"data": "\"0.11349999904632568\""
},
{
"timestamp": 1595497786911,
"trialJobId": "SzWAE",
"parameterId": "9",
"type": "PERIODICAL",
"sequence": 6,
"data": "\"0.10090000182390213\""
},
{
"timestamp": 1595497791889,
"trialJobId": "SzWAE",
"parameterId": "9",
"type": "PERIODICAL",
"sequence": 7,
"data": "\"0.10100000351667404\""
},
{
"timestamp": 1595497796863,
"trialJobId": "SzWAE",
"parameterId": "9",
"type": "PERIODICAL",
"sequence": 8,
"data": "\"0.09740000218153\""
},
{
"timestamp": 1595497801524,
"trialJobId": "SzWAE",
"parameterId": "9",
"type": "PERIODICAL",
"sequence": 9,
"data": "\"0.10100000351667404\""
},
{
"timestamp": 1595497802428,
"trialJobId": "SzWAE",
"parameterId": "9",
"type": "FINAL",
"sequence": 0,
"data": "\"0.10100000351667404\""
}
],
"trialJobs": [
{
"id": "Fp0Hv",
"status": "FAILED",
"hyperParameters": [
"{\"parameter_id\":0,\"parameter_source\":\"algorithm\",\"parameters\":{\"dropout_rate\":0.8491269523482741,\"conv_size\":3,\"hidden_size\":512,\"batch_size\":16,\"learning_rate\":0.0001},\"parameter_index\":0}"
],
"logPath": "file://localhost:/***/nni/experiments/mw3lSbde/trials/Fp0Hv",
"startTime": 1595497487135,
"sequenceId": 0,
"endTime": 1595497495839,
"stderrPath": "file:/localhost:/***/nni/experiments/mw3lSbde/trials/Fp0Hv/stderr"
},
{
"id": "Av8d8",
"status": "FAILED",
"hyperParameters": [
"{\"parameter_id\":1,\"parameter_source\":\"algorithm\",\"parameters\":{\"dropout_rate\":0.8539541491194952,\"conv_size\":2,\"hidden_size\":512,\"batch_size\":32,\"learning_rate\":0.001},\"parameter_index\":0}"
],
"logPath": "file://localhost:/***/nni/experiments/mw3lSbde/trials/Av8d8",
"startTime": 1595497502178,
"sequenceId": 1,
"endTime": 1595497506253,
"stderrPath": "file:/localhost:/***/nni/experiments/mw3lSbde/trials/Av8d8/stderr"
},
{
"id": "UBdDZ",
"status": "FAILED",
"hyperParameters": [
"{\"parameter_id\":2,\"parameter_source\":\"algorithm\",\"parameters\":{\"dropout_rate\":0.5582646378949779,\"conv_size\":2,\"hidden_size\":124,\"batch_size\":32,\"learning_rate\":0.001},\"parameter_index\":0}"
],
"logPath": "file://localhost:/***/nni/experiments/mw3lSbde/trials/UBdDZ",
"startTime": 1595497512215,
"sequenceId": 2,
"endTime": 1595497516419,
"stderrPath": "file:/localhost:/***/nni/experiments/mw3lSbde/trials/UBdDZ/stderr"
},
{
"id": "JCGDm",
"status": "FAILED",
"hyperParameters": [
"{\"parameter_id\":3,\"parameter_source\":\"algorithm\",\"parameters\":{\"dropout_rate\":0.8554138616916818,\"conv_size\":5,\"hidden_size\":512,\"batch_size\":32,\"learning_rate\":0.001},\"parameter_index\":0}"
],
"logPath": "file://localhost:/***/nni/experiments/mw3lSbde/trials/JCGDm",
"startTime": 1595497522257,
"sequenceId": 3,
"endTime": 1595497525974,
"stderrPath": "file:/localhost:/***/nni/experiments/mw3lSbde/trials/JCGDm/stderr"
},
{
"id": "Q5P5S",
"status": "FAILED",
"hyperParameters": [
"{\"parameter_id\":4,\"parameter_source\":\"algorithm\",\"parameters\":{\"dropout_rate\":0.8034070529122488,\"conv_size\":3,\"hidden_size\":512,\"batch_size\":16,\"learning_rate\":0.001},\"parameter_index\":0}"
],
"logPath": "file://localhost:/***/nni/experiments/mw3lSbde/trials/Q5P5S",
"startTime": 1595497532284,
"sequenceId": 4,
"endTime": 1595497536707,
"stderrPath": "file:/localhost:/***/nni/experiments/mw3lSbde/trials/Q5P5S/stderr"
},
{
"id": "SdVuE",
"status": "FAILED",
"hyperParameters": [
"{\"parameter_id\":5,\"parameter_source\":\"algorithm\",\"parameters\":{\"dropout_rate\":0.7600193252661556,\"conv_size\":3,\"hidden_size\":124,\"batch_size\":16,\"learning_rate\":0.01},\"parameter_index\":0}"
],
"logPath": "file://localhost:/***/nni/experiments/mw3lSbde/trials/SdVuE",
"startTime": 1595497542331,
"sequenceId": 5,
"endTime": 1595497546968,
"stderrPath": "file:/localhost:/***/nni/experiments/mw3lSbde/trials/SdVuE/stderr"
},
{
"id": "CkUem",
"status": "FAILED",
"hyperParameters": [
"{\"parameter_id\":6,\"parameter_source\":\"algorithm\",\"parameters\":{\"dropout_rate\":0.7934026748060359,\"conv_size\":2,\"hidden_size\":512,\"batch_size\":32,\"learning_rate\":0.001},\"parameter_index\":0}"
],
"logPath": "file://localhost:/***/nni/experiments/mw3lSbde/trials/CkUem",
"startTime": 1595497552398,
"sequenceId": 6,
"endTime": 1595497556691,
"stderrPath": "file:/localhost:/***/nni/experiments/mw3lSbde/trials/CkUem/stderr"
},
{
"id": "j4kNL",
"status": "SUCCEEDED",
"hyperParameters": [
"{\"parameter_id\":7,\"parameter_source\":\"algorithm\",\"parameters\":{\"dropout_rate\":0.6587033143176787,\"conv_size\":3,\"hidden_size\":1024,\"batch_size\":32,\"learning_rate\":0.01},\"parameter_index\":0}"
],
"logPath": "file://localhost:/***/nni/experiments/mw3lSbde/trials/j4kNL",
"startTime": 1595497562887,
"sequenceId": 7,
"endTime": 1595497623402,
"finalMetricData": [
{
"timestamp": 1595497621903,
"trialJobId": "j4kNL",
"parameterId": "7",
"type": "FINAL",
"sequence": 0,
"data": "\"0.9731000065803528\""
}
]
},
{
"id": "lKNIw",
"status": "SUCCEEDED",
"hyperParameters": [
"{\"parameter_id\":8,\"parameter_source\":\"algorithm\",\"parameters\":{\"dropout_rate\":0.5795586765663358,\"conv_size\":2,\"hidden_size\":124,\"batch_size\":16,\"learning_rate\":0.1},\"parameter_index\":0}"
],
"logPath": "file://localhost:/***/nni/experiments/mw3lSbde/trials/lKNIw",
"startTime": 1595497632921,
"sequenceId": 8,
"endTime": 1595497737655,
"finalMetricData": [
{
"timestamp": 1595497736274,
"trialJobId": "lKNIw",
"parameterId": "8",
"type": "FINAL",
"sequence": 0,
"data": "\"0.10090000182390213\""
}
]
},
{
"id": "SzWAE",
"status": "SUCCEEDED",
"hyperParameters": [
"{\"parameter_id\":9,\"parameter_source\":\"algorithm\",\"parameters\":{\"dropout_rate\":0.8807315015190023,\"conv_size\":3,\"hidden_size\":512,\"batch_size\":32,\"learning_rate\":0.1},\"parameter_index\":0}"
],
"logPath": "file://localhost:/***/nni/experiments/mw3lSbde/trials/SzWAE",
"startTime": 1595497742961,
"sequenceId": 9,
"endTime": 1595497804063,
"finalMetricData": [
{
"timestamp": 1595497802428,
"trialJobId": "SzWAE",
"parameterId": "9",
"type": "FINAL",
"sequence": 0,
"data": "\"0.10100000351667404\""
}
]
}
]
}
\ No newline at end of file
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
"case-sensitive-paths-webpack-plugin": "2.2.0", "case-sensitive-paths-webpack-plugin": "2.2.0",
"copy-to-clipboard": "^3.0.8", "copy-to-clipboard": "^3.0.8",
"css-loader": "2.1.1", "css-loader": "2.1.1",
"d3": "^5.16.0",
"dotenv": "6.2.0", "dotenv": "6.2.0",
"dotenv-expand": "4.2.0", "dotenv-expand": "4.2.0",
"echarts": "^4.5.0", "echarts": "^4.5.0",
...@@ -28,6 +29,7 @@ ...@@ -28,6 +29,7 @@
"node-sass": "^4.13.0", "node-sass": "^4.13.0",
"office-ui-fabric-react": "^7.78.0", "office-ui-fabric-react": "^7.78.0",
"optimize-css-assets-webpack-plugin": "5.0.1", "optimize-css-assets-webpack-plugin": "5.0.1",
"parcoord-es": "^2.2.10",
"pnp-webpack-plugin": "1.2.1", "pnp-webpack-plugin": "1.2.1",
"postcss-flexbugs-fixes": "4.1.0", "postcss-flexbugs-fixes": "4.1.0",
"postcss-loader": "3.0.0", "postcss-loader": "3.0.0",
...@@ -56,6 +58,7 @@ ...@@ -56,6 +58,7 @@
"devDependencies": { "devDependencies": {
"@babel/core": "7.4.3", "@babel/core": "7.4.3",
"@svgr/webpack": "4.1.0", "@svgr/webpack": "4.1.0",
"@types/d3": "^5.7.2",
"@types/jest": "24.0.12", "@types/jest": "24.0.12",
"@types/json5": "^0.0.30", "@types/json5": "^0.0.30",
"@types/node": "^10.13.0", "@types/node": "^10.13.0",
...@@ -65,6 +68,7 @@ ...@@ -65,6 +68,7 @@
"@typescript-eslint/eslint-plugin": "^2.11.0", "@typescript-eslint/eslint-plugin": "^2.11.0",
"@typescript-eslint/parser": "^2.11.0", "@typescript-eslint/parser": "^2.11.0",
"@uifabric/fluent-theme": "^0.16.7", "@uifabric/fluent-theme": "^0.16.7",
"concurrently": "^5.2.0",
"eslint": "^5.16.0", "eslint": "^5.16.0",
"eslint-config-react-app": "^4.0.0", "eslint-config-react-app": "^4.0.0",
"eslint-loader": "2.1.2", "eslint-loader": "2.1.2",
...@@ -73,14 +77,18 @@ ...@@ -73,14 +77,18 @@
"eslint-plugin-jsx-a11y": "6.2.1", "eslint-plugin-jsx-a11y": "6.2.1",
"eslint-plugin-react": "7.12.4", "eslint-plugin-react": "7.12.4",
"eslint-plugin-react-hooks": "^1.5.0", "eslint-plugin-react-hooks": "^1.5.0",
"express": "^4.17.1",
"npx": "^10.2.0", "npx": "^10.2.0",
"typescript": "3.4.5" "typescript": "3.4.5"
}, },
"proxy": "http://localhost:12138",
"scripts": { "scripts": {
"start": "node --max-old-space-size=3072 scripts/start.js", "start": "node --max-old-space-size=3072 scripts/start.js",
"build": "node --max-old-space-size=3072 scripts/build.js", "build": "node --max-old-space-size=3072 scripts/build.js",
"test": "node --max-old-space-size=3072 scripts/test.js", "test": "node --max-old-space-size=3072 scripts/test.js",
"eslint": "npx eslint ./ --ext .tsx,.ts" "eslint": "npx eslint ./ --ext .tsx,.ts",
"mock": "node scripts/server.js",
"dev": "concurrently \"yarn mock\" \"yarn start\""
}, },
"eslintConfig": { "eslintConfig": {
"extends": "react-app" "extends": "react-app"
......
const path = require('path');
const process = require('process');
const fs = require('fs');
const argv = require('minimist')(process.argv.slice(2), {
string: ['server', 'target'],
alias: { s: 'server', t: 'target' }
});
const axios = require('axios');
const serverAddr = argv.server;
const targetFileName = argv.target;
if (!serverAddr) {
throw new Error('Server address not set!');
}
if (!targetFileName) {
throw new Error('Target file name not set!');
}
function maskSensitive(obj) {
if (Array.isArray(obj)) {
return obj.map(maskSensitive);
} else if (typeof obj === 'object') {
const ret = {};
for (const key in obj) {
ret[maskSensitive(key)] = maskSensitive(obj[key]);
}
return ret;
} else if (typeof obj === 'string') {
const homeDir = process.env.HOME;
if (homeDir && obj.includes(homeDir)) {
obj = obj.replace(homeDir, '/***');
}
return obj;
} else {
return obj;
}
}
axios.all([
axios.get(`${serverAddr}/api/v1/nni/check-status`),
axios.get(`${serverAddr}/api/v1/nni/experiment`),
axios.get(`${serverAddr}/api/v1/nni/metric-data`),
axios.get(`${serverAddr}/api/v1/nni/trial-jobs`)
]).then(axios.spread((checkStatus, experiment, metricData, trialJobs) => {
const data = JSON.stringify(maskSensitive({
checkStatus: checkStatus.data,
experiment: experiment.data,
metricData: metricData.data,
trialJobs: trialJobs.data
}), null, 2);
fs.writeFileSync(path.join('mock', `${targetFileName}.json`), data);
})).catch(error => {
console.log(error);
});
const express = require('express');
const path = require('path');
const fs = require('fs');
const app = express();
const argv = require('minimist')(process.argv.slice(2));
const port = argv.port || 12138;
const expAlias = argv.experiment || process.env.EXPERIMENT || 'mnist-tfv1-running';
// Specify multiple alias to transfer from one to another automatically
const splittedAlias = expAlias.split(',');
let expData = undefined;
function loadExperimentWithAlias(aliasId) {
const alias = splittedAlias[aliasId];
let expFile = path.join(__dirname, `../mock/${alias}`);
if (!fs.existsSync(expFile)) {
expFile += '.json';
}
if (!fs.existsSync(expFile)) {
throw new Error(`Experiment file '${expFile}' not found. Please recheck.`);
}
console.log(`Loading experiment file: '${expFile}'.`);
expData = JSON.parse(fs.readFileSync(expFile).toString());
if (splittedAlias.length <= 1)
return;
// sleep longer on first one
setTimeout(() => loadExperimentWithAlias((aliasId + 1) % splittedAlias.length),
expData === undefined ? 40000 : 20000);
}
loadExperimentWithAlias(0);
app.get('/api/v1/nni/version', (req, res) => {
res.send('v999.0');
});
app.get('/api/v1/nni/check-status', (req, res) => {
res.send(expData.checkStatus);
});
app.get('/api/v1/nni/experiment', (req, res) => {
res.send(expData.experiment);
});
app.get('/api/v1/nni/job-statistics', (req, res) => {
const counter = {};
for (const t of expData.trialJobs) {
counter[t.status] = (counter[t.status] || 0) + 1;
}
res.send(Object.keys(counter).map((k) => {
return {
trialJobStatus: k,
trialJobNumber: counter[k]
};
}));
});
app.get('/api/v1/nni/metric-data', (req, res) => {
res.send(expData.metricData);
});
app.get('/api/v1/nni/metric-data/:job_id', (req, res) => {
const metricData = expData.metricData.filter((item) => item.trialJobId === req.params.job_id);
res.send(metricData);
});
app.get('/api/v1/nni/metric-data-range/:min_seq_id/:max_seq_id', (req, res) => {
const minSeqId = Number(req.params.min_seq_id);
const maxSeqId = Number(req.params.max_seq_id);
const targetTrials = expData.trialJobs.filter(trial => (
// Copied from nnimanager.ts
trial.sequenceId !== undefined && minSeqId <= trial.sequenceId && trial.sequenceId <= maxSeqId
));
const targetTrialIds = new Set(targetTrials.map(trial => trial.id));
res.send(expData.metricData.filter(metric => targetTrialIds.has(metric.trialJobId)));
});
app.get('/api/v1/nni/metric-data-latest', (req, res) => {
const finals = [];
const latestIntermediates = new Map();
for (const metric of expData.metricData) {
if (metric.type !== 'PERIODICAL') {
finals.push(metric);
} else {
const old = latestIntermediates.get(metric.trialJobId);
if (old === undefined || old.sequence <= metric.sequence) {
latestIntermediates.set(metric.trialJobId, metric);
}
}
}
res.send(finals.concat(Array.from(latestIntermediates.values())));
});
app.get('/api/v1/nni/trial-jobs', (req, res) => {
res.send(expData.trialJobs);
});
app.get('/api/v1/nni/trial-jobs/:id', (req, res) => {
for (const t of expData.trialJobs) {
if (t.id === req.params.id) {
res.send(t);
break;
}
}
res.sendStatus(404);
});
// TODO: implement put, post, delete methods
app.listen(port, '0.0.0.0', () => {
console.log(`Listening on port ${port}, serving data: ${expAlias}`);
});
...@@ -144,4 +144,4 @@ class ChangeColumnComponent extends React.Component<ChangeColumnProps, ChangeCol ...@@ -144,4 +144,4 @@ class ChangeColumnComponent extends React.Component<ChangeColumnProps, ChangeCol
} }
} }
export default ChangeColumnComponent; export default ChangeColumnComponent;
\ No newline at end of file
...@@ -15,7 +15,7 @@ import '../static/style/search.scss'; ...@@ -15,7 +15,7 @@ import '../static/style/search.scss';
interface TrialDetailState { interface TrialDetailState {
tablePageSize: number; // table components val tablePageSize: number; // table components val
whichGraph: string; whichChart: string;
searchType: string; searchType: string;
searchFilter: (trial: Trial) => boolean; searchFilter: (trial: Trial) => boolean;
} }
...@@ -39,7 +39,7 @@ class TrialsDetail extends React.Component<TrialsDetailProps, TrialDetailState> ...@@ -39,7 +39,7 @@ class TrialsDetail extends React.Component<TrialsDetailProps, TrialDetailState>
super(props); super(props);
this.state = { this.state = {
tablePageSize: 20, tablePageSize: 20,
whichGraph: 'Default metric', whichChart: 'Default metric',
searchType: 'Id', searchType: 'Id',
// eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/explicit-function-return-type // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/explicit-function-return-type
searchFilter: trial => true searchFilter: trial => true
...@@ -82,7 +82,7 @@ class TrialsDetail extends React.Component<TrialsDetailProps, TrialDetailState> ...@@ -82,7 +82,7 @@ class TrialsDetail extends React.Component<TrialsDetailProps, TrialDetailState>
} }
handleWhichTabs = (item: any): void => { handleWhichTabs = (item: any): void => {
this.setState({whichGraph: item.props.headerText}); this.setState({whichChart: item.props.headerText});
} }
updateSearchFilterType = (event: React.FormEvent<HTMLDivElement>, item: IDropdownOption | undefined): void => { updateSearchFilterType = (event: React.FormEvent<HTMLDivElement>, item: IDropdownOption | undefined): void => {
...@@ -96,7 +96,7 @@ class TrialsDetail extends React.Component<TrialsDetailProps, TrialDetailState> ...@@ -96,7 +96,7 @@ class TrialsDetail extends React.Component<TrialsDetailProps, TrialDetailState>
} }
render(): React.ReactNode { render(): React.ReactNode {
const { tablePageSize, whichGraph, searchType } = this.state; const { tablePageSize, whichChart, searchType } = this.state;
const { columnList, changeColumn } = this.props; const { columnList, changeColumn } = this.props;
const source = TRIALS.filter(this.state.searchFilter); const source = TRIALS.filter(this.state.searchFilter);
const trialIds = TRIALS.filter(this.state.searchFilter).map(trial => trial.id); const trialIds = TRIALS.filter(this.state.searchFilter).map(trial => trial.id);
...@@ -109,13 +109,13 @@ class TrialsDetail extends React.Component<TrialsDetailProps, TrialDetailState> ...@@ -109,13 +109,13 @@ class TrialsDetail extends React.Component<TrialsDetailProps, TrialDetailState>
return ( return (
<div> <div>
<div className="trial" id="tabsty"> <div className="trial" id="tabsty">
<Pivot defaultSelectedKey={"0"} className="detial-title" onLinkClick={this.handleWhichTabs} selectedKey={whichGraph}> <Pivot defaultSelectedKey={"0"} className="detial-title" onLinkClick={this.handleWhichTabs} selectedKey={whichChart}>
{/* <PivotItem tab={this.titleOfacc} key="1"> doesn't work*/} {/* <PivotItem tab={this.titleOfacc} key="1"> doesn't work*/}
<PivotItem headerText="Default metric" itemIcon="HomeGroup" key="Default metric"> <PivotItem headerText="Default metric" itemIcon="HomeGroup" key="Default metric">
<Stack className="graph"> <Stack className="graph">
<DefaultPoint <DefaultPoint
trialIds={trialIds} trialIds={trialIds}
visible={whichGraph === 'Default metric'} visible={whichChart === 'Default metric'}
trialsUpdateBroadcast={this.props.trialsUpdateBroadcast} trialsUpdateBroadcast={this.props.trialsUpdateBroadcast}
/> />
</Stack> </Stack>
...@@ -124,20 +124,20 @@ class TrialsDetail extends React.Component<TrialsDetailProps, TrialDetailState> ...@@ -124,20 +124,20 @@ class TrialsDetail extends React.Component<TrialsDetailProps, TrialDetailState>
<PivotItem headerText="Hyper-parameter" itemIcon="Equalizer" key="Hyper-parameter"> <PivotItem headerText="Hyper-parameter" itemIcon="Equalizer" key="Hyper-parameter">
<Stack className="graph"> <Stack className="graph">
<Para <Para
dataSource={source} trials={source}
expSearchSpace={JSON.stringify(EXPERIMENT.searchSpace)} searchSpace={EXPERIMENT.searchSpaceNew}
whichGraph={whichGraph} whichChart={whichChart}
/> />
</Stack> </Stack>
</PivotItem> </PivotItem>
{/* <PivotItem tab={this.titleOfDuration} key="3"> */} {/* <PivotItem tab={this.titleOfDuration} key="3"> */}
<PivotItem headerText="Duration" itemIcon="BarChartHorizontal" key="Duration"> <PivotItem headerText="Duration" itemIcon="BarChartHorizontal" key="Duration">
<Duration source={source} whichGraph={whichGraph} /> <Duration source={source} whichChart={whichChart} />
</PivotItem> </PivotItem>
{/* <PivotItem tab={this.titleOfIntermediate} key="4"> */} {/* <PivotItem tab={this.titleOfIntermediate} key="4"> */}
<PivotItem headerText="Intermediate result" itemIcon="StackedLineChart" key="Intermediate result"> <PivotItem headerText="Intermediate result" itemIcon="StackedLineChart" key="Intermediate result">
{/* *why this graph has small footprint? */} {/* *why this graph has small footprint? */}
<Intermediate source={source} whichGraph={whichGraph} /> <Intermediate source={source} whichChart={whichChart} />
</PivotItem> </PivotItem>
</Pivot> </Pivot>
</div> </div>
......
...@@ -13,7 +13,7 @@ interface Runtrial { ...@@ -13,7 +13,7 @@ interface Runtrial {
interface DurationProps { interface DurationProps {
source: Array<TableObj>; source: Array<TableObj>;
whichGraph: string; whichChart: string;
} }
interface DurationState { interface DurationState {
...@@ -170,7 +170,7 @@ class Duration extends React.Component<DurationProps, DurationState> { ...@@ -170,7 +170,7 @@ class Duration extends React.Component<DurationProps, DurationState> {
componentDidUpdate(prevProps: DurationProps): void { componentDidUpdate(prevProps: DurationProps): void {
// add this if to prevent endless loop // add this if to prevent endless loop
if (this.props.source !== prevProps.source) { if (this.props.source !== prevProps.source) {
if (this.props.whichGraph === 'Duration') { if (this.props.whichChart === 'Duration') {
this.drawDurationGraph(this.props.source); this.drawDurationGraph(this.props.source);
} }
} }
......
...@@ -24,7 +24,7 @@ interface IntermediateState { ...@@ -24,7 +24,7 @@ interface IntermediateState {
interface IntermediateProps { interface IntermediateProps {
source: Array<TableObj>; source: Array<TableObj>;
whichGraph: string; whichChart: string;
} }
class Intermediate extends React.Component<IntermediateProps, IntermediateState> { class Intermediate extends React.Component<IntermediateProps, IntermediateState> {
...@@ -215,9 +215,9 @@ class Intermediate extends React.Component<IntermediateProps, IntermediateState> ...@@ -215,9 +215,9 @@ class Intermediate extends React.Component<IntermediateProps, IntermediateState>
componentDidUpdate(prevProps: IntermediateProps, prevState: any): void { componentDidUpdate(prevProps: IntermediateProps, prevState: any): void {
if (this.props.source !== prevProps.source || this.state.isFilter !== prevState.isFilter) { if (this.props.source !== prevProps.source || this.state.isFilter !== prevState.isFilter) {
const { isFilter, filterSource } = this.state; const { isFilter, filterSource } = this.state;
const { whichGraph, source } = this.props; const { whichChart, source } = this.props;
if (whichGraph === 'Intermediate result') { if (whichChart === 'Intermediate result') {
if (isFilter === true) { if (isFilter === true) {
const pointVal = this.pointInput !== null ? this.pointInput.value : ''; const pointVal = this.pointInput !== null ? this.pointInput.value : '';
const minVal = this.minValInput !== null ? this.minValInput.value : ''; const minVal = this.minValInput !== null ? this.minValInput.value : '';
......
...@@ -2,10 +2,7 @@ ...@@ -2,10 +2,7 @@
const METRIC_GROUP_UPDATE_THRESHOLD = 100; const METRIC_GROUP_UPDATE_THRESHOLD = 100;
const METRIC_GROUP_UPDATE_SIZE = 20; const METRIC_GROUP_UPDATE_SIZE = 20;
let MANAGER_IP = `/api/v1/nni`; const MANAGER_IP = `/api/v1/nni`;
if (process.env.NODE_ENV == "development") {
MANAGER_IP = `//${window.location.hostname}:8080` + MANAGER_IP;
}
const DOWNLOAD_IP = `/logs`; const DOWNLOAD_IP = `/logs`;
const WEBUIDOC = 'https://nni.readthedocs.io/en/latest/Tutorial/WebUI.html'; const WEBUIDOC = 'https://nni.readthedocs.io/en/latest/Tutorial/WebUI.html';
const trialJobStatus = [ const trialJobStatus = [
...@@ -40,9 +37,24 @@ const COLUMN = ['Trial No.', 'ID', 'Duration', 'Status', 'Default', OPERATION]; ...@@ -40,9 +37,24 @@ const COLUMN = ['Trial No.', 'ID', 'Duration', 'Status', 'Default', OPERATION];
const COLUMNPro = ['Trial No.', 'ID', 'Start Time', 'End Time', 'Duration', 'Status', const COLUMNPro = ['Trial No.', 'ID', 'Start Time', 'End Time', 'Duration', 'Status',
'Intermediate result', 'Default', OPERATION]; 'Intermediate result', 'Default', OPERATION];
const CONCURRENCYTOOLTIP = 'Trial concurrency is the number of trials running concurrently.'; const CONCURRENCYTOOLTIP = 'Trial concurrency is the number of trials running concurrently.';
const SUPPORTED_SEARCH_SPACE_TYPE = [
'choice',
'layer_choice',
'input_choice',
'randint',
'uniform',
'quniform',
'loguniform',
'qloguniform',
'normal',
'qnormal',
'lognormal',
'qlognormal'
];
export { export {
MANAGER_IP, DOWNLOAD_IP, trialJobStatus, COLUMNPro, WEBUIDOC, MANAGER_IP, DOWNLOAD_IP, trialJobStatus, COLUMNPro, WEBUIDOC,
CONTROLTYPE, MONACO, COLUMN, DRAWEROPTION, OPERATION, CONTROLTYPE, MONACO, COLUMN, DRAWEROPTION, OPERATION,
METRIC_GROUP_UPDATE_THRESHOLD, METRIC_GROUP_UPDATE_SIZE, CONCURRENCYTOOLTIP METRIC_GROUP_UPDATE_THRESHOLD, METRIC_GROUP_UPDATE_SIZE, CONCURRENCYTOOLTIP,
SUPPORTED_SEARCH_SPACE_TYPE
}; };
This diff is collapsed.
import { MANAGER_IP } from '../const'; import { MANAGER_IP } from '../const';
import { ExperimentProfile, NNIManagerStatus } from '../interface'; import { ExperimentProfile, NNIManagerStatus } from '../interface';
import { requestAxios } from '../function'; import { requestAxios } from '../function';
import { SearchSpace } from './searchspace';
function compareProfiles(profile1?: ExperimentProfile, profile2?: ExperimentProfile): boolean { function compareProfiles(profile1?: ExperimentProfile, profile2?: ExperimentProfile): boolean {
if (!profile1 || !profile2) { if (!profile1 || !profile2) {
...@@ -129,6 +130,12 @@ class Experiment { ...@@ -129,6 +130,12 @@ class Experiment {
return result; return result;
} }
get searchSpaceNew(): SearchSpace {
// The search space derived directly from profile
// eventually this will replace searchSpace
return new SearchSpace('', '', this.searchSpace);
}
get logCollectionEnabled(): boolean { get logCollectionEnabled(): boolean {
return !!(this.profile.params.logCollection && this.profile.params.logCollection !== 'none'); return !!(this.profile.params.logCollection && this.profile.params.logCollection !== 'none');
} }
......
This diff is collapsed.
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment