def trainEventRandomly( event_type, source_tag, target_tag, obs_len, obs_count, algo_type="GMMHMM" ): logger.info('[trainEventRandomly] event_type=%s, source_tag=%s, target_tag=%s' % (event_type, source_tag, target_tag)) model = getModel(algo_type, source_tag, event_type) model_param = model["modelParam"] status_sets = model["statusSets"] sound_set = status_sets["sound"] motion_set = status_sets["motion"] location_set = status_sets["location"] train_obs_len = obs_len train_obs_count = obs_count d = Dataset(event_type=getEventList(), motion_type=motion_set, sound_type=sound_set, location_type=location_set, event_prob_map=getEventProbMap()) logger.debug('[trainEventRandomly] Dataset: %s' % (d)) d.randomObservations(event_type, train_obs_len, train_obs_count) # 这里是产生假序列的部分 observations = d.obs logger.debug('[trainEventRandomly] obs: %s' % (observations)) description = '[source_tag=%s]Random train algo_type=%s for eventType=%s, random train obs_len=%s, obs_count=%s' % ( source_tag, algo_type, event_type, train_obs_len, train_obs_count) TRAINER = ALGOMAP[algo_type] my_trainer = TRAINER(model_param) my_trainer.fit(d.getDataset()) return setModel(algo_type, target_tag, event_type, my_trainer.params_, status_sets, datetime.datetime.now(), description, json.dumps(observations))
def trainEventRandomly(event_type, source_tag, target_tag, obs_len, obs_count, algo_type="GMMHMM"): logger.info( '[trainEventRandomly] event_type=%s, source_tag=%s, target_tag=%s' % (event_type, source_tag, target_tag)) model = getModel(algo_type, source_tag, event_type) model_param = model["modelParam"] status_sets = model["statusSets"] sound_set = status_sets["sound"] motion_set = status_sets["motion"] location_set = status_sets["location"] train_obs_len = obs_len train_obs_count = obs_count d = Dataset(event_type=getEventList(), motion_type=motion_set, sound_type=sound_set, location_type=location_set, event_prob_map=getEventProbMap()) logger.debug('[trainEventRandomly] Dataset: %s' % (d)) d.randomObservations(event_type, train_obs_len, train_obs_count) # 这里是产生假序列的部分 observations = d.obs logger.debug('[trainEventRandomly] obs: %s' % (observations)) description = '[source_tag=%s]Random train algo_type=%s for eventType=%s, random train obs_len=%s, obs_count=%s' % ( source_tag, algo_type, event_type, train_obs_len, train_obs_count) TRAINER = ALGOMAP[algo_type] my_trainer = TRAINER(model_param) my_trainer.fit(d.getDataset()) return setModel(algo_type, target_tag, event_type, my_trainer.params_, status_sets, datetime.datetime.now(), description, json.dumps(observations))