M3GNETSettings#

pydantic model autoplex.settings.M3GNETSettings[source]#

Model describing the hyperparameters for the M3GNET fits.

field exp_name: str = 'training'#

Name of the experiment

field results_dir: str = 'm3gnet_results'#

Directory to save the results

field foundation_model: str | None = None#

Pretrained model. Can be a Path to locally stored model or name of pretrained PES model available in the matgl (M3GNet-MP-2021.2.8-PES or M3GNet-MP-2021.2.8-DIRECT-PES). When name of model is provided, ensure system has internet access to be able to download the model.If None, the model will be trained from scratch.

field use_foundation_model_element_refs: bool = False#

Use element refs from the foundation model

field allow_missing_labels: bool = False#

Allow missing labels

field cutoff: float = 5.0#

Cutoff radius of the graph

field threebody_cutoff: float = 4.0#

Cutoff radius for 3 body interactions

field batch_size: int = 10#

Batch size

field max_epochs: int = 1000#

Maximum number of epochs

field include_stresses: bool = True#

Whether to include stresses

field data_mean: float = 0.0#

Mean of the training data

field data_std: float = 1.0#

Standard deviation of the training data

field decay_steps: int = 1000#

Number of steps for decaying learning rate

field decay_alpha: float = 0.96#

Parameter determines the minimum learning rate

field dim_node_embedding: int = 128#

Dimension of node embedding

field dim_edge_embedding: int = 128#

Dimension of edge embedding

field dim_state_embedding: int = 0#

Dimension of state embedding

field energy_weight: float = 1.0#

Weight for energy loss

field element_refs: np.ndarray | None = None#

Element offset for PES

field force_weight: float = 1.0#

Weight for forces loss

field include_line_graph: bool = True#

Whether to include line graph

field loss: Literal['mse_loss', 'huber_loss', 'smooth_l1_loss', 'l1_loss'] = 'mse_loss'#

Loss function used for training

field loss_params: dict | None = None#

Loss function parameters

field lr: float = 0.001#

Learning rate for training

field magmom_target: Literal['absolute', 'symbreak'] | None = 'absolute'#

Whether to predict the absolute site-wise value of magmoms or adapt the loss function to predict the signed value breaking symmetry. If None given the loss function will be adapted.

field magmom_weight: float = 0.0#

Weight for magnetic moments

field max_l: int = 4#

Maximum degree of spherical harmonics

field max_n: int = 4#

Maximum number of radial basis functions

field nblocks: int = 3#

Number of blocks

field optimizer: Optimizer | None = None#

Optimizer

field rbf_type: Literal['Gaussian', 'SphericalBessel'] = 'Gaussian'#

Type of radial basis function

field scheduler: LRScheduler | None = None#

Learning rate scheduler

field stress_weight: float = 0.0#

Weight for stress loss

field sync_dist: bool = False#

Sync logging across all GPU workers

field is_intensive: bool = False#

Whether the prediction is intensive

field units: int = 128#

Number of neurons in each MLP layer