class_docstr: A class contains the components that are used to build up a Relay if
  node.
  
  Parameters
  ----------
  cond : tvm.relay.Expr
      The condition of a if node.
  
  true_branch : tvm.relay.Expr
      The body of the true branch of a if expression.
  
  false_branch: tvm.relay.Expr
      The body of the false branch of a if expression.
  
  _if : tvm.relay.Expr
      An internal variable indicates where an if expression is already created
      for a matched TF condition construct.
  
  Examples
  --------
  The following is a cond statement written in TensorFlow:
  
  .. code-block:: python
  
      def vanilla_cond():
          i = tf.constant(1)
          j = tf.constant(4)
  
           def f1():
              return tf.multiply(1, 17)
  
           def f2():
              return tf.add(4, 23)
          r = tf.cond(tf.less(i, j), f1, f2)
  
  This condition statement should be converted into Relay in the following
  form:
  
  .. code-block:: python
  
      fn (%Const: Tensor[(1,), int32],
          %Const_1: Tensor[(1,), int32],
          %cond/Mul/x: Tensor[(1,), int32],
          %cond/Mul/y: Tensor[(1,), int32],
          %cond/Add/x: Tensor[(1,), int32],
          %cond/Add/y: Tensor[(1,), int32]) {
        %0 = less(%Const, %Const_1) # ty=Tensor[(1,), bool]
        %1 = min(%0)
        if (%1) {
          %2 = multiply(%cond/Mul/x, %cond/Mul/y)
          %2
        }  else {
          %3 = add(%cond/Add/x, %cond/Add/y)
          %3
        }
      }
code: def __init__(self):
      self._if = None
      self.cond = None
      self.true_branch = None
      self.false_branch = None
  
imports: import warnings
  from collections import defaultdict
  import numpy
  import tvm
  from tvm.ir import IRModule
  from tvm.relay.prelude import Prelude
  from tvm.relay.transform import InferType
  from ..None import analysis
  from ..None import expr
  from ..None import function
  from ..ty import Any
  from ..expr_functor import ExprMutator, ExprVisitor
  from .common import get_relay_op
  from .common import infer_type
  from .common import infer_shape
  from .common import infer_value
  from .common import set_span
  from .tensorflow_ops import _convert_map
  from .tensorflow_ops import _need_prelude_for_shape_inference
  from .tensorflow_ops import _get_more_static_shape
label_desc: Use image node_id 1 to create a new Branch object  with example: obj = Branch()