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,
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