4.4. Descriptor "se_e3"
#
Note
Supported backends: TensorFlow , PyTorch , JAX , DP
The notation of se_e3
is short for three-body embedding DeepPot-SE, which incorporates embedded bond-angle information. The embedding takes bond angles between a central atom and its two neighboring atoms as input (denoted by e3
).
4.4.1. Theory#
The three-body embedding DeepPot-SE descriptor incorporates bond-angle information, making the model more accurate. The descriptor \(\mathcal{D}^i\) can be represented as
where \(N_c\) is the expected maximum number of neighboring atoms, which is the same constant for all atoms over all frames. \(\mathcal{R}^i\) is constructed as
Currently, only the full information case of \(\mathcal{R}^i\) is supported by the three-body embedding. Each element of \(\mathcal{G}^i \in \mathbb{R}^{N_c \times N_c \times M}\) comes from \(M\) nodes from the output layer of an NN \(\mathcal{N}_{e,3}\) function:
where \((\theta_i)_ {jk} = (\mathcal{R}^i)_ {j,\\{2,3,4\\}}\cdot (\mathcal{R}^i)_ {k,\\{2,3,4\\}}\) considers the angle form of two neighbours (\(j\) and \(k\)). The notation \(:\) in the equation indicates the contraction between matrix \(\mathcal{R}^i(\mathcal{R}^i)^T\) and the first two dimensions of tensor \(\mathcal{G}^i\).[1]
4.4.2. Instructions#
A complete training input script of this example can be found in the directory
$deepmd_source_dir/examples/water/se_e3/input.json
The training input script is very similar to that of se_e2_a
. The only difference lies in the descriptor <model[standard]/descriptor>
section
"descriptor": {
"type": "se_e3",
"sel": [40, 80],
"rcut_smth": 0.50,
"rcut": 6.00,
"neuron": [2, 4, 8],
"resnet_dt": false,
"seed": 1,
"_comment": " that's all"
},
The type of the descriptor is set by the key type.
4.4.3. Type embedding#
Use se_e3_tebd
for type embedding support.
4.4.4. Difference among different backends#
In the TensorFlow backend, env_protection cannot be set to a non-zero value.
4.4.5. Model compression#
Model compression is supported.