Skip to content

ConvDiffNetwork4F

svetlanna.networks.ConvLayer4F

ConvLayer4F(
    simulation_parameters: SimulationParameters,
    focal_length: OptimizableFloat,
    conv_diffractive_mask: OptimizableTensor,
    conv_mask_norm: float = 2 * pi,
    fs_method: Literal["fresnel", "AS"] = "AS",
)

Bases: Module

Diffractive convolutional layer based on a 4f system.

Parameters:

  • simulation_parameters (SimulationParameters) –

    Simulation parameters.

  • focal_length (OptimizableFloat) –

    A focal length for ThinLens's in a 4f system.

  • conv_diffractive_mask (OptimizableTensor) –

    An initial mask for a DiffractiveLayer placed between two lenses in the system.

  • conv_mask_norm (float, default: 2 * pi ) –

    A normalization factor for the convolutional mask.

  • fs_method (Literal['fresnel', 'AS'], default: 'AS' ) –

    A method for FreeSpace's in the system.

Examples:

import svetlanna as sv
from svetlanna.visualization import show_structure

sim_params = ...

conv_layer_4f = ConvLayer4F(
    simulation_parameters=sim_params,
    focal_length=0.1,
    conv_diffractive_mask=torch.rand(sim_params.axis_sizes(("y", "x"))),
)

show_structure(conv_layer_4f)
Output (in IPython environment):

svetlanna.networks.ConvDiffNetwork4F

ConvDiffNetwork4F(
    simulation_parameters: SimulationParameters,
    network_elements: Iterable[Element],
    focal_length: OptimizableFloat,
    conv_diffractive_mask: OptimizableTensor,
    conv_mask_norm: float = 2 * pi,
    fs_method: Literal["fresnel", "AS"] = "AS",
)

Bases: Module

A simple convolutional network with a 4f system as an optical convolutional layer. It consists of a ConvLayer4F and a LinearOpticalSetup after it.

Parameters:

  • simulation_parameters (SimulationParameters) –

    Simulation parameters.

  • network_elements (Iterable[Element]) –

    List of Elements for a Network after a convolutional layer (4f system).

  • focal_length (OptimizableFloat) –

    A focal length for ThinLens's in a 4f system.

  • conv_diffractive_mask (OptimizableTensor) –

    An initial mask for a DiffractiveLayer placed between two lenses in the system.

  • conv_mask_norm (float, default: 2 * pi ) –

    A normalization factor for the convolutional mask.

  • fs_method (Literal['fresnel', 'AS'], default: 'AS' ) –

    A method for FreeSpace's in the system.

Examples:

import svetlanna as sv
from svetlanna.visualization import show_structure

sim_params = ...

conv_diff_network_4f = ConvDiffNetwork4F(
    simulation_parameters=sim_params,
    network_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"
        ),
    ),
    focal_length=0.1,
    conv_diffractive_mask=torch.rand(sim_params.axis_sizes(("y", "x"))),
)

show_structure(conv_diff_network_4f)
Output (in IPython environment):