code: def dlogpdf_dtheta(self, f, y, Y_metadata=None):
          
          if self.size > 0:
              if self.not_block_really:
                  raise NotImplementedError("Need to make a decorator for this!")
              if isinstance(self.gp_link, link_functions.Identity):
                  return self.dlogpdf_link_dtheta(f, y, Y_metadata=Y_metadata)
              else:
                  inv_link_f = self.gp_link.transf(f)
                  return self.dlogpdf_link_dtheta(inv_link_f, y, Y_metadata=Y_metadata)
          else:
              # There are no parameters so return an empty array for derivatives
              return np.zeros((0, f.shape[0], f.shape[1]))
docs: TODO: Doc strings