docstr: Handle the cases where placeholder is output.
  There is a case where the program is like
      main(%Placeholder: (5,fp32)) {
          block3() {
          } -> (%Placeholder)
      }
  But self.output_names = ["Placeholder:0"]
  We need to change the block output to Placeholder:0 by inserting an identity
docstr_tok: ["Handle","the","cases","where","placeholder","is","output",".","There","is","a","case","where","the","program","is","like","main","(","%","Placeholder",":","(","5",",","fp32",")",")","{","block3","(",")","{","}","-",">","(","%","Placeholder",")","}","But","self.output_names","=","[","``","Placeholder:0","''","]","We","need","to","change","the","block","output","to","Placeholder:0","by","inserting","an","identity"]
code: def check_placeholder_output(self, prog, outputs_name):
      """
      Handle the cases where placeholder is output.
      There is a case where the program is like
          main(%Placeholder: (5,fp32)) {
              block3() {
              } -> (%Placeholder)
          }
      But self.output_names = ["Placeholder:0"]
      We need to change the block output to Placeholder:0 by inserting an identity
      """
      block = prog["main"]
      input_name = [x.name for x in list(block.inputs.values())]
      with block:
          new_outputs = []
          for output, output_name in zip(block.outputs, outputs_name):
              if (
                  output.name not in input_name
                  or output.name == output_name
              ):
                  new_output = output
              else:
                  new_output = mb.identity(x=output, name=output_name)
              new_outputs.append(new_output)
          block.set_outputs(new_outputs)
  
imports: from coremltools import _logger
  from coremltools.converters._profile_utils import _profile
  from coremltools.converters.mil._deployment_compatibility import AvailableTarget
  from coremltools.converters.mil.input_types import ImageType, InputType, RangeDim
  from coremltools.converters.mil.input_types import Shape
  from coremltools.converters.mil.input_types import TensorType, _get_shaping_class
  from coremltools.converters.mil.mil import Builder
  from coremltools.converters.mil.mil import Function, Program, get_new_symbol, types
  from coremltools.converters.mil.mil.types.symbolic import is_symbolic
  from coremltools.converters.mil.mil.var import Var
  from .._utils import get_output_names
  from .basic_graph_ops import simple_topsort
  from .convert_utils import convert_graph
label_desc: Use image node_id 7 for calling the TFConverter obj's underlying member method code with example usage: obj.check_placeholder_output(prog, outputs_name) without return types