siml.networks package¶
Subpackages¶
Submodules¶
siml.networks.abstract_equivariant_gnn module¶
- class siml.networks.abstract_equivariant_gnn.AbstractEquivariantGNN(block_setting)¶
Bases:
AbstractGCNAbstract class for equivariant GNN.
- training: bool¶
siml.networks.abstract_gcn module¶
- class siml.networks.abstract_gcn.AbstractGCN(block_setting, *, create_subchain=True, residual=False, multiple_networks=None)¶
Bases:
SimlModule- static accepts_multiple_inputs()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it accepts multiple inputs.
- forward(*args: Any, **kwargs: Any) Any¶
Defines the computation performed at every call.
Should be overridden by all subclasses.
Note
Although the recipe for forward pass needs to be defined within this function, one should call the
Moduleinstance afterwards instead of this since the former takes care of running the registered hooks while the latter silently ignores them.
- static is_trainable()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it is trainable.
- training: bool¶
- static uses_support()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it uses support inputs (sparse matrices).
siml.networks.activation module¶
- class siml.networks.activation.Activation(block_setting)¶
Bases:
SimlModuleActivation block.
- static accepts_multiple_inputs()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it accepts multiple inputs.
- forward(*args: Any, **kwargs: Any) Any¶
Defines the computation performed at every call.
Should be overridden by all subclasses.
Note
Although the recipe for forward pass needs to be defined within this function, one should call the
Moduleinstance afterwards instead of this since the former takes care of running the registered hooks while the latter silently ignores them.
- static get_name()¶
Abstract method to be overridden by the subclass. It shoud return str indicating its name.
- static is_trainable()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it is trainable.
- training: bool¶
- static uses_support()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it uses support inputs (sparse matrices).
siml.networks.activations module¶
- class siml.networks.activations.ATanh(epsilon)¶
Bases:
Module- forward(x)¶
Defines the computation performed at every call.
Should be overridden by all subclasses.
Note
Although the recipe for forward pass needs to be defined within this function, one should call the
Moduleinstance afterwards instead of this since the former takes care of running the registered hooks while the latter silently ignores them.
- training: bool¶
- class siml.networks.activations.DerivativeLeakyReLU(original_lrelu=None)¶
Bases:
Module- forward(x)¶
Defines the computation performed at every call.
Should be overridden by all subclasses.
Note
Although the recipe for forward pass needs to be defined within this function, one should call the
Moduleinstance afterwards instead of this since the former takes care of running the registered hooks while the latter silently ignores them.
- training: bool¶
- class siml.networks.activations.InversedLeakyReLU(original_lrelu=None)¶
Bases:
Module- forward(x)¶
Defines the computation performed at every call.
Should be overridden by all subclasses.
Note
Although the recipe for forward pass needs to be defined within this function, one should call the
Moduleinstance afterwards instead of this since the former takes care of running the registered hooks while the latter silently ignores them.
- training: bool¶
- siml.networks.activations.atanh(x, epsilon=1e-05)¶
- siml.networks.activations.derivative_smooth_leaky_relu(x)¶
- siml.networks.activations.derivative_tanh(x)¶
- siml.networks.activations.identity(x)¶
- siml.networks.activations.inversed_smooth_leaky_relu(x)¶
- siml.networks.activations.max_pool(x, original_shapes)¶
- siml.networks.activations.mean(x, original_shapes)¶
- siml.networks.activations.min(x, original_shapes)¶
- siml.networks.activations.min_func(*args, **kwargs)¶
- siml.networks.activations.mish(x)¶
- siml.networks.activations.normalize(x)¶
- siml.networks.activations.one(x)¶
- siml.networks.activations.smooth_leaky_relu(x)¶
- siml.networks.activations.split(x, original_shapes)¶
siml.networks.array2diagmat module¶
- class siml.networks.array2diagmat.Array2Diagmat(block_setting)¶
Bases:
SimlModuleConvert array to diagonal matrix. [n, f] -> [n, 3, 3, f]
- static accepts_multiple_inputs()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it accepts multiple inputs.
- forward(*args: Any, **kwargs: Any) Any¶
Defines the computation performed at every call.
Should be overridden by all subclasses.
Note
Although the recipe for forward pass needs to be defined within this function, one should call the
Moduleinstance afterwards instead of this since the former takes care of running the registered hooks while the latter silently ignores them.
- static get_name()¶
Abstract method to be overridden by the subclass. It shoud return str indicating its name.
- static is_trainable()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it is trainable.
- training: bool¶
- static uses_support()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it uses support inputs (sparse matrices).
siml.networks.array2symmat module¶
- class siml.networks.array2symmat.Array2Symmat(block_setting)¶
Bases:
SimlModuleConvert array to symmetric matrix.
- static accepts_multiple_inputs()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it accepts multiple inputs.
- forward(*args: Any, **kwargs: Any) Any¶
Defines the computation performed at every call.
Should be overridden by all subclasses.
Note
Although the recipe for forward pass needs to be defined within this function, one should call the
Moduleinstance afterwards instead of this since the former takes care of running the registered hooks while the latter silently ignores them.
- static get_name()¶
Abstract method to be overridden by the subclass. It shoud return str indicating its name.
- static is_trainable()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it is trainable.
- training: bool¶
- static uses_support()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it uses support inputs (sparse matrices).
siml.networks.boundary module¶
- class siml.networks.boundary.Assignment(block_setting)¶
Bases:
SimlModuleAssignment layer.
- static accepts_multiple_inputs()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it accepts multiple inputs.
- forward(*args: Any, **kwargs: Any) Any¶
Defines the computation performed at every call.
Should be overridden by all subclasses.
Note
Although the recipe for forward pass needs to be defined within this function, one should call the
Moduleinstance afterwards instead of this since the former takes care of running the registered hooks while the latter silently ignores them.
- static get_name()¶
Abstract method to be overridden by the subclass. It shoud return str indicating its name.
- static is_trainable()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it is trainable.
- training: bool¶
- static uses_support()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it uses support inputs (sparse matrices).
- class siml.networks.boundary.Dirichlet(block_setting)¶
Bases:
SimlModuleDirichlet boundary condition management.
- static accepts_multiple_inputs()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it accepts multiple inputs.
- forward(*args: Any, **kwargs: Any) Any¶
Defines the computation performed at every call.
Should be overridden by all subclasses.
Note
Although the recipe for forward pass needs to be defined within this function, one should call the
Moduleinstance afterwards instead of this since the former takes care of running the registered hooks while the latter silently ignores them.
- static get_name()¶
Abstract method to be overridden by the subclass. It shoud return str indicating its name.
- static is_trainable()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it is trainable.
- training: bool¶
- static uses_support()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it uses support inputs (sparse matrices).
- class siml.networks.boundary.Interaction(block_setting)¶
Bases:
SimlModuleInteraction layer.
- static accepts_multiple_inputs()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it accepts multiple inputs.
- forward(*args: Any, **kwargs: Any) Any¶
Defines the computation performed at every call.
Should be overridden by all subclasses.
Note
Although the recipe for forward pass needs to be defined within this function, one should call the
Moduleinstance afterwards instead of this since the former takes care of running the registered hooks while the latter silently ignores them.
- static get_name()¶
Abstract method to be overridden by the subclass. It shoud return str indicating its name.
- static is_trainable()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it is trainable.
- training: bool¶
- static uses_support()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it uses support inputs (sparse matrices).
- class siml.networks.boundary.NeumannDecoder(block_setting, reference_block)¶
Bases:
SimlModuleDecoder for gradient with Neumann condition.
- SUPPORTED_ACTIVATION_NAMES = ['identity', 'leaky_relu']¶
- static accepts_multiple_inputs()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it accepts multiple inputs.
- forward(*args: Any, **kwargs: Any) Any¶
Defines the computation performed at every call.
Should be overridden by all subclasses.
Note
Although the recipe for forward pass needs to be defined within this function, one should call the
Moduleinstance afterwards instead of this since the former takes care of running the registered hooks while the latter silently ignores them.
- static get_name()¶
Abstract method to be overridden by the subclass. It shoud return str indicating its name.
- static is_trainable()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it is trainable.
- training: bool¶
- static uses_support()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it uses support inputs (sparse matrices).
- validate()¶
- class siml.networks.boundary.NeumannEncoder(block_setting, reference_block)¶
Bases:
SimlModuleEncoder for Neumann condition.
- static accepts_multiple_inputs()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it accepts multiple inputs.
- property activations¶
- forward(*args: Any, **kwargs: Any) Any¶
Defines the computation performed at every call.
Should be overridden by all subclasses.
Note
Although the recipe for forward pass needs to be defined within this function, one should call the
Moduleinstance afterwards instead of this since the former takes care of running the registered hooks while the latter silently ignores them.
- static get_name()¶
Abstract method to be overridden by the subclass. It shoud return str indicating its name.
- static is_trainable()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it is trainable.
- property linears¶
- training: bool¶
- static uses_support()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it uses support inputs (sparse matrices).
- property weights¶
- class siml.networks.boundary.NeumannIsoGCN(block_setting, reference_block)¶
Bases:
SimlModuleNeumann boundary condition management using IsoGCN.
- static accepts_multiple_inputs()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it accepts multiple inputs.
- forward(*args: Any, **kwargs: Any) Any¶
Defines the computation performed at every call.
Should be overridden by all subclasses.
Note
Although the recipe for forward pass needs to be defined within this function, one should call the
Moduleinstance afterwards instead of this since the former takes care of running the registered hooks while the latter silently ignores them.
- static get_name()¶
Abstract method to be overridden by the subclass. It shoud return str indicating its name.
- static is_trainable()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it is trainable.
- training: bool¶
- static uses_support()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it uses support inputs (sparse matrices).
siml.networks.concatenator module¶
- class siml.networks.concatenator.Concatenator(block_setting)¶
Bases:
SimlModuleConcatenation operation block.
- static accepts_multiple_inputs()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it accepts multiple inputs.
- forward(*args: Any, **kwargs: Any) Any¶
Defines the computation performed at every call.
Should be overridden by all subclasses.
Note
Although the recipe for forward pass needs to be defined within this function, one should call the
Moduleinstance afterwards instead of this since the former takes care of running the registered hooks while the latter silently ignores them.
- static get_name()¶
Abstract method to be overridden by the subclass. It shoud return str indicating its name.
- static is_trainable()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it is trainable.
- training: bool¶
- static uses_support()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it uses support inputs (sparse matrices).
siml.networks.cross_product module¶
- class siml.networks.cross_product.CrossProduct(block_setting)¶
Bases:
SimlModuleCross Product block.
- static accepts_multiple_inputs()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it accepts multiple inputs.
- forward(*args: Any, **kwargs: Any) Any¶
Defines the computation performed at every call.
Should be overridden by all subclasses.
Note
Although the recipe for forward pass needs to be defined within this function, one should call the
Moduleinstance afterwards instead of this since the former takes care of running the registered hooks while the latter silently ignores them.
- static get_name()¶
Abstract method to be overridden by the subclass. It shoud return str indicating its name.
- static is_trainable()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it is trainable.
- training: bool¶
- static uses_support()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it uses support inputs (sparse matrices).
siml.networks.deepsets module¶
- class siml.networks.deepsets.DeepSets(block_setting)¶
Bases:
SimlModulePermutation equivalent layer published in https://arxiv.org/abs/1703.06114 .
- static accepts_multiple_inputs()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it accepts multiple inputs.
- static get_name()¶
Abstract method to be overridden by the subclass. It shoud return str indicating its name.
- static is_trainable()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it is trainable.
- training: bool¶
- static uses_support()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it uses support inputs (sparse matrices).
siml.networks.einops module¶
- class siml.networks.einops.Rearrange(block_setting)¶
Bases:
SimlModuleApply einops.rearrange.
- static accepts_multiple_inputs()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it accepts multiple inputs.
- forward(*args: Any, **kwargs: Any) Any¶
Defines the computation performed at every call.
Should be overridden by all subclasses.
Note
Although the recipe for forward pass needs to be defined within this function, one should call the
Moduleinstance afterwards instead of this since the former takes care of running the registered hooks while the latter silently ignores them.
- static get_name()¶
Abstract method to be overridden by the subclass. It shoud return str indicating its name.
- static is_trainable()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it is trainable.
- training: bool¶
- static uses_support()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it uses support inputs (sparse matrices).
siml.networks.einsum module¶
- class siml.networks.einsum.EinSum(block_setting)¶
Bases:
SimlModuleEinSum block.
- static accepts_multiple_inputs()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it accepts multiple inputs.
- forward(*args: Any, **kwargs: Any) Any¶
Defines the computation performed at every call.
Should be overridden by all subclasses.
Note
Although the recipe for forward pass needs to be defined within this function, one should call the
Moduleinstance afterwards instead of this since the former takes care of running the registered hooks while the latter silently ignores them.
- static get_name()¶
Abstract method to be overridden by the subclass. It shoud return str indicating its name.
- static is_trainable()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it is trainable.
- training: bool¶
- static uses_support()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it uses support inputs (sparse matrices).
siml.networks.gcn module¶
- class siml.networks.gcn.GCN(block_setting)¶
Bases:
AbstractGCNGraph Convolutional network based on https://arxiv.org/abs/1609.02907 .
- block_setting: BlockSetting¶
- static get_name()¶
Abstract method to be overridden by the subclass. It shoud return str indicating its name.
- training: bool¶
siml.networks.group module¶
- class siml.networks.group.Group(block_setting, model_setting)¶
Bases:
SimlModule- static accepts_multiple_inputs()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it accepts multiple inputs.
- broadcast(a, x, operator)¶
- calculate_residual(x, ref)¶
- static create_group_setting(block_setting, model_setting)¶
- forward_implicit(*args: Any, **kwargs: Any) Any¶
- forward_time_series(*args: Any, **kwargs: Any) Any¶
- forward_w_loop(*args: Any, **kwargs: Any) Any¶
- forward_wo_loop(*args: Any, **kwargs: Any) Any¶
- generate_inputs(dict_predecessors)¶
- generate_outputs(y)¶
- static get_name()¶
Abstract method to be overridden by the subclass. It shoud return str indicating its name.
- property input_names¶
- static is_trainable()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it is trainable.
- operate(x, y, operator)¶
- property output_names¶
- static sum_dim_if_needed(dim)¶
- training: bool¶
- static uses_support()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it uses support inputs (sparse matrices).
siml.networks.id_mlp module¶
- class siml.networks.id_mlp.IdMLP(block_setting, *, create_linears=True, create_activations=True, create_dropouts=True, no_parameter=False, residual_dimension=None, **kwargs)¶
Bases:
SimlModuleMulti Layer Perceptron with adding the identity.
- static accepts_multiple_inputs()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it accepts multiple inputs.
- static get_name()¶
Abstract method to be overridden by the subclass. It shoud return str indicating its name.
- static is_trainable()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it is trainable.
- training: bool¶
- static uses_support()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it uses support inputs (sparse matrices).
siml.networks.identity module¶
- class siml.networks.identity.Identity(block_setting)¶
Bases:
SimlModuleIdentity block.
- static accepts_multiple_inputs()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it accepts multiple inputs.
- forward(*args: Any, **kwargs: Any) Any¶
Defines the computation performed at every call.
Should be overridden by all subclasses.
Note
Although the recipe for forward pass needs to be defined within this function, one should call the
Moduleinstance afterwards instead of this since the former takes care of running the registered hooks while the latter silently ignores them.
- static get_name()¶
Abstract method to be overridden by the subclass. It shoud return str indicating its name.
- static is_trainable()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it is trainable.
- training: bool¶
- static uses_support()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it uses support inputs (sparse matrices).
siml.networks.implicit_gnn module¶
Implicit GNN
Original Implementation is found here: https://github.com/SwiftieH/IGNN
Overview * Fangda Gu, Heng Chang, Wenwu Zhu, Somayeh Sojoudi, Laurent El Ghaoui * 34th Conference on Neural Information Processing Systems (NeurIPS 2020), Vancouver, Canada. * arxiv: https://arxiv.org/abs/2009.06211
- class siml.networks.implicit_gnn.IGNNIterationStatus(value)¶
Bases:
EnumAn enumeration.
- converged = 1¶
- not_started = 0¶
- reached_max_itration = 2¶
- class siml.networks.implicit_gnn.ImplicitFunction(*args, **kwargs)¶
Bases:
Function- static backward(ctx, *grad_outputs)¶
Defines a formula for differentiating the operation with backward mode automatic differentiation.
This function is to be overridden by all subclasses.
It must accept a context
ctxas the first argument, followed by as many outputs as theforward()returned (None will be passed in for non tensor outputs of the forward function), and it should return as many tensors, as there were inputs toforward(). Each argument is the gradient w.r.t the given output, and each returned value should be the gradient w.r.t. the corresponding input. If an input is not a Tensor or is a Tensor not requiring grads, you can just pass None as a gradient for that input.The context can be used to retrieve tensors saved during the forward pass. It also has an attribute
ctx.needs_input_gradas a tuple of booleans representing whether each input needs gradient. E.g.,backward()will havectx.needs_input_grad[0] = Trueif the first input toforward()needs gradient computated w.r.t. the output.
- static forward(ctx: Any, W: Tensor, X_0: Tensor, A: Tensor, B: Tensor, phi: Callable[[Tensor], Tensor], fd_mitr: int = 300, bw_mitr: int = 300)¶
Performs the operation.
This function is to be overridden by all subclasses.
It must accept a context ctx as the first argument, followed by any number of arguments (tensors or other types).
The context can be used to store arbitrary data that can be then retrieved during the backward pass.
- class siml.networks.implicit_gnn.ImplicitGNN(block_setting: BlockSetting)¶
Bases:
SimlModuleA Implicit Graph Neural Network Layer (IGNN)
- static accepts_multiple_inputs()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it accepts multiple inputs.
- forward(*args: Any, **kwargs: Any) Any¶
Defines the computation performed at every call.
Should be overridden by all subclasses.
Note
Although the recipe for forward pass needs to be defined within this function, one should call the
Moduleinstance afterwards instead of this since the former takes care of running the registered hooks while the latter silently ignores them.
- static get_name()¶
Abstract method to be overridden by the subclass. It shoud return str indicating its name.
- static is_trainable()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it is trainable.
- training: bool¶
- static uses_support()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it uses support inputs (sparse matrices).
- siml.networks.implicit_gnn.calculate_spectral_rad(sparse_tensor: Tensor) ndarray¶
Compute spectral radius from a tensor
- Parameters:
sparse_tensor (torch.Tensor) – tensor to calculate
- Returns:
spectral radius
- Return type:
np.ndarray
- siml.networks.implicit_gnn.projection_norm_inf(A: Tensor, criteria: float = 0.99) None¶
Project onto ||A||_inf <= criteria return updated A
- Parameters:
A (torch.Tensor) – Tensor object
criteria (float, optional) – criteria value, by default 0.99
siml.networks.integration module¶
- class siml.networks.integration.Integration(block_setting)¶
Bases:
SimlModuleIntegration block.
- static accepts_multiple_inputs()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it accepts multiple inputs.
- forward(*args: Any, **kwargs: Any) Any¶
Defines the computation performed at every call.
Should be overridden by all subclasses.
Note
Although the recipe for forward pass needs to be defined within this function, one should call the
Moduleinstance afterwards instead of this since the former takes care of running the registered hooks while the latter silently ignores them.
- static get_name()¶
Abstract method to be overridden by the subclass. It shoud return str indicating its name.
- static is_trainable()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it is trainable.
- training: bool¶
- static uses_support()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it uses support inputs (sparse matrices).
siml.networks.iso_gcn module¶
- class siml.networks.iso_gcn.IsoGCN(block_setting)¶
Bases:
AbstractEquivariantGNNIsoGCN according to https://arxiv.org/abs/2005.06316 .
- static accepts_multiple_inputs()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it accepts multiple inputs.
- block_setting: BlockSetting¶
- static get_name()¶
Abstract method to be overridden by the subclass. It shoud return str indicating its name.
- training: bool¶
siml.networks.lstm module¶
- class siml.networks.lstm.LSTM(block_setting)¶
Bases:
SimlModuleLSTM layer.
- static accepts_multiple_inputs()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it accepts multiple inputs.
- static get_name()¶
Abstract method to be overridden by the subclass. It shoud return str indicating its name.
- static is_trainable()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it is trainable.
- training: bool¶
- static uses_support()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it uses support inputs (sparse matrices).
siml.networks.message_passing module¶
- class siml.networks.message_passing.MessagePassing(block_setting)¶
Bases:
AbstractGCNMessage passing layer based on https://arxiv.org/abs/1704.01212.
- block_setting: BlockSetting¶
- static get_name()¶
Abstract method to be overridden by the subclass. It shoud return str indicating its name.
- make_reduce_matrix(nadj, *, mean=False)¶
- training: bool¶
siml.networks.mlp module¶
- class siml.networks.mlp.MLP(block_setting, **kwargs)¶
Bases:
SimlModuleMulti Layer Perceptron.
- static accepts_multiple_inputs()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it accepts multiple inputs.
- static get_name()¶
Abstract method to be overridden by the subclass. It shoud return str indicating its name.
- static is_trainable()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it is trainable.
- training: bool¶
- static uses_support()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it uses support inputs (sparse matrices).
siml.networks.nan_mlp module¶
- class siml.networks.nan_mlp.NaNMLP(block_setting, **kwargs)¶
Bases:
MLPMulti Layer Perceptron with NaN handling.
- static accepts_multiple_inputs()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it accepts multiple inputs.
- block_setting: BlockSetting¶
- static get_name()¶
Abstract method to be overridden by the subclass. It shoud return str indicating its name.
- static is_trainable()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it is trainable.
- training: bool¶
- static uses_support()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it uses support inputs (sparse matrices).
siml.networks.network module¶
- class siml.networks.network.Network(model_setting, trainer_setting)¶
Bases:
Module- clip_if_needed()¶
- clip_uniform_if_needed(clip_grad_value: float, clip_grad_norm: float) None¶
- dict_block_class = {'accessor': <class 'siml.networks.reshape.Accessor'>, 'activation': <class 'siml.networks.activation.Activation'>, 'adjustable_mlp': <class 'siml.networks.mlp.MLP'>, 'array2diagmat': <class 'siml.networks.array2diagmat.Array2Diagmat'>, 'array2symmat': <class 'siml.networks.array2symmat.Array2Symmat'>, 'assignment': <class 'siml.networks.boundary.Assignment'>, 'cluster_gcn': <class 'siml.networks.pyg.cluster_gcn.ClusterGCN'>, 'concatenator': <class 'siml.networks.concatenator.Concatenator'>, 'contraction': <class 'siml.networks.tensor_operations.Contraction'>, 'cross_product': <class 'siml.networks.cross_product.CrossProduct'>, 'deepsets': <class 'siml.networks.deepsets.DeepSets'>, 'dirichlet': <class 'siml.networks.boundary.Dirichlet'>, 'distributor': <class 'siml.networks.reducer.Reducer'>, 'einsum': <class 'siml.networks.einsum.EinSum'>, 'equivariant_mlp': <class 'siml.networks.tensor_operations.EquivariantMLP'>, 'equivariant_tcn': <class 'siml.networks.tcn.EquivariantTCN'>, 'features_to_time_series': <class 'siml.networks.reshape.FeaturesToTimeSeries'>, 'gcn': <class 'siml.networks.gcn.GCN'>, 'gcnii': <class 'siml.networks.pyg.gcnii.GCNII'>, 'gin': <class 'siml.networks.pyg.gin.GIN'>, 'group': <class 'siml.networks.group.Group'>, 'id_mlp': <class 'siml.networks.id_mlp.IdMLP'>, 'identity': <class 'siml.networks.identity.Identity'>, 'implicit_gnn': <class 'siml.networks.implicit_gnn.ImplicitGNN'>, 'integration': <class 'siml.networks.integration.Integration'>, 'interaction': <class 'siml.networks.boundary.Interaction'>, 'iso_gcn': <class 'siml.networks.iso_gcn.IsoGCN'>, 'lstm': <class 'siml.networks.lstm.LSTM'>, 'message_passing': <class 'siml.networks.message_passing.MessagePassing'>, 'mlp': <class 'siml.networks.mlp.MLP'>, 'nan_mlp': <class 'siml.networks.nan_mlp.NaNMLP'>, 'neumann_decoder': <class 'siml.networks.boundary.NeumannDecoder'>, 'neumann_encoder': <class 'siml.networks.boundary.NeumannEncoder'>, 'neumann_isogcn': <class 'siml.networks.boundary.NeumannIsoGCN'>, 'normalized_mlp': <class 'siml.networks.normalized_mlp.NormalizedMLP'>, 'penn': <class 'siml.networks.penn.PENN'>, 'pinv_mlp': <class 'siml.networks.pinv_mlp.PInvMLP'>, 'projection': <class 'siml.networks.projection.Projection'>, 'proportional': <class 'siml.networks.proportional.Proportional'>, 'rearrange': <class 'siml.networks.einops.Rearrange'>, 'reducer': <class 'siml.networks.reducer.Reducer'>, 'reshape': <class 'siml.networks.reshape.Reshape'>, 'set_transformer_decoder': <class 'siml.networks.set_transformer.SetTransformerDecoder'>, 'set_transformer_encoder': <class 'siml.networks.set_transformer.SetTransformerEncoder'>, 'share': <class 'siml.networks.share.Share'>, 'spmm': <class 'siml.networks.spmm.SpMM'>, 'symmat2array': <class 'siml.networks.symmat2array.Symmat2Array'>, 'tcn': <class 'siml.networks.tcn.TCN'>, 'tensor_product': <class 'siml.networks.tensor_operations.TensorProduct'>, 'threshold': <class 'siml.networks.threshold.Threshold'>, 'time_norm': <class 'siml.networks.time_norm.TimeNorm'>, 'time_series_to_features': <class 'siml.networks.reshape.TimeSeriesToFeatures'>, 'translator': <class 'siml.networks.translator.Translator'>, 'upper_limit': <class 'siml.networks.upper_limit.UpperLimit'>}¶
- draw(output_directory, *, stem=None)¶
- forward(x_: dict)¶
Defines the computation performed at every call.
Should be overridden by all subclasses.
Note
Although the recipe for forward pass needs to be defined within this function, one should call the
Moduleinstance afterwards instead of this since the former takes care of running the registered hooks while the latter silently ignores them.
- get_loss_coeffs()¶
- get_loss_keys()¶
- get_losses()¶
- reset()¶
- training: bool¶
- siml.networks.network.add_block(block)¶
Add block definition to siml.
- Parameters:
block (siml.network.SimlModule-like) – User defined block.
siml.networks.normalized_mlp module¶
- class siml.networks.normalized_mlp.NormalizedMLP(block_setting, *, create_linears=True, create_activations=True, create_dropouts=True, no_parameter=False, residual_dimension=None, **kwargs)¶
Bases:
SimlModuleMulti Layer Perceptron with the normalized weight.
- static accepts_multiple_inputs()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it accepts multiple inputs.
- static get_name()¶
Abstract method to be overridden by the subclass. It shoud return str indicating its name.
- static is_trainable()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it is trainable.
- training: bool¶
- static uses_support()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it uses support inputs (sparse matrices).
siml.networks.penn module¶
- class siml.networks.penn.PENN(block_setting)¶
Bases:
AbstractEquivariantGNNPhysics-Embedded Neural Network.
- static accepts_multiple_inputs()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it accepts multiple inputs.
- block_setting: BlockSetting¶
- static get_name()¶
Abstract method to be overridden by the subclass. It shoud return str indicating its name.
- training: bool¶
siml.networks.pinv_mlp module¶
- class siml.networks.pinv_mlp.PInvLinear(ref_linear, option)¶
Bases:
Module- property bias¶
Return inverse bias.
- forward(x)¶
Defines the computation performed at every call.
Should be overridden by all subclasses.
Note
Although the recipe for forward pass needs to be defined within this function, one should call the
Moduleinstance afterwards instead of this since the former takes care of running the registered hooks while the latter silently ignores them.
- training: bool¶
- property weight¶
Return pseudo inversed weight.
- class siml.networks.pinv_mlp.PInvMLP(block_setting, reference_block)¶
Bases:
SimlModulePseudo inverse of Multi Layer Perceptron.
- static accepts_multiple_inputs()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it accepts multiple inputs.
- static get_name()¶
Abstract method to be overridden by the subclass. It shoud return str indicating its name.
- static is_trainable()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it is trainable.
- training: bool¶
- static uses_support()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it uses support inputs (sparse matrices).
siml.networks.projection module¶
- class siml.networks.projection.Projection(block_setting)¶
Bases:
SimlModule- static accepts_multiple_inputs()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it accepts multiple inputs.
- forward(*xs, supports=None, original_shapes=None) Tensor¶
Defines the computation performed at every call.
Should be overridden by all subclasses.
Note
Although the recipe for forward pass needs to be defined within this function, one should call the
Moduleinstance afterwards instead of this since the former takes care of running the registered hooks while the latter silently ignores them.
- static get_name()¶
Abstract method to be overridden by the subclass. It shoud return str indicating its name.
- static is_trainable()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it is trainable.
- training: bool¶
- static uses_support()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it uses support inputs (sparse matrices).
siml.networks.proportional module¶
- class siml.networks.proportional.Proportional(block_setting)¶
Bases:
SimlModuleProportional layer.
- static accepts_multiple_inputs()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it accepts multiple inputs.
- static get_name()¶
Abstract method to be overridden by the subclass. It shoud return str indicating its name.
- static is_trainable()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it is trainable.
- training: bool¶
- static uses_support()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it uses support inputs (sparse matrices).
siml.networks.reducer module¶
- class siml.networks.reducer.Reducer(block_setting)¶
Bases:
SimlModuleBroadcastive operation block.
- static accepts_multiple_inputs()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it accepts multiple inputs.
- forward(*args: Any, **kwargs: Any) Any¶
Defines the computation performed at every call.
Should be overridden by all subclasses.
Note
Although the recipe for forward pass needs to be defined within this function, one should call the
Moduleinstance afterwards instead of this since the former takes care of running the registered hooks while the latter silently ignores them.
- static get_name()¶
Abstract method to be overridden by the subclass. It shoud return str indicating its name.
- static is_trainable()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it is trainable.
- training: bool¶
- static uses_support()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it uses support inputs (sparse matrices).
siml.networks.reshape module¶
- class siml.networks.reshape.Accessor(block_setting)¶
Bases:
SimlModuleAccess data using the given index.
- static accepts_multiple_inputs()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it accepts multiple inputs.
- forward(*args: Any, **kwargs: Any) Any¶
Defines the computation performed at every call.
Should be overridden by all subclasses.
Note
Although the recipe for forward pass needs to be defined within this function, one should call the
Moduleinstance afterwards instead of this since the former takes care of running the registered hooks while the latter silently ignores them.
- static get_name()¶
Abstract method to be overridden by the subclass. It shoud return str indicating its name.
- static is_trainable()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it is trainable.
- training: bool¶
- static uses_support()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it uses support inputs (sparse matrices).
- class siml.networks.reshape.FeaturesToTimeSeries(block_setting)¶
Bases:
SimlModuleConvert feature axes to time series.
- static accepts_multiple_inputs()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it accepts multiple inputs.
- forward(*args: Any, **kwargs: Any) Any¶
Defines the computation performed at every call.
Should be overridden by all subclasses.
Note
Although the recipe for forward pass needs to be defined within this function, one should call the
Moduleinstance afterwards instead of this since the former takes care of running the registered hooks while the latter silently ignores them.
- static get_name()¶
Abstract method to be overridden by the subclass. It shoud return str indicating its name.
- static is_trainable()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it is trainable.
- training: bool¶
- static uses_support()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it uses support inputs (sparse matrices).
- class siml.networks.reshape.Reshape(block_setting)¶
Bases:
SimlModuleReshape block.
- static accepts_multiple_inputs()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it accepts multiple inputs.
- forward(*args: Any, **kwargs: Any) Any¶
Defines the computation performed at every call.
Should be overridden by all subclasses.
Note
Although the recipe for forward pass needs to be defined within this function, one should call the
Moduleinstance afterwards instead of this since the former takes care of running the registered hooks while the latter silently ignores them.
- static get_name()¶
Abstract method to be overridden by the subclass. It shoud return str indicating its name.
- static is_trainable()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it is trainable.
- training: bool¶
- static uses_support()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it uses support inputs (sparse matrices).
- class siml.networks.reshape.TimeSeriesToFeatures(block_setting)¶
Bases:
SimlModuleConvert time series axes to features.
- static accepts_multiple_inputs()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it accepts multiple inputs.
- forward(*args: Any, **kwargs: Any) Any¶
Defines the computation performed at every call.
Should be overridden by all subclasses.
Note
Although the recipe for forward pass needs to be defined within this function, one should call the
Moduleinstance afterwards instead of this since the former takes care of running the registered hooks while the latter silently ignores them.
- static get_name()¶
Abstract method to be overridden by the subclass. It shoud return str indicating its name.
- static is_trainable()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it is trainable.
- training: bool¶
- static uses_support()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it uses support inputs (sparse matrices).
siml.networks.set_transformer module¶
Set Transformer implementation based on https://arxiv.org/abs/1810.00825 and the official implementation https://github.com/juho-lee/set_transformer .
- class siml.networks.set_transformer.ISAB(dim_in, dim_out, num_heads, layer_norm, activation, n_inducing_point=None)¶
Bases:
ModuleISAB: the Induced Set Attention Block. It maps [n, d_in] -> [n, d_out], with inducing points, therefore it takes O(n n_induce), where n_induce is the number of the inducing points.
- forward(X)¶
Defines the computation performed at every call.
Should be overridden by all subclasses.
Note
Although the recipe for forward pass needs to be defined within this function, one should call the
Moduleinstance afterwards instead of this since the former takes care of running the registered hooks while the latter silently ignores them.
- training: bool¶
- class siml.networks.set_transformer.MAB(dim_Q, dim_K, dim_V, num_heads, activation, layer_norm)¶
Bases:
ModuleMAB: the Multihead Attention Block. It maps [n, d_in] x [n, d_in] -> [n, d_out].
- forward(Q, K)¶
Defines the computation performed at every call.
Should be overridden by all subclasses.
Note
Although the recipe for forward pass needs to be defined within this function, one should call the
Moduleinstance afterwards instead of this since the former takes care of running the registered hooks while the latter silently ignores them.
- training: bool¶
- class siml.networks.set_transformer.PMA(dim, num_heads, num_seeds, activation, layer_norm)¶
Bases:
ModulePMA: Pooling by Multihead Attention. It maps [n, d_in] -> [k, d_out], where k is the number of the output vectors.
- forward(X)¶
Defines the computation performed at every call.
Should be overridden by all subclasses.
Note
Although the recipe for forward pass needs to be defined within this function, one should call the
Moduleinstance afterwards instead of this since the former takes care of running the registered hooks while the latter silently ignores them.
- training: bool¶
- class siml.networks.set_transformer.SAB(dim_in, dim_out, num_heads, layer_norm, activation, n_inducing_point=None)¶
Bases:
ModuleSAB: the Set Attention Block. It maps [n, d_in] -> [n, d_out], without inducing points, therefore it takes O(n^2).
- forward(X)¶
Defines the computation performed at every call.
Should be overridden by all subclasses.
Note
Although the recipe for forward pass needs to be defined within this function, one should call the
Moduleinstance afterwards instead of this since the former takes care of running the registered hooks while the latter silently ignores them.
- training: bool¶
- class siml.networks.set_transformer.SetTransformerDecoder(block_setting)¶
Bases:
SimlModuleSet Transformer’s encoder based on https://arxiv.org/abs/1810.00825 .
- static accepts_multiple_inputs()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it accepts multiple inputs.
- static get_name()¶
Abstract method to be overridden by the subclass. It shoud return str indicating its name.
- static is_trainable()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it is trainable.
- training: bool¶
- static uses_support()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it uses support inputs (sparse matrices).
- class siml.networks.set_transformer.SetTransformerEncoder(block_setting)¶
Bases:
SimlModuleSet Transformer’s encoder based on https://arxiv.org/abs/1810.00825 .
- static accepts_multiple_inputs()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it accepts multiple inputs.
- static get_name()¶
Abstract method to be overridden by the subclass. It shoud return str indicating its name.
- static is_trainable()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it is trainable.
- training: bool¶
- static uses_support()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it uses support inputs (sparse matrices).
siml.networks.siml_module module¶
- class siml.networks.siml_module.SimlModule(block_setting, *, create_linears=True, create_activations=True, create_dropouts=True, no_parameter=False, residual_dimension=None, **kwargs)¶
Bases:
Module- abstract static accepts_multiple_inputs()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it accepts multiple inputs.
- create_activation(activation_settings=None)¶
- create_activations(activation_settings=None, residual=None)¶
- create_dropout_ratios(dropouts=None)¶
- create_linears(nodes=None, bias=None)¶
- forward(*args: Any, **kwargs: Any) Any¶
Defines the computation performed at every call.
Should be overridden by all subclasses.
Note
Although the recipe for forward pass needs to be defined within this function, one should call the
Moduleinstance afterwards instead of this since the former takes care of running the registered hooks while the latter silently ignores them.
- classmethod get_n_nodes(block_setting, predecessors, dict_block_setting, input_length, output_length, model_setting)¶
Get the number of input and output nodes.
- Parameters:
block_setting (siml.setting.BlockSetting) – BlockSetting object of the block.
predecessors (tuple[str]) – List of predecessor names.
dict_block_setting (dict[siml.setting.BlockSetting]) – Dict of all BlockSetting objects.
input_length (int or dict[int]) – Input length.
output_length (int or dict[int]) – Output length.
model_setting (siml.setting.ModelSetting) – ModelSetting object.
- Returns:
input_node (int) – The number of the input nodes.
output_node (int) – The number of the output nodes.
- abstract static get_name()¶
Abstract method to be overridden by the subclass. It shoud return str indicating its name.
- abstract static is_trainable()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it is trainable.
- reset()¶
- training: bool¶
- abstract static uses_support()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it uses support inputs (sparse matrices).
siml.networks.sparse module¶
- siml.networks.sparse.mul(sparse: Tensor, tensor)¶
Multiply sparse tensors and tensors.
- Parameters:
sparses (torch.sparse_coo_tensor) –
tensor (torch.Tensor) –
- Return type:
torch.Tensor
siml.networks.spmm module¶
- class siml.networks.spmm.SpMM(block_setting)¶
Bases:
AbstractGCNLayer to compute sparse matrix times dence matrix.
- static accepts_multiple_inputs()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it accepts multiple inputs.
- block_setting: BlockSetting¶
- static get_name()¶
Abstract method to be overridden by the subclass. It shoud return str indicating its name.
- static is_trainable()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it is trainable.
- training: bool¶
- static uses_support()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it uses support inputs (sparse matrices).
siml.networks.symmat2array module¶
- class siml.networks.symmat2array.Symmat2Array(block_setting)¶
Bases:
SimlModuleConvert symmetric matrix to array.
- static accepts_multiple_inputs()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it accepts multiple inputs.
- block_setting: BlockSetting¶
- forward(*args: Any, **kwargs: Any) Any¶
Defines the computation performed at every call.
Should be overridden by all subclasses.
Note
Although the recipe for forward pass needs to be defined within this function, one should call the
Moduleinstance afterwards instead of this since the former takes care of running the registered hooks while the latter silently ignores them.
- static get_name()¶
Abstract method to be overridden by the subclass. It shoud return str indicating its name.
- static is_trainable()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it is trainable.
- training: bool¶
- static uses_support()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it uses support inputs (sparse matrices).
siml.networks.tcn module¶
- class siml.networks.tcn.EquivariantTCN(block_setting)¶
Bases:
SimlModuleE(n)-equivariant TCN layer.
- static accepts_multiple_inputs()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it accepts multiple inputs.
- block_setting: BlockSetting¶
- static get_name()¶
Abstract method to be overridden by the subclass. It shoud return str indicating its name.
- static is_trainable()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it is trainable.
- training: bool¶
- static uses_support()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it uses support inputs (sparse matrices).
- class siml.networks.tcn.TCN(block_setting)¶
Bases:
SimlModuleTemporal Convolutional Networks (TCN) https://arxiv.org/abs/1803.01271 .
- static accepts_multiple_inputs()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it accepts multiple inputs.
- block_setting: BlockSetting¶
- static get_name()¶
Abstract method to be overridden by the subclass. It shoud return str indicating its name.
- static is_trainable()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it is trainable.
- training: bool¶
- static uses_support()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it uses support inputs (sparse matrices).
siml.networks.tensor_operations module¶
- class siml.networks.tensor_operations.Contraction(block_setting)¶
Bases:
SimlModuleContraction block.
- static accepts_multiple_inputs()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it accepts multiple inputs.
- block_setting: BlockSetting¶
- forward(*args: Any, **kwargs: Any) Any¶
Defines the computation performed at every call.
Should be overridden by all subclasses.
Note
Although the recipe for forward pass needs to be defined within this function, one should call the
Moduleinstance afterwards instead of this since the former takes care of running the registered hooks while the latter silently ignores them.
- static get_name()¶
Abstract method to be overridden by the subclass. It shoud return str indicating its name.
- static is_trainable()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it is trainable.
- training: bool¶
- static uses_support()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it uses support inputs (sparse matrices).
- class siml.networks.tensor_operations.EquivariantMLP(block_setting)¶
Bases:
SimlModuleE(n) equivariant MLP block.
- static accepts_multiple_inputs()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it accepts multiple inputs.
- block_setting: BlockSetting¶
- static get_name()¶
Abstract method to be overridden by the subclass. It shoud return str indicating its name.
- static is_trainable()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it is trainable.
- training: bool¶
- static uses_support()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it uses support inputs (sparse matrices).
- class siml.networks.tensor_operations.TensorProduct(block_setting)¶
Bases:
SimlModuleTensor product block.
- static accepts_multiple_inputs()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it accepts multiple inputs.
- block_setting: BlockSetting¶
- forward(*args: Any, **kwargs: Any) Any¶
Defines the computation performed at every call.
Should be overridden by all subclasses.
Note
Although the recipe for forward pass needs to be defined within this function, one should call the
Moduleinstance afterwards instead of this since the former takes care of running the registered hooks while the latter silently ignores them.
- static get_name()¶
Abstract method to be overridden by the subclass. It shoud return str indicating its name.
- static is_trainable()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it is trainable.
- training: bool¶
- static uses_support()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it uses support inputs (sparse matrices).
siml.networks.threshold module¶
- class siml.networks.threshold.Threshold(block_setting)¶
Bases:
SimlModule- DEFALUT_THRESHOLD = 0.0¶
- static accepts_multiple_inputs()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it accepts multiple inputs.
- block_setting: BlockSetting¶
- forward(*args: Any, **kwargs: Any) Any¶
Defines the computation performed at every call.
Should be overridden by all subclasses.
Note
Although the recipe for forward pass needs to be defined within this function, one should call the
Moduleinstance afterwards instead of this since the former takes care of running the registered hooks while the latter silently ignores them.
- static get_name()¶
Abstract method to be overridden by the subclass. It shoud return str indicating its name.
- static is_trainable()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it is trainable.
- training: bool¶
- static uses_support()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it uses support inputs (sparse matrices).
siml.networks.time_norm module¶
- class siml.networks.time_norm.TimeNorm(block_setting)¶
Bases:
SimlModuleNormalization for time series data which makes x[t=0, …] = 0.
- static accepts_multiple_inputs()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it accepts multiple inputs.
- block_setting: BlockSetting¶
- forward(*args: Any, **kwargs: Any) Any¶
Defines the computation performed at every call.
Should be overridden by all subclasses.
Note
Although the recipe for forward pass needs to be defined within this function, one should call the
Moduleinstance afterwards instead of this since the former takes care of running the registered hooks while the latter silently ignores them.
- static get_name()¶
Abstract method to be overridden by the subclass. It shoud return str indicating its name.
- static is_trainable()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it is trainable.
- training: bool¶
- static uses_support()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it uses support inputs (sparse matrices).
siml.networks.translator module¶
- class siml.networks.translator.Translator(block_setting)¶
Bases:
SimlModuleTranslation block.
- static accepts_multiple_inputs()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it accepts multiple inputs.
- block_setting: BlockSetting¶
- static get_name()¶
Abstract method to be overridden by the subclass. It shoud return str indicating its name.
- static is_trainable()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it is trainable.
- training: bool¶
- static uses_support()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it uses support inputs (sparse matrices).
siml.networks.upper_limit module¶
- class siml.networks.upper_limit.UpperLimit(block_setting)¶
Bases:
SimlModule- static accepts_multiple_inputs()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it accepts multiple inputs.
- block_setting: BlockSetting¶
- forward(*args: Any, **kwargs: Any) Any¶
Defines the computation performed at every call.
Should be overridden by all subclasses.
Note
Although the recipe for forward pass needs to be defined within this function, one should call the
Moduleinstance afterwards instead of this since the former takes care of running the registered hooks while the latter silently ignores them.
- static get_name()¶
Abstract method to be overridden by the subclass. It shoud return str indicating its name.
- static is_trainable()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it is trainable.
- training: bool¶
- static uses_support()¶
Abstract method to be overridden by the subclass. It shoud return bool indicating if it uses support inputs (sparse matrices).