deepmd.pt.loss

Submodules

Classes

DenoiseLoss

Helper class that provides a standard way to create an ABC using

DOSLoss

Helper class that provides a standard way to create an ABC using

EnergyStdLoss

Helper class that provides a standard way to create an ABC using

EnergySpinLoss

Helper class that provides a standard way to create an ABC using

TaskLoss

Helper class that provides a standard way to create an ABC using

PropertyLoss

Helper class that provides a standard way to create an ABC using

TensorLoss

Helper class that provides a standard way to create an ABC using

Package Contents

class deepmd.pt.loss.DenoiseLoss(ntypes, masked_token_loss=1.0, masked_coord_loss=1.0, norm_loss=0.01, use_l1=True, beta=1.0, mask_loss_coord=True, mask_loss_token=True, **kwargs)[source]

Bases: deepmd.pt.loss.loss.TaskLoss

Helper class that provides a standard way to create an ABC using inheritance.

ntypes
masked_token_loss
masked_coord_loss
norm_loss
has_coord
has_token
has_norm
use_l1
beta
frac_beta
mask_loss_coord
mask_loss_token
forward(model_pred, label, natoms, learning_rate, mae=False)[source]

Return loss on coord and type denoise.

Returns:
  • loss: Loss to minimize.
class deepmd.pt.loss.DOSLoss(starter_learning_rate: float, numb_dos: int, start_pref_dos: float = 1.0, limit_pref_dos: float = 1.0, start_pref_cdf: float = 1000, limit_pref_cdf: float = 1.0, start_pref_ados: float = 0.0, limit_pref_ados: float = 0.0, start_pref_acdf: float = 0.0, limit_pref_acdf: float = 0.0, inference=False, **kwargs)[source]

Bases: deepmd.pt.loss.loss.TaskLoss

Helper class that provides a standard way to create an ABC using inheritance.

starter_learning_rate
numb_dos
inference
start_pref_dos
limit_pref_dos
start_pref_cdf
limit_pref_cdf
start_pref_ados
limit_pref_ados
start_pref_acdf
limit_pref_acdf
has_dos
has_cdf
has_ados
has_acdf
forward(input_dict, model, label, natoms, learning_rate=0.0, mae=False)[source]

Return loss on local and global tensors.

Parameters:
input_dictdict[str, torch.Tensor]

Model inputs.

modeltorch.nn.Module

Model to be used to output the predictions.

labeldict[str, torch.Tensor]

Labels.

natomsint

The local atom number.

Returns:
model_pred: dict[str, torch.Tensor]

Model predictions.

loss: torch.Tensor

Loss for model to minimize.

more_loss: dict[str, torch.Tensor]

Other losses for display.

property label_requirement: List[deepmd.utils.data.DataRequirementItem]

Return data label requirements needed for this loss calculation.

class deepmd.pt.loss.EnergyStdLoss(starter_learning_rate=1.0, start_pref_e=0.0, limit_pref_e=0.0, start_pref_f=0.0, limit_pref_f=0.0, start_pref_v=0.0, limit_pref_v=0.0, start_pref_ae: float = 0.0, limit_pref_ae: float = 0.0, start_pref_pf: float = 0.0, limit_pref_pf: float = 0.0, relative_f: float | None = None, enable_atom_ener_coeff: bool = False, start_pref_gf: float = 0.0, limit_pref_gf: float = 0.0, numb_generalized_coord: int = 0, use_l1_all: bool = False, inference=False, **kwargs)[source]

Bases: deepmd.pt.loss.loss.TaskLoss

Helper class that provides a standard way to create an ABC using inheritance.

starter_learning_rate
has_e
has_f
has_v
has_ae
has_pf
has_gf
start_pref_e
limit_pref_e
start_pref_f
limit_pref_f
start_pref_v
limit_pref_v
start_pref_ae
limit_pref_ae
start_pref_pf
limit_pref_pf
start_pref_gf
limit_pref_gf
relative_f
enable_atom_ener_coeff
numb_generalized_coord
use_l1_all
inference
forward(input_dict, model, label, natoms, learning_rate, mae=False)[source]

Return loss on energy and force.

Parameters:
input_dictdict[str, torch.Tensor]

Model inputs.

modeltorch.nn.Module

Model to be used to output the predictions.

labeldict[str, torch.Tensor]

Labels.

natomsint

The local atom number.

Returns:
model_pred: dict[str, torch.Tensor]

Model predictions.

loss: torch.Tensor

Loss for model to minimize.

more_loss: dict[str, torch.Tensor]

Other losses for display.

property label_requirement: List[deepmd.utils.data.DataRequirementItem]

Return data label requirements needed for this loss calculation.

class deepmd.pt.loss.EnergySpinLoss(starter_learning_rate=1.0, start_pref_e=0.0, limit_pref_e=0.0, start_pref_fr=0.0, limit_pref_fr=0.0, start_pref_fm=0.0, limit_pref_fm=0.0, start_pref_v=0.0, limit_pref_v=0.0, start_pref_ae: float = 0.0, limit_pref_ae: float = 0.0, enable_atom_ener_coeff: bool = False, use_l1_all: bool = False, inference=False, **kwargs)[source]

Bases: deepmd.pt.loss.loss.TaskLoss

Helper class that provides a standard way to create an ABC using inheritance.

starter_learning_rate
has_e
has_fr
has_fm
has_v
has_ae
start_pref_e
limit_pref_e
start_pref_fr
limit_pref_fr
start_pref_fm
limit_pref_fm
start_pref_v
limit_pref_v
start_pref_ae
limit_pref_ae
enable_atom_ener_coeff
use_l1_all
inference
forward(input_dict, model, label, natoms, learning_rate, mae=False)[source]

Return energy loss with magnetic labels.

Parameters:
input_dictdict[str, torch.Tensor]

Model inputs.

modeltorch.nn.Module

Model to be used to output the predictions.

labeldict[str, torch.Tensor]

Labels.

natomsint

The local atom number.

Returns:
model_pred: dict[str, torch.Tensor]

Model predictions.

loss: torch.Tensor

Loss for model to minimize.

more_loss: dict[str, torch.Tensor]

Other losses for display.

property label_requirement: List[deepmd.utils.data.DataRequirementItem]

Return data label requirements needed for this loss calculation.

class deepmd.pt.loss.TaskLoss(**kwargs)[source]

Bases: torch.nn.Module, abc.ABC

Helper class that provides a standard way to create an ABC using inheritance.

abstract forward(input_dict, model, label, natoms, learning_rate)[source]

Return loss .

property label_requirement: List[deepmd.utils.data.DataRequirementItem]
Abstractmethod:

Return data label requirements needed for this loss calculation.

static display_if_exist(loss: torch.Tensor, find_property: float) torch.Tensor[source]

Display NaN if labeled property is not found.

Parameters:
losstorch.Tensor

the loss tensor

find_propertyfloat

whether the property is found

class deepmd.pt.loss.PropertyLoss(task_dim, loss_func: str = 'smooth_mae', metric: list = ['mae'], beta: float = 1.0, **kwargs)[source]

Bases: deepmd.pt.loss.loss.TaskLoss

Helper class that provides a standard way to create an ABC using inheritance.

task_dim
loss_func
metric
beta
forward(input_dict, model, label, natoms, learning_rate=0.0, mae=False)[source]

Return loss on properties .

Parameters:
input_dictdict[str, torch.Tensor]

Model inputs.

modeltorch.nn.Module

Model to be used to output the predictions.

labeldict[str, torch.Tensor]

Labels.

natomsint

The local atom number.

Returns:
model_pred: dict[str, torch.Tensor]

Model predictions.

loss: torch.Tensor

Loss for model to minimize.

more_loss: dict[str, torch.Tensor]

Other losses for display.

property label_requirement: List[deepmd.utils.data.DataRequirementItem]

Return data label requirements needed for this loss calculation.

class deepmd.pt.loss.TensorLoss(tensor_name: str, tensor_size: int, label_name: str, pref_atomic: float = 0.0, pref: float = 0.0, inference=False, **kwargs)[source]

Bases: deepmd.pt.loss.loss.TaskLoss

Helper class that provides a standard way to create an ABC using inheritance.

tensor_name
tensor_size
label_name
local_weight
global_weight
inference
has_local_weight
has_global_weight
forward(input_dict, model, label, natoms, learning_rate=0.0, mae=False)[source]

Return loss on local and global tensors.

Parameters:
input_dictdict[str, torch.Tensor]

Model inputs.

modeltorch.nn.Module

Model to be used to output the predictions.

labeldict[str, torch.Tensor]

Labels.

natomsint

The local atom number.

Returns:
model_pred: dict[str, torch.Tensor]

Model predictions.

loss: torch.Tensor

Loss for model to minimize.

more_loss: dict[str, torch.Tensor]

Other losses for display.

property label_requirement: List[deepmd.utils.data.DataRequirementItem]

Return data label requirements needed for this loss calculation.