docs: def compile(self, session=None):
          """
          Before calling the standard compile function, check to see if the size
          of the data has changed and add parameters appropriately.
  
          This is necessary because the shape of the parameters depends on the
          shape of the data.
          """
          if not self.num_data == self.X.shape[0]:
              self.num_data = self.X.shape[0]
              self.V = Parameter(np.zeros((self.num_data, self.num_latent)))
              self.V.prior = Gaussian(0., 1.)
  
          return super(GPMC, self).compile(session=session)