deepmd.pt_expt.infer.deep_eval#
Classes#
PyTorch Exportable backend implementation of DeepEval. |
Functions#
Reconstruct ModelOutputDef from stored fitting_output_defs metadata. |
Module Contents#
- deepmd.pt_expt.infer.deep_eval._reconstruct_model_output_def(metadata: dict) deepmd.dpmodel.output_def.ModelOutputDef[source]#
Reconstruct ModelOutputDef from stored fitting_output_defs metadata.
- class deepmd.pt_expt.infer.deep_eval.DeepEval(model_file: str, output_def: deepmd.dpmodel.output_def.ModelOutputDef, *args: Any, auto_batch_size: bool | int | deepmd.pt.utils.auto_batch_size.AutoBatchSize = True, neighbor_list: ase.neighborlist.NewPrimitiveNeighborList | None = None, **kwargs: Any)[source]#
Bases:
deepmd.infer.deep_eval.DeepEvalBackendPyTorch Exportable backend implementation of DeepEval.
Loads a .pte file containing a torch.export-ed model and evaluates it using pre-built neighbor lists.
- Parameters:
- model_file
Path The name of the .pte model file.
- output_def
ModelOutputDef The output definition of the model.
- *args
list Positional arguments.
- auto_batch_sizebool or
intorAutoBatchSize, default:True If True, automatic batch size will be used. If int, it will be used as the initial batch size.
- neighbor_list
ase.neighborlist.NewPrimitiveNeighborList,optional The ASE neighbor list class to produce the neighbor list. If None, the neighbor list will be built natively in the model.
- **kwargs
dict Keyword arguments.
- model_file
- property model_type: type[deepmd.infer.deep_eval.DeepEval][source]#
The the evaluator of the model type.
- get_sel_type() list[int][source]#
Get the selected atom types of this model.
Only atoms with selected atom types have atomic contribution to the result of the model. If returning an empty list, all atom types are selected.
- eval(coords: numpy.ndarray, cells: numpy.ndarray | None, atom_types: numpy.ndarray, atomic: bool = False, fparam: numpy.ndarray | None = None, aparam: numpy.ndarray | None = None, **kwargs: Any) dict[str, numpy.ndarray][source]#
Evaluate the energy, force and virial by using this DP.
- Parameters:
- coords
The coordinates of atoms. The array should be of size nframes x natoms x 3
- cells
The cell of the region. If None then non-PBC is assumed, otherwise using PBC. The array should be of size nframes x 9
- atom_types
The atom types The list should contain natoms ints
- atomic
Calculate the atomic energy and virial
- fparam
The frame parameter. The array should be of size nframes x dim_fparam.
- aparam
The atomic parameter. The array should be of size nframes x natoms x dim_aparam.
- **kwargs
Other parameters
- Returns:
- output_dict
dict The output of the evaluation. The keys are the names of the output variables, and the values are the corresponding output arrays.
- output_dict
- _get_request_defs(atomic: bool) list[deepmd.dpmodel.output_def.OutputVariableDef][source]#
Get the requested output definitions.
- _eval_func(inner_func: collections.abc.Callable, numb_test: int, natoms: int) collections.abc.Callable[source]#
Wrapper method with auto batch size.
- _get_natoms_and_nframes(coords: numpy.ndarray, atom_types: numpy.ndarray, mixed_type: bool = False) tuple[int, int][source]#
- _build_nlist_native(coords: torch.Tensor, cells: torch.Tensor | None, atom_types: torch.Tensor) tuple[torch.Tensor, torch.Tensor, torch.Tensor, torch.Tensor][source]#
Build extended coords, atype, nlist, mapping using native nlist.
- Parameters:
- coords
torch.Tensor Coordinates, shape (nframes, natoms, 3).
- cells
torch.TensororNone Cell vectors, shape (nframes, 9). None for non-PBC.
- atom_types
torch.Tensor Atom types, shape (nframes, natoms).
- coords
- Returns:
extended_coord,extended_atype,nlist,mappingAll as torch.Tensor on the same device as inputs.
- _build_nlist_ase(coords: numpy.ndarray, cells: numpy.ndarray | None, atom_types: numpy.ndarray) tuple[numpy.ndarray, numpy.ndarray, numpy.ndarray, numpy.ndarray][source]#
Build extended coords, atype, nlist, mapping using ASE neighbor list.
Handles multiple frames by building per frame and padding to a common nall.
- Parameters:
- coords
np.ndarray Coordinates, shape (nframes, natoms, 3).
- cells
np.ndarrayorNone Cell vectors, shape (nframes, 9). None for non-PBC.
- atom_types
np.ndarray Atom types, shape (nframes, natoms).
- coords
- Returns:
extended_coord,extended_atype,nlist,mapping
- _build_nlist_ase_single(positions: numpy.ndarray, cell: numpy.ndarray | None, atype: numpy.ndarray) tuple[numpy.ndarray, numpy.ndarray, numpy.ndarray, numpy.ndarray][source]#
Build extended coords, atype, nlist, mapping for a single frame.
- Parameters:
- positions
np.ndarray Atom positions, shape (natoms, 3).
- cell
np.ndarrayorNone Cell vector, shape (9,). None for non-PBC.
- atype
np.ndarray Atom types, shape (natoms,).
- positions
- Returns:
- extended_coord
np.ndarray,shape(nall, 3) - extended_atype
np.ndarray,shape(nall,) - nlist
np.ndarray,shape(nloc,nsel) - mapping
np.ndarray,shape(nall,)
- extended_coord
- _eval_model(coords: numpy.ndarray, cells: numpy.ndarray | None, atom_types: numpy.ndarray, fparam: numpy.ndarray | None, aparam: numpy.ndarray | None, request_defs: list[deepmd.dpmodel.output_def.OutputVariableDef]) tuple[numpy.ndarray, Ellipsis][source]#