noether.core.schemas.modules.encoders

Classes

Module Contents

class noether.core.schemas.modules.encoders.SupernodePoolingConfig(/, **data)

Bases: pydantic.BaseModel

Parameters:

data (Any)

hidden_dim: int = None

Hidden dimension for positional embeddings, messages and the resulting output vector.

input_dim: int = None

Number of positional dimension (e.g., input_dim=2 for a 2D position, input_dim=3 for a 3D position)

radius: float | None = None

Radius around each supernode. From points within this radius, messages are passed to the supernode.

k: int | None = None

Number of neighbors for each supernode. From the k-NN points, messages are passed to the supernode.

max_degree: int = None

Maximum degree of the radius graph. Defaults to 32.

spool_pos_mode: Literal['abspos', 'relpos', 'absrelpos'] = None

absolute space (“abspos”), relative space (“relpos”) or both (“absrelpos”).

Type:

Type of position embedding

init_weights: noether.core.types.InitWeightsMode = None

Weight initialization of linear layers. Defaults to “truncnormal002”.

readd_supernode_pos: bool = None

If true, the absolute positional encoding of the supernode is concatenated to the supernode vector after message passing and linearly projected back to hidden_dim. Defaults to True.

aggregation: Literal['mean', 'sum'] = None

Aggregation for message passing (“mean” or “sum”).

message_mode: Literal['mlp', 'linear', 'identity'] = None

How messages are created. “mlp” (2 layer MLP), “linear” (nn.Linear), “identity” (nn.Identity). Defaults to “mlp”.

input_features_dim: int | None = None

Number of input features per point. None will fall back to a version without features. Defaults to None, which means no input features.

validate_radius_and_k()