times['setup'] = t2 - t1

    #
    if 1:
        input_dim, tr_x, tr_y, va_x, va_y, te_x, te_y, y_mean, y_std = get_regression_dataset(
            dataset, split, data_path=data_path)
        if train_on_valid:
            print tr_x.shape
            tr_x = np.concatenate((tr_x, va_x), axis=0)
            print tr_x.shape
            tr_y = np.concatenate((tr_y, va_y), axis=0)
        if model == 'MCD':
            #lbda = get_lbda(tau, length_scale, drop_prob)
            #print drop_prob, lbda
            network = MCdropout_MLP(n_hiddens=n_hiddens,
                                    n_units=n_units,
                                    lbda=lbda,
                                    input_dim=input_dim)
        elif model == 'BHN':
            #lbda = get_lbda(tau, length_scale)
            prior = log_normal
            #print lbda
            if reinit:
                init_batch_size = 64
                init_batch = tr_x[-init_batch_size:]
            else:
                init_batch = None

            network = MLPWeightNorm_BHN(lbda=lbda,
                                        srng=RandomStreams(seed=seed + 2000),
                                        prior=prior,
                                        coupling=coupling,
            if args.model == 'BHN':
                model = MLPWeightNorm_BHN(lbda=lbda,
                                          perdatapoint=perdatapoint,
                                          srng=RandomStreams(seed=args.seed +
                                                             2000),
                                          prior=prior,
                                          coupling=coupling,
                                          n_hiddens=n_hiddens,
                                          n_units=n_units,
                                          input_dim=input_dim,
                                          flow=args.flow,
                                          init_batch=init_batch)
            elif args.model == 'MCDropout':
                model = MCdropout_MLP(n_hiddens=n_hiddens,
                                      n_units=n_units,
                                      lbda=lbda,
                                      input_dim=input_dim)
            elif args.model == 'Backprop':
                model = Backprop_MLP(n_hiddens=n_hiddens,
                                     n_units=n_units,
                                     lbda=lbda,
                                     input_dim=input_dim)
            else:
                raise Exception('no model named `{}`'.format(args.model))

            va_rec_name = name + '_recs'
            save_path = name + '.params.npy'

            e0 = 0
            rec = 0
            if args.totrain:
        for trial, dataset in enumerate(datasets):

            input_dim, train_x, train_y, valid_x, valid_y, test_x , test_y = dataset

            for length_scale in length_scales:
                for tau in taus:
                    for lr0 in lr0s:
                        # DROPOUT
                        if model == 'MCDropout':
                            for drop_prob in drop_probs:
                                t0 = time.time()
                                lbda = get_lbda(tau, length_scale, drop_prob)
                                print drop_prob, lbda
                                network = MCdropout_MLP(n_hiddens=n_hiddens,
                                        n_units=n_units,
                                                          lbda=lbda,
                                                        #srng = RandomStreams(seed=seed+2000),
                                                          input_dim=input_dim)

                                path = save_dir
                                name = '{}/airfoil_regression_m{}p{}c{}lr0{}seed{}reinit{}flow{}trial{}tau{}l{}'.format(
                                    path,
                                    model,
                                    drop_prob,
                                    coupling,
                                    lr0,
                                    seed,
                                    reinit,
                                    flow,
                                    trial,
                                    tau,
Beispiel #4
0
    else:
        init_batch = None

    if args.model == 'BHN_MLPWN':
        model = MLPWeightNorm_BHN(lbda=lbda,
                                  perdatapoint=perdatapoint,
                                  srng=RandomStreams(seed=args.seed + 2000),
                                  prior=prior,
                                  coupling=coupling,
                                  n_hiddens=n_hiddens,
                                  n_units=n_units,
                                  input_dim=input_dim,
                                  flow=args.flow,
                                  init_batch=init_batch)
    elif args.model == 'MCdropout_MLP':
        model = MCdropout_MLP(n_hiddens=n_hiddens, n_units=n_units)
    else:
        raise Exception('no model named `{}`'.format(args.model))

    va_rec_name = name + '_recs'
    tr_rec_name = name + '_recs_train'  # TODO (we're already saving the valid_recs!)
    save_path = name + '.params.npy'
    if os.path.isfile(save_path) and not args.override:
        print 'load best model'
        e0 = model.load(save_path)
        va_recs = open(va_rec_name, 'r').read().split('\n')[:e0]
        #tr_recs = open(tr_rec_name,'r').read().split('\n')[:e0]
        rec = max([float(r) for r in va_recs])

    else:
        e0 = 0