class_docstr: Gather slices from ``x`` according to ``indices``, similar to ``tf.gather_nd``.
  
  ``indices`` is an K-dim tensor, where ``indices[i_0,...,i_{K-2}]`` defines a slice of ``x``:
  
  ``output[i_0, ..., i_{K-2}]= x[indices[i_0, ..., i_{K-2}]]``
  
  where ``K = rank(indices)`` , and ``x[indices[i_0, ..., i_{K-2}]]`` has rank ``rank(x) - indices.shape[-1]``.
  
  Parameters
  ----------
  * x: tensor<*D,T>  (Required)
  * indices: tensor<*K,i32> (Required)
  
  Returns
  -------
  * tensor<*V,T>
      * V = K[:-1] + D[K[-1]:], where ``D = x.shape`` and ``K = indices.shape``.
  
  Attributes
  ----------
  T: fp32
code: def type_inference(self):
      assert self.indices.shape[-1] <= self.x.rank
      out_type = self.x.dtype
      out_shape = (
          self.indices.shape[:-1]
          + self.x.shape[self.indices.shape[-1] :]
      )
      return types.tensor(out_type, out_shape)
  
imports: from coremltools.converters.mil.mil import SYMBOL, VALUE
  from coremltools.converters.mil.mil.types.symbolic import is_compatible_symbolic_vector
  from ._op_reqs import *
  import numbers
label_desc: Use image node_id 2 for calling the gather_nd obj's underlying member method code with example usage: obj.type_inference() and returns: types