SimpleReservoir
svetlanna.networks.SimpleReservoir
SimpleReservoir(
nonlinear_element: LinearOpticalSetupLike,
delay_element: LinearOpticalSetupLike,
feedback_gain: float,
input_gain: float,
delay: int,
)
Bases: Module
Reservoir network. The main idea is explained in the work. The governing formula is: $$ x_\text{out}[i] = F_\text{NL}(\beta x_\text{in}[i] + \alpha F_\text{D}(x_\text{out}[i-\tau])) $$ where \(F_\text{NL}\) is the nonlinear element, \(F_\text{D}\) is the delay element, \(\alpha\) is the feedback_gain, \(\beta\) is the input_gain, \(\tau\) is the delay in samples. The user should match the delay in samples with the actual light propagation time in \(F_\text{D}\).
Parameters:
-
nonlinear_element(LinearOpticalSetupLike) –The nonlinear element the light passes through.
-
delay_element(LinearOpticalSetupLike) –The delay line element.
-
feedback_gain(float) –The feedback (delay line) gain \(\alpha\).
-
input_gain(float) –The input gain \(\beta\)
-
delay(int) –The delay time, measured in samples, that the light spends in the delay line.
Examples:
append_feedback_queue
append_feedback_queue(field: Wavefront)
Append a new wavefront to the feedback queue.
Parameters:
-
field(Wavefront) –The new wavefront to be added to the end of the queue.