- model:
- type:
dictargument path:model- type_map:
- type:
list, optionalargument path:model/type_mapA list of strings. Give the name to each type of atoms. It is noted that the number of atom type of training system must be less than 128 in a GPU environment.
- data_stat_nbatch:
- type:
int, optional, default:10argument path:model/data_stat_nbatchThe model determines the normalization from the statistics of the data. This key specifies the number of frames in each system used for statistics.
- data_stat_protect:
- type:
float, optional, default:0.01argument path:model/data_stat_protectProtect parameter for atomic energy regression.
- use_srtab:
- type:
str, optionalargument path:model/use_srtabThe table for the short-range pairwise interaction added on top of DP. The table is a text data file with (N_t + 1) * N_t / 2 + 1 columes. The first colume is the distance between atoms. The second to the last columes are energies for pairs of certain types. For example we have two atom types, 0 and 1. The columes from 2nd to 4th are for 0-0, 0-1 and 1-1 correspondingly.
- smin_alpha:
- type:
float, optionalargument path:model/smin_alphaThe short-range tabulated interaction will be swithed according to the distance of the nearest neighbor. This distance is calculated by softmin. This parameter is the decaying parameter in the softmin. It is only required when use_srtab is provided.
- sw_rmin:
- type:
float, optionalargument path:model/sw_rminThe lower boundary of the interpolation between short-range tabulated interaction and DP. It is only required when use_srtab is provided.
- sw_rmax:
- type:
float, optionalargument path:model/sw_rmaxThe upper boundary of the interpolation between short-range tabulated interaction and DP. It is only required when use_srtab is provided.
- type_embedding:
- type:
dict, optionalargument path:model/type_embeddingThe type embedding.
- neuron:
- type:
list, optional, default:[2, 4, 8]argument path:model/type_embedding/neuronNumber of neurons in each hidden layers of the embedding net. When two layers are of the same size or one layer is twice as large as the previous layer, a skip connection is built.
- activation_function:
- type:
str, optional, default:tanhargument path:model/type_embedding/activation_functionThe activation function in the embedding net. Supported activation functions are "relu", "relu6", "softplus", "sigmoid", "tanh", "gelu".
- resnet_dt:
- type:
bool, optional, default:Falseargument path:model/type_embedding/resnet_dtWhether to use a "Timestep" in the skip connection
- precision:
- type:
str, optional, default:float64argument path:model/type_embedding/precisionThe precision of the embedding net parameters, supported options are "default", "float16", "float32", "float64".
- trainable:
- type:
bool, optional, default:Trueargument path:model/type_embedding/trainableIf the parameters in the embedding net are trainable
- seed:
- type:
int|NoneType, optionalargument path:model/type_embedding/seedRandom seed for parameter initialization
- descriptor:
- type:
dictargument path:model/descriptorThe descriptor of atomic environment.
Depending on the value of type, different sub args are accepted.
- type:
- type:
str(flag key)argument path:model/descriptor/typeThe type of the descritpor. See explanation below.
- loc_frame: Defines a local frame at each atom, and the compute the descriptor as local coordinates under this frame.
- se_e2_a: Used by the smooth edition of Deep Potential. The full relative coordinates are used to construct the descriptor.
- se_e2_r: Used by the smooth edition of Deep Potential. Only the distance between atoms is used to construct the descriptor.
- se_e3: Used by the smooth edition of Deep Potential. The full relative coordinates are used to construct the descriptor. Three-body embedding will be used by this descriptor.
- se_a_tpe: Used by the smooth edition of Deep Potential. The full relative coordinates are used to construct the descriptor. Type embedding will be used by this descriptor.
- hybrid: Concatenate of a list of descriptors as a new descriptor.
When type is set to
loc_frame:- sel_a:
- type:
listargument path:model/descriptor[loc_frame]/sel_aA list of integers. The length of the list should be the same as the number of atom types in the system. sel_a[i] gives the selected number of type-i neighbors. The full relative coordinates of the neighbors are used by the descriptor.
- sel_r:
- type:
listargument path:model/descriptor[loc_frame]/sel_rA list of integers. The length of the list should be the same as the number of atom types in the system. sel_r[i] gives the selected number of type-i neighbors. Only relative distance of the neighbors are used by the descriptor. sel_a[i] + sel_r[i] is recommended to be larger than the maximally possible number of type-i neighbors in the cut-off radius.
- rcut:
- type:
float, optional, default:6.0argument path:model/descriptor[loc_frame]/rcutThe cut-off radius. The default value is 6.0
- axis_rule:
- type:
listargument path:model/descriptor[loc_frame]/axis_ruleA list of integers. The length should be 6 times of the number of types.
- axis_rule[i*6+0]: class of the atom defining the first axis of type-i atom. 0 for neighbors with full coordinates and 1 for neighbors only with relative distance.
- axis_rule[i*6+1]: type of the atom defining the first axis of type-i atom.
- axis_rule[i*6+2]: index of the axis atom defining the first axis. Note that the neighbors with the same class and type are sorted according to their relative distance.
- axis_rule[i*6+3]: class of the atom defining the first axis of type-i atom. 0 for neighbors with full coordinates and 1 for neighbors only with relative distance.
- axis_rule[i*6+4]: type of the atom defining the second axis of type-i atom.
- axis_rule[i*6+5]: class of the atom defining the second axis of type-i atom. 0 for neighbors with full coordinates and 1 for neighbors only with relative distance.
When type is set to
se_e2_a(or its aliasse_a):- sel:
- type:
list|str, optional, default:autoargument path:model/descriptor[se_e2_a]/selThis parameter set the number of selected neighbors for each type of atom. It can be:
- List[int]. The length of the list should be the same as the number of atom types in the system. sel[i] gives the selected number of type-i neighbors. sel[i] is recommended to be larger than the maximally possible number of type-i neighbors in the cut-off radius. It is noted that the total sel value must be less than 4096 in a GPU environment.
- str. Can be "auto:factor" or "auto". "factor" is a float number larger than 1. This option will automatically determine the sel. In detail it counts the maximal number of neighbors with in the cutoff radius for each type of neighbor, then multiply the maximum by the "factor". Finally the number is wraped up to 4 divisible. The option "auto" is equivalent to "auto:1.1".
- rcut:
- type:
float, optional, default:6.0argument path:model/descriptor[se_e2_a]/rcutThe cut-off radius.
- rcut_smth:
- type:
float, optional, default:0.5argument path:model/descriptor[se_e2_a]/rcut_smthWhere to start smoothing. For example the 1/r term is smoothed from rcut to rcut_smth
- neuron:
- type:
list, optional, default:[10, 20, 40]argument path:model/descriptor[se_e2_a]/neuronNumber of neurons in each hidden layers of the embedding net. When two layers are of the same size or one layer is twice as large as the previous layer, a skip connection is built.
- axis_neuron:
- type:
int, optional, default:4, alias: n_axis_neuronargument path:model/descriptor[se_e2_a]/axis_neuronSize of the submatrix of G (embedding matrix).
- activation_function:
- type:
str, optional, default:tanhargument path:model/descriptor[se_e2_a]/activation_functionThe activation function in the embedding net. Supported activation functions are "relu", "relu6", "softplus", "sigmoid", "tanh", "gelu".
- resnet_dt:
- type:
bool, optional, default:Falseargument path:model/descriptor[se_e2_a]/resnet_dtWhether to use a "Timestep" in the skip connection
- type_one_side:
- type:
bool, optional, default:Falseargument path:model/descriptor[se_e2_a]/type_one_sideTry to build N_types embedding nets. Otherwise, building N_types^2 embedding nets
- precision:
- type:
str, optional, default:float64argument path:model/descriptor[se_e2_a]/precisionThe precision of the embedding net parameters, supported options are "default", "float16", "float32", "float64".
- trainable:
- type:
bool, optional, default:Trueargument path:model/descriptor[se_e2_a]/trainableIf the parameters in the embedding net is trainable
- seed:
- type:
int|NoneType, optionalargument path:model/descriptor[se_e2_a]/seedRandom seed for parameter initialization
- exclude_types:
- type:
list, optional, default:[]argument path:model/descriptor[se_e2_a]/exclude_typesThe excluded pairs of types which have no interaction with each other. For example, [[0, 1]] means no interaction between type 0 and type 1.
- set_davg_zero:
- type:
bool, optional, default:Falseargument path:model/descriptor[se_e2_a]/set_davg_zeroSet the normalization average to zero. This option should be set when atom_ener in the energy fitting is used
When type is set to
se_e2_r(or its aliasse_r):- sel:
- type:
list|str, optional, default:autoargument path:model/descriptor[se_e2_r]/selThis parameter set the number of selected neighbors for each type of atom. It can be:
- List[int]. The length of the list should be the same as the number of atom types in the system. sel[i] gives the selected number of type-i neighbors. sel[i] is recommended to be larger than the maximally possible number of type-i neighbors in the cut-off radius. It is noted that the total sel value must be less than 4096 in a GPU environment.
- str. Can be "auto:factor" or "auto". "factor" is a float number larger than 1. This option will automatically determine the sel. In detail it counts the maximal number of neighbors with in the cutoff radius for each type of neighbor, then multiply the maximum by the "factor". Finally the number is wraped up to 4 divisible. The option "auto" is equivalent to "auto:1.1".
- rcut:
- type:
float, optional, default:6.0argument path:model/descriptor[se_e2_r]/rcutThe cut-off radius.
- rcut_smth:
- type:
float, optional, default:0.5argument path:model/descriptor[se_e2_r]/rcut_smthWhere to start smoothing. For example the 1/r term is smoothed from rcut to rcut_smth
- neuron:
- type:
list, optional, default:[10, 20, 40]argument path:model/descriptor[se_e2_r]/neuronNumber of neurons in each hidden layers of the embedding net. When two layers are of the same size or one layer is twice as large as the previous layer, a skip connection is built.
- activation_function:
- type:
str, optional, default:tanhargument path:model/descriptor[se_e2_r]/activation_functionThe activation function in the embedding net. Supported activation functions are "relu", "relu6", "softplus", "sigmoid", "tanh", "gelu".
- resnet_dt:
- type:
bool, optional, default:Falseargument path:model/descriptor[se_e2_r]/resnet_dtWhether to use a "Timestep" in the skip connection
- type_one_side:
- type:
bool, optional, default:Falseargument path:model/descriptor[se_e2_r]/type_one_sideTry to build N_types embedding nets. Otherwise, building N_types^2 embedding nets
- precision:
- type:
str, optional, default:float64argument path:model/descriptor[se_e2_r]/precisionThe precision of the embedding net parameters, supported options are "default", "float16", "float32", "float64".
- trainable:
- type:
bool, optional, default:Trueargument path:model/descriptor[se_e2_r]/trainableIf the parameters in the embedding net are trainable
- seed:
- type:
int|NoneType, optionalargument path:model/descriptor[se_e2_r]/seedRandom seed for parameter initialization
- exclude_types:
- type:
list, optional, default:[]argument path:model/descriptor[se_e2_r]/exclude_typesThe excluded pairs of types which have no interaction with each other. For example, [[0, 1]] means no interaction between type 0 and type 1.
- set_davg_zero:
- type:
bool, optional, default:Falseargument path:model/descriptor[se_e2_r]/set_davg_zeroSet the normalization average to zero. This option should be set when atom_ener in the energy fitting is used
When type is set to
se_e3(or its aliasesse_at,se_a_3be,se_t):- sel:
- type:
list|str, optional, default:autoargument path:model/descriptor[se_e3]/selThis parameter set the number of selected neighbors for each type of atom. It can be:
- List[int]. The length of the list should be the same as the number of atom types in the system. sel[i] gives the selected number of type-i neighbors. sel[i] is recommended to be larger than the maximally possible number of type-i neighbors in the cut-off radius. It is noted that the total sel value must be less than 4096 in a GPU environment.
- str. Can be "auto:factor" or "auto". "factor" is a float number larger than 1. This option will automatically determine the sel. In detail it counts the maximal number of neighbors with in the cutoff radius for each type of neighbor, then multiply the maximum by the "factor". Finally the number is wraped up to 4 divisible. The option "auto" is equivalent to "auto:1.1".
- rcut:
- type:
float, optional, default:6.0argument path:model/descriptor[se_e3]/rcutThe cut-off radius.
- rcut_smth:
- type:
float, optional, default:0.5argument path:model/descriptor[se_e3]/rcut_smthWhere to start smoothing. For example the 1/r term is smoothed from rcut to rcut_smth
- neuron:
- type:
list, optional, default:[10, 20, 40]argument path:model/descriptor[se_e3]/neuronNumber of neurons in each hidden layers of the embedding net. When two layers are of the same size or one layer is twice as large as the previous layer, a skip connection is built.
- activation_function:
- type:
str, optional, default:tanhargument path:model/descriptor[se_e3]/activation_functionThe activation function in the embedding net. Supported activation functions are "relu", "relu6", "softplus", "sigmoid", "tanh", "gelu".
- resnet_dt:
- type:
bool, optional, default:Falseargument path:model/descriptor[se_e3]/resnet_dtWhether to use a "Timestep" in the skip connection
- precision:
- type:
str, optional, default:float64argument path:model/descriptor[se_e3]/precisionThe precision of the embedding net parameters, supported options are "default", "float16", "float32", "float64".
- trainable:
- type:
bool, optional, default:Trueargument path:model/descriptor[se_e3]/trainableIf the parameters in the embedding net are trainable
- seed:
- type:
int|NoneType, optionalargument path:model/descriptor[se_e3]/seedRandom seed for parameter initialization
- set_davg_zero:
- type:
bool, optional, default:Falseargument path:model/descriptor[se_e3]/set_davg_zeroSet the normalization average to zero. This option should be set when atom_ener in the energy fitting is used
When type is set to
se_a_tpe(or its aliasse_a_ebd):- sel:
- type:
list|str, optional, default:autoargument path:model/descriptor[se_a_tpe]/selThis parameter set the number of selected neighbors for each type of atom. It can be:
- List[int]. The length of the list should be the same as the number of atom types in the system. sel[i] gives the selected number of type-i neighbors. sel[i] is recommended to be larger than the maximally possible number of type-i neighbors in the cut-off radius. It is noted that the total sel value must be less than 4096 in a GPU environment.
- str. Can be "auto:factor" or "auto". "factor" is a float number larger than 1. This option will automatically determine the sel. In detail it counts the maximal number of neighbors with in the cutoff radius for each type of neighbor, then multiply the maximum by the "factor". Finally the number is wraped up to 4 divisible. The option "auto" is equivalent to "auto:1.1".
- rcut:
- type:
float, optional, default:6.0argument path:model/descriptor[se_a_tpe]/rcutThe cut-off radius.
- rcut_smth:
- type:
float, optional, default:0.5argument path:model/descriptor[se_a_tpe]/rcut_smthWhere to start smoothing. For example the 1/r term is smoothed from rcut to rcut_smth
- neuron:
- type:
list, optional, default:[10, 20, 40]argument path:model/descriptor[se_a_tpe]/neuronNumber of neurons in each hidden layers of the embedding net. When two layers are of the same size or one layer is twice as large as the previous layer, a skip connection is built.
- axis_neuron:
- type:
int, optional, default:4, alias: n_axis_neuronargument path:model/descriptor[se_a_tpe]/axis_neuronSize of the submatrix of G (embedding matrix).
- activation_function:
- type:
str, optional, default:tanhargument path:model/descriptor[se_a_tpe]/activation_functionThe activation function in the embedding net. Supported activation functions are "relu", "relu6", "softplus", "sigmoid", "tanh", "gelu".
- resnet_dt:
- type:
bool, optional, default:Falseargument path:model/descriptor[se_a_tpe]/resnet_dtWhether to use a "Timestep" in the skip connection
- type_one_side:
- type:
bool, optional, default:Falseargument path:model/descriptor[se_a_tpe]/type_one_sideTry to build N_types embedding nets. Otherwise, building N_types^2 embedding nets
- precision:
- type:
str, optional, default:float64argument path:model/descriptor[se_a_tpe]/precisionThe precision of the embedding net parameters, supported options are "default", "float16", "float32", "float64".
- trainable:
- type:
bool, optional, default:Trueargument path:model/descriptor[se_a_tpe]/trainableIf the parameters in the embedding net is trainable
- seed:
- type:
int|NoneType, optionalargument path:model/descriptor[se_a_tpe]/seedRandom seed for parameter initialization
- exclude_types:
- type:
list, optional, default:[]argument path:model/descriptor[se_a_tpe]/exclude_typesThe excluded pairs of types which have no interaction with each other. For example, [[0, 1]] means no interaction between type 0 and type 1.
- set_davg_zero:
- type:
bool, optional, default:Falseargument path:model/descriptor[se_a_tpe]/set_davg_zeroSet the normalization average to zero. This option should be set when atom_ener in the energy fitting is used
- type_nchanl:
- type:
int, optional, default:4argument path:model/descriptor[se_a_tpe]/type_nchanlnumber of channels for type embedding
- type_nlayer:
- type:
int, optional, default:2argument path:model/descriptor[se_a_tpe]/type_nlayernumber of hidden layers of type embedding net
- numb_aparam:
- type:
int, optional, default:0argument path:model/descriptor[se_a_tpe]/numb_aparamdimension of atomic parameter. if set to a value > 0, the atomic parameters are embedded.
When type is set to
hybrid:- list:
- type:
listargument path:model/descriptor[hybrid]/listA list of descriptor definitions
- fitting_net:
- type:
dictargument path:model/fitting_netThe fitting of physical properties.
Depending on the value of type, different sub args are accepted.
- type:
- type:
str(flag key), default:enerargument path:model/fitting_net/typeThe type of the fitting. See explanation below.
- ener: Fit an energy model (potential energy surface).
- dipole: Fit an atomic dipole model. Global dipole labels or atomic dipole labels for all the selected atoms (see sel_type) should be provided by dipole.npy in each data system. The file either has number of frames lines and 3 times of number of selected atoms columns, or has number of frames lines and 3 columns. See loss parameter.
- polar: Fit an atomic polarizability model. Global polarizazbility labels or atomic polarizability labels for all the selected atoms (see sel_type) should be provided by polarizability.npy in each data system. The file eith has number of frames lines and 9 times of number of selected atoms columns, or has number of frames lines and 9 columns. See loss parameter.
When type is set to
ener:- numb_fparam:
- type:
int, optional, default:0argument path:model/fitting_net[ener]/numb_fparamThe dimension of the frame parameter. If set to >0, file fparam.npy should be included to provided the input fparams.
- numb_aparam:
- type:
int, optional, default:0argument path:model/fitting_net[ener]/numb_aparamThe dimension of the atomic parameter. If set to >0, file aparam.npy should be included to provided the input aparams.
- neuron:
- type:
list, optional, default:[120, 120, 120], alias: n_neuronargument path:model/fitting_net[ener]/neuronThe number of neurons in each hidden layers of the fitting net. When two hidden layers are of the same size, a skip connection is built.
- activation_function:
- type:
str, optional, default:tanhargument path:model/fitting_net[ener]/activation_functionThe activation function in the fitting net. Supported activation functions are "relu", "relu6", "softplus", "sigmoid", "tanh", "gelu".
- precision:
- type:
str, optional, default:float64argument path:model/fitting_net[ener]/precisionThe precision of the fitting net parameters, supported options are "default", "float16", "float32", "float64".
- resnet_dt:
- type:
bool, optional, default:Trueargument path:model/fitting_net[ener]/resnet_dtWhether to use a "Timestep" in the skip connection
- trainable:
- type:
list|bool, optional, default:Trueargument path:model/fitting_net[ener]/trainableWhether the parameters in the fitting net are trainable. This option can be
- bool: True if all parameters of the fitting net are trainable, False otherwise.
- list of bool: Specifies if each layer is trainable. Since the fitting net is composed by hidden layers followed by a output layer, the length of tihs list should be equal to len(neuron)+1.
- rcond:
- type:
float, optional, default:0.001argument path:model/fitting_net[ener]/rcondThe condition number used to determine the inital energy shift for each type of atoms.
- seed:
- type:
int|NoneType, optionalargument path:model/fitting_net[ener]/seedRandom seed for parameter initialization of the fitting net
- atom_ener:
- type:
list, optional, default:[]argument path:model/fitting_net[ener]/atom_enerSpecify the atomic energy in vacuum for each type
When type is set to
dipole:- neuron:
- type:
list, optional, default:[120, 120, 120], alias: n_neuronargument path:model/fitting_net[dipole]/neuronThe number of neurons in each hidden layers of the fitting net. When two hidden layers are of the same size, a skip connection is built.
- activation_function:
- type:
str, optional, default:tanhargument path:model/fitting_net[dipole]/activation_functionThe activation function in the fitting net. Supported activation functions are "relu", "relu6", "softplus", "sigmoid", "tanh", "gelu".
- resnet_dt:
- type:
bool, optional, default:Trueargument path:model/fitting_net[dipole]/resnet_dtWhether to use a "Timestep" in the skip connection
- precision:
- type:
str, optional, default:float64argument path:model/fitting_net[dipole]/precisionThe precision of the fitting net parameters, supported options are "default", "float16", "float32", "float64".
- sel_type:
- type:
list|int|NoneType, optional, alias: dipole_typeargument path:model/fitting_net[dipole]/sel_typeThe atom types for which the atomic dipole will be provided. If not set, all types will be selected.
- seed:
- type:
int|NoneType, optionalargument path:model/fitting_net[dipole]/seedRandom seed for parameter initialization of the fitting net
When type is set to
polar:- neuron:
- type:
list, optional, default:[120, 120, 120], alias: n_neuronargument path:model/fitting_net[polar]/neuronThe number of neurons in each hidden layers of the fitting net. When two hidden layers are of the same size, a skip connection is built.
- activation_function:
- type:
str, optional, default:tanhargument path:model/fitting_net[polar]/activation_functionThe activation function in the fitting net. Supported activation functions are "relu", "relu6", "softplus", "sigmoid", "tanh", "gelu".
- resnet_dt:
- type:
bool, optional, default:Trueargument path:model/fitting_net[polar]/resnet_dtWhether to use a "Timestep" in the skip connection
- precision:
- type:
str, optional, default:float64argument path:model/fitting_net[polar]/precisionThe precision of the fitting net parameters, supported options are "default", "float16", "float32", "float64".
- fit_diag:
- type:
bool, optional, default:Trueargument path:model/fitting_net[polar]/fit_diagFit the diagonal part of the rotational invariant polarizability matrix, which will be converted to normal polarizability matrix by contracting with the rotation matrix.
- scale:
- type:
list|float, optional, default:1.0argument path:model/fitting_net[polar]/scaleThe output of the fitting net (polarizability matrix) will be scaled by
scale
- shift_diag:
- type:
bool, optional, default:Trueargument path:model/fitting_net[polar]/shift_diagWhether to shift the diagonal of polar, which is beneficial to training. Default is true.
- sel_type:
- type:
list|int|NoneType, optional, alias: pol_typeargument path:model/fitting_net[polar]/sel_typeThe atom types for which the atomic polarizability will be provided. If not set, all types will be selected.
- seed:
- type:
int|NoneType, optionalargument path:model/fitting_net[polar]/seedRandom seed for parameter initialization of the fitting net
- modifier:
- type:
dict, optionalargument path:model/modifierThe modifier of model output.
Depending on the value of type, different sub args are accepted.
- type:
-
The type of modifier. See explanation below.
-dipole_charge: Use WFCC to model the electronic structure of the system. Correct the long-range interaction
When type is set to
dipole_charge:- model_name:
- type:
strargument path:model/modifier[dipole_charge]/model_nameThe name of the frozen dipole model file.
- model_charge_map:
- type:
listargument path:model/modifier[dipole_charge]/model_charge_mapThe charge of the WFCC. The list length should be the same as the sel_type.
- sys_charge_map:
- type:
listargument path:model/modifier[dipole_charge]/sys_charge_mapThe charge of real atoms. The list length should be the same as the type_map
- ewald_beta:
- type:
float, optional, default:0.4argument path:model/modifier[dipole_charge]/ewald_betaThe splitting parameter of Ewald sum. Unit is A^-1
- ewald_h:
- type:
float, optional, default:1.0argument path:model/modifier[dipole_charge]/ewald_hThe grid spacing of the FFT grid. Unit is A
- compress:
- type:
dict, optionalargument path:model/compressModel compression configurations
Depending on the value of type, different sub args are accepted.
- type:
-
The type of model compression, which should be consistent with the descriptor type.
When type is set to
se_e2_a(or its aliasse_a):- compress:
- type:
boolargument path:model/compress[se_e2_a]/compressThe name of the frozen model file.
- model_file:
- type:
strargument path:model/compress[se_e2_a]/model_fileThe input model file, which will be compressed by the DeePMD-kit.
- table_config:
- type:
listargument path:model/compress[se_e2_a]/table_configThe arguments of model compression, including extrapolate(scale of model extrapolation), stride(uniform stride of tabulation's first and second table), and frequency(frequency of tabulation overflow check).
- min_nbor_dist:
- type:
floatargument path:model/compress[se_e2_a]/min_nbor_distThe nearest distance between neighbor atoms saved in the frozen model.
- loss:
- type:
dict, optionalargument path:lossThe definition of loss function. The loss type should be set to tensor, ener or left unset. .
Depending on the value of type, different sub args are accepted.
- type:
-
The type of the loss. When the fitting type is ener, the loss type should be set to ener or left unset. When the fitting type is dipole or polar, the loss type should be set to tensor. .
When type is set to
ener:- start_pref_e:
- type:
int|float, optional, default:0.02argument path:loss[ener]/start_pref_eThe prefactor of energy loss at the start of the training. Should be larger than or equal to 0. If set to none-zero value, the energy label should be provided by file energy.npy in each data system. If both start_pref_energy and limit_pref_energy are set to 0, then the energy will be ignored.
- limit_pref_e:
- type:
int|float, optional, default:1.0argument path:loss[ener]/limit_pref_eThe prefactor of energy loss at the limit of the training, Should be larger than or equal to 0. i.e. the training step goes to infinity.
- start_pref_f:
- type:
int|float, optional, default:1000argument path:loss[ener]/start_pref_fThe prefactor of force loss at the start of the training. Should be larger than or equal to 0. If set to none-zero value, the force label should be provided by file force.npy in each data system. If both start_pref_force and limit_pref_force are set to 0, then the force will be ignored.
- limit_pref_f:
- type:
int|float, optional, default:1.0argument path:loss[ener]/limit_pref_fThe prefactor of force loss at the limit of the training, Should be larger than or equal to 0. i.e. the training step goes to infinity.
- start_pref_v:
- type:
int|float, optional, default:0.0argument path:loss[ener]/start_pref_vThe prefactor of virial loss at the start of the training. Should be larger than or equal to 0. If set to none-zero value, the virial label should be provided by file virial.npy in each data system. If both start_pref_virial and limit_pref_virial are set to 0, then the virial will be ignored.
- limit_pref_v:
- type:
int|float, optional, default:0.0argument path:loss[ener]/limit_pref_vThe prefactor of virial loss at the limit of the training, Should be larger than or equal to 0. i.e. the training step goes to infinity.
- start_pref_ae:
- type:
int|float, optional, default:0.0argument path:loss[ener]/start_pref_aeThe prefactor of atom_ener loss at the start of the training. Should be larger than or equal to 0. If set to none-zero value, the atom_ener label should be provided by file atom_ener.npy in each data system. If both start_pref_atom_ener and limit_pref_atom_ener are set to 0, then the atom_ener will be ignored.
- limit_pref_ae:
- type:
int|float, optional, default:0.0argument path:loss[ener]/limit_pref_aeThe prefactor of atom_ener loss at the limit of the training, Should be larger than or equal to 0. i.e. the training step goes to infinity.
- relative_f:
- type:
NoneType|float, optionalargument path:loss[ener]/relative_fIf provided, relative force error will be used in the loss. The difference of force will be normalized by the magnitude of the force in the label with a shift given by relative_f, i.e. DF_i / ( || F || + relative_f ) with DF denoting the difference between prediction and label and || F || denoting the L2 norm of the label.
When type is set to
tensor:- pref:
- type:
int|floatargument path:loss[tensor]/prefThe prefactor of the weight of global loss. It should be larger than or equal to 0. If controls the weight of loss corresponding to global label, i.e. 'polarizability.npy` or dipole.npy, whose shape should be #frames x [9 or 3]. If it's larger than 0.0, this npy should be included.
- pref_atomic:
- type:
int|floatargument path:loss[tensor]/pref_atomicThe prefactor of the weight of atomic loss. It should be larger than or equal to 0. If controls the weight of loss corresponding to atomic label, i.e. atomic_polarizability.npy or atomic_dipole.npy, whose shape should be #frames x ([9 or 3] x #selected atoms). If it's larger than 0.0, this npy should be included. Both pref and pref_atomic should be provided, and either can be set to 0.0.
- learning_rate:
- type:
dictargument path:learning_rateThe definitio of learning rate
Depending on the value of type, different sub args are accepted.
- type:
-
The type of the learning rate.
When type is set to
exp:- start_lr:
- type:
float, optional, default:0.001argument path:learning_rate[exp]/start_lrThe learning rate the start of the training.
- stop_lr:
- type:
float, optional, default:1e-08argument path:learning_rate[exp]/stop_lrThe desired learning rate at the end of the training.
- decay_steps:
- type:
int, optional, default:5000argument path:learning_rate[exp]/decay_stepsThe learning rate is decaying every this number of training steps.
- training:
- type:
dictargument path:trainingThe training options.
- training_data:
- type:
dictargument path:training/training_dataConfigurations of training data.
- systems:
- type:
list|strargument path:training/training_data/systemsThe data systems for training. This key can be provided with a list that specifies the systems, or be provided with a string by which the prefix of all systems are given and the list of the systems is automatically generated.
- set_prefix:
- type:
str, optional, default:setargument path:training/training_data/set_prefixThe prefix of the sets in the systems.
- batch_size:
- type:
list|int|str, optional, default:autoargument path:training/training_data/batch_sizeThis key can be
- list: the length of which is the same as the systems. The batch size of each system is given by the elements of the list.
- int: all systems use the same batch size.
- string "auto": automatically determines the batch size so that the batch_size times the number of atoms in the system is no less than 32.
- string "auto:N": automatically determines the batch size so that the batch_size times the number of atoms in the system is no less than N.
- auto_prob:
- type:
str, optional, default:prob_sys_size, alias: auto_prob_styleargument path:training/training_data/auto_probDetermine the probability of systems automatically. The method is assigned by this key and can be
- "prob_uniform" : the probability all the systems are equal, namely 1.0/self.get_nsystems()
- "prob_sys_size" : the probability of a system is proportional to the number of batches in the system
- "prob_sys_size;stt_idx:end_idx:weight;stt_idx:end_idx:weight;..." : the list of systems is devided into blocks. A block is specified by stt_idx:end_idx:weight, where stt_idx is the starting index of the system, end_idx is then ending (not including) index of the system, the probabilities of the systems in this block sums up to weight, and the relatively probabilities within this block is proportional to the number of batches in the system.
- sys_probs:
- type:
list|NoneType, optional, default:None, alias: sys_weightsargument path:training/training_data/sys_probsA list of float if specified. Should be of the same length as systems, specifying the probability of each system.
- validation_data:
- type:
dict|NoneType, optional, default:Noneargument path:training/validation_dataConfigurations of validation data. Similar to that of training data, except that a numb_btch argument may be configured
- systems:
- type:
list|strargument path:training/validation_data/systemsThe data systems for validation. This key can be provided with a list that specifies the systems, or be provided with a string by which the prefix of all systems are given and the list of the systems is automatically generated.
- set_prefix:
- type:
str, optional, default:setargument path:training/validation_data/set_prefixThe prefix of the sets in the systems.
- batch_size:
- type:
list|int|str, optional, default:autoargument path:training/validation_data/batch_sizeThis key can be
- list: the length of which is the same as the systems. The batch size of each system is given by the elements of the list.
- int: all systems use the same batch size.
- string "auto": automatically determines the batch size so that the batch_size times the number of atoms in the system is no less than 32.
- string "auto:N": automatically determines the batch size so that the batch_size times the number of atoms in the system is no less than N.
- auto_prob:
- type:
str, optional, default:prob_sys_size, alias: auto_prob_styleargument path:training/validation_data/auto_probDetermine the probability of systems automatically. The method is assigned by this key and can be
- "prob_uniform" : the probability all the systems are equal, namely 1.0/self.get_nsystems()
- "prob_sys_size" : the probability of a system is proportional to the number of batches in the system
- "prob_sys_size;stt_idx:end_idx:weight;stt_idx:end_idx:weight;..." : the list of systems is devided into blocks. A block is specified by stt_idx:end_idx:weight, where stt_idx is the starting index of the system, end_idx is then ending (not including) index of the system, the probabilities of the systems in this block sums up to weight, and the relatively probabilities within this block is proportional to the number of batches in the system.
- sys_probs:
- type:
list|NoneType, optional, default:None, alias: sys_weightsargument path:training/validation_data/sys_probsA list of float if specified. Should be of the same length as systems, specifying the probability of each system.
- numb_btch:
- type:
int, optional, default:1, alias: numb_batchargument path:training/validation_data/numb_btchAn integer that specifies the number of systems to be sampled for each validation period.
- numb_steps:
- type:
int, alias: stop_batchargument path:training/numb_stepsNumber of training batch. Each training uses one batch of data.
- seed:
- type:
int|NoneType, optionalargument path:training/seedThe random seed for getting frames from the training data set.
- disp_file:
- type:
str, optional, default:lcueve.outargument path:training/disp_fileThe file for printing learning curve.
- disp_freq:
- type:
int, optional, default:1000argument path:training/disp_freqThe frequency of printing learning curve.
- numb_test:
- type:
list|int|str, optional, default:1argument path:training/numb_testNumber of frames used for the test during training.
- save_freq:
- type:
int, optional, default:1000argument path:training/save_freqThe frequency of saving check point.
- save_ckpt:
- type:
str, optional, default:model.ckptargument path:training/save_ckptThe file name of saving check point.
- disp_training:
- type:
bool, optional, default:Trueargument path:training/disp_trainingDisplaying verbose information during training.
- time_training:
- type:
bool, optional, default:Trueargument path:training/time_trainingTiming durining training.
- profiling:
- type:
bool, optional, default:Falseargument path:training/profilingProfiling during training.
- profiling_file:
- type:
str, optional, default:timeline.jsonargument path:training/profiling_fileOutput file for profiling.
- tensorboard:
- type:
bool, optional, default:Falseargument path:training/tensorboardEnable tensorboard
- tensorboard_log_dir:
- type:
str, optional, default:logargument path:training/tensorboard_log_dirThe log directory of tensorboard outputs
- tensorboard_freq:
- type:
int, optional, default:1argument path:training/tensorboard_freqThe frequency of writing tensorboard events.