Beispiel #1
0
def do_teach_ng(sensors_dir_ng, sensor, store, swarm):
    swarm_config_path = sensors_dir_ng + sensor + '/stores/' + store + '/swarms/' + swarm + '/'
    store_path = sensors_dir_ng + sensor + '/stores/' + store + '/out.csv'

    print swarm_config_path

    #load original swarm config file
    with open(swarm_config_path + 'swarm_config.json') as json_file:
        swarm_config = json.load(json_file)
        print(swarm_config)

    print swarm_config['inferenceArgs']['predictedField']

    #laod model configuration
    model = ModelFactory.create(getModelParamsFromFileNG(swarm_config_path))

    #configure prediction
    model.enableInference(
        {"predictedField": swarm_config['inferenceArgs']['predictedField']})

    target = open(swarm_config_path + "teach.csv", 'w')
    spamwriter = csv.writer(target,
                            delimiter=',',
                            quotechar='|',
                            quoting=csv.QUOTE_MINIMAL)
    fieldNames = map(lambda x: x['fieldName'], swarm_config['includedFields'])
    columnNames = copy.copy(fieldNames)
    presteps = swarm_config['inferenceArgs']['predictionSteps']
    for prediction in presteps:
        columnNames.append(swarm_config['inferenceArgs']['predictedField'] +
                           '_predicted_' + str(prediction))
    spamwriter.writerow(columnNames)
    with open(store_path, 'rb') as csvfile:
        spamreader = csv.reader(csvfile, delimiter=',', quotechar='"')
        for row in spamreader:
            print ', '.join(row)

            #prepare input for model
            run_set = {}
            for index, name in enumerate(fieldNames):
                run_set[name] = float(row[index])

            #run the model
            result = model.run(run_set)

            print result.rawInput
            print result.inferences['multiStepBestPredictions']

            #spamwriter.writerow([float(row[0]), float(row[1]), float(row[2]), float(row[3]), result.inferences['multiStepBestPredictions'][4]])
            out_row = []
            for index, name in enumerate(fieldNames):
                out_row.append(float(row[index]))
            for index, predstep in enumerate(presteps):
                out_row.append(
                    result.inferences['multiStepBestPredictions'][predstep])
            spamwriter.writerow(out_row)

    model.save(str(swarm_config_path + "/model_save"))
    def __init__(self,name,admin_in,admin_out,sensor_spec, sensors_dir,sensor_in,store,swarm):
        threading.Thread.__init__(self)
        #self.config = config
        self.sensor_in = sensor_in
        self.store = store
        self.swarm = swarm
        self.name = name
        self.brain_available = False
        threading.Thread.__init__(self)
        Sensor. __init__(self,name=name,admin_in=admin_in, admin_out=admin_out,sensor_spec=sensor_spec, sensors_dir=sensors_dir)
        swarm_config_path = sensors_dir  + sensor_in +'/stores/' + store + '/swarms/' + swarm +'/'
        #store_path = sensors_dir  + sensor_in +'/stores/' + store + '/out.csv'
        #model = ModelFactory.loadFromCheckpoint('/home/hans/cortical_one_var/sensors/cpu/stores/store_3/swarms/swarm_1/model_save')

        print swarm_config_path

        #load original swarm config file
        with open(swarm_config_path + 'swarm_config.json')as json_file:
            self.swarm_config = json.load(json_file)
            print(self.swarm_config)

        self.swarm_config_ng = SwarmConfig(self.swarm_config)

        print self.swarm_config_ng.get_predicted_field()


        #if there is a 'brain', then tae the existing brain
        self.possible_brain_path = str(swarm_config_path +  'model_save')
        if os.path.exists(self.possible_brain_path):
            possible_brain_2 = '/home/hans/cortical_one_var/sensors/cpu/stores/store_3/swarms/swarm_1/model_save'
            print "load existing brain..."
            print self.possible_brain_path
            #model = ModelFactory.loadFromCheckpoint(possible_brain_2)
            model = ModelFactory.loadFromCheckpoint(self.possible_brain_path)
            #use this case to add the availabilty of a 'brain' (???!!!) to your annuncement

        else:

            #laod model configuration
            model = ModelFactory.create(getModelParamsFromFileNG(swarm_config_path))

            #configure prediction
            model.enableInference({"predictedField": self.swarm_config_ng.get_predicted_field()})

        self.connection_sensor_in = stomp.Connection()
        self.connection_sensor_in.set_listener(name=self.name, lstnr=AbstractSensorListener(self.name,topic = '/topic/' +self.sensor_in,config=self.swarm_config_ng,model=model))
        self.connection_sensor_in.start()
        self.connection_sensor_in.connect(self.user, self.password, wait=True)
        #self.connection_sensor_in.connect('admin', 'password', wait=True)
        self.abstract_listener = self.connection_sensor_in.get_listener(name=self.name)
        self.connection_sensor_in.subscribe(destination='/topic/' +self.sensor_in, id=2, ack='auto')

        self.values = []

        self.self_announcement()
