class_docstr: Softmax activation function.
  
  Example without mask:
  
  >>> inp = np.asarray([1., 2., 1.])
  >>> layer = tf.keras.layers.Softmax()
  >>> layer(inp).numpy()
  array([0.21194157, 0.5761169 , 0.21194157], dtype=float32)
  >>> mask = np.asarray([True, False, True], dtype=bool)
  >>> layer(inp, mask).numpy()
  array([0.5, 0. , 0.5], dtype=float32)
  
  Input shape:
    Arbitrary. Use the keyword argument `input_shape`
    (tuple of integers, does not include the samples axis)
    when using this layer as the first layer in a model.
  
  Output shape:
    Same shape as the input.
  
  Args:
    axis: Integer, or list of Integers, axis along which the softmax
      normalization is applied.
  Call arguments:
    inputs: The inputs, or logits to the softmax layer.
    mask: A boolean mask of the same shape as `inputs`. Defaults to `None`. The
      mask specifies 1 to keep and 0 to mask.
  
  Returns:
    softmaxed output with the same shape as `inputs`.
class_docstr_tok: ["Softmax","activation","function",".","Example","without","mask",":",">",">",">","inp","=","np.asarray","(","[","1.",",","2.",",","1",".","]",")",">",">",">","layer","=","tf.keras.layers.Softmax","(",")",">",">",">","layer","(","inp",")",".numpy","(",")","array","(","[","0.21194157",",","0.5761169",",","0.21194157","]",",","dtype=float32",")",">",">",">","mask","=","np.asarray","(","[","True",",","False",",","True","]",",","dtype=bool",")",">",">",">","layer","(","inp",",","mask",")",".numpy","(",")","array","(","[","0.5",",","0.",",","0.5","]",",","dtype=float32",")","Input","shape",":","Arbitrary",".","Use","the","keyword","argument","`","input_shape","`","(","tuple","of","integers",",","does","not","include","the","samples","axis",")","when","using","this","layer","as","the","first","layer","in","a","model",".","Output","shape",":","Same","shape","as","the","input",".","Args",":","axis",":","Integer",",","or","list","of","Integers",",","axis","along","which","the","softmax","normalization","is","applied",".","Call","arguments",":","inputs",":","The","inputs",",","or","logits","to","the","softmax","layer",".","mask",":","A","boolean","mask","of","the","same","shape","as","`","inputs","`",".","Defaults","to","`","None","`",".","The","mask","specifies","1","to","keep","and","0","to","mask",".","Returns",":","softmaxed","output","with","the","same","shape","as","`","inputs","`","."]
code: def compute_output_shape(self, input_shape):
      return input_shape
  
imports: from tensorflow.python.framework import dtypes
  from tensorflow.python.keras import backend
  from tensorflow.python.keras import constraints
  from tensorflow.python.keras import initializers
  from tensorflow.python.keras import regularizers
  from tensorflow.python.keras.engine.base_layer import Layer
  from tensorflow.python.keras.engine.input_spec import InputSpec
  from tensorflow.python.keras.utils import tf_utils
  from tensorflow.python.ops import math_ops
label_desc: Use image node_id 4 for calling the Softmax obj's underlying member method code with example usage: obj.compute_output_shape(input_shape) and returns: input_shape