code: def UnPooling2x2ZeroFilled(x):
      # https://github.com/tensorflow/tensorflow/issues/2169
      out = tf.concat([x, tf.zeros_like(x)], 3)
      out = tf.concat([out, tf.zeros_like(out)], 2)
  
      sh = x.get_shape().as_list()
      if None not in sh[1:]:
          out_size = [-1, sh[1] * 2, sh[2] * 2, sh[3]]
          return tf.reshape(out, out_size)
      else:
          shv = tf.shape(x)
          ret = tf.reshape(
              out, tf.stack([-1, shv[1] * 2, shv[2] * 2, sh[3]])
          )
          return ret
  
file_path: tensorpack/tensorpack/models/pool.py
imports: import numpy
  from ..compat import tfv1
  from ..utils.argtools import get_data_format, shape2d
  from .common import layer_register
  from .shape_utils import StaticDynamicShape
  from .tflayer import convert_to_tflayer_args
label_desc: Use image node_id 4 for calling a global function with example usage: UnPooling2x2ZeroFilled(x) and returns: tf, ret