Пример #1
0
def learn(trace_fpath,
          nk,
          rate,
          regularization,
          alpha,
          tau,
          from_=0,
          to=np.inf,
          validation=0.1):

    dts, Trace, seen, hyper2id, obj2id = \
            dataio.initialize_trace(trace_fpath, from_, to)
    no = len(obj2id)
    nh = len(hyper2id)

    validation_from = int(len(dts) - len(dts) * validation)
    print('Using first %d of %d as train, rest is validation' \
            % (validation_from, len(dts)))

    dts_train = dts[:validation_from]
    Trace_train = Trace[:validation_from]

    rnd_idx = np.arange(len(dts_train))
    np.random.shuffle(rnd_idx)

    dts_train = np.asanyarray(dts_train[rnd_idx], dtype='f8', order='C')
    Trace_train = np.asanyarray(Trace_train[rnd_idx], dtype='i4', order='C')

    dts_val = np.asanyarray(dts[validation_from:], dtype='f8', order='C')
    Trace_val = np.asanyarray(Trace[validation_from:], dtype='i4', order='C')

    XG_ok = np.random.normal(0, 0.01, (no, nk))
    XP_ok = np.random.normal(0, 0.01, (no, nk))
    XP_hk = np.random.normal(0, 0.01, (nh, nk))

    cost_train, cost_val = sgd(dts, Trace, XG_ok, XP_ok, XP_hk, seen, rate, \
            regularization, alpha, tau, dts_val, Trace_val)

    rv = {}
    rv['num_topics'] = np.asarray([nk])
    rv['trace_fpath'] = np.asarray([os.path.abspath(trace_fpath)])
    rv['rate'] = np.asarray([rate])
    rv['regularization'] = np.asarray([regularization])
    rv['alpha'] = np.asarray([alpha])
    rv['tau'] = np.asarray([tau])
    rv['from_'] = np.asarray([from_])
    rv['cost_train'] = np.asarray([cost_train])
    rv['cost_val'] = np.asarray([cost_val])
    rv['to'] = np.asarray([to])
    rv['hyper2id'] = hyper2id
    rv['obj2id'] = obj2id
    rv['XG_ok'] = XG_ok
    rv['XP_ok'] = XP_ok
    rv['XP_hk'] = XP_hk
    return rv
Пример #2
0
def learn(trace_fpath, nk, rate, regularization, alpha, tau, from_=0, to=np.inf, validation=0.1):

    dts, Trace, seen, hyper2id, obj2id = dataio.initialize_trace(trace_fpath, from_, to)
    no = len(obj2id)
    nh = len(hyper2id)

    validation_from = int(len(dts) - len(dts) * validation)
    print("Using first %d of %d as train, rest is validation" % (validation_from, len(dts)))

    dts_train = dts[:validation_from]
    Trace_train = Trace[:validation_from]

    rnd_idx = np.arange(len(dts_train))
    np.random.shuffle(rnd_idx)

    dts_train = np.asanyarray(dts_train[rnd_idx], dtype="f8", order="C")
    Trace_train = np.asanyarray(Trace_train[rnd_idx], dtype="i4", order="C")

    dts_val = np.asanyarray(dts[validation_from:], dtype="f8", order="C")
    Trace_val = np.asanyarray(Trace[validation_from:], dtype="i4", order="C")

    XG_ok = np.random.normal(0, 0.01, (no, nk))
    XP_ok = np.random.normal(0, 0.01, (no, nk))
    XP_hk = np.random.normal(0, 0.01, (nh, nk))

    cost_train, cost_val = sgd(
        dts, Trace, XG_ok, XP_ok, XP_hk, seen, rate, regularization, alpha, tau, dts_val, Trace_val
    )

    rv = {}
    rv["num_topics"] = np.asarray([nk])
    rv["trace_fpath"] = np.asarray([os.path.abspath(trace_fpath)])
    rv["rate"] = np.asarray([rate])
    rv["regularization"] = np.asarray([regularization])
    rv["alpha"] = np.asarray([alpha])
    rv["tau"] = np.asarray([tau])
    rv["from_"] = np.asarray([from_])
    rv["cost_train"] = np.asarray([cost_train])
    rv["cost_val"] = np.asarray([cost_val])
    rv["to"] = np.asarray([to])
    rv["hyper2id"] = hyper2id
    rv["obj2id"] = obj2id
    rv["XG_ok"] = XG_ok
    rv["XP_ok"] = XP_ok
    rv["XP_hk"] = XP_hk
    return rv
