Allegro#
The Allegro model as proposed in Learning Local Equivariant Representations for Large-Scale Atomistic Dynamics.
Supervised#
The base allegro_model
as proposed in the original paper. It has the ability to output graph scalars, node scalars,
and a node vector. The model has the following config
num_node_feats: int
The number of node features. Must be equal to the initial node feature dimension (sum of one-hot encoded features).
num_edge_feats: int
The number of edge features. Must be equal to the initial node feature dimension (sum of one-hot encoded features).
num_layers: int = 2
The number of Allegro layers.
max_ell: int = 2
The maximum SO(3) irreps dimension to use in the model (during interactions)
parity: bool = True
Whether to use parity odd features in the model
mlp_irreps: str = "16x0e"
The output MLP irreps.
mlp_latent_dimensions: List[int] = [128]
The MLP dimensions.
latent_mlp_latent_dimensions: List[int] = [1024, 1024, 1024]
The latent MLP dimensions.
env_embed_multiplicity: int = 32
The environment embedding multiplicity.
two_body_latent_mlp_latent_dimensions: List[int] = [128, 256, 512, 1024]
The two body interaction MLP dimensions.
num_bessel: int = 8
The highest order of bessel functions to use.
bessel_basis_trainable: bool = True
Whether the bessel basis has trainable weights
num_polynomial_cutoff: int = 6
The cut-off polynomial envelope power.
avg_num_neighbours: Optional[float] = None
The average number of neighbours in the dataset.
embed_initial_edge: bool = True
Whether to embed the initial edge features.
latent_resnet: bool = True
Whether to use a latent resnet.
scaling_mean: float = 0.0
The scaling mean of the model output. This is usually computed as the mean of
(molecule_energy - molecule_self_energy) / molecule_num_atoms
scaling_std: float = 1.0
The scaling std of the model output. This is usually computed as the std of
(molecule_energy - molecule_self_energy)
compute_forces: bool = False
Whether to compute forces as the gradient of the
y_graph_scalars
and use those as they_node_vector
output.y_node_scalars_loss_config: Optional[Dict] = None
The loss config for the
y_node_scalars
.y_node_vector_loss_config: Optional[Dict] = None
The loss config for the
y_node_vector
.y_graph_scalars_loss_config: Optional[Dict] = None
The loss config for the
y_graph_scalars
.
Supervised mean and variance#
The mean_var_allegro_model
which predicts a mean and variance for the y_graph_scalars
during training and inference.
It has the same comfig as the allegro_model
but without the ability to specify a y_graph_scalars_loss_config
which is
hardcoded to be the torch.nn.GaussianNLLLoss
. The model config is as follows
num_node_feats: int
The number of node features. Must be equal to the initial node feature dimension (sum of one-hot encoded features).
num_edge_feats: int
The number of edge features. Must be equal to the initial node feature dimension (sum of one-hot encoded features).
num_layers: int = 2
The number of Allegro layers.
max_ell: int = 2
The maximum SO(3) irreps dimension to use in the model (during interactions)
parity: bool = True
Whether to use parity odd features in the model
mlp_irreps: str = "16x0e"
The output MLP irreps.
mlp_latent_dimensions: List[int] = [128]
The MLP dimensions.
latent_mlp_latent_dimensions: List[int] = [1024, 1024, 1024]
The latent MLP dimensions.
env_embed_multiplicity: int = 32
The environment embedding multiplicity.
two_body_latent_mlp_latent_dimensions: List[int] = [128, 256, 512, 1024]
The two body interaction MLP dimensions.
num_bessel: int = 8
The highest order of bessel functions to use.
bessel_basis_trainable: bool = True
Whether the bessel basis has trainable weights
num_polynomial_cutoff: int = 6
The cut-off polynomial envelope power.
avg_num_neighbours: Optional[float] = None
The average number of neighbours in the dataset.
embed_initial_edge: bool = True
Whether to embed the initial edge features.
latent_resnet: bool = True
Whether to use a latent resnet.
scaling_mean: float = 0.0
The scaling mean of the model output. This is usually computed as the mean of
(molecule_energy - molecule_self_energy) / molecule_num_atoms
scaling_std: float = 1.0
The scaling std of the model output. This is usually computed as the std of
(molecule_energy - molecule_self_energy)
compute_forces: bool = False
Whether to compute forces as the gradient of the
y_graph_scalars
and use those as they_node_vector
output.y_node_scalars_loss_config: Optional[Dict] = None
The loss config for the
y_node_scalars
.y_node_vector_loss_config: Optional[Dict] = None
The loss config for the
y_node_vector
.