class_docstr: Black Box Variational Inference
  
  Parameters
  ----------
  neg_posterior : function
      posterior function
  
  q : List
      list holding distribution objects
  
  sims : int
      Number of Monte Carlo sims for the gradient
  
  step : float
      Step size for RMSProp
  
  iterations: int
      How many iterations to run
  
  record_elbo : boolean
      Whether to record the ELBO at every iteration
  
  quiet_progress : boolean
      Whether to print progress or stay quiet
docstr: The gradients of the approximating distributions
docstr_tok: ["The","gradients","of","the","approximating","distributions"]
code: def grad_log_q(self, z):
      """
      The gradients of the approximating distributions
      """
      param_count = 0
      grad = np.zeros((np.sum(self.approx_param_no), self.sims))
      for core_param in range(len(self.q)):
          for approx_param in range(self.q[core_param].param_no):
              grad[param_count] = self.q[core_param].vi_score(
                  z[core_param], approx_param
              )
              param_count += 1
      return grad
  
imports: import sys
  import numpy
  import scipy.stats
  from .stoch_optim import RMSProp, ADAM
  from .bbvi_routines import alpha_recursion, log_p_posterior, mb_log_p_posterior
label_desc: Use image node_id 12 for calling the BBVI obj's underlying member method code with example usage: obj.grad_log_q(z) and returns: grad