code: def _cin_cout(pattern):
      # D_in denotes the spatial dimensions for conv kernel weight
      # for conv_transpose, conv_weight has shape [Cin, Cout / groups, *D_in]
      # for conv, conv_weight has shape [Cout, Cin / groups, *D_in]
      is_deconv = pattern.conv.op_type == "conv_transpose"
      groups = pattern.conv.groups.val
      conv_weight = pattern.conv.weight.val
      if is_deconv:
          Cout = conv_weight.shape[1] * groups
          Cin = conv_weight.shape[0]
      else:
          Cout = conv_weight.shape[0]
          Cin = conv_weight.shape[1] * groups
  
      return Cin, Cout
  
file_path: coremltools/coremltools/converters/mil/experimental/passes/generic_conv_scale_fusion.py
imports: import os
  import numpy
  from coremltools.converters.mil import Builder
  from coremltools.converters.mil.experimental.passes.generic_pass_infrastructure import register_generic_pass
label_desc: Use image node_id 1 for calling a global function with example usage: _cin_cout(pattern) and returns: Cin,  Cout