Skip to content

Understanding property_embeddings vs property_embeddings_adapt #133

@luisbro

Description

@luisbro

Hello, I would like to ask about the difference of the variables property_embeddings and property_embeddings_adapt as found in the code and the yaml config files. I could not really find what property_embeddings is used for, but from issues #58, #128 I would assume the following:

  • property_embeddings: Training a model from scratch, conditioned on the specified properties
  • property_embeddings_adapt: Fine-tuning a model to condition it on the specified properties

Is this accurate? If so, it seems to me like all models provided here use the fine tuning via property_embeddings_adapt, so what made you decide to keep the option of training from scratch via property_embeddings?

Thanks (:


As a side note, the docstring on the GemNetTDenoiser init seems a bit outdated, quoting an incorrect default for hidden dims and not matching all of the current variables, like property_embeddings and property_embeddings_adapt (property_embeddings_adapt is unused here). I could try to update it, if you won't find the time and would like me to.

def __init__(
self,
gemnet: nn.Module,
hidden_dim: int = 512,
denoise_atom_types: bool = True,
atom_type_diffusion: str = [
"mask",
"uniform",
][0],
property_embeddings: torch.nn.ModuleDict | None = None,
property_embeddings_adapt: torch.nn.ModuleDict | None = None,
element_mask_func: Callable | None = None,
**kwargs,
):
"""Construct a GemNetTDenoiser object.
Args:
gemnet: a GNN module
hidden_dim (int, optional): Number of hidden dimensions in the GemNet. Defaults to 128.
denoise_atom_types (bool, optional): Whether to denoise the atom types. Defaults to False.
atom_type_diffusion (str, optional): Which type of atom type diffusion to use. Defaults to "mask".
condition_on (Optional[List[str]], optional): Which aspects of the data to condition on. Strings must be in ["property", "chemical_system"]. If None (default), condition on ["chemical_system"].
"""

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions