deepmd.fit package
Submodules
deepmd.fit.dipole module
- class deepmd.fit.dipole.DipoleFittingSeA[source]
Bases:
object
Fit the atomic dipole with descriptor se_a
- Parameters
- descrpt
tf.Tensor
The descrptor
- neuron
List
[int
] Number of neurons in each hidden layer of the fitting net
- resnet_dtbool
Time-step dt in the resnet construction: y = x + dt * phi (Wx + b)
- sel_type
List
[int
] The atom types selected to have an atomic dipole prediction. If is None, all atoms are selected.
- seed
int
Random seed for initializing the network parameters.
- activation_function
str
The activation function in the embedding net. Supported options are {0}
- precision
str
The precision of the embedding net parameters. Supported options are {1}
- uniform_seed
Only for the purpose of backward compatibility, retrieves the old behavior of using the random seed
- descrpt
Methods
build
(input_d, rot_mat, natoms[, reuse, suffix])Build the computational graph for fitting net
Get the output size.
Get selected type
- build(input_d: tensorflow.python.framework.ops.Tensor, rot_mat: tensorflow.python.framework.ops.Tensor, natoms: tensorflow.python.framework.ops.Tensor, reuse: Optional[bool] = None, suffix: str = '') tensorflow.python.framework.ops.Tensor [source]
Build the computational graph for fitting net
- Parameters
- input_d
The input descriptor
- rot_mat
The rotation matrix from the descriptor.
- natoms
The number of atoms. This tensor has the length of Ntypes + 2 natoms[0]: number of local atoms natoms[1]: total number of atoms held by this processor natoms[i]: 2 <= i < Ntypes+2, number of type i atoms
- reuse
The weights in the networks should be reused when get the variable.
- suffix
Name suffix to identify this descriptor
- Returns
dipole
The atomic dipole.
deepmd.fit.ener module
- class deepmd.fit.ener.EnerFitting[source]
Bases:
object
Fitting the energy of the system. The force and the virial can also be trained.
The potential energy \(E\) is a fitting network function of the descriptor \(\mathcal{D}\):
\[E(\mathcal{D}) = \mathcal{L}^{(n)} \circ \mathcal{L}^{(n-1)} \circ \cdots \circ \mathcal{L}^{(1)} \circ \mathcal{L}^{(0)}\]The first \(n\) hidden layers \(\mathcal{L}^{(0)}, \cdots, \mathcal{L}^{(n-1)}\) are given by
\[\mathbf{y}=\mathcal{L}(\mathbf{x};\mathbf{w},\mathbf{b})= \boldsymbol{\phi}(\mathbf{x}^T\mathbf{w}+\mathbf{b})\]where \(\mathbf{x} \in \mathbb{R}^{N_1}\) is the input vector and \(\mathbf{y} \in \mathbb{R}^{N_2}\) is the output vector. \(\mathbf{w} \in \mathbb{R}^{N_1 \times N_2}\) and \(\mathbf{b} \in \mathbb{R}^{N_2}\) are weights and biases, respectively, both of which are trainable if trainable[i] is True. \(\boldsymbol{\phi}\) is the activation function.
The output layer \(\mathcal{L}^{(n)}\) is given by
\[\mathbf{y}=\mathcal{L}^{(n)}(\mathbf{x};\mathbf{w},\mathbf{b})= \mathbf{x}^T\mathbf{w}+\mathbf{b}\]where \(\mathbf{x} \in \mathbb{R}^{N_{n-1}}\) is the input vector and \(\mathbf{y} \in \mathbb{R}\) is the output scalar. \(\mathbf{w} \in \mathbb{R}^{N_{n-1}}\) and \(\mathbf{b} \in \mathbb{R}\) are weights and bias, respectively, both of which are trainable if trainable[n] is True.
- Parameters
- descrpt
The descrptor \(\mathcal{D}\)
- neuron
Number of neurons \(N\) in each hidden layer of the fitting net
- resnet_dt
Time-step dt in the resnet construction: \(y = x + dt * \phi (Wx + b)\)
- numb_fparam
Number of frame parameter
- numb_aparam
Number of atomic parameter
- rcond
The condition number for the regression of atomic energy.
- tot_ener_zero
Force the total energy to zero. Useful for the charge fitting.
- trainable
If the weights of fitting net are trainable. Suppose that we have \(N_l\) hidden layers in the fitting net, this list is of length \(N_l + 1\), specifying if the hidden layers and the output layer are trainable.
- seed
Random seed for initializing the network parameters.
- atom_ener
Specifying atomic energy contribution in vacuum. The set_davg_zero key in the descrptor should be set.
- activation_function
The activation function \(\boldsymbol{\phi}\) in the embedding net. Supported options are {0}
- precision
The precision of the embedding net parameters. Supported options are {1}
- uniform_seed
Only for the purpose of backward compatibility, retrieves the old behavior of using the random seed
Methods
build
(inputs, natoms[, input_dict, reuse, ...])Build the computational graph for fitting net
compute_input_stats
(all_stat[, protection])Compute the input statistics
compute_output_stats
(all_stat)Compute the ouput statistics
Get the number of atomic parameters
Get the number of frame parameters
init_variables
(fitting_net_variables)Init the fitting net variables with the given dict
- build(inputs: tensorflow.python.framework.ops.Tensor, natoms: tensorflow.python.framework.ops.Tensor, input_dict: dict = {}, reuse: Optional[bool] = None, suffix: str = '') tensorflow.python.framework.ops.Tensor [source]
Build the computational graph for fitting net
- Parameters
- inputs
The input descriptor
- input_dict
Additional dict for inputs. if numb_fparam > 0, should have input_dict[‘fparam’] if numb_aparam > 0, should have input_dict[‘aparam’]
- natoms
The number of atoms. This tensor has the length of Ntypes + 2 natoms[0]: number of local atoms natoms[1]: total number of atoms held by this processor natoms[i]: 2 <= i < Ntypes+2, number of type i atoms
- reuse
The weights in the networks should be reused when get the variable.
- suffix
Name suffix to identify this descriptor
- Returns
ener
The system energy
- compute_input_stats(all_stat: dict, protection: float = 0.01) None [source]
Compute the input statistics
- Parameters
- all_stat
if numb_fparam > 0 must have all_stat[‘fparam’] if numb_aparam > 0 must have all_stat[‘aparam’] can be prepared by model.make_stat_input
- protection
Divided-by-zero protection
deepmd.fit.polar module
- class deepmd.fit.polar.GlobalPolarFittingSeA[source]
Bases:
object
Fit the system polarizability with descriptor se_a
- Parameters
- descrpt
tf.Tensor
The descrptor
- neuron
List
[int
] Number of neurons in each hidden layer of the fitting net
- resnet_dtbool
Time-step dt in the resnet construction: y = x + dt * phi (Wx + b)
- sel_type
List
[int
] The atom types selected to have an atomic polarizability prediction
- fit_diagbool
Fit the diagonal part of the rotational invariant polarizability matrix, which will be converted to normal polarizability matrix by contracting with the rotation matrix.
- scale
List
[float
] The output of the fitting net (polarizability matrix) for type i atom will be scaled by scale[i]
- diag_shift
List
[float
] The diagonal part of the polarizability matrix of type i will be shifted by diag_shift[i]. The shift operation is carried out after scale.
- seed
int
Random seed for initializing the network parameters.
- activation_function
str
The activation function in the embedding net. Supported options are {0}
- precision
str
The precision of the embedding net parameters. Supported options are {1}
- descrpt
Methods
build
(input_d, rot_mat, natoms[, reuse, suffix])Build the computational graph for fitting net
Get the output size.
Get selected atom types
- build(input_d, rot_mat, natoms, reuse=None, suffix='') tensorflow.python.framework.ops.Tensor [source]
Build the computational graph for fitting net
- Parameters
- input_d
The input descriptor
- rot_mat
The rotation matrix from the descriptor.
- natoms
The number of atoms. This tensor has the length of Ntypes + 2 natoms[0]: number of local atoms natoms[1]: total number of atoms held by this processor natoms[i]: 2 <= i < Ntypes+2, number of type i atoms
- reuse
The weights in the networks should be reused when get the variable.
- suffix
Name suffix to identify this descriptor
- Returns
polar
The system polarizability
- class deepmd.fit.polar.PolarFittingLocFrame(jdata, descrpt)[source]
Bases:
object
Fitting polarizability with local frame descriptor.
Deprecated since version 2.0.0: This class is not supported any more.
Methods
build
get_out_size
get_sel_type
- class deepmd.fit.polar.PolarFittingSeA[source]
Bases:
object
Fit the atomic polarizability with descriptor se_a
Methods
build
(input_d, rot_mat, natoms[, reuse, suffix])Build the computational graph for fitting net
compute_input_stats
(all_stat[, protection])Compute the input statistics
Get the output size.
Get selected atom types
- build(input_d: tensorflow.python.framework.ops.Tensor, rot_mat: tensorflow.python.framework.ops.Tensor, natoms: tensorflow.python.framework.ops.Tensor, reuse: Optional[bool] = None, suffix: str = '')[source]
Build the computational graph for fitting net
- Parameters
- input_d
The input descriptor
- rot_mat
The rotation matrix from the descriptor.
- natoms
The number of atoms. This tensor has the length of Ntypes + 2 natoms[0]: number of local atoms natoms[1]: total number of atoms held by this processor natoms[i]: 2 <= i < Ntypes+2, number of type i atoms
- reuse
The weights in the networks should be reused when get the variable.
- suffix
Name suffix to identify this descriptor
- Returns
atomic_polar
The atomic polarizability