Пример #3
0
def learn(trace_fpath, nk, rate, regularization, sigma, \
        from_=0, to=np.inf, validation=0.1):

    _, Trace, seen, hyper2id, obj2id = \
            dataio.initialize_trace(trace_fpath, from_, to)
    no = len(obj2id)
    nh = len(hyper2id)
    
    validation_from = int(len(Trace) - len(Trace) * validation)
    print('Using first %d of %d as train, rest is validation' \
            % (validation_from, len(Trace)))

    Trace_train = Trace[:validation_from]
    
    rnd_idx = np.arange(len(Trace_train))
    np.random.shuffle(rnd_idx)
    Trace_train = np.asanyarray(Trace_train[rnd_idx], dtype='i4', order='C')
    Trace_val = np.asanyarray(Trace[validation_from:], dtype='i4', order='C')

    VUI_uk = np.random.normal(0, sigma, (nh, nk))
    VIU_ok = np.random.normal(0, sigma, (no, nk))
    VLI_ok = np.random.normal(0, sigma, (no, nk))
    VIL_ok = np.random.normal(0, sigma, (no, nk))
    
    cost_train, cost_val = sgd(Trace, VUI_uk, VIU_ok, VLI_ok, VIL_ok, \
            rate, regularization, Trace_val)

    rv = {}
    rv['num_topics'] = np.asarray([nk])
    rv['trace_fpath'] = np.asarray([os.path.abspath(trace_fpath)])
    rv['rate'] = np.asarray([rate])
    rv['regularization'] = np.asarray([regularization])
    rv['from_'] = np.asarray([from_])
    rv['to'] = np.asarray([to])
    rv['hyper2id'] = hyper2id
    rv['obj2id'] = obj2id
    rv['cost_train'] = np.asarray([cost_train])
    rv['cost_val'] = np.asarray([cost_val])
    rv['VUI_uk'] = VUI_uk
    rv['VIU_ok'] = VIU_ok
    rv['VLI_ok'] = VLI_ok
    rv['VIL_ok'] = VIL_ok
    return rv
Пример #4
0
def learn(trace_fpath, nk, rate, regularization, sigma, \
        from_=0, to=np.inf, validation=0.1):

    _, Trace, seen, hyper2id, obj2id = \
            dataio.initialize_trace(trace_fpath, from_, to)
    no = len(obj2id)
    nh = len(hyper2id)

    validation_from = int(len(Trace) - len(Trace) * validation)
    print('Using first %d of %d as train, rest is validation' \
            % (validation_from, len(Trace)))

    Trace_train = Trace[:validation_from]

    rnd_idx = np.arange(len(Trace_train))
    np.random.shuffle(rnd_idx)
    Trace_train = np.asanyarray(Trace_train[rnd_idx], dtype='i4', order='C')
    Trace_val = np.asanyarray(Trace[validation_from:], dtype='i4', order='C')

    VUI_uk = np.random.normal(0, sigma, (nh, nk))
    VIU_ok = np.random.normal(0, sigma, (no, nk))
    VLI_ok = np.random.normal(0, sigma, (no, nk))
    VIL_ok = np.random.normal(0, sigma, (no, nk))

    cost_train, cost_val = sgd(Trace, VUI_uk, VIU_ok, VLI_ok, VIL_ok, \
            rate, regularization, Trace_val)

    rv = {}
    rv['num_topics'] = np.asarray([nk])
    rv['trace_fpath'] = np.asarray([os.path.abspath(trace_fpath)])
    rv['rate'] = np.asarray([rate])
    rv['regularization'] = np.asarray([regularization])
    rv['from_'] = np.asarray([from_])
    rv['to'] = np.asarray([to])
    rv['hyper2id'] = hyper2id
    rv['obj2id'] = obj2id
    rv['cost_train'] = np.asarray([cost_train])
    rv['cost_val'] = np.asarray([cost_val])
    rv['VUI_uk'] = VUI_uk
    rv['VIU_ok'] = VIU_ok
    rv['VLI_ok'] = VLI_ok
    rv['VIL_ok'] = VIL_ok
    return rv