class_docstr: Scatter ``updates`` to ``data`` at locations ``indices`` along ``axis`` dimension
  using ``mode`` operation.
  
  Example: ``mode == update``.
  
  * For ``i`` in ``[0, len(indices)]``:
  
  .. math::
     idx = indices[p_0, ..., p_{axis-1}, i, p_{axis+1}, ..., p_D]
  .. math::
     output[p_0, ..., p_{axis-1}, idx, p_{axis+1}, ..., p_D] =
  .. math::
     updates[p_0, ..., p_{axis-1}, i, p_{axis+1}, ..., p_D]
  
  * For ``j! = i``:
  
  .. math::
     output[p_0, ..., p_{axis-1}, j, p_{axis+1}, ..., p_D] =
  .. math::
     data[p_0, ..., p_{axis-1}, j, p_{axis+1}, ..., p_D]
  
  Example: ``mode == add``.
  
  * For ``i`` in ``[0, len(indices)]``:
  
  .. math::
     idx = indices[p_0, ..., p_{axis-1}, i, p_{axis+1}, ..., p_D]
  .. math::
     output[p_0, ..., p_{axis-1}, idx, p_{axis+1}, ..., p_D] =
  .. math::
     updates[p_0, ..., p_{axis-1}, i, p_{axis+1}, ..., p_D] +
  .. math::
     x[p_0, ..., p_{axis-1}, indice[i], p_{axis+1}, ..., p_D]
  
  * For ``j! = i``:
  
  .. math::
     output[p_0, ..., p_{axis-1}, j, p_{axis+1}, ..., p_D] =
  .. math::
     data[p_0, ..., p_{axis-1}, j, p_{axis+1}, ..., p_D]
  
  Parameters
  ----------
  data: tensor<\*D, T> (Required)
  indices: tensor<\*K, i32> (Required)
      * ``rank(indices) == rank(data)``.
  updates: tensor<\*K, T> (Required)
      * Must be the same shape as ``indices``.
  axis: const i32 (Optional)
      * Default to ``0``.
  mode: const string (Optional)
      * Default to ``add``.
      * Can be the following modes: ``update``, ``add``, ``sub``, ``mul``,
        ``div``, ``max``, ``min``.
  
  Returns
  -------
  tensor<\*D, T>
      * With the same type and shape as input ``x``.
  
  Attributes
  ----------
  T: fp16, fp32, i32
class_docstr_tok: ["Scatter","``","updates","``","to","``","data","``","at","locations","``","indices","``","along","``","axis","``","dimension","using","``","mode","``","operation",".","Example",":","``","mode","==","update","``",".","*","For","``","i","``","in","``","[","0",",","len","(","indices",")","]","``",":","..","math",":",":","idx","=","indices","[","p_0",",","...",",","p_","{","axis-1","}",",","i",",","p_","{","axis+1","}",",","...",",","p_D","]","..","math",":",":","output","[","p_0",",","...",",","p_","{","axis-1","}",",","idx",",","p_","{","axis+1","}",",","...",",","p_D","]","=","..","math",":",":","updates","[","p_0",",","...",",","p_","{","axis-1","}",",","i",",","p_","{","axis+1","}",",","...",",","p_D","]","*","For","``","j","!","=","i","``",":","..","math",":",":","output","[","p_0",",","...",",","p_","{","axis-1","}",",","j",",","p_","{","axis+1","}",",","...",",","p_D","]","=","..","math",":",":","data","[","p_0",",","...",",","p_","{","axis-1","}",",","j",",","p_","{","axis+1","}",",","...",",","p_D","]","Example",":","``","mode","==","add","``",".","*","For","``","i","``","in","``","[","0",",","len","(","indices",")","]","``",":","..","math",":",":","idx","=","indices","[","p_0",",","...",",","p_","{","axis-1","}",",","i",",","p_","{","axis+1","}",",","...",",","p_D","]","..","math",":",":","output","[","p_0",",","...",",","p_","{","axis-1","}",",","idx",",","p_","{","axis+1","}",",","...",",","p_D","]","=","..","math",":",":","updates","[","p_0",",","...",",","p_","{","axis-1","}",",","i",",","p_","{","axis+1","}",",","...",",","p_D","]","+","..","math",":",":","x","[","p_0",",","...",",","p_","{","axis-1","}",",","indice","[","i","]",",","p_","{","axis+1","}",",","...",",","p_D","]","*","For","``","j","!","=","i","``",":","..","math",":",":","output","[","p_0",",","...",",","p_","{","axis-1","}",",","j",",","p_","{","axis+1","}",",","...",",","p_D","]","=","..","math",":",":","data","[","p_0",",","...",",","p_","{","axis-1","}",",","j",",","p_","{","axis+1","}",",","...",",","p_D","]","Parameters","--","--","--","--","--","data",":","tensor","<","\\","*","D",",","T",">","(","Required",")","indices",":","tensor","<","\\","*","K",",","i32",">","(","Required",")","*","``","rank","(","indices",")","==","rank","(","data",")","``",".","updates",":","tensor","<","\\","*","K",",","T",">","(","Required",")","*","Must","be","the","same","shape","as","``","indices","``",".","axis",":","const","i32","(","Optional",")","*","Default","to","``","0","``",".","mode",":","const","string","(","Optional",")","*","Default","to","``","add","``",".","*","Can","be","the","following","modes",":","``","update","``",",","``","add","``",",","``","sub","``",",","``","mul","``",",","``","div","``",",","``","max","``",",","``","min","``",".","Returns","--","--","--","-","tensor","<","\\","*","D",",","T",">","*","With","the","same","type","and","shape","as","input","``","x","``",".","Attributes","--","--","--","--","--","T",":","fp16",",","fp32",",","i32"]
code: def default_inputs(self):
      return DefaultInputs(
          axis=0,
          mode="add",
      )
  
imports: import numpy
  from coremltools.converters.mil.mil import Operation, types
  from coremltools.converters.mil.mil.input_type import DefaultInputs, InputSpec, TensorInputType
  from coremltools.converters.mil.mil.operation import SYMBOL, VALUE, precondition
  from coremltools.converters.mil.mil.ops.defs._op_reqs import register_op
  from coremltools.converters.mil.mil.ops.defs._utils import compute_gather
  from coremltools.converters.mil.mil.types.symbolic import is_compatible_symbolic_vector
label_desc: Use image node_id 1 for calling the scatter_along_axis obj's underlying member method code with example usage: obj.default_inputs() and returns: DefaultInputs