deepmd.tf.fit.polar#
Classes#
Fit the atomic polarizability with descriptor se_a. | |
Fit the system polarizability with descriptor se_a. |
Module Contents#
- class deepmd.tf.fit.polar.PolarFittingSeA(ntypes: int, dim_descrpt: int, embedding_width: int, neuron: list[int] = [120, 120, 120], resnet_dt: bool = True, numb_fparam: int = 0, numb_aparam: int = 0, sel_type: list[int] | None = None, fit_diag: bool = True, scale: list[float] | None = None, shift_diag: bool = True, seed: int | None = None, activation_function: str = 'tanh', precision: str = 'default', uniform_seed: bool = False, mixed_types: bool = False, type_map: list[str] | None = None, **kwargs)[source]#
Bases:
deepmd.tf.fit.fitting.Fitting
Fit the atomic polarizability with descriptor se_a.
- Parameters:
- ntypes
The ntypes of the descriptor \(\mathcal{D}\)
- dim_descrpt
The dimension of the descriptor \(\mathcal{D}\)
- embedding_width
The rotation matrix dimension of the descriptor \(\mathcal{D}\)
- 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)
- numb_fparam
Number of frame parameters
- numb_aparam
Number of atomic parameters
- sel_type
list
[int
] The atom types selected to have an atomic polarizability prediction. If is None, all atoms are selected.
- 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 “none”, “gelu_tf”, “linear”, “relu6”, “sigmoid”, “tanh”, “gelu”, “relu”, “softplus”.
- precision
str
The precision of the embedding net parameters. Supported options are “float16”, “float64”, “default”, “float32”.
- uniform_seed
Only for the purpose of backward compatibility, retrieves the old behavior of using the random seed
- mixed_typesbool
If true, use a uniform fitting net for all atom types, otherwise use different fitting nets for different atom types.
- type_map: list[str], Optional
A list of strings. Give the name to each type of atoms.
- compute_output_stats(all_stat) None [source]#
Compute the output statistics.
- Parameters:
- all_stat
Dictionary of inputs. can be prepared by model.make_stat_input
- build(input_d: deepmd.tf.env.tf.Tensor, rot_mat: deepmd.tf.env.tf.Tensor, natoms: deepmd.tf.env.tf.Tensor, input_dict: dict | None = None, reuse: bool | None = 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
- input_dict
Additional dict for inputs.
- 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
- init_variables(graph: deepmd.tf.env.tf.Graph, graph_def: deepmd.tf.env.tf.GraphDef, suffix: str = '') None [source]#
Init the fitting net variables with the given dict.
- enable_mixed_precision(mixed_prec: dict | None = None) None [source]#
Receive the mixed precision setting.
- Parameters:
- mixed_prec
The mixed precision setting used in the embedding net
- get_loss(loss: dict, lr) deepmd.tf.loss.loss.Loss [source]#
Get the loss function.
- class deepmd.tf.fit.polar.GlobalPolarFittingSeA(descrpt: deepmd.tf.env.tf.Tensor, neuron: list[int] = [120, 120, 120], resnet_dt: bool = True, sel_type: list[int] | None = None, fit_diag: bool = True, scale: list[float] | None = None, diag_shift: list[float] | None = None, seed: int | None = None, activation_function: str = 'tanh', precision: str = 'default')[source]#
Fit the system polarizability with descriptor se_a.
- Parameters:
- descrpt
tf.Tensor
The descriptor
- 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 “none”, “gelu_tf”, “linear”, “relu6”, “sigmoid”, “tanh”, “gelu”, “relu”, “softplus”.
- precision
str
The precision of the embedding net parameters. Supported options are “float16”, “float64”, “default”, “float32”.
- descrpt
- build(input_d, rot_mat, natoms, input_dict: dict | None = None, reuse=None, suffix='') deepmd.tf.env.tf.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
- input_dict
Additional dict for inputs.
- 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
- init_variables(graph: deepmd.tf.env.tf.Graph, graph_def: deepmd.tf.env.tf.GraphDef, suffix: str = '') None [source]#
Init the fitting net variables with the given dict.
- enable_mixed_precision(mixed_prec: dict | None = None) None [source]#
Receive the mixed precision setting.
- Parameters:
- mixed_prec
The mixed precision setting used in the embedding net
- get_loss(loss: dict, lr) deepmd.tf.loss.loss.Loss [source]#
Get the loss function.
- Parameters:
- loss
dict
the loss dict
- lr
LearningRateExp
the learning rate
- loss
- Returns:
Loss
the loss function
- property input_requirement: list[deepmd.utils.data.DataRequirementItem][source]#
Return data requirements needed for the model input.