def _train(self, net, tr, va): restart = ( "rmse", # loss op name 0.5 * (((va['T'] - va['T'].mean())**2).mean()**0.5), # threshold 10 # epoch ) lr = exp_lr(1e-3, 1e-4, 3000, floor=1e-4) net.fit(tr, va, 25, 4000, lr=lr, silent=True, restart_check=restart) return net
def test(estimator, data=None, pretrained=False): # test("dohe", "data/benzene.npz") preproc, (tr, va, te) = load_simple( filename=data, sizes=[50e3, 2e3, 10e3], verbose=False ) if re.match(r'^doh[oe]\d*$', estimator): p100 = re.match(r'\D+(\d+)', estimator) p = int(p100.group(1))/100 if p100 is not None else 0.8 print(estimator,'with p', p) net = honet if 'doho' in estimator else henet print(net, "(selected dropout variance estimator class)") nn = net(preproc.scaling_params, tr[0], len(tr), mu_max=10, keep_prob=p, length_scale=20, n_predictions=50, tf_config=None, name=estimator) elif estimator == 'density': nn = densnet(preproc.scaling_params, tr[0], mu_max=10, tf_config=None, name=estimator) elif estimator == 'density_full': nn = fulldensnet(preproc.scaling_params, tr[0], mu_max=10, tf_config=None, name=estimator) elif estimator == 'density_re': nn = redensnet(preproc.scaling_params, tr[0], mu_max=10, tf_config=None, name=estimator) else: raise ValueError('estimator not defined: {}'.format(estimator)) if pretrained: nn.load() else: # lr = cycle_lr(1e-3, 1e-5, 5, 200*len(tr)/25, decay="exp") lr = exp_lr(1e-3, 1e-4, 3000, floor=1e-4) # lr = 1e-3 tstart = time.time() restart = ("rmse", 1.5, 100) nn.fit(tr, va, 25, 4000, lr=lr, silent=True, stop_at={"rmse":0.05}, restart_check=restart) # nn.fit(tr, va, 25, 3000, lr=lr, silent=True, stop_at={"rmse":0.05}) # nn.fit(tr, va, 250, 100, lr=lr, plot_loss='rmse', silent=False) # nn.fit(tr, va, 25, 10/60, lr=lr, plot_loss='rmse', silent=False) # nn.fit(tr, va, 25, 30/60, lr=lr, plot_loss='rmse', silent=False) # nn.fit(tr, va, 25, 10, lr=lr, plot_loss='rmse', silent=False) sec = time.time() - tstart print("fit in {} hours".format(sec/60/60)) nn.save() pr = nn.predict(va) print(((va['E']-pr['E'])**2).mean()**0.5, "va rmse") pr = nn.predict(te) print(((te['E']-pr['E'])**2).mean()**0.5, "te rmse") pp.hist(pr["U"], bins=100) pp.title("U {}".format(estimator)) pp.savefig(os.path.join("figs", estimator + ".jpg")) nn.close()
def _train(self, net, tr, va): restart = ( "rmse", # loss op name 0.5 * (((va['T'] - va['T'].mean())**2).mean()**0.5), # threshold 30 # epoch ) stop = {'rmse': 0.06} lr = exp_lr(1e-3, 1e-4, 3000, floor=1e-4) net.fit(tr, va, 25, 12000, lr=lr, silent=True, restart_check=restart, stop_at=stop) return net
def _train(self, net, tr, va): lr = exp_lr(1e-3, 1e-5, 1000, floor=5e-5) net.fit(tr, va, 200, 30, lr=lr, silent=True) return net
def _train(self, net, tr, va): lr = exp_lr(1e-3, 1e-4, 3000, floor=1e-4) net.fit(tr, va, 25, 4000, lr=lr, silent=True) return net