Spaces:
Running
Running
from dataclasses import dataclass | |
import json | |
from typing import List | |
class TrialResult: | |
""" | |
TrialResult stores the result information of a trial job. | |
Attributes | |
---------- | |
parameter: dict | |
Hyper parameters for this trial. | |
value: serializable object, usually a number, or a dict with key "default" and other extra keys | |
Final result. | |
trialJobId: str | |
Trial job id. | |
""" | |
parameter: dict | |
value: dict | |
trialJobId: str | |
def __init__(self, parameter: dict, value: str, trialJobId: str): | |
self.parameter = parameter | |
self.value = json.loads(value) | |
self.trialJobId = trialJobId | |
class TrialMetricData: | |
""" | |
TrialMetricData stores the metric data of a trial job. | |
A trial job may have both intermediate metric and final metric. | |
Attributes | |
---------- | |
timestamp: int | |
Time stamp. | |
trialJobId: str | |
Trial job id. | |
parameterId: int | |
Parameter id. | |
type: str | |
Metric type, `PERIODICAL` for intermediate result and `FINAL` for final result. | |
sequence: int | |
Sequence number in this trial. | |
data: serializable object, usually a number, or a dict with key "default" and other extra keys | |
Metric data. | |
""" | |
timestamp: int | |
trialJobId: str | |
parameterId: int | |
type: str | |
sequence: int | |
data: dict | |
def __init__(self, timestamp: int, trialJobId: str, parameterId: int, type: str, sequence: int, data: str): # pylint: disable=W0622 | |
self.timestamp = timestamp | |
self.trialJobId = trialJobId | |
self.parameterId = parameterId | |
self.type = type | |
self.sequence = sequence | |
self.data = json.loads(json.loads(data)) | |
class TrialHyperParameters: | |
""" | |
TrialHyperParameters stores the hyper parameters of a trial job. | |
Attributes | |
---------- | |
parameter_id: int | |
Parameter id. | |
parameter_source: str | |
Parameter source. | |
parameters: dict | |
Hyper parameters. | |
parameter_index: int | |
Parameter index. | |
""" | |
parameter_id: int | |
parameter_source: str | |
parameters: dict | |
parameter_index: int | |
class TrialJob: | |
""" | |
TrialJob stores the information of a trial job. | |
Attributes | |
---------- | |
trialJobId: str | |
Trial job id. | |
status: str | |
Job status. | |
hyperParameters: list of `nni.experiment.TrialHyperParameters` | |
See `nni.experiment.TrialHyperParameters`. | |
logPath: str | |
Log path. | |
startTime: int | |
Job start time (timestamp). | |
endTime: int | |
Job end time (timestamp). | |
finalMetricData: list of `nni.experiment.TrialMetricData` | |
See `nni.experiment.TrialMetricData`. | |
stderrPath: str | |
Stderr log path. | |
sequenceId: int | |
Sequence Id. | |
""" | |
trialJobId: str | |
status: str | |
hyperParameters: List[TrialHyperParameters] | |
logPath: str | |
startTime: int | |
endTime: int | |
finalMetricData: List[TrialMetricData] | |
stderrPath: str | |
sequenceId: int | |
def __init__(self, trialJobId: str, status: str, logPath: str, startTime: int, sequenceId: int, | |
endTime: int = -1, stderrPath: str = '', hyperParameters: List = [], finalMetricData: List = []): | |
self.trialJobId = trialJobId | |
self.status = status | |
self.hyperParameters = [TrialHyperParameters(**json.loads(e)) for e in hyperParameters] | |
self.logPath = logPath | |
self.startTime = startTime | |
self.endTime = endTime | |
self.finalMetricData = [TrialMetricData(**e) for e in finalMetricData] | |
self.stderrPath = stderrPath | |
self.sequenceId = sequenceId | |