Ejemplo n.º 1
0
def runOneExperiment(modelConfig,
                     inferenceArgs,
                     metricSpecs,
                     sourceSpec,
                     sinkSpec=None):
    client = Client(modelConfig, inferenceArgs, metricSpecs, sourceSpec,
                    sinkSpec)
    return client.run().metrics
Ejemplo n.º 2
0
 def run(self):
     self.initM(modelData)
     while not self.kill_received:
         jobaux = self.work_queue.get()
         command = jobaux[0]
         if command == 'predict':
             self.index = self.index + 1
             self.updateModelStats()
             self.result_queue.put([
                 (self.Scores[m], self.predictionStreams[m][-1],
                  self.truth[self.index], m) for m in list(self.M.keys())
             ])
         if command == 'getPredictionStreams':
             self.result_queue.put(
                 dict([(m, self.predictionStreams[m][:-windowSize])
                       for m in list(self.predictionStreams.keys())]))
         if command == 'delete':
             delList = jobaux[1]
             for d in delList:
                 if (d in self.M):
                     del self.M[d]
                     del self.Scores[d]
                     del self.predictionStreams[d]
                     print('deleted Model' + str(d) + " in process " +
                           str(self.iden))
             print("number of models remaining in " + str(self.iden) +
                   ": " + str(len(self.M)))
             self.result_queue.put(self.iden)
         if command == 'getAAEs':
             self.result_queue.put([
                 (m, computeAAE(self.truth, self.predictionStreams[m],
                                r), self.getModelState(self.M[m]),
                  self.M[m]['modelDescription'])
                 for m in list(self.M.keys())
             ])
         if command == 'addPSOVariants':
             for t in jobaux[1]:
                 if (t[0] == self.iden):
                     name = t[2]
                     modelDescription = t[1][0]
                     x = t[1][1]
                     v = t[1][2]
                     self.M[name] = {}
                     self.M[name]['modelDescription'] = modelDescription
                     self.M[name]['client'] = Client(**modelDescription)
                     self.M[name]['alive'] = True
                     self.M[name]['start'] = 0
                     self.M[name]['end'] = None
                     self.M[name]['x'] = x
                     self.M[name]['v'] = v
                     self.Scores[name] = 10000
                     self.predictionStreams[name] = [
                         0,
                     ]
                     print("added new model " + str(name) + " to process" +
                           str(self.iden))
Ejemplo n.º 3
0
    def initM(self, modelDatList):
        for modelData in modelDatList:
            name = modelData[0]
            self.M[name] = {}
            self.M[name]['modelDescription'] = modelData[1]
            self.M[name]['client'] = Client(**modelData[1])
            alpha = modelData[1]['modelConfig']['modelParams']['clParams'][
                'alpha']
            n = 0
            for encoder in modelData[1]['modelConfig']['modelParams'][
                    'sensorParams']['encoders']:
                if encoder['name'] == predictedField:
                    n = encoder['n']
            synPermInactiveDec = modelData[1]['modelConfig']['modelParams'][
                'spParams']['synPermInactiveDec']
            activationThreshold = modelData[1]['modelConfig']['modelParams'][
                'tmParams']['activationThreshold']
            pamLength = modelData[1]['modelConfig']['modelParams']['tmParams'][
                'pamLength']
            self.M[name]['x'] = np.array(
                [alpha, n, synPermInactiveDec, activationThreshold, pamLength])

            vAlpha = uniform(0.01, 0.15)
            vN = randrange(30, 200, 5)
            vSynPermInactiveDec = uniform(0.01, 0.15)
            vActivationThreshold = randrange(12, 17, 1)
            vPamLength = randrange(1, 6, 1)
            self.M[name]['v'] = np.array([
                vAlpha, vN, vSynPermInactiveDec, vActivationThreshold,
                vPamLength
            ])
            self.M[name]['alive'] = True
            self.M[name]['start'] = 0
            self.M[name]['end'] = None
            self.Scores[name] = 10000
            self.predictionStreams[name] = [
                0,
            ]
Ejemplo n.º 4
0
def runOneExperiment(modelConfig, inferenceArgs, metricSpecs, sourceSpec,
                     sinkSpec=None):
  client = Client(modelConfig, inferenceArgs, metricSpecs, sourceSpec, sinkSpec)
  return client.run().metrics