deepmd.dpmodel.output_def#
Classes#
Defines the operation of the output variable. | |
Defines the category of the output variable. | |
Defines the shape and other properties of the one output variable. | |
Defines the shapes and other properties of the fitting network outputs. | |
Defines the shapes and other properties of the model outputs. |
Functions#
| Check if the shape satisfies the defined shape. |
| |
| Check if the output of the Model is consistent with the definition. |
| Check if the output of the Fitting is consistent with the definition. |
| |
| |
| |
| |
| Apply an operation to the category of a variable definition. |
| Check if a operation has been applied to a variable definition. |
| Check if a variable is obtained by derivative. |
| |
| |
|
Module Contents#
- deepmd.dpmodel.output_def.check_shape(shape: list[int], def_shape: list[int]) None [source]#
Check if the shape satisfies the defined shape.
- deepmd.dpmodel.output_def.model_check_output(cls)[source]#
Check if the output of the Model is consistent with the definition.
Two methods are assumed to be provided by the Model: 1. Model.output_def that gives the output definition. 2. Model.__call__ that defines the forward path of the model.
- deepmd.dpmodel.output_def.fitting_check_output(cls)[source]#
Check if the output of the Fitting is consistent with the definition.
Two methods are assumed to be provided by the Fitting: 1. Fitting.output_def that gives the output definition. 2. Fitting.__call__ defines the forward path of the fitting.
- class deepmd.dpmodel.output_def.OutputVariableOperation[source]#
Bases:
enum.IntEnum
Defines the operation of the output variable.
- class deepmd.dpmodel.output_def.OutputVariableCategory[source]#
Bases:
enum.IntEnum
Defines the category of the output variable.
- class deepmd.dpmodel.output_def.OutputVariableDef(name: str, shape: list[int], reducible: bool = False, r_differentiable: bool = False, c_differentiable: bool = False, atomic: bool = True, category: int = OutputVariableCategory.OUT.value, r_hessian: bool = False, magnetic: bool = False, intensive: bool = False)[source]#
Defines the shape and other properties of the one output variable.
It is assume that the fitting network output variables for each local atom. This class defines one output variable, including its name, shape, reducibility and differentiability.
- Parameters:
- name
Name of the output variable. Notice that the xxxx_redu, xxxx_derv_c, xxxx_derv_r are reserved names that should not be used to define variables.
- shape
The shape of the variable. e.g. energy should be [1], dipole should be [3], polarizabilty should be [3,3].
- reducible
If the variable is reduced.
- r_differentiable
If the variable is differentiated with respect to coordinates of atoms. Only reducible variable are differentiable. Negative derivative w.r.t. coordinates will be calculated. (e.g. force)
- c_differentiable
If the variable is differentiated with respect to the cell tensor (pbc case). Only reducible variable are differentiable. Virial, the transposed negative gradient with cell tensor times cell tensor, will be calculated, see eq 40 JCP 159, 054801 (2023).
- atomicbool
If the variable is defined for each atom.
- category
int
The category of the output variable.
- r_hessianbool
If hessian is required
- magneticbool
If the derivatives of variable have magnetic parts.
- intensivebool
It indicates whether the fitting property is intensive or extensive.
- class deepmd.dpmodel.output_def.FittingOutputDef(var_defs: list[OutputVariableDef])[source]#
Defines the shapes and other properties of the fitting network outputs.
It is assume that the fitting network output variables for each local atom. This class defines all the outputs.
- Parameters:
- var_defs
List of output variable definitions.
- __getitem__(key: str) OutputVariableDef [source]#
- get_data() dict[str, OutputVariableDef] [source]#
- class deepmd.dpmodel.output_def.ModelOutputDef(fit_defs: FittingOutputDef)[source]#
Defines the shapes and other properties of the model outputs.
The model reduce and differentiate fitting outputs if applicable. If a variable is named by foo, then the reduced variable is called foo_redu, the derivative w.r.t. coordinates is called foo_derv_r and the derivative w.r.t. cell is called foo_derv_c.
- Parameters:
- fit_defs
Definition for the fitting net output
- var_defs: dict[str, OutputVariableDef][source]#
- __getitem__(key: str) OutputVariableDef [source]#
- get_data() dict[str, OutputVariableDef] [source]#
- deepmd.dpmodel.output_def.apply_operation(var_def: OutputVariableDef, op: OutputVariableOperation) int [source]#
Apply an operation to the category of a variable definition.
- Parameters:
- var_def
OutputVariableDef
The variable definition.
- op
OutputVariableOperation
The operation to be applied.
- var_def
- Returns:
int
The new category of the variable definition.
- Raises:
ValueError
If the operation has been applied to the variable definition, and exceed the maximum limitation.
- deepmd.dpmodel.output_def.check_operation_applied(var_def: OutputVariableDef, op: OutputVariableOperation) bool [source]#
Check if a operation has been applied to a variable definition.
- Parameters:
- var_def
OutputVariableDef
The variable definition.
- op
OutputVariableOperation
The operation to be checked.
- var_def
- Returns:
- bool
True if the operation has been applied, False otherwise.
- deepmd.dpmodel.output_def.check_deriv(var_def: OutputVariableDef) bool [source]#
Check if a variable is obtained by derivative.
- deepmd.dpmodel.output_def.do_reduce(def_outp_data: dict[str, OutputVariableDef]) dict[str, OutputVariableDef] [source]#
- deepmd.dpmodel.output_def.do_mask(def_outp_data: dict[str, OutputVariableDef]) dict[str, OutputVariableDef] [source]#
- deepmd.dpmodel.output_def.do_derivative(def_outp_data: dict[str, OutputVariableDef]) tuple[dict[str, OutputVariableDef], dict[str, OutputVariableDef]] [source]#