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