ae.update_catalog("ed_"+name,info) update_status(ae, "history", {"name": name, "loss": losscomb(0, h), "acc": losscomb(1, h), "date": time_str()}) if continue_encdecs: opt, dr, gbs, gsf, l2 = 'adadelta', 0.001, 0.001, 2, 0.001 name = "o-"+str(opt)+"-dr-"+str(dr)+"-gbs-"+str(gbs)+"-gsf-"+str(gsf)+"-l1-"+str(0)+"-l2-"+str(l2) ae.enc_opt = opt ae.drop_rate = dr ae.sigma_base = gbs ae.sigma_fact = gsf ae.l1 = 0 ae.l2 = l2 ae.epochs = 20 ae.load_encdecs(name) h = ae.pretrain(name=name) info = {"acc_pre_"+str(i): float(e[-1][1]) for (i,e) in enumerate(h)} info.update({("loss_pre_"+str(i)): float(e[-1][0]) for (i,e) in enumerate(h)}) ae.update_catalog("ed_"+name,info) update_status(ae, "history", {"name": name, "loss": losscomb(0, h), "acc": losscomb(1, h), "date": time_str()}) ### FINETUNE ### if finetune: ae.load_encdecs("best") encdec_opts = {key: ae.get_from_catalog(key, "ed_best") for key in encdec_opt_strings} #sink = Sink([ae], lambda r: print(r) if (not r is None) else None) #print('have sink') options = [(opt,cl,dr,gbs,gsf,l2)
name = "o-"+str(opt)+"-dr-"+str(dr)+"-gbs-"+str(gbs)+"-gsf-"+str(gsf)+"-l1-"+str(l1)+"-l2-"+str(l2) ae.enc_opt = opt ae.drop_rate = dr ae.sigma_base = gbs ae.sigma_fact = gsf ae.l1 = l1 ae.l2 = l2 ae.new_encdecs(use_dropout=(dr != 0), use_noise=(gbs != 0)) print("training encdec "+name) h = ae.pretrain(name=name) info = {"acc_pre_"+str(i): float(e[-1][1]) for (i,e) in enumerate(h)} info.update({("loss_pre_"+str(i)): float(e[-1][0]) for (i,e) in enumerate(h)}) ae.update_catalog("ed_"+name,info) ### FINETUNE ### cur_left_out = nsm.cross_val_keys[nsm.cross_val_index] ae.load_encdecs("best") ae.finetune(name="x-"+cur_left_out+"-val", train_encdecs=True, test_data=nsm.data[cur_left_out]) info = {} for key in ae.previous_data: print(key) arr = np.array(ae.previous_data[key]) phl = len(phase_names) eye = np.identity(phl) tc = to_categorical eva = ae.model.evaluate(arr, tc(map(lambda n: phase_names.index(n) ,list(repeat(key, len(arr)))) ,phl) ,show_accuracy=True) counts = np.sum(map(lambda p: eye[np.argmax(p)], ae.model.predict(arr)), axis=0) print(eva)
ae.sigma_fact = gsf ae.l1 = l1 ae.l2 = l2 ae.new_encdecs(use_dropout=(dr != 0), use_noise=(gbs != 0)) print("training encdec " + name) h = ae.pretrain(name=name) info = { "acc_pre_" + str(i): float(e[-1][1]) for (i, e) in enumerate(h) } info.update({("loss_pre_" + str(i)): float(e[-1][0]) for (i, e) in enumerate(h)}) ae.update_catalog("ed_" + name, info) ### FINETUNE ### cur_left_out = nsm.cross_val_keys[nsm.cross_val_index] ae.load_encdecs("best") ae.finetune(name="x-" + cur_left_out + "-val", train_encdecs=True, test_data=nsm.data[cur_left_out]) info = {} for key in ae.previous_data: print(key) arr = np.array(ae.previous_data[key]) phl = len(phase_names) eye = np.identity(phl) tc = to_categorical eva = ae.model.evaluate(arr, tc( map(lambda n: phase_names.index(n), list(repeat(key, len(arr)))), phl), show_accuracy=True)