parameters: (self, *args, **kwargs)
docstring: Call a Function, either on symbolic or numeric inputs.
  
             * If at least one input is a CNTK Function or Variable, then
               result is a CNTK Function object, with inputs bound to the arguments.
               This is a short-hand for `f.clone(share, argument_map(*args, **kwargs))`.
             * Otherwise, all arguments must be numbers, numpy arrays, or a :class:`~cntk.io.MinibatchData` instance.
               Then perform the actual computation and return the numeric result.
               This is a short-hand for `f.eval(argument_map(*args, **kwargs))`,
               except that there is no `device` parameter. If you need that, use `eval()` directly.
  
          Args:
              *args, **kwargs: The arguments to pass to the Function.
  
          Returns:
               In case of symbolic inputs, returns another CNTK Function object with inputs bound to the arguments.
               Otherwise returns a tuple of numpy arrays for tuple-valued Functions, and a single numpy array otherwise.
docstring_summary: Call a Function, either on symbolic or numeric inputs.
docstring_tokens: Call a Function either on symbolic or numeric inputs .
function: def __call__(self, *args, **kwargs):
          '''
          Call a Function, either on symbolic or numeric inputs.
  
             * If at least one input is a CNTK Function or Variable, then
               result is a CNTK Function object, with inputs bound to the arguments.
               This is a short-hand for `f.clone(share, argument_map(*args, **kwargs))`.
             * Otherwise, all arguments must be numbers, numpy arrays, or a :class:`~cntk.io.MinibatchData` instance.
               Then perform the actual computation and return the numeric result.
               This is a short-hand for `f.eval(argument_map(*args, **kwargs))`,
               except that there is no `device` parameter. If you need that, use `eval()` directly.
  
          Args:
              *args, **kwargs: The arguments to pass to the Function.
  
          Returns:
               In case of symbolic inputs, returns another CNTK Function object with inputs bound to the arguments.
               Otherwise returns a tuple of numpy arrays for tuple-valued Functions, and a single numpy array otherwise.
          '''
  
          # parse argument list and map to the function's input
          arg_map = self.argument_map(*args, **kwargs)
  
          # if placeholders were excluded due to being under construction,
          # we must include them in the argmap, otherwise they will be cloned
          for arg in self.arguments:
              if arg not in arg_map:
                  arg_map[arg] = arg
  
          # determine whether this is eval() or clone()
          is_symbolic = any(isinstance(arg, (cntk_py.Function, cntk_py.Variable)) for arg in arg_map.values())
  
          # symbolic: return a cloned Function
          # applying the function means to inline its piece of graph
          if is_symbolic:
              Function._replace_args_type_check(arg_map)
              return self.clone(CloneMethod.share, arg_map)
  
          # numeric: evaluate
          outputs = self.outputs
          _, output_map = self.forward(arg_map, outputs)
          assert len(output_map) == len(outputs), (output_map, outputs)
          if len(output_map) > 1: # tuple-valued: return tuple
              return tuple(output_map[output] for output in outputs)
          else: # single value: return numpy array and that's it
              return list(output_map.values())[0]
function_tokens: def __call__ ( self , * args , * * kwargs ) : # parse argument list and map to the function's input arg_map = self . argument_map ( * args , * * kwargs ) # if placeholders were excluded due to being under construction, # we must include them in the argmap, otherwise they will be cloned for arg in self . arguments : if arg not in arg_map : arg_map [ arg ] = arg # determine whether this is eval() or clone() is_symbolic = any ( isinstance ( arg , ( cntk_py . Function , cntk_py . Variable ) ) for arg in arg_map . values ( ) ) # symbolic: return a cloned Function # applying the function means to inline its piece of graph if is_symbolic : Function . _replace_args_type_check ( arg_map ) return self . clone ( CloneMethod . share , arg_map ) # numeric: evaluate outputs = self . outputs _ , output_map = self . forward ( arg_map , outputs ) assert len ( output_map ) == len ( outputs ) , ( output_map , outputs ) if len ( output_map ) > 1 : # tuple-valued: return tuple return tuple ( output_map [ output ] for output in outputs ) else : # single value: return numpy array and that's it return list ( output_map . values ( ) ) [ 0 ]