deepmd.tf.fit.polar
Module Contents
Classes
Fit the atomic polarizability with descriptor se_a. | |
Fit the system polarizability with descriptor se_a. |
- class deepmd.tf.fit.polar.PolarFittingSeA(ntypes: int, dim_descrpt: int, embedding_width: int, 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, shift_diag: bool = True, seed: int | None = None, activation_function: str = 'tanh', precision: str = 'default', uniform_seed: bool = False, mixed_types: bool = False, **kwargs)[source]
Bases:
deepmd.tf.fit.fitting.Fitting
Fit the atomic polarizability with descriptor se_a.
- Parameters:
- ntypes
The ntypes of the descrptor \(\mathcal{D}\)
- dim_descrpt
The dimension of the descrptor \(\mathcal{D}\)
- embedding_width
The rotation matrix dimension of the descrptor \(\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)
- 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 “relu”, “tanh”, “none”, “linear”, “softplus”, “sigmoid”, “relu6”, “gelu”, “gelu_tf”.
- precision
str
The precision of the embedding net parameters. Supported options are “float32”, “default”, “float16”, “float64”.
- 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.
- compute_output_stats(all_stat)[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]
Reveive 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 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 “relu”, “tanh”, “none”, “linear”, “softplus”, “sigmoid”, “relu6”, “gelu”, “gelu_tf”.
- precision
str
The precision of the embedding net parameters. Supported options are “float32”, “default”, “float16”, “float64”.
- 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]
Reveive 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