From 63d8c28faabc675dfce8a98cf6698c302b99abd3 Mon Sep 17 00:00:00 2001 From: Anyang Peng <137014849+anyangml@users.noreply.github.com> Date: Tue, 19 Nov 2024 15:20:46 +0800 Subject: [PATCH 1/3] fix: move grad after nlist calculation --- deepmd/pt/model/atomic_model/linear_atomic_model.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/deepmd/pt/model/atomic_model/linear_atomic_model.py b/deepmd/pt/model/atomic_model/linear_atomic_model.py index 80c864ad53..69ea49e084 100644 --- a/deepmd/pt/model/atomic_model/linear_atomic_model.py +++ b/deepmd/pt/model/atomic_model/linear_atomic_model.py @@ -248,8 +248,6 @@ def forward_atomic( the result dict, defined by the fitting net output def. """ nframes, nloc, nnei = nlist.shape - if self.do_grad_r() or self.do_grad_c(): - extended_coord.requires_grad_(True) extended_coord = extended_coord.view(nframes, -1, 3) sorted_rcuts, sorted_sels = self._sort_rcuts_sels() nlists = build_multiple_neighbor_list( @@ -258,6 +256,8 @@ def forward_atomic( sorted_rcuts, sorted_sels, ) + if self.do_grad_r() or self.do_grad_c(): + extended_coord.requires_grad_(True) raw_nlists = [ nlists[get_multiple_nlist_key(rcut, sel)] for rcut, sel in zip(self.get_model_rcuts(), self.get_model_nsels()) From 9aa642f7e7d86f094d02665bf19b9442872fbd8c Mon Sep 17 00:00:00 2001 From: Anyang Peng <137014849+anyangml@users.noreply.github.com> Date: Tue, 19 Nov 2024 18:11:21 +0800 Subject: [PATCH 2/3] fix: try fix grad --- deepmd/pt/model/atomic_model/linear_atomic_model.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/deepmd/pt/model/atomic_model/linear_atomic_model.py b/deepmd/pt/model/atomic_model/linear_atomic_model.py index 69ea49e084..c17e984256 100644 --- a/deepmd/pt/model/atomic_model/linear_atomic_model.py +++ b/deepmd/pt/model/atomic_model/linear_atomic_model.py @@ -248,16 +248,17 @@ def forward_atomic( the result dict, defined by the fitting net output def. """ nframes, nloc, nnei = nlist.shape + if self.do_grad_r() or self.do_grad_c(): + extended_coord.requires_grad_(True) extended_coord = extended_coord.view(nframes, -1, 3) sorted_rcuts, sorted_sels = self._sort_rcuts_sels() nlists = build_multiple_neighbor_list( - extended_coord, + extended_coord.detach(), nlist, sorted_rcuts, sorted_sels, ) - if self.do_grad_r() or self.do_grad_c(): - extended_coord.requires_grad_(True) + raw_nlists = [ nlists[get_multiple_nlist_key(rcut, sel)] for rcut, sel in zip(self.get_model_rcuts(), self.get_model_nsels()) From a66bced39cd9d7884eba07f0367dc30fde356f34 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 19 Nov 2024 10:12:44 +0000 Subject: [PATCH 3/3] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- deepmd/pt/model/atomic_model/linear_atomic_model.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deepmd/pt/model/atomic_model/linear_atomic_model.py b/deepmd/pt/model/atomic_model/linear_atomic_model.py index c17e984256..3a6abccdf6 100644 --- a/deepmd/pt/model/atomic_model/linear_atomic_model.py +++ b/deepmd/pt/model/atomic_model/linear_atomic_model.py @@ -258,7 +258,7 @@ def forward_atomic( sorted_rcuts, sorted_sels, ) - + raw_nlists = [ nlists[get_multiple_nlist_key(rcut, sel)] for rcut, sel in zip(self.get_model_rcuts(), self.get_model_nsels())