def run_ais(model,
            obs,
            num_samples,
            num_steps,
            sigma,
            hdim,
            L,
            epsilon,
            prior,
            schedule=None,
            recog=None):
    if schedule is None:
        schedule = ais.sigmoid_schedule(num_steps)
    if recog:
        obs = obs.reshape(obs.shape[0], 3 * 32 * 32)
        obs_rep = np.tile(obs, [num_samples, 1])
        rec_net = utils.load_recog(50, recog)
        state = rec_net(obs_rep)
    else:
        state = None

    path = AISPath(model,
                   obs,
                   num_samples,
                   sigma,
                   hdim,
                   L,
                   epsilon,
                   prior,
                   init_state=state)
    lld = ais.ais(path, schedule, sigma)
    return lld
예제 #2
0
def run_ais(model,
            obs,
            num_samples,
            num_steps,
            sigma,
            hdim,
            L,
            epsilon,
            data,
            schedule=None,
            init_state=None,
            mask=np.array([[0, 1]]),
            temp_range=(-4, 4)):
    if schedule is None:
        schedule = ais.sigmoid_schedule(num_steps, temp_range)
    path = AISPath(model,
                   obs,
                   num_samples,
                   sigma,
                   hdim,
                   L,
                   epsilon,
                   data,
                   mask,
                   init_state=init_state)
    lld = ais.ais(path, schedule, sigma)
    return lld
예제 #3
0
def run_ais(model,
            obs,
            num_samples,
            num_steps,
            hdim,
            L,
            epsilon,
            schedule=None,
            init_state=None,
            save_dir='.',
            box=(60, 100, 60, 100),
            temp_range=(-4, 4)):
    if schedule is None:
        schedule = ais.sigmoid_schedule(num_steps, temp_range)

    path = AISPath(model,
                   obs,
                   num_samples,
                   hdim,
                   L,
                   epsilon,
                   box=box,
                   init_state=init_state)
    lld = ais.ais(path, schedule, save_dir)
    return lld
예제 #4
0
def run_ais(model,
            obs,
            num_samples,
            num_steps,
            sigma,
            hdim,
            L,
            epsilon,
            data,
            prior,
            schedule=None):
    if schedule is None:
        schedule = ais.sigmoid_schedule(num_steps)
    mean = None
    log_sigma = None

    ## prior:recog <--If using the recognition nets to predict initial AIS chain.
    if prior[:5] == 'recog':
        'load encoder net to predict initial dist...'
        obs = obs.reshape(obs.shape[0], 784)
        obs_rep = np.tile(obs, [num_samples, 1])
        if prior[5] == '1':
            rec_net = utils.load_encoder('vae', 'c4000', eval_np=True)
        elif prior[5] == '2':
            rec_net = utils.load_encoder('iwae', '50', eval_np=True)
        state, mean, log_sigma = rec_net(obs_rep)
    else:
        state = None
    path = AISPath(model,
                   obs,
                   num_samples,
                   sigma,
                   hdim,
                   L,
                   epsilon,
                   data,
                   prior,
                   init_state=state,
                   recog_mean=mean,
                   recog_log_sigma=log_sigma)
    lld = ais.ais(path, schedule, sigma)
    return lld