Open
Description
In RandomVariable.make_node
, return theano.gof.Apply(self, inputs, (rng.type(), out_var, log_lik))
—where log_lik
is a graph of the log-likelihood for the given RV. This addition will allow RandomVariable
s to represent both measure and sample-space graphs.
In this case, a random variable's—e.g. rv
—complete log-likelihood would always be available as rv.owner.outputs[-1]
.
Since owner information needs to be attached to Op
outputs, we can't take that approach (e.g. some log-likelihoods may be constants). Instead, we should simply provide a logp
function that constructs the measure-space graph for a given RandomVariable
output using its RandomVariable.logp
implementation.