From 2b90ebe21945c4c179491172058fea8c6f36df38 Mon Sep 17 00:00:00 2001 From: Jinzhe Zeng Date: Mon, 2 Oct 2023 00:57:43 -0400 Subject: [PATCH 1/4] fix TypeError when type_map is not given Fix #2889. Signed-off-by: Jinzhe Zeng --- deepmd/model/model.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deepmd/model/model.py b/deepmd/model/model.py index 9ae5eacf4f..884a95cc46 100644 --- a/deepmd/model/model.py +++ b/deepmd/model/model.py @@ -531,7 +531,7 @@ def __init__( self.descrpt = descriptor else: self.descrpt = Descriptor( - **descriptor, ntypes=len(type_map), spin=self.spin + **descriptor, ntypes=len(self.type_map), spin=self.spin ) if isinstance(fitting_net, Fitting): From a650fddfb654e21cb826cd900c22f71052336727 Mon Sep 17 00:00:00 2001 From: Jinzhe Zeng Date: Mon, 2 Oct 2023 01:00:34 -0400 Subject: [PATCH 2/4] fix for MultiModel Signed-off-by: Jinzhe Zeng --- deepmd/model/multi.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deepmd/model/multi.py b/deepmd/model/multi.py index b0aa11a109..ec932b5838 100644 --- a/deepmd/model/multi.py +++ b/deepmd/model/multi.py @@ -122,7 +122,7 @@ def __init__( else: self.descrpt = Descriptor( **descriptor, - ntypes=len(type_map), + ntypes=len(self.type_map), multi_task=True, spin=self.spin, ) From bea7f1936853983c9367ea498d0a334569c01797 Mon Sep 17 00:00:00 2001 From: Jinzhe Zeng Date: Mon, 2 Oct 2023 23:20:08 -0400 Subject: [PATCH 3/4] use get_type_map --- deepmd/model/model.py | 2 +- deepmd/model/multi.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/deepmd/model/model.py b/deepmd/model/model.py index 884a95cc46..dddf6e2702 100644 --- a/deepmd/model/model.py +++ b/deepmd/model/model.py @@ -531,7 +531,7 @@ def __init__( self.descrpt = descriptor else: self.descrpt = Descriptor( - **descriptor, ntypes=len(self.type_map), spin=self.spin + **descriptor, ntypes=len(self.get_type_map()), spin=self.spin ) if isinstance(fitting_net, Fitting): diff --git a/deepmd/model/multi.py b/deepmd/model/multi.py index ec932b5838..e111508bc4 100644 --- a/deepmd/model/multi.py +++ b/deepmd/model/multi.py @@ -122,7 +122,7 @@ def __init__( else: self.descrpt = Descriptor( **descriptor, - ntypes=len(self.type_map), + ntypes=len(self.get_type_map()), multi_task=True, spin=self.spin, ) From 970ef061364da193d0ad266906c1cb6fdde34080 Mon Sep 17 00:00:00 2001 From: Jinzhe Zeng Date: Thu, 5 Oct 2023 16:25:59 -0400 Subject: [PATCH 4/4] raise ValueError for se_attn when ntypes is 0 Signed-off-by: Jinzhe Zeng --- deepmd/descriptor/se_atten.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/deepmd/descriptor/se_atten.py b/deepmd/descriptor/se_atten.py index b0c65108e5..dce5a0b434 100644 --- a/deepmd/descriptor/se_atten.py +++ b/deepmd/descriptor/se_atten.py @@ -120,6 +120,11 @@ class DescrptSeAtten(DescrptSeA): When using stripped type embedding, whether to dot smooth factor on the network output of type embedding to keep the network smooth, instead of setting `set_davg_zero` to be True. Default value will be True in `se_atten_v2` descriptor. + + Raises + ------ + ValueError + if ntypes is 0. """ def __init__( @@ -178,6 +183,8 @@ def __init__( assert Version(TF_VERSION) > Version( "2" ), "se_atten only support tensorflow version 2.0 or higher." + if ntypes == 0: + raise ValueError("`model/type_map` is not set or empty!") self.stripped_type_embedding = stripped_type_embedding self.smooth = smooth_type_embdding self.ntypes = ntypes