class_docstr: Soft alignment attention implement.
  
  Attributes:
      dim (int): attention hidden dim
docstr: Compute shape of output tensor
  
  Args:
      input_shape (tuple): shape of input tensor.
  
  Returns:
      tuple: shape of output tensor.
docstr_tok: ["Compute","shape","of","output","tensor","Args",":","input_shape","(","tuple",")",":","shape","of","input","tensor",".","Returns",":","tuple",":","shape","of","output","tensor","."]
code: def compute_output_shape(self, input_shape):
      """Compute shape of output tensor
  
      Args:
          input_shape (tuple): shape of input tensor.
  
      Returns:
          tuple: shape of output tensor.
      """
      return input_shape[0], input_shape[-1]
  
imports: import tensorflow.compat.v1.keras
  from tensorflow.compat.v1.linalg import einsum
  from tensorflow.compat.v1.keras import layers
  from tensorflow.compat.v1.keras import backend
label_desc: Use image node_id 5 for calling the AttLayer2 obj's underlying member method code with example usage: obj.compute_output_shape(input_shape) and returns: input_shape,  input_shape