Module dlkoopman.nets
Neural nets used inside the models.
Classes
class AutoEncoder (input_size, encoded_size, encoder_hidden_layers=[], decoder_hidden_layers=[], batch_norm=False)
-
AutoEncoder neural net. Contains an encoder connected to a decoder, both are multi-layer perceptrons.
Parameters
-
input_size (int) - Number of dimensions in original data (encoder input) and reconstructed data (decoder output).
-
encoded_size (int) - Number of dimensions in encoded data (encoder output and decoder input).
-
encoder_hidden_layers (list[int], optional) - Encoder will have layers =
[input_size, *encoder_hidden_layers, encoded_size]
. If not set, defaults to reverse ofdecoder_hidden_layers
. If that is also not set, defaults to[]
. -
decoder_hidden_layers (list[int], optional) - Decoder has layers =
[encoded_size, *decoder_hidden_layers, input_size]
. If not set, defaults to reverse ofencoder_hidden_layers
. If that is also not set, defaults to[]
. -
batch_norm (bool, optional): Whether to use batch normalization.
Attributes
-
encoder - Encoder neural net.
-
decoder - Decoder neural net.
Methods
def forward(self, X) ‑> tuple[torch.Tensor, torch.Tensor]
-
Forward propagation of neural net.
Parameters
- X (torch.Tensor, shape=(*,input_size)) - Input data to encoder.
Returns
-
Y (torch.Tensor, shape=(*,encoded_size)) - Encoded data, i.e. output from encoder, input to decoder.
-
Xr (torch.Tensor, shape=(*,input_size)) - Reconstructed data, i.e. output of decoder.
-
class Knet (size)
-
Linear neural net to approximate the Koopman matrix.
Contains identically sized input and output layers, no hidden layers, no bias vector, and no activation function.
Parameters
- size (int) - Dimension of the input and output layer.
Attributes
- net (torch.nn.ModuleList) - The neural net.
Methods
def forward(self, X) ‑> torch.Tensor
-
Forward propagation of neural net.
Parameters
- X (torch.Tensor, shape=(*, size)) - Input data to net.
Returns
- X (torch.Tensor, shape=(*, size)) - Output data from net.