From 708de6ceb9c17983dc3430bad830f20b2eb2af2f Mon Sep 17 00:00:00 2001 From: Han Wang Date: Sat, 20 Mar 2021 00:32:28 +0800 Subject: [PATCH] better output format during training, testing and in lcurve.out --- deepmd/entrypoints/test.py | 34 +++++++++++++++++----------------- deepmd/loggers/loggers.py | 6 ++++-- deepmd/loss/ener.py | 16 ++++++++-------- deepmd/loss/tensor.py | 6 +++--- deepmd/utils/data_system.py | 24 +++++++++++++----------- 5 files changed, 45 insertions(+), 41 deletions(-) diff --git a/deepmd/entrypoints/test.py b/deepmd/entrypoints/test.py index 6d4a2c4ad8..5c91547866 100644 --- a/deepmd/entrypoints/test.py +++ b/deepmd/entrypoints/test.py @@ -292,13 +292,13 @@ def test_ener( # print ("# energies: %s" % energy) log.info(f"# number of test data : {numb_test:d} ") - log.info(f"Energy L2err : {l2e:e} eV") - log.info(f"Energy L2err/Natoms : {l2ea:e} eV") - log.info(f"Force L2err : {l2f:e} eV/A") - log.info(f"Virial L2err : {l2v:e} eV") - log.info(f"Virial L2err/Natoms : {l2va:e} eV") + log.info(f"Energy RMSE : {l2e:e} eV") + log.info(f"Energy RMSE/Natoms : {l2ea:e} eV") + log.info(f"Force RMSE : {l2f:e} eV/A") + log.info(f"Virial RMSE : {l2v:e} eV") + log.info(f"Virial RMSE/Natoms : {l2va:e} eV") if has_atom_ener: - log.info(f"Atomic ener L2err : {l2ae:e} eV") + log.info(f"Atomic ener RMSE : {l2ae:e} eV") if detail_file is not None: detail_path = Path(detail_file) @@ -355,9 +355,9 @@ def print_ener_sys_avg(avg: np.ndarray): avg : np.ndarray array with summaries """ - log.info(f"Energy L2err/Natoms : {avg[0]:e} eV") - log.info(f"Force L2err : {avg[1]:e} eV/A") - log.info(f"Virial L2err/Natoms : {avg[2]:e} eV") + log.info(f"Energy RMSE/Natoms : {avg[0]:e} eV") + log.info(f"Force RMSE : {avg[1]:e} eV/A") + log.info(f"Virial RMSE/Natoms : {avg[2]:e} eV") def run_test(dp: "DeepTensor", test_data: dict, numb_test: int): @@ -420,7 +420,7 @@ def test_wfc( l2f = l2err(wfc - test_data["wfc"][:numb_test]) log.info("# number of test data : {numb_test:d} ") - log.info("WFC L2err : {l2f:e} eV/A") + log.info("WFC RMSE : {l2f:e} eV/A") if detail_file is not None: detail_path = Path(detail_file) @@ -447,7 +447,7 @@ def print_wfc_sys_avg(avg): avg : np.ndarray array with summaries """ - log.info(f"WFC L2err : {avg[0]:e} eV/A") + log.info(f"WFC RMSE : {avg[0]:e} eV/A") def test_polar( @@ -509,10 +509,10 @@ def test_polar( l2fa = l2f / sel_natoms log.info(f"# number of test data : {numb_test:d} ") - log.info(f"Polarizability L2err : {l2f:e} eV/A") + log.info(f"Polarizability RMSE : {l2f:e} eV/A") if global_polar: - log.info(f"Polarizability L2err/sqrtN : {l2fs:e} eV/A") - log.info(f"Polarizability L2err/N : {l2fa:e} eV/A") + log.info(f"Polarizability RMSE/sqrtN : {l2fs:e} eV/A") + log.info(f"Polarizability RMSE/N : {l2fa:e} eV/A") if detail_file is not None: detail_path = Path(detail_file) @@ -542,7 +542,7 @@ def print_polar_sys_avg(avg): avg : np.ndarray array with summaries """ - log.info(f"Polarizability L2err : {avg[0]:e} eV/A") + log.info(f"Polarizability RMSE : {avg[0]:e} eV/A") def test_dipole( @@ -577,7 +577,7 @@ def test_dipole( l2f = l2err(dipole - test_data["dipole"][:numb_test]) log.info(f"# number of test data : {numb_test:d}") - log.info(f"Dipole L2err : {l2f:e} eV/A") + log.info(f"Dipole RMSE : {l2f:e} eV/A") if detail_file is not None: detail_path = Path(detail_file) @@ -605,4 +605,4 @@ def print_dipole_sys_avg(avg): avg : np.ndarray array with summaries """ - log.info(f"Dipole L2err : {avg[0]:e} eV/A") + log.info(f"Dipole RMSE : {avg[0]:e} eV/A") diff --git a/deepmd/loggers/loggers.py b/deepmd/loggers/loggers.py index 6400cb0a15..f787ff1e1a 100644 --- a/deepmd/loggers/loggers.py +++ b/deepmd/loggers/loggers.py @@ -20,13 +20,15 @@ "[%(asctime)s] %(app_name)s %(levelname)-7s %(name)-45s %(message)s" ) CFORMATTER = logging.Formatter( - "%(app_name)s %(levelname)-7s |-> %(name)-45s %(message)s" +# "%(app_name)s %(levelname)-7s |-> %(name)-45s %(message)s" + "%(app_name)s %(levelname)-7s %(message)s" ) FFORMATTER_MPI = logging.Formatter( "[%(asctime)s] %(app_name)s rank:%(rank)-2s %(levelname)-7s %(name)-45s %(message)s" ) CFORMATTER_MPI = logging.Formatter( - "%(app_name)s rank:%(rank)-2s %(levelname)-7s |-> %(name)-45s %(message)s" +# "%(app_name)s rank:%(rank)-2s %(levelname)-7s |-> %(name)-45s %(message)s" + "%(app_name)s rank:%(rank)-2s %(levelname)-7s %(message)s" ) diff --git a/deepmd/loss/ener.py b/deepmd/loss/ener.py index 89d15b3add..d4a5b11509 100644 --- a/deepmd/loss/ener.py +++ b/deepmd/loss/ener.py @@ -128,19 +128,19 @@ def build (self, return l2_loss, more_loss def print_header(self): - prop_fmt = ' %9s %9s' + prop_fmt = ' %11s %11s' print_str = '' - print_str += prop_fmt % ('l2_tst', 'l2_trn') + print_str += prop_fmt % ('rmse_tst', 'rmse_trn') if self.has_e : - print_str += prop_fmt % ('l2_e_tst', 'l2_e_trn') + print_str += prop_fmt % ('rmse_e_tst', 'rmse_e_trn') if self.has_ae : - print_str += prop_fmt % ('l2_ae_tst', 'l2_ae_trn') + print_str += prop_fmt % ('rmse_ae_tst', 'rmse_ae_trn') if self.has_f : - print_str += prop_fmt % ('l2_f_tst', 'l2_f_trn') + print_str += prop_fmt % ('rmse_f_tst', 'rmse_f_trn') if self.has_v : - print_str += prop_fmt % ('l2_v_tst', 'l2_v_trn') + print_str += prop_fmt % ('rmse_v_tst', 'rmse_v_trn') if self.has_pf : - print_str += prop_fmt % ('l2_pf_tst', 'l2_pf_trn') + print_str += prop_fmt % ('rmse_pf_tst', 'rmse_pf_trn') return print_str def print_on_training(self, @@ -180,7 +180,7 @@ def print_on_training(self, print_str = "" - prop_fmt = " %9.2e %9.2e" + prop_fmt = " %11.2e %11.2e" print_str += prop_fmt % (np.sqrt(error_test), np.sqrt(error_train)) if self.has_e : print_str += prop_fmt % (np.sqrt(error_e_test) / natoms[0], np.sqrt(error_e_train) / natoms[0]) diff --git a/deepmd/loss/tensor.py b/deepmd/loss/tensor.py index 8784427808..3327c418d5 100644 --- a/deepmd/loss/tensor.py +++ b/deepmd/loss/tensor.py @@ -52,9 +52,9 @@ def build (self, @staticmethod def print_header(): - prop_fmt = ' %9s %9s' + prop_fmt = ' %11s %11s' print_str = '' - print_str += prop_fmt % ('l2_tst', 'l2_trn') + print_str += prop_fmt % ('rmse_tst', 'rmse_trn') return print_str def print_on_training(self, @@ -85,7 +85,7 @@ def print_on_training(self, error_test = test_out[0] print_str = "" - prop_fmt = " %9.2e %9.2e" + prop_fmt = " %11.2e %11.2e" print_str += prop_fmt % (np.sqrt(error_test), np.sqrt(error_train)) return print_str diff --git a/deepmd/utils/data_system.py b/deepmd/utils/data_system.py index e9d07a51ad..557a2c6bd0 100644 --- a/deepmd/utils/data_system.py +++ b/deepmd/utils/data_system.py @@ -404,20 +404,22 @@ def print_summary(self, prob = self._get_sys_probs(sys_probs, auto_prob_style) # width 65 sys_width = 42 - log.info("---Summary of DataSystem------------------------------------------------") + log.info("---Summary of DataSystem--------------------------------------------------------------") log.info("found %d system(s):" % self.nsystems) - log.info("%s " % self._format_name_length('system', sys_width)) - log.info("%s %s %s %s %5s" % ('natoms', 'bch_sz', 'n_bch', "n_test", 'prob')) + log.info(("%s " % self._format_name_length('system', sys_width)) + + ("%6s %6s %6s %6s %5s %3s" % ('natoms', 'bch_sz', 'n_bch', "n_test", 'prob', 'pbc'))) for ii in range(self.nsystems) : - log.info("%s %6d %6d %6d %6d %5.3f" % + log.info("%s %6d %6d %6d %6d %5.3f %3s" % (self._format_name_length(self.system_dirs[ii], sys_width), - self.natoms[ii], - # TODO batch size * nbatches = number of structures - self.batch_size[ii], - self.nbatches[ii], - self.test_size[ii], - prob[ii]) ) - log.info("------------------------------------------------------------------------\n") + self.natoms[ii], + # TODO batch size * nbatches = number of structures + self.batch_size[ii], + self.nbatches[ii], + self.test_size[ii], + prob[ii], + "T" if self.data_systems[ii].pbc else "F" + ) ) + log.info("--------------------------------------------------------------------------------------") def _make_auto_bs(self, rule) : bs = []