diff --git a/deepmd/dpmodel/loss/ener.py b/deepmd/dpmodel/loss/ener.py index 201a77fcdd..8172302f5d 100644 --- a/deepmd/dpmodel/loss/ener.py +++ b/deepmd/dpmodel/loss/ener.py @@ -245,7 +245,7 @@ def call( if self.loss_func == "mse": l2_ener_loss = xp.mean(xp.square(energy - energy_hat)) if not self.use_huber: - loss += atom_norm_ener * (pref_e * l2_ener_loss) + loss += atom_norm_ener**2 * (pref_e * l2_ener_loss) else: l_huber_loss = custom_huber_loss( atom_norm_ener * energy, @@ -312,7 +312,7 @@ def call( xp.square(virial_hat_reshape - virial_reshape), ) if not self.use_huber: - loss += atom_norm * (pref_v * l2_virial_loss) + loss += atom_norm**2 * (pref_v * l2_virial_loss) else: l_huber_loss = custom_huber_loss( atom_norm * virial_reshape, diff --git a/deepmd/pd/loss/ener.py b/deepmd/pd/loss/ener.py index cf093b90d4..9694cd1236 100644 --- a/deepmd/pd/loss/ener.py +++ b/deepmd/pd/loss/ener.py @@ -233,7 +233,7 @@ def forward( l2_ener_loss.detach(), find_energy ) if not self.use_huber: - loss += atom_norm * (pref_e * l2_ener_loss) + loss += atom_norm**2 * (pref_e * l2_ener_loss) else: l_huber_loss = custom_huber_loss( atom_norm * energy_pred, @@ -404,7 +404,7 @@ def forward( l2_virial_loss.detach(), find_virial ) if not self.use_huber: - loss += atom_norm * (pref_v * l2_virial_loss) + loss += atom_norm**2 * (pref_v * l2_virial_loss) else: l_huber_loss = custom_huber_loss( atom_norm * model_pred["virial"].reshape([-1]), diff --git a/deepmd/pt/loss/ener.py b/deepmd/pt/loss/ener.py index 66d60aacec..1830a6e64b 100644 --- a/deepmd/pt/loss/ener.py +++ b/deepmd/pt/loss/ener.py @@ -239,7 +239,7 @@ def forward( l2_ener_loss.detach(), find_energy ) if not self.use_huber: - loss += atom_norm * (pref_e * l2_ener_loss) + loss += atom_norm**2 * (pref_e * l2_ener_loss) else: l_huber_loss = custom_huber_loss( atom_norm * energy_pred, @@ -421,7 +421,7 @@ def forward( l2_virial_loss.detach(), find_virial ) if not self.use_huber: - loss += atom_norm * (pref_v * l2_virial_loss) + loss += atom_norm**2 * (pref_v * l2_virial_loss) else: l_huber_loss = custom_huber_loss( atom_norm * model_pred["virial"].reshape(-1), diff --git a/deepmd/tf/loss/ener.py b/deepmd/tf/loss/ener.py index 91607245a2..08d89fdefd 100644 --- a/deepmd/tf/loss/ener.py +++ b/deepmd/tf/loss/ener.py @@ -346,7 +346,7 @@ def build( more_loss = {} if self.has_e: if not self.use_huber: - loss += atom_norm_ener * (pref_e * l2_ener_loss) + loss += atom_norm_ener**2 * (pref_e * l2_ener_loss) else: l_huber_loss = custom_huber_loss( atom_norm_ener * energy, @@ -370,7 +370,9 @@ def build( ) if self.has_v: if not self.use_huber: - loss += global_cvt_2_ener_float(atom_norm * (pref_v * l2_virial_loss)) + loss += global_cvt_2_ener_float( + atom_norm**2 * (pref_v * l2_virial_loss) + ) else: l_huber_loss = custom_huber_loss( atom_norm * tf.reshape(virial, [-1]),