def predict(model, sols, setting, step): """ :param model: :param sol: :param setting: :param step: :return: """ if step <= 0: return elif step in [1, 2, 3]: Amat, fval = init_training(model, setting, step, delForce=0) else: print("ERROR: Unknown pred_step: ", step) exit(-1) errs = [] for i in range(len(sols)): err = predict_holdout(Amat, fval[:, 0], sols[i]) errs.append(err[0]) print(" sol# %d: err= (%.2f%%) %f" % (i, err[0], err[1])) np.savetxt("%s_%d" % (setting['fval_out'], i), np.transpose(err[2:4])) print("+ Prediction done") return np.argmin(errs)
def predict(model, sols, setting, step): """ :param model: :param sol: :param setting: :param step: :return: """ if step <= 0: return elif step in [1, 2, 3]: Amat, fval = init_training(model, setting, step, delForce=0) else: print("ERROR: Unknown pred_step: ", step) exit(-1) print('\n') print('!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!') print('!!!!! PREDICTING USING FITTED RESULTS !!!!!!') print('!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!') print('\n') errs = [] for i in range(len(sols)): err = predict_holdout(Amat, fval[:, 0], sols[i]) err[2:4] += fval[:, 2:].T errs.append(err[0]) print(" sol# %d: err= (%.2f%%) %f" % (i, err[0], err[1])) np.savetxt("%s_%d" % (setting['fval_out'], i), np.transpose(err[2:4])) if setting.getboolean('save_force_prediction', True) and setting['corr_type'] == 'f': supercells = [ y.split() for x, y in setting.items() if re.match('traindat.*', x) ] left = 0 f_all = np.reshape(err[3], (-1, 3)) for sc in supercells: nA = Poscar.from_file(sc[0]).structure.num_sites for subs in sc[1:]: for f in sorted(glob.glob(subs)): np.savetxt(f + '/force.txt_predicted', f_all[left:left + nA]) left += nA print("+ Prediction done") return np.argmin(errs)