Beispiel #3
0
def do_teach_ng(sensors_dir_ng,sensor,store,swarm):
    swarm_config_path = sensors_dir_ng  + sensor +'/stores/' + store + '/swarms/' + swarm +'/'
    store_path = sensors_dir_ng  + sensor +'/stores/' + store + '/out.csv'


    print swarm_config_path

    #load original swarm config file
    with open(swarm_config_path + 'swarm_config.json')as json_file:
        swarm_config = json.load(json_file)
        print(swarm_config)

    print swarm_config['inferenceArgs']['predictedField']

    #laod model configuration
    model = ModelFactory.create(getModelParamsFromFileNG(swarm_config_path))

    #configure prediction
    model.enableInference({"predictedField": swarm_config['inferenceArgs']['predictedField']})

    target = open(swarm_config_path+"teach.csv", 'w')
    spamwriter = csv.writer(target, delimiter=',', quotechar='|', quoting=csv.QUOTE_MINIMAL)
    fieldNames = map(lambda x: x['fieldName'],swarm_config['includedFields'])
    columnNames = copy.copy(fieldNames)
    presteps = swarm_config['inferenceArgs']['predictionSteps']
    for prediction in presteps:
        columnNames.append(swarm_config['inferenceArgs']['predictedField']+'_predicted_' + str(prediction))
    spamwriter.writerow(columnNames)
    with open(store_path, 'rb') as csvfile:
        spamreader = csv.reader(csvfile, delimiter=',', quotechar='"')
        for row in spamreader:
            print ', '.join(row)

            #prepare input for model
            run_set = {}
            for index, name in enumerate(fieldNames):
                run_set[name] = float(row[index])

            #run the model
            result = model.run(run_set)

            print result.rawInput
            print result.inferences['multiStepBestPredictions']

            #spamwriter.writerow([float(row[0]), float(row[1]), float(row[2]), float(row[3]), result.inferences['multiStepBestPredictions'][4]])
            out_row = []
            for index, name in enumerate(fieldNames):
                out_row.append(float(row[index]))
            for index, predstep in enumerate(presteps):
                out_row.append(result.inferences['multiStepBestPredictions'][predstep])
            spamwriter.writerow(out_row)


    model.save(str(swarm_config_path + "/model_save"))
    def __init__(self, name, admin_in, admin_out, sensor_spec, sensors_dir,
                 sensor_in, store, swarm):
        threading.Thread.__init__(self)
        #self.config = config
        self.sensor_in = sensor_in
        self.store = store
        self.swarm = swarm
        self.name = name
        self.brain_available = False
        threading.Thread.__init__(self)
        Sensor.__init__(self,
                        name=name,
                        admin_in=admin_in,
                        admin_out=admin_out,
                        sensor_spec=sensor_spec,
                        sensors_dir=sensors_dir)
        swarm_config_path = sensors_dir + sensor_in + '/stores/' + store + '/swarms/' + swarm + '/'
        #store_path = sensors_dir  + sensor_in +'/stores/' + store + '/out.csv'
        #model = ModelFactory.loadFromCheckpoint('/home/hans/cortical_one_var/sensors/cpu/stores/store_3/swarms/swarm_1/model_save')

        print swarm_config_path

        #load original swarm config file
        with open(swarm_config_path + 'swarm_config.json') as json_file:
            self.swarm_config = json.load(json_file)
            print(self.swarm_config)

        self.swarm_config_ng = SwarmConfig(self.swarm_config)

        print self.swarm_config_ng.get_predicted_field()

        #if there is a 'brain', then tae the existing brain
        self.possible_brain_path = str(swarm_config_path + 'model_save')
        if os.path.exists(self.possible_brain_path):
            possible_brain_2 = '/home/hans/cortical_one_var/sensors/cpu/stores/store_3/swarms/swarm_1/model_save'
            print "load existing brain..."
            print self.possible_brain_path
            #model = ModelFactory.loadFromCheckpoint(possible_brain_2)
            model = ModelFactory.loadFromCheckpoint(self.possible_brain_path)
            #use this case to add the availabilty of a 'brain' (???!!!) to your annuncement

        else:

            #laod model configuration
            model = ModelFactory.create(
                getModelParamsFromFileNG(swarm_config_path))

            #configure prediction
            model.enableInference(
                {"predictedField": self.swarm_config_ng.get_predicted_field()})

        self.connection_sensor_in = stomp.Connection()
        self.connection_sensor_in.set_listener(
            name=self.name,
            lstnr=AbstractSensorListener(self.name,
                                         topic='/topic/' + self.sensor_in,
                                         config=self.swarm_config_ng,
                                         model=model))
        self.connection_sensor_in.start()
        self.connection_sensor_in.connect(self.user, self.password, wait=True)
        #self.connection_sensor_in.connect('admin', 'password', wait=True)
        self.abstract_listener = self.connection_sensor_in.get_listener(
            name=self.name)
        self.connection_sensor_in.subscribe(destination='/topic/' +
                                            self.sensor_in,
                                            id=2,
                                            ack='auto')

        self.values = []

        self.self_announcement()