parameters: (self, *args, **kwargs)
docstring: Infers the type of all arguments and all outputs, given the known types
          for some arguments.
  
          This function takes the known types of some arguments in either positional way
          or keyword argument way as input. It returns a tuple of `None` values
          if there is not enough information to deduce the missing types.
  
          Inconsistencies in the known types will cause an error to be raised.
  
          Example
          -------
          >>> a = mx.sym.var('a')
          >>> b = mx.sym.var('b')
          >>> c = a + b
          >>> arg_types, out_types, aux_types = c.infer_type(a='float32')
          >>> arg_types
          [<type 'numpy.float32'>, <type 'numpy.float32'>]
          >>> out_types
          [<type 'numpy.float32'>]
          >>> aux_types
          []
  
          Parameters
          ----------
          *args :
              Type of known arguments in a positional way.
              Unknown type can be marked as None.
  
          **kwargs :
              Keyword arguments of known types.
  
          Returns
          -------
          arg_types : list of numpy.dtype or None
              List of argument types.
              The order is same as the order of list_arguments().
          out_types : list of numpy.dtype or None
              List of output types.
              The order is same as the order of list_outputs().
          aux_types : list of numpy.dtype or None
              List of auxiliary state types.
              The order is same as the order of list_auxiliary_states().
docstring_summary: Infers the type of all arguments and all outputs, given the known types
          for some arguments.
docstring_tokens: Infers the type of all arguments and all outputs given the known types for some arguments .
function: def infer_type(self, *args, **kwargs):
          """Infers the type of all arguments and all outputs, given the known types
          for some arguments.
  
          This function takes the known types of some arguments in either positional way
          or keyword argument way as input. It returns a tuple of `None` values
          if there is not enough information to deduce the missing types.
  
          Inconsistencies in the known types will cause an error to be raised.
  
          Example
          -------
          >>> a = mx.sym.var('a')
          >>> b = mx.sym.var('b')
          >>> c = a + b
          >>> arg_types, out_types, aux_types = c.infer_type(a='float32')
          >>> arg_types
          [<type 'numpy.float32'>, <type 'numpy.float32'>]
          >>> out_types
          [<type 'numpy.float32'>]
          >>> aux_types
          []
  
          Parameters
          ----------
          *args :
              Type of known arguments in a positional way.
              Unknown type can be marked as None.
  
          **kwargs :
              Keyword arguments of known types.
  
          Returns
          -------
          arg_types : list of numpy.dtype or None
              List of argument types.
              The order is same as the order of list_arguments().
          out_types : list of numpy.dtype or None
              List of output types.
              The order is same as the order of list_outputs().
          aux_types : list of numpy.dtype or None
              List of auxiliary state types.
              The order is same as the order of list_auxiliary_states().
          """
          try:
              res = self._infer_type_impl(False, *args, **kwargs)
              if res[1] is None:
                  arg_shapes, _, _ = self._infer_type_impl(True, *args, **kwargs)
                  arg_names = self.list_arguments()
                  unknowns = []
                  for name, dtype in zip(arg_names, arg_shapes):
                      if not dtype:
                          if len(unknowns) >= 10:
                              unknowns.append('...')
                              break
                          unknowns.append('%s: %s' % (name, str(dtype)))
                  warnings.warn(
                      "Cannot decide type for the following arguments. " +
                      "Consider providing them as input:\n\t" +
                      "\n\t".join(unknowns), stacklevel=2)
              return res
          except MXNetError:
              print("infer_type error. Arguments:")
              for i, arg in enumerate(args):
                  print("  #%d: %s" % (i, arg))
              for k, v in kwargs.items():
                  print("  %s: %s" % (k, v))
              raise
function_tokens: def infer_type ( self , * args , * * kwargs ) : try : res = self . _infer_type_impl ( False , * args , * * kwargs ) if res [ 1 ] is None : arg_shapes , _ , _ = self . _infer_type_impl ( True , * args , * * kwargs ) arg_names = self . list_arguments ( ) unknowns = [ ] for name , dtype in zip ( arg_names , arg_shapes ) : if not dtype : if len ( unknowns ) >= 10 : unknowns . append ( '...' ) break unknowns . append ( '%s: %s' % ( name , str ( dtype ) ) ) warnings . warn ( "Cannot decide type for the following arguments. " + "Consider providing them as input:\n\t" + "\n\t" . join ( unknowns ) , stacklevel = 2 ) return res except MXNetError : print ( "infer_type error. Arguments:" ) for i , arg in enumerate ( args ) : print ( "  #%d: %s" % ( i , arg ) ) for k , v in kwargs . items ( ) : print ( "  %s: %s" % ( k , v ) ) raise