(x, klen=-1)
return x
perform relative shift to form the relative attention score.
perform relative shift to form the relative attention score.
perform relative shift to form the relative attention score .
def rel_shift(x, klen=-1):
  """perform relative shift to form the relative attention score."""
  x_size = tf.shape(x)

  x = tf.reshape(x, [x_size[1], x_size[0], x_size[2], x_size[3]])
  x = tf.slice(x, [1, 0, 0, 0], [-1, -1, -1, -1])
  x = tf.reshape(x, [x_size[0], x_size[1] - 1, x_size[2], x_size[3]])
  x = tf.slice(x, [0, 0, 0, 0], [-1, klen, -1, -1])

  return x
def rel_shift ( x , klen = - 1 ) : x_size = tf . shape ( x ) x = tf . reshape ( x , [ x_size [ 1 ] , x_size [ 0 ] , x_size [ 2 ] , x_size [ 3 ] ] ) x = tf . slice ( x , [ 1 , 0 , 0 , 0 ] , [ - 1 , - 1 , - 1 , - 1 ] ) x = tf . reshape ( x , [ x_size [ 0 ] , x_size [ 1 ] - 1 , x_size [ 2 ] , x_size [ 3 ] ] ) x = tf . slice ( x , [ 0 , 0 , 0 , 0 ] , [ - 1 , klen , - 1 , - 1 ] ) return x