class_docstr: ``dequantize`` op with constant input is equivalent to ``constexpr_affine_dequantize``.
  This is one of the canonicalization pass that transforms all such
  ``dequantize`` ops to respective ``constexpr_affine_dequantize`` ops.
  
  .. code-block::
  
      Input graph:
  
          dequantize(input=const) -> downstream op
  
      Output graph:
  
          constexpr_affine_dequantize -> downstream op
  
  This pass is being performed because constant tensors being propagated
  through ``dequantize`` op would be serialized in bloated/decompressed fashion,
  whereas with ``constexpr_affine_dequantize``,
  constant weights/tensors remain compressed at serialization.
class_docstr_tok: ["``","dequantize","``","op","with","constant","input","is","equivalent","to","``","constexpr_affine_dequantize","``",".","This","is","one","of","the","canonicalization","pass","that","transforms","all","such","``","dequantize","``","ops","to","respective","``","constexpr_affine_dequantize","``","ops",".","..","code-block",":",":","Input","graph",":","dequantize","(","input=const",")","-",">","downstream","op","Output","graph",":","constexpr_affine_dequantize","-",">","downstream","op","This","pass","is","being","performed","because","constant","tensors","being","propagated","through","``","dequantize","``","op","would","be","serialized","in","bloated\/decompressed","fashion",",","whereas","with","``","constexpr_affine_dequantize","``",",","constant","weights\/tensors","remain","compressed","at","serialization","."]
code: def apply(self, prog):
      @block_context_manager
      def apply_block(block):
          for op in list(block.operations):
              for b in op.blocks:
                  apply_block(b)
  
              if self.is_valid_op(op):
                  self.transform_op(op)
  
      for f in prog.functions.values():
          apply_block(f)
  
imports: from typing import Tuple
  import numpy
  import coremltools.converters.mil.mil.types
  from coremltools.converters.mil._deployment_compatibility import AvailableTarget
  from coremltools.converters.mil.mil import Block
  from coremltools.converters.mil.mil import Builder
  from coremltools.converters.mil.mil import Operation, Var
  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
label_desc: Use image node_id 1 for calling the dequantize_to_constexpr obj's underlying member method code with example usage: obj.apply(prog) without return types