def convertGrokEnvToOPF(self): # We need to create a task structure, most of which is taken verbatim # from the Grok control dict task = dict(self.__control) task.pop('environment') inferenceArgs = task.pop('inferenceArgs') task['taskLabel'] = 'DefaultTask' # Create the iterationCycle element that will be placed inside the # taskControl. iterationCount = task.get('iterationCount', -1) iterationCountInferOnly = task.pop('iterationCountInferOnly', 0) if iterationCountInferOnly == -1: iterationCycle = [IterationPhaseSpecInferOnly(1000, inferenceArgs=inferenceArgs)] elif iterationCountInferOnly > 0: assert iterationCount > 0, "When iterationCountInferOnly is specified, "\ "iterationCount must also be specified and not be -1" iterationCycle = [IterationPhaseSpecLearnAndInfer(iterationCount -iterationCountInferOnly, inferenceArgs=inferenceArgs), IterationPhaseSpecInferOnly(iterationCountInferOnly, inferenceArgs=inferenceArgs)] else: iterationCycle = [IterationPhaseSpecLearnAndInfer(1000, inferenceArgs=inferenceArgs)] taskControl = dict(metrics = task.pop('metrics'), loggedMetrics = task.pop('loggedMetrics'), iterationCycle = iterationCycle) task['taskControl'] = taskControl # Create the new control self.__control = dict(environment = OpfEnvironment.Grok, tasks = [task])
# to one record from the (possibly aggregated) dataset. The task is # terminated when either number of iterations reaches iterationCount or # all records in the (possibly aggregated) database have been processed, # whichever occurs first. # # iterationCount of -1 = iterate over the entire dataset 'iterationCount': -1, # Task Control parameters for OPFTaskDriver (per opfTaskControlSchema.json) 'taskControl': { # Iteration cycle list consisting of opftaskdriver.IterationPhaseSpecXXXXX # instances. 'iterationCycle': [ #IterationPhaseSpecLearnOnly(1000), IterationPhaseSpecLearnAndInfer(1000), #IterationPhaseSpecInferOnly(10), ], # Metrics: A list of MetricSpecs that instantiate the metrics that are # computed for this experiment 'metrics': [ MetricSpec(metric='avg_err', inferenceElement='classification', params={'window': 200}), MetricSpec(metric='neg_auc', inferenceElement='classConfidences', params={ 'window': 200, 'computeEvery': 10 }),
# to one record from the (possibly aggregated) dataset. The task is # terminated when either number of iterations reaches iterationCount or # all records in the (possibly aggregated) database have been processed, # whichever occurs first. # # iterationCount of -1 = iterate over the entire dataset 'iterationCount': -1, # Task Control parameters for OPFTaskDriver (per opfTaskControlSchema.json) 'taskControl': { # Iteration cycle list consisting of opftaskdriver.IterationPhaseSpecXXXXX # instances. 'iterationCycle': [ #IterationPhaseSpecLearnOnly(1000), IterationPhaseSpecLearnAndInfer(1000, inferenceArgs=None), #IterationPhaseSpecInferOnly(10, inferenceArgs=None), ], 'metrics': [], # Logged Metrics: A sequence of regular expressions that specify which of # the metrics from the Inference Specifications section MUST be logged for # every prediction. The regex's correspond to the automatically generated # metric labels. This is similar to the way the optimization metric is # specified in permutations.py. 'loggedMetrics': ['.*nupicScore.*'], # Callbacks for experimentation/research (optional) 'callbacks': { # Callbacks to be called at the beginning of a task, before model iterations. # Signature: callback(<reference to OPFExperiment>); returns nothing
# to one record from the (possibly aggregated) dataset. The task is # terminated when either number of iterations reaches iterationCount or # all records in the (possibly aggregated) database have been processed, # whichever occurs first. # # iterationCount of -1 = iterate over the entire dataset 'iterationCount': -1, # Task Control parameters for OPFTaskDriver (per opfTaskControlSchema.json) 'taskControl': { # Iteration cycle list consisting of opftaskdriver.IterationPhaseSpecXXXXX # instances. 'iterationCycle': [ #IterationPhaseSpecLearnOnly(1000), IterationPhaseSpecLearnAndInfer( 1000, dict(predictedField="consumption")), #IterationPhaseSpecInferOnly(10), ], 'metrics': [ MetricSpec(metric='rmse', field="consumption", inferenceElement=InferenceElement.prediction), ], # Callbacks for experimentation/research (optional) 'callbacks': { # Callbacks to be called at the beginning of a task, before model iterations. # Signature: callback(<reference to OPFExperiment>); returns nothing 'setup': [], # Callbacks to be called after every learning/inference iteration