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()
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()