Skip to content

LinearAutoencoder

svetlanna.networks.LinearAutoencoder

LinearAutoencoder(
    encoder_elements: Iterable[Element],
    decoder_elements: Iterable[Element],
)

Bases: Module

A simple autoencoder network consisting of consistent encoder and decoder for a simultaneous training.

Parameters:

  • encoder_elements (Iterable[Element]) –

    The encoder elements.

  • decoder_elements (Iterable[Element]) –

    The decoder elements.

Examples:

import svetlanna as sv
from svetlanna.visualization import show_structure

sim_params = ...

linear_autoencoder = sv.networks.LinearAutoencoder(
    encoder_elements=(
        sv.elements.FreeSpace(
            simulation_parameters=sim_params, distance=0.1, method="AS"
        ),
        sv.elements.ThinLens(simulation_parameters=sim_params, focal_length=0.1),
        sv.elements.FreeSpace(
            simulation_parameters=sim_params, distance=0.1, method="AS"
        ),
    ),
    decoder_elements=(
        sv.elements.FreeSpace(
            simulation_parameters=sim_params, distance=0.1, method="AS"
        ),
    )
)

show_structure(linear_autoencoder)
Output (in IPython environment):

encode

encode(input_wavefront: Wavefront) -> Wavefront

Propagation through the encoder part - encode a wavefront (input).

Returns:

decode

decode(wavefront_encoded: Wavefront) -> Wavefront

Propagation through the decoder part - decode an encoded wavefront.

Returns: