class_docstr: Fold ``mul``/``div`` into ``conv``/``conv_transpose`` by updating the weight/bias of the convolution layers.
  
  The scale ``const`` can be a single number (scalar) or a vector with a broadcastable shape.
  For example, if the output of the ``conv``/``deconv`` layer is ``(B, Cout, H, W)``,
  ``const`` of shape ``(Cout, 1, 1)`` and ``(1, Cout, 1, 1)`` are allowed.
  
  .. code-block::
  
      Given:
          %2 = conv(%1)
          ...
          %3 = mul(%2, constant) # where constant is the scale constant
          ...
  
      Result:
          %3 = conv(%1)
          ...
class_docstr_tok: ["Fold","``","mul","``","\/","``","div","``","into","``","conv","``","\/","``","conv_transpose","``","by","updating","the","weight\/bias","of","the","convolution","layers",".","The","scale","``","const","``","can","be","a","single","number","(","scalar",")","or","a","vector","with","a","broadcastable","shape",".","For","example",",","if","the","output","of","the","``","conv","``","\/","``","deconv","``","layer","is","``","(","B",",","Cout",",","H",",","W",")","``",",","``","const","``","of","shape","``","(","Cout",",","1",",","1",")","``","and","``","(","1",",","Cout",",","1",",","1",")","``","are","allowed",".","..","code-block",":",":","Given",":","%","2","=","conv","(","%","1",")","...","%","3","=","mul","(","%","2",",","constant",")","#","where","constant","is","the","scale","constant","...","Result",":","%","3","=","conv","(","%","1",")","..."]
code: def apply(self, prog):
      for f in prog.functions.values():
          block_changed = True
          while block_changed:
              block_changed = self._fuse_conv_scale_block(f)
  
imports: import copy
  import numpy
  from coremltools import _logger
  from coremltools.converters.mil.mil import Block
  from coremltools.converters.mil.mil import Builder
  from coremltools.converters.mil.mil import Operation, types
  from coremltools.converters.mil.mil.passes.graph_pass import AbstractGraphPass
  from coremltools.converters.mil.mil.passes.helper import _check_child_op_type, _check_no_output_connection, block_context_manager
  from coremltools.converters.mil.mil.passes.pass_registry import register_pass
  from coremltools.converters.mil.mil.types.symbolic import any_symbolic
label_desc: Use image node_id 1 for calling the fuse_conv_scale obj's underlying member method code with example usage: obj.apply(prog) without return types