4.3. Descriptor "se_e2_r"
#
Note
Supported backends: TensorFlow , PyTorch , JAX , DP
The notation of se_e2_r
is short for the Deep Potential Smooth Edition (DeepPot-SE) constructed from the radial information of atomic configurations. The e2
stands for the embedding with two-atom information.
4.3.1. Theory#
The descriptor, using either radial-only information, is given by
where \(N_c\) is the expected maximum number of neighboring atoms, which is the same constant for all atoms over all frames. A matrix with a dimension of \(N_c\) will be padded if the number of neighboring atoms is less than \(N_c\).
Each row of the embedding matrix \(\mathcal{G}^i \in \mathbb{R}^{N_c \times M}\) consists of \(M\) nodes from the output layer of an NN function \(\mathcal{N}_ {g}\) of \(s(r_{ij})\):
where \(\boldsymbol{r}_ {ij}=\boldsymbol{r}_ j-\boldsymbol{r}_ i = (x_{ij}, y_{ij}, z_{ij})\) is the relative coordinate and \(r_{ij}=\lVert \boldsymbol{r}_{ij} \lVert\) is its norm. The switching function \(s(r)\) is defined as
where \(x=\frac{r - r_s}{ r_c - r_s}\) switches from 1 at \(r_s\) to 0 at the cutoff radius \(r_c\). The switching function \(s(r)\) is smooth in the sense that the second-order derivative is continuous.
In the above equations, the network parameters are not explicitly written. \(r_s\), \(r_c\) and \(M\) are hyperparameters provided by the user. The DeepPot-SE is continuous up to the second-order derivative in its domain.[1]
4.3.2. Instructions#
A complete training input script of this example can be found in the directory
$deepmd_source_dir/examples/water/se_e2_r/input.json
The training input script is very similar to that of se_e2_a
. The only difference lies in the descriptor section
"descriptor": {
"type": "se_e2_r",
"sel": [46, 92],
"rcut_smth": 0.50,
"rcut": 6.00,
"neuron": [5, 10, 20],
"type_one_side": true,
"resnet_dt": false,
"seed": 1,
"_comment": " that's all"
},
The type of the descriptor is set by the key type.
4.3.3. Type embedding support#
Type embdding is only supported in the TensorFlow backends.
4.3.4. Difference among different backends#
In the TensorFlow backend, env_protection cannot be set to a non-zero value. In the PyTorch, JAX, and DP backend, type_one_side cannot be set to false
.
4.3.5. Model compression#
Model compression is supported when type embedding is not used.