コード例 #1
0
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))
コード例 #2
0
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))