From b6e9f9947f83a0cbaf7911bb90ba62ec9d05917c Mon Sep 17 00:00:00 2001 From: Jinzhe Zeng Date: Mon, 9 May 2022 15:07:07 -0400 Subject: [PATCH 1/2] set default fparam and aparam stat and recover from graph fix #1692 --- deepmd/fit/ener.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/deepmd/fit/ener.py b/deepmd/fit/ener.py index bb1a3844b6..11682213de 100644 --- a/deepmd/fit/ener.py +++ b/deepmd/fit/ener.py @@ -379,9 +379,11 @@ def build (self, input_dict = {} bias_atom_e = self.bias_atom_e if self.numb_fparam > 0 and ( self.fparam_avg is None or self.fparam_inv_std is None ): - raise RuntimeError('No data stat result. one should do data statisitic, before build') + self.fparam_avg = 0. + self.fparam_inv_std = 1. if self.numb_aparam > 0 and ( self.aparam_avg is None or self.aparam_inv_std is None ): - raise RuntimeError('No data stat result. one should do data statisitic, before build') + self.aparam_avg = 0. + self.aparam_inv_std = 1. with tf.variable_scope('fitting_attr' + suffix, reuse = reuse) : t_dfparam = tf.constant(self.numb_fparam, @@ -527,7 +529,12 @@ def init_variables(self, suffix to name scope """ self.fitting_net_variables = get_fitting_net_variables_from_graph_def(graph_def) - + if self.numb_fparam > 0: + self.fparam_avg = get_tensor_by_name_from_graph(graph, 'fitting_attr%s/t_fparam_avg' % suffix) + self.fparam_inv_std = get_tensor_by_name_from_graph(graph, 'fitting_attr%s/t_fparam_istd' % suffix) + if self.numb_aparam > 0: + self.aparam_avg = get_tensor_by_name_from_graph(graph, 'fitting_attr%s/t_aparam_avg' % suffix) + self.aparam_inv_std = get_tensor_by_name_from_graph(graph, 'fitting_attr%s/t_aparam_istd' % suffix) def enable_compression(self, model_file: str, From 62bb8dd452c6e699099b81f177c9b0cb4c2c067e Mon Sep 17 00:00:00 2001 From: Jinzhe Zeng Date: Tue, 10 May 2022 19:16:31 -0400 Subject: [PATCH 2/2] check avg and std separately --- deepmd/fit/ener.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/deepmd/fit/ener.py b/deepmd/fit/ener.py index 11682213de..f554054887 100644 --- a/deepmd/fit/ener.py +++ b/deepmd/fit/ener.py @@ -378,12 +378,16 @@ def build (self, if input_dict is None: input_dict = {} bias_atom_e = self.bias_atom_e - if self.numb_fparam > 0 and ( self.fparam_avg is None or self.fparam_inv_std is None ): - self.fparam_avg = 0. - self.fparam_inv_std = 1. - if self.numb_aparam > 0 and ( self.aparam_avg is None or self.aparam_inv_std is None ): - self.aparam_avg = 0. - self.aparam_inv_std = 1. + if self.numb_fparam > 0: + if self.fparam_avg is None: + self.fparam_avg = 0. + if self.fparam_inv_std is None: + self.fparam_inv_std = 1. + if self.numb_aparam > 0: + if self.aparam_avg is None: + self.aparam_avg = 0. + if self.aparam_inv_std is None: + self.aparam_inv_std = 1. with tf.variable_scope('fitting_attr' + suffix, reuse = reuse) : t_dfparam = tf.constant(self.numb_fparam,