code: def tpe_cat_pseudocounts(counts, upper, prior_weight, p, size):
      if size == 0 or np.prod(size) == 0:
          return []
      if p.ndim == 2:
          assert np.all(p == p[0])
          p = p[0]
      pseudocounts = counts + upper * (prior_weight * p)
      return old_div(pseudocounts, np.sum(pseudocounts))
  
imports: from __future__ import print_function
  from __future__ import absolute_import
  from __future__ import division
  from builtins import str
  from builtins import map
  from builtins import zip
  from builtins import range
  from past.utils import old_div
  import logging
  import time
  import numpy
  from scipy.special import erf
  from .None import pyll
  from .pyll import scope
  from .pyll.stochastic import implicit_stochastic
  from .base import miscs_to_idxs_vals
  from .base import miscs_update_idxs_vals
  from .None import rand
label_desc: Use image node_id 24 for calling a global function with example usage: tpe_cat_pseudocounts(counts, upper, prior_weight, p, size) and returns: old_div, list