Layers#

Module that implements custom layers. Mainly needed for handling periodicity, backmapping or sparsity.

class encodermap.models.layers.BackMapLayer(*args, **kwargs)[source]#

Bases: Layer

Layer that implements backmapping from torsions-angles-distances to euclidean coordinates.

__init__()[source]#

Instantiate the layer

call(inputs)[source]#

Call the layers, inputs should be a tuple shaped, so that it can be split into distances, angles, dihedrals = inputs

class encodermap.models.layers.MeanAngles(*args, **kwargs)[source]#

Bases: Layer

Layer that implements the mean of periodic angles.

__init__(parameters, print_name, multiples_shape)[source]#

Instantiate the layer.

call(inputs)[source]#

Call the layer

class encodermap.models.layers.PairwiseDistances(*args, **kwargs)[source]#

Bases: Layer

Layer that implements pairwise distances.

__init__(parameters, print_name)[source]#

Instantiate the layer.

call(inputs)[source]#

Call the layer

class encodermap.models.layers.PeriodicInput(*args, **kwargs)[source]#

Bases: Layer

Layer that handles periodic input. Needed, if angles are treated. Input angles will be split into sin and cos components and a tensor with shape[0] = 2 * inp_shape[0] will be returned

__init__(parameters, print_name, trainable=False)[source]#

Instantiate the layer. Need parameters to get the info about the periodicity. Although angles are most often used, who knows what hyper-toroidal manifold your data lies in.

call(inputs)[source]#

Call the layer.

class encodermap.models.layers.PeriodicOutput(*args, **kwargs)[source]#

Bases: Layer

Layer that reverses the PeriodicInputLayer.

__init__(parameters, print_name, trainable=False)[source]#

Instantiate the layer, We also need to know here, what periodicity is needed.

call(inputs)[source]#

Calls the layer, Inputs shold be a tuple of (sin, cos) of the same angles

class encodermap.models.layers.Sparse(*args, **kwargs)[source]#

Bases: Dense

Simple subclass of tf.keras.layers.Dense, which implements sparse_dense_matmul

call(inputs)[source]#

Call the layer.

class encodermap.models.layers.SparseReshape(*args, **kwargs)[source]#

Bases: Reshape

Layer that can reshapa a sparse Tensor.

call(inputs)[source]#

This is where the layer’s logic lives.

The call() method may not create state (except in its first invocation, wrapping the creation of variables or other resources in tf.init_scope()). It is recommended to create state, including tf.Variable instances and nested Layer instances,

in __init__(), or in the build() method that is

called automatically before call() executes for the first time.

Parameters:
  • inputs

    Input tensor, or dict/list/tuple of input tensors. The first positional inputs argument is subject to special rules: - inputs must be explicitly passed. A layer cannot have zero

    arguments, and inputs cannot be provided via the default value of a keyword argument.

    • NumPy array or Python scalar values in inputs get cast as tensors.

    • Keras mask metadata is only collected from inputs.

    • Layers are built (build(input_shape) method) using shape info from inputs only.

    • input_spec compatibility is only checked against inputs.

    • Mixed precision input casting is only applied to inputs. If a layer has tensor arguments in *args or **kwargs, their casting behavior in mixed precision should be handled manually.

    • The SavedModel input specification is generated using inputs only.

    • Integration with various ecosystem packages like TFMOT, TFLite, TF.js, etc is only supported for inputs and not for tensors in positional and keyword arguments.

  • *args – Additional positional arguments. May contain tensors, although this is not recommended, for the reasons above.

  • **kwargs

    Additional keyword arguments. May contain tensors, although this is not recommended, for the reasons above. The following optional keyword arguments are reserved: - training: Boolean scalar tensor of Python boolean indicating

    whether the call is meant for training or inference.

    • mask: Boolean input mask. If the layer’s call() method takes a mask argument, its default value will be set to the mask generated for inputs by the previous layer (if input did come from a layer that generated a corresponding mask, i.e. if it came from a Keras layer with masking support).

Returns:

A tensor or list/tuple of tensors.