Add Simulation module that returns the gradient for a specified variable on call
Short description of desired functionality:
Subclass of SimulationBase that overloads __call__
function with signature (dataset, variables_to_observe, **kwargs) and returns the gradients to the observed variables along with the simulated results.
New definitions:
class DifferentiableSimulation
Implementation Idea:
Overload __call__
function and use tf.GradientTape to record the gradients.
To keep memory-footprint feasible manually accumulate gradients for the summation of the fourier encoding.
Potential conflicts:
Test concept:
Edited by Jonathan Weine