code: def gaussian2D(shape, sigma=1):
      m, n = [(ss - 1.0) / 2.0 for ss in shape]
      y = paddle.arange(-m, m + 1, dtype="float32")[:, None]
      x = paddle.arange(-n, n + 1, dtype="float32")[None, :]
      # y, x = np.ogrid[-m:m + 1, -n:n + 1]
  
      h = paddle.exp(-(x * x + y * y) / (2 * sigma * sigma))
      h[h < np.finfo(np.float32).eps * h.max()] = 0
      return h
  
imports: import copy
  import numpy
  import paddle
  import paddle.nn
  import paddle.nn.functional
  from ppdet.core.workspace import register
  import paddle.distributed
  from ..transformers.petr_transformer import inverse_sigmoid, masked_fill
  from ..initializer import constant_, normal_
  from functools import partial
label_desc: Use image node_id 5 for calling a global function with example usage: gaussian2D(shape, sigma) and returns: h