4.7. Descriptor "hybrid"
#
Note
Supported backends: TensorFlow , PyTorch , JAX , DP
This descriptor hybridizes multiple descriptors to form a new descriptor. For example, we have a list of descriptors denoted by \(\mathcal D_1\), \(\mathcal D_2\), …, \(\mathcal D_N\), the hybrid descriptor this the concatenation of the list, i.e. \(\mathcal D = (\mathcal D_1, \mathcal D_2, \cdots, \mathcal D_N)\).
4.7.1. Theory#
A hybrid descriptor \(\mathcal{D}^i_\text{hyb}\) concatenates multiple kinds of descriptors into one descriptor:
The list of descriptors can be different types or the same descriptors with different parameters. This way, one can set the different cutoff radii for different descriptors.[1]
4.7.2. Instructions#
To use the descriptor in DeePMD-kit, one firstly set the type to hybrid, then provide the definitions of the descriptors by the items in the list
,
"descriptor" :{
"type": "hybrid",
"list" : [
{
"type" : "se_e2_a",
...
},
{
"type" : "se_e2_r",
...
}
]
},
A complete training input script of this example can be found in the directory
$deepmd_source_dir/examples/water/hybrid/input.json
4.7.3. Type embedding#
Type embedding is different between the TensorFlow backend and other backends. In the TensorFlow backend, all descriptors share the same descriptor that defined in the model level. In other backends, each descriptor has its own type embedding and their parameters may be different.
4.7.4. Model compression#
Model compression is supported if all sub-descriptors support model compression.