parameters: (*operands, **kw_name)
return_statement: return combine(operands_unfold, name)
docstring: Create a new Function instance which just combines the outputs of the specified list of
       'operands' Functions such that the 'Outputs' of the new 'Function' are union of the
       'Outputs' of each of the specified 'operands' Functions. E.g., when creating a classification
       model, typically the CrossEntropy loss Function and the ClassificationError Function comprise
       the two roots of the computation graph which can be combined to create a single Function
       with 2 outputs; viz. CrossEntropy loss and ClassificationError output.
  
      Example:
          >>> in1 = C.input_variable((4,))
          >>> in2 = C.input_variable((4,))
  
          >>> in1_data = np.asarray([[1., 2., 3., 4.]], np.float32)
          >>> in2_data = np.asarray([[0., 5., -3., 2.]], np.float32)
  
          >>> plus_operation = in1 + in2
          >>> minus_operation = in1 - in2
  
          >>> forward = C.combine([plus_operation, minus_operation]).eval({in1: in1_data, in2: in2_data})
          >>> len(forward)
          2
          >>> list(forward.values()) # doctest: +SKIP
          [array([[[ 1., -3.,  6.,  2.]]], dtype=float32),
           array([[[ 1.,  7.,  0.,  6.]]], dtype=float32)]
          >>> x = C.input_variable((4,))
          >>> _ = C.combine(x, x)
          >>> _ = C.combine([x, x])
          >>> _ = C.combine((x, x))
          >>> _ = C.combine(C.combine(x, x), x)
  
      Args:
          operands (list): list of functions or their variables to combine
          name (str, optional): the name of the Combine Function in the network
  
      Returns:
          :class:`~cntk.ops.functions.Function`
docstring_summary: Create a new Function instance which just combines the outputs of the specified list of
       'operands' Functions such that the 'Outputs' of the new 'Function' are union of the
       'Outputs' of each of the specified 'operands' Functions. E.g., when creating a classification
       model, typically the CrossEntropy loss Function and the ClassificationError Function comprise
       the two roots of the computation graph which can be combined to create a single Function
       with 2 outputs; viz. CrossEntropy loss and ClassificationError output.
docstring_tokens: Create a new Function instance which just combines the outputs of the specified list of operands Functions such that the Outputs of the new Function are union of the Outputs of each of the specified operands Functions . E . g . when creating a classification model typically the CrossEntropy loss Function and the ClassificationError Function comprise the two roots of the computation graph which can be combined to create a single Function with 2 outputs ; viz . CrossEntropy loss and ClassificationError output .
function: def combine(*operands, **kw_name):
      '''
       Create a new Function instance which just combines the outputs of the specified list of
       'operands' Functions such that the 'Outputs' of the new 'Function' are union of the
       'Outputs' of each of the specified 'operands' Functions. E.g., when creating a classification
       model, typically the CrossEntropy loss Function and the ClassificationError Function comprise
       the two roots of the computation graph which can be combined to create a single Function
       with 2 outputs; viz. CrossEntropy loss and ClassificationError output.
  
      Example:
          >>> in1 = C.input_variable((4,))
          >>> in2 = C.input_variable((4,))
  
          >>> in1_data = np.asarray([[1., 2., 3., 4.]], np.float32)
          >>> in2_data = np.asarray([[0., 5., -3., 2.]], np.float32)
  
          >>> plus_operation = in1 + in2
          >>> minus_operation = in1 - in2
  
          >>> forward = C.combine([plus_operation, minus_operation]).eval({in1: in1_data, in2: in2_data})
          >>> len(forward)
          2
          >>> list(forward.values()) # doctest: +SKIP
          [array([[[ 1., -3.,  6.,  2.]]], dtype=float32),
           array([[[ 1.,  7.,  0.,  6.]]], dtype=float32)]
          >>> x = C.input_variable((4,))
          >>> _ = C.combine(x, x)
          >>> _ = C.combine([x, x])
          >>> _ = C.combine((x, x))
          >>> _ = C.combine(C.combine(x, x), x)
  
      Args:
          operands (list): list of functions or their variables to combine
          name (str, optional): the name of the Combine Function in the network
  
      Returns:
          :class:`~cntk.ops.functions.Function`
      '''
      name = (lambda name='': (name))(**kw_name) # Python 2.7 does not allow (*inputs, name='')
  
      from cntk.cntk_py import combine
      if len(operands) == 1 and isinstance(operands[0], (tuple, list)):
          operands = operands[0]
      if isinstance(operands, tuple):
          operands = list(operands)
      operands_unfold = []
      for o in operands:
          if hasattr(o, 'outputs') and len(o.outputs) > 1:
              operands_unfold += o.outputs
          else:
              operands_unfold += [o]
      return combine(operands_unfold, name)
function_tokens: def combine ( * operands , * * kw_name ) : name = ( lambda name = '' : ( name ) ) ( * * kw_name ) # Python 2.7 does not allow (*inputs, name='') from cntk . cntk_py import combine if len ( operands ) == 1 and isinstance ( operands [ 0 ] , ( tuple , list ) ) : operands = operands [ 0 ] if isinstance ( operands , tuple ) : operands = list ( operands ) operands_unfold = [ ] for o in operands : if hasattr ( o , 'outputs' ) and len ( o . outputs ) > 1 : operands_unfold += o . outputs else : operands_unfold += [ o ] return combine ( operands_unfold , name )