code: def fuse_bias_conv(prog):
      """
      Fold add/sub into bias of conv and conv_transpose
      That is, convert conv + add/sub to conv, when add/sub is adding a constant
  
      Given:
          %2 = conv(%1)
          ...
          %3 = add(%2, constant) # where constant has shape (1,C,1)/(C,1) for 1d conv, (1,C,1,1)/(C,1,1) for 2d conv etc
          ...
  
      Result:
          %3 = conv(%1)
          ...
  
      """
      for f_name, f in prog.functions.items():
          block_changed = True
          while block_changed:
              block_changed = fuse_bias_conv_block(f)
  
file_path: turicreate/src/external/coremltools_wrap/coremltools/coremltools/converters/mil/mil/passes/conv_bias_fusion.py
imports: from __future__ import print_function
  from __future__ import division
  from __future__ import absolute_import
  from coremltools.converters.mil.mil.passes.pass_registry import register_pass
  from coremltools.converters.mil.mil import Builder
  import numpy
label_desc: Use image node_id 4 for calling a global function with example usage: fuse_bias_conv(prog) without return types