code: def convert_reshape(
      builder, layer, input_names, output_names, keras_layer
  ):
      input_name, output_name = (input_names[0], output_names[0])
  
      input_shape = keras_layer.input_shape
      target_shape = keras_layer.target_shape
  
      def get_coreml_target_shape(target_shape):
          if len(target_shape) == 1:  # (D,)
              coreml_shape = (1, target_shape[0], 1, 1)
          elif len(target_shape) == 2:  # (S,D)
              coreml_shape = target_shape + (1, 1)
          elif len(target_shape) == 3:  # (H,W,C)
              coreml_shape = (
                  1,
                  target_shape[2],
                  target_shape[0],
                  target_shape[1],
              )
          else:
              coreml_shape = None
          return coreml_shape
  
      def get_mode(input_shape, target_shape):
          in_shape = input_shape[1:]
          if len(in_shape) == 3 or len(target_shape) == 3:
              return 1
          else:
              return 0
  
      new_shape = get_coreml_target_shape(target_shape)
      if new_shape is not None:
          mode = get_mode(input_shape, target_shape)
          builder.add_reshape(
              name=layer,
              input_name=input_name,
              output_name=output_name,
              target_shape=new_shape,
              mode=mode,
          )
      else:
          _utils.raise_error_unsupported_categorical_option(
              "input_shape", str(input_shape), "reshape", layer
          )
  
imports: from .None import _utils
  import keras
  import numpy
label_desc: Use image node_id 11 for calling a global function with example usage: convert_reshape(builder, layer, input_names, output_names, keras_layer) and returns: coreml_shape, int, int