deepmd/hdf5 format#
Aliases#
deepmd/hdf5
Implementation: DeePMDHDF5Format
Overview#
HDF5 format for DeePMD-kit.
DeePMD-kit is a deep learning package for training interatomic potentials. The layout stores the same type metadata and frame arrays as deepmd/npy inside one HDF5 file. It supports unlabeled and labeled systems, and top-level groups can hold multiple formulas for dpdata.MultiSystems. Inputs may be file paths, open HDF5 objects, or strings such as "data.hdf5#group/path" that select a nested group.
Examples
Dump a MultiSystems to a HDF5 file:
>>> import dpdata
>>> dpdata.MultiSystems().from_deepmd_npy("data").to_deepmd_hdf5("data.hdf5")
Quick examples#
The examples use the preferred alias deepmd/hdf5; any alias listed above is equivalent.
import dpdata
# Geometry-only data
system = dpdata.System("input_file", fmt="deepmd/hdf5")
# Data with energies and forces
labeled_system = dpdata.LabeledSystem("input_file", fmt="deepmd/hdf5")
# Multiple compositions or calculation directories
systems = dpdata.MultiSystems.from_file("input_directory", fmt="deepmd/hdf5")
# Write geometry-only data
system.to("deepmd/hdf5", "output_path")
# Write multiple systems
systems.to("deepmd/hdf5", "output_path")
Conversions#
Convert from this format to System#
- dpdata.System(file_name: 'str | (h5py.Group | h5py.File)', type_map: 'list[str] | None' = None, fmt: Literal['deepmd/hdf5'] = None, **kwargs) dpdata.system.System
- dpdata.System.from_deepmd_hdf5(file_name: 'str | (h5py.Group | h5py.File)', type_map: 'list[str] | None' = None, **kwargs) dpdata.system.System
Convert HDF5 file to System data.
- Parameters:
- file_namestr or h5py.Group or h5py.File
file name of the HDF5 file or HDF5 object. If it is a string, hashtag is used to split path to the HDF5 file and the HDF5 group
- type_maplist[str], optional
Element names used to map stored atom-type indices.
- **kwargsdict
other parameters
- Returns:
- System
converted system
- Raises:
- TypeError
file_name is not str or h5py.Group or h5py.File
Convert from System to this format#
- dpdata.System.to(fmt: Literal['deepmd/hdf5'], file_name: 'str | (h5py.Group | h5py.File)', set_size: 'int' = 5000, comp_prec: 'np.dtype' = <class 'numpy.float64'>, **kwargs)
- dpdata.System.to_deepmd_hdf5(file_name: 'str | (h5py.Group | h5py.File)', set_size: 'int' = 5000, comp_prec: 'np.dtype' = <class 'numpy.float64'>, **kwargs)
Convert System data to HDF5 file.
- Parameters:
- file_namestr or h5py.Group or h5py.File
file name of the HDF5 file or HDF5 object. If it is a string, hashtag is used to split path to the HDF5 file and the HDF5 group
- set_sizeint, default=5000
set size
- comp_precnp.dtype
data precision
- **kwargsdict
other parameters
Convert from LabeledSystem to this format#
- dpdata.LabeledSystem.to(fmt: Literal['deepmd/hdf5'], file_name: 'str | (h5py.Group | h5py.File)', set_size: 'int' = 5000, comp_prec: 'np.dtype' = <class 'numpy.float64'>, **kwargs)
- dpdata.LabeledSystem.to_deepmd_hdf5(file_name: 'str | (h5py.Group | h5py.File)', set_size: 'int' = 5000, comp_prec: 'np.dtype' = <class 'numpy.float64'>, **kwargs)
Convert System data to HDF5 file.
- Parameters:
- file_namestr or h5py.Group or h5py.File
file name of the HDF5 file or HDF5 object. If it is a string, hashtag is used to split path to the HDF5 file and the HDF5 group
- set_sizeint, default=5000
set size
- comp_precnp.dtype
data precision
- **kwargsdict
other parameters
Convert from this format to LabeledSystem#
- dpdata.LabeledSystem(file_name: 'str | (h5py.Group | h5py.File)', type_map: 'list[str] | None' = None, fmt: Literal['deepmd/hdf5'] = None, **kwargs) dpdata.system.LabeledSystem
- dpdata.LabeledSystem.from_deepmd_hdf5(file_name: 'str | (h5py.Group | h5py.File)', type_map: 'list[str] | None' = None, **kwargs) dpdata.system.LabeledSystem
Convert HDF5 file to LabeledSystem data.
- Parameters:
- file_namestr or h5py.Group or h5py.File
file name of the HDF5 file or HDF5 object. If it is a string, hashtag is used to split path to the HDF5 file and the HDF5 group
- type_maplist[str], optional
Element names used to map stored atom-type indices.
- **kwargsdict
other parameters
- Returns:
- LabeledSystem
converted system
- Raises:
- TypeError
file_name is not str or h5py.Group or h5py.File
Convert from this format to MultiSystems#
- dpdata.MultiSystems.from_deepmd_hdf5(directory: 'str', **kwargs) dpdata.system.MultiSystems
Generate HDF5 groups from a HDF5 file.
Each group is passed to from_labeled_system(), or to from_system() when the caller loads with labeled=False.
- Parameters:
- directorystr
HDF5 file name
- **kwargsdict
other parameters
- Returns:
- MultiSystems
converted system
Convert from MultiSystems to this format#
- dpdata.MultiSystems.to(fmt: Literal['deepmd/hdf5'], directory: 'str', **kwargs) dpdata.system.MultiSystems
- dpdata.MultiSystems.to_deepmd_hdf5(directory: 'str', **kwargs) dpdata.system.MultiSystems
Generate HDF5 groups, which will be passed to to_system.
- Parameters:
- directorystr
HDF5 file name
- **kwargsdict
other parameters
- Returns:
- MultiSystems
this system