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.outputs = ["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.outputs","=","[","``","Placeholder:0","''","]","We","need","to","change","the","block","output","to","Placeholder:0","by","inserting","an","identity"]
code: def check_placeholder_output(self, prog):
      """
      Handle the cases where placeholder is output.
      There is a case where the program is like
          main(%Placeholder: (5,fp32)) {
              block3() {
              } -> (%Placeholder)
          }
      But self.outputs = ["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())]
      output_name = [x.name for x in block.outputs]
      placeholder_output_name = [
          x
          for x in output_name
          if x in input_name and x not in self.outputs
      ]
      with block:
          new_outputs = [
              x
              for x in block.outputs
              if x.name not in placeholder_output_name
          ]
          for name in placeholder_output_name:
              x = block.inputs[name]
              x = mb.identity(x=x, name=name + ":0")
              new_outputs.append(x)
          block.set_outputs(new_outputs)
  
imports: import six
  import logging
  from coremltools.converters.mil.input_types import InputType, TensorType, ImageType, RangeDim, _get_shaping_class
  from coremltools.converters.mil.input_types import Shape
  from coremltools.converters.mil.mil.var import Var
  from coremltools.converters.mil.mil import get_new_symbol
  from coremltools.converters.mil.mil.types.symbolic import is_symbolic
  from coremltools.converters.mil.mil import types
  from .basic_graph_ops import topsort, simple_topsort
  from .convert_utils import convert_graph
  from coremltools.converters.mil.mil import Builder
  from coremltools.converters.mil.mil import Program
  from coremltools.converters.mil.mil import Function
  from .ssa_passes.tf_passes import tensorflow_passes
  from coremltools.converters._profile_utils import _profile
label_desc: Use image node_id 6 for calling the TFConverter obj's underlying member method code with example usage: obj.check_placeholder_output(prog) without return types