code: def _outer_values_update(self, full_values):
          
          super(BayesianGPLVMMiniBatch, self)._outer_values_update(full_values)
          if self.has_uncertain_inputs():
              meangrad_tmp, vargrad_tmp = self.kern.gradients_qX_expectations(
                                              variational_posterior=self.X,
                                              Z=self.Z, dL_dpsi0=full_values['dL_dpsi0'],
                                              dL_dpsi1=full_values['dL_dpsi1'],
                                              dL_dpsi2=full_values['dL_dpsi2'],
                                              psi0=self.psi0, psi1=self.psi1, psi2=self.psi2)
  
              self.X.mean.gradient = meangrad_tmp
              self.X.variance.gradient = vargrad_tmp
          else:
              self.X.gradient = self.kern.gradients_X(full_values['dL_dKnm'], self.X, self.Z)
              self.X.gradient += self.kern.gradients_X_diag(full_values['dL_dKdiag'], self.X)
docs: Here you put the values, which were collected before in the right places.
          E.g. set the gradients of parameters, etc.