maml.models package

MAML models.

class maml.models.AtomSets(describer: BaseDescriber | None = None, input_dim: int | None = None, is_embedding: bool = True, n_neurons: Sequence[int] = (64, 64), n_neurons_final: Sequence[int] = (64, 64), n_targets: int = 1, activation: str = ‘relu’, embedding_vcal: int = 95, embedding_dim: int = 32, symmetry_func: list[str] | str = ‘mean’, optimizer: str = ‘adam’, loss: str = ‘mse’, compile_metrics: tuple = (), is_classification: bool = False, **symmetry_func_kwargs)

Bases: KerasModel

This class implements the DeepSets models.

_get_data_generator(features, targets, batch_size=128, is_shuffle=True)

_predict(features: ndarray, **kwargs)

Predict the values given a set of inputs based on fitted models.

  • Parameters features (np.ndarray) – array-like input features.

  • Returns List of output objects.

evaluate(eval_objs, eval_targets, is_feature: bool = False, batch_size: int = 16)

Evaluate objs, targets.

  • Parameters

    • eval_objs (list) – objs for evaluation

    • eval_targets (list) – target list for the corresponding objects

    • is_feature (bool) – whether x is feature matrix

    • batch_size (int) – evaluation batch size

fit(features: list | np.ndarray, targets: list | np.ndarray | None = None, val_features: list | np.ndarray | None = None, val_targets: list | np.ndarray | None = None, **kwargs)

  • Parameters

    • features (list* or *np.ndarray) – Numerical input feature list or numpy array with dim (m, n) where m is the number of data and n is the feature dimension.

    • targets (list* or *np.ndarray) – Numerical output target list, or numpy array with dim (m, ).

    • val_features (list* or *np.ndarray) – validation features

    • val_targets (list* or *np.ndarray) – validation targets.

classmethod from_dir(dirname: str)

Load the models from file :param dirname: directory name :type dirname: str

Returns: object instance.

save(dirname: str)

Save the models and describers.

  • Parameters dirname (str) – dirname for save

class maml.models.KerasModel(model, describer: BaseDescriber | None = None, **kwargs)

Bases: BaseModel, KerasMixin

MAML models with keras models as estimators.

static _get_validation_data(val_features, val_targets, **val_kwargs)

construct validation data, the default is just returning a list of val_features and val_targets.

fit(features: list | np.ndarray, targets: list | np.ndarray | None = None, val_features: list | np.ndarray | None = None, val_targets: list | np.ndarray | None = None, **kwargs)

  • Parameters

    • features (list* or *np.ndarray) – Numerical input feature list or numpy array with dim (m, n) where m is the number of data and n is the feature dimension.

    • targets (list* or *np.ndarray) – Numerical output target list, or numpy array with dim (m, ).

    • val_features (list* or *np.ndarray) – validation features

    • val_targets (list* or *np.ndarray) – validation targets.

  • Returns self

class maml.models.MLP(input_dim: int | None = None, describer: BaseDescriber | None = None, n_neurons: tuple = (64, 64), activation: str = ‘relu’, n_targets: int = 1, is_classification: bool = False, optimizer: str = ‘adam’, loss: str = ‘mse’, compile_metrics: tuple = (), **kwargs)

Bases: KerasModel

This class implements the multi-layer perceptron models.

class maml.models.SKLModel(model, describer: BaseDescriber | None = None, **kwargs)

Bases: BaseModel, SklearnMixin

MAML models with sklearn models as estimator.

class maml.models.WeightedAverageLayer(*args, **kwargs)

Bases: Layer

Weight average the features using weights.

result= sum{w_i^a * value_i} / sum{w_i^a}

build(input_shape: Sequence)

Build the layer.

  • Parameters input_shape (tuple) – input shape tuple

call(inputs: Sequence, mask: tf.Tensor | None = None)

Core logic of the layer.

  • Parameters

    • inputs (tuple) – input tuple of length 3

    • mask (tf.Tensor) – not used here

static compute_output_shape(input_shape: Sequence)

Compute output shape from input shape :param input_shape: input shape list. :type input_shape: tuple/list

get_config()

Get layer configuration.

static reduce_sum(prop: Tensor, index: Tensor, perm: Sequence)

Reduce sum the tensors using index.

  • Parameters

    • prop (tf.Tensor) – tensor with shape [1, n, …]

    • index (tf.Tensor) – integer tensor with shape [1, n]

    • perm (list) – permutation for transpose.

class maml.models.WeightedSet2Set(*args, **kwargs)

Bases: Layer

This is a modified version from megnet.layers.readout.Set2Set. Here, in addition to taking features and indices as inputs, we also take a weight tensor. The input to the core logic is [features, weights, indices].

_lstm(h, c)

build(input_shape: Sequence)

Build the output shape from input shapes :param input_shape: input shape list. :type input_shape: tuple/list

call(inputs, mask=None)

Core logic of the layer.

  • Parameters

    • inputs (tuple) – input tuple of length 3

    • mask (tf.Tensor) – not used here

compute_output_shape(input_shape)

Compute output shapes from input shapes :param input_shape: input shapes. :type input_shape: sequence of tuple

Returns: sequence of tuples output shapes

get_config()

Part of keras layer interface, where the signature is converted into a dict

  • Returns configurational dictionary.

Subpackages

  • maml.models.dl package

    • AtomSets

      • AtomSets._get_data_generator()

      • AtomSets._predict()

      • AtomSets.evaluate()

      • AtomSets.fit()

      • AtomSets.from_dir()

      • AtomSets.save()

    • MLP

    • WeightedAverageLayer

      • WeightedAverageLayer.build()

      • WeightedAverageLayer.call()

      • WeightedAverageLayer.compute_output_shape()

      • WeightedAverageLayer.get_config()

      • WeightedAverageLayer.reduce_sum()

    • WeightedSet2Set

      • WeightedSet2Set._lstm()

      • WeightedSet2Set.build()

      • WeightedSet2Set.call()

      • WeightedSet2Set.compute_output_shape()

      • WeightedSet2Set.get_config()

    • maml.models.dl._atomsets module

      • AtomSets

        • AtomSets._get_data_generator()

        • AtomSets._predict()

        • AtomSets.evaluate()

        • AtomSets.fit()

        • AtomSets.from_dir()

        • AtomSets.save()

      • construct_atom_sets()

    • maml.models.dl._keras_utils module

      • deserialize_keras_activation()

      • deserialize_keras_optimizer()

    • maml.models.dl._layers module

      • WeightedAverageLayer

        • WeightedAverageLayer.build()

        • WeightedAverageLayer.call()

        • WeightedAverageLayer.compute_output_shape()

        • WeightedAverageLayer.get_config()

        • WeightedAverageLayer.reduce_sum()

      • WeightedSet2Set

        • WeightedSet2Set._lstm()

        • WeightedSet2Set.build()

        • WeightedSet2Set.call()

        • WeightedSet2Set.compute_output_shape()

        • WeightedSet2Set.get_config()

    • maml.models.dl._mlp module

      • MLP

      • construct_mlp()


© Copyright 2022, Materials Virtual Lab