diff --git a/deepmd/dpmodel/loss/ener.py b/deepmd/dpmodel/loss/ener.py index a237138dee..55c427c678 100644 --- a/deepmd/dpmodel/loss/ener.py +++ b/deepmd/dpmodel/loss/ener.py @@ -260,7 +260,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, @@ -335,7 +335,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 71ca164b7d..08b16fd4cf 100644 --- a/deepmd/pd/loss/ener.py +++ b/deepmd/pd/loss/ener.py @@ -243,7 +243,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, @@ -414,7 +414,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 f793cefc96..1e614024cc 100644 --- a/deepmd/pt/loss/ener.py +++ b/deepmd/pt/loss/ener.py @@ -250,7 +250,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, @@ -432,7 +432,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 b477a1005f..d26d4ee075 100644 --- a/deepmd/tf/loss/ener.py +++ b/deepmd/tf/loss/ener.py @@ -356,7 +356,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, @@ -380,7 +380,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]),