code: def scratch_cmsis_conv_2d(mace_op, mace_net):
      output_channels = mace_op.output_shape[0].dims[3]
      bias_bytes = output_channels * 4
      cmsis_quant_bytes = output_channels * 4 * 2
      input_dims = NetUtil.get_input_dims(mace_op, mace_net, 0)
      filter_dims = NetUtil.get_input_dims(mace_op, mace_net, 1)
      cmsis_nn_buffer_bytes = (
          input_dims[3] * filter_dims[2] * filter_dims[1] * 4
      )
      return cmsis_nn_buffer_bytes + bias_bytes + cmsis_quant_bytes
  
file_path: mace/tools/python/micro/micro_op_resolver_cmsis_rules.py
imports: from enum import Enum
  from micro.micro_op_resolver_rules import MicroOPSResolverRule
  from py_proto import mace_pb2
  from transform.base_converter import MaceKeyword
  from transform.base_converter import MaceOp
  from utils.config_parser import DataFormat
  from utils.config_parser import ModelKeys
  from utils.config_parser import Platform
  from utils.util import mace_check
  from utils.net_util import NetUtil
label_desc: Use image node_id 1 for calling a global function with example usage: scratch_cmsis_conv_2d(mace_op, mace_net) and returns: unknown