class_docstr: **Base class for Variational Inference**
  
  Communicates Operator, Approximation and Test Function to build Objective Function
  
  Parameters
  ----------
  op : Operator class    #:class:`~pymc.variational.operators`
  approx : Approximation class or instance    #:class:`~pymc.variational.approximations`
  tf : TestFunction instance  #?
  model : Model
      PyMC Model
  kwargs : kwargs passed to :class:`Operator` #:class:`~pymc.variational.operators`, optional
code: def _maybe_score(self, score):
      returns_loss = self.objective.op.returns_loss
      if score is None:
          score = returns_loss
      elif score and not returns_loss:
          warnings.warn(
              "method `fit` got `score == True` but %s "
              "does not return loss. Ignoring `score` argument"
              % self.objective.op
          )
          score = False
      else:
          pass
      return score
  
imports: import collections
  import logging
  import warnings
  import numpy
  from fastprogress.fastprogress import progress_bar
  import pymc
  from pymc.variational import test_functions
  from pymc.variational.approximations import Empirical, FullRank, MeanField
  from pymc.variational.operators import KL, KSD
label_desc: Use image node_id 2 for calling the Inference obj's underlying member method code with example usage: obj._maybe_score(score) and returns: score