docstr: Sinusoid position encoding table 
code: def _get_sinusoid_encoding_table(self, n_position, d_hid):
      """Sinusoid position encoding table"""
  
      def get_position_angle_vec(position):
          return [
              position / np.power(10000, 2 * (hid_j // 2) / d_hid)
              for hid_j in range(d_hid)
          ]
  
      sinusoid_table = np.array(
          [get_position_angle_vec(pos_i) for pos_i in range(n_position)]
      )
      sinusoid_table[:, 0::2] = np.sin(
          sinusoid_table[:, 0::2]
      )  # dim 2i
      sinusoid_table[:, 1::2] = np.cos(
          sinusoid_table[:, 1::2]
      )  # dim 2i+1
      sinusoid_table = paddle.to_tensor(sinusoid_table, dtype="float32")
      sinusoid_table = paddle.unsqueeze(sinusoid_table, axis=0)
      return sinusoid_table
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import paddle
  from paddle import ParamAttr
  import paddle.nn
  import paddle.nn.functional
  from paddle.nn.initializer import Normal, XavierNormal
  import numpy
label_desc: Use image node_id 2 for calling the PositionalEncoding obj's underlying member method code with example usage: obj._get_sinusoid_encoding_table(n_position, d_hid) and returns: sinusoid_table, unknown