code: def _run(self, X, axis=None):  # type: ignore
      axis = axis or self.axis  # type: ignore
      tmp = X - X.max(axis=axis, keepdims=1)  # type: ignore
      Y = np.exp(tmp)
      Y /= Y.sum(axis=axis, keepdims=1)  # type: ignore
      return (Y.astype(X.dtype),)
  
imports: import numpy
  from onnx.reference.ops._op import OpRunUnaryNum
label_desc: Use image node_id 1 for calling the Softmax obj's underlying member method code with example usage: obj._run(X, axis) and returns: Y