Simulators with Tensorflow support#
Pure Fock Simulator and Tensorflow#
Performs photonic simulations using Fock representation with pure states.
This simulator is similar to
PureFockSimulator, but it
calculates with Tensorflow to enable calculating the gradient.
The simulation (when executed) results in an instance of
PureFockState.
Note
Non-deterministic operations like
ParticleNumberMeasurement are
non-differentiable, please use a deterministic attribute of the resulting state
instead.
Example usage:
import tensorflow as tf
r = tf.Variable(0.43)
simulator = pq.TensorflowPureFockSimulator(d=1)
with pq.Program() as program:
pq.Q() | pq.Vacuum()
pq.Q(0) | pq.Displacement(r=r)
with tf.GradientTape() as tape:
state = simulator.execute(program).state
mean = state.mean_photon_number()
gradient = tape.gradient(mean, [r])
- Supported preparations:
- Supported gates:
Interferometer,Beamsplitter,Phaseshifter,MachZehnder,Fourier,Kerr,CrossKerr,CubicPhase,GaussianTransform,Squeezing,QuadraticPhase,Squeezing2,ControlledX,ControlledZ,Displacement,PositionDisplacement,MomentumDisplacement.- Supported measurements:
ParticleNumberMeasurement(non-differentiable).- Supported channels:
Attenuator(non-differentiable).