class_docstr: Try to map TF dialect ops `tf_lstm_block` and `tf_lstm_block_cell` to
  `lstm` in the core op set if compatible. They are compatible if all of the
  following are satisfied:
  
  - If tf_lstm_block: only h output is consumed. tf_lstm_block has 7
    sequence outputs: [i, cs, f, o, ci, co, h]. Each of them (e.g., i) has
    shape [seq_len, batch, hidden_dim] (see tf_lstm_block op doc string).
    core lstm only supports sequence output for hidden state h, and thus if
    any outputs other than `h` is consumed, we cannot convert to lstm in the
    core op set.
  
  - If tf_lstm_block_cell: only cs, h output (outputs[1], outputs[6])
    are consumed. Similar to above.
  
  Inputs:
  
      prog: Program
class_docstr_tok: ["Try","to","map","TF","dialect","ops","`","tf_lstm_block","`","and","`","tf_lstm_block_cell","`","to","`","lstm","`","in","the","core","op","set","if","compatible",".","They","are","compatible","if","all","of","the","following","are","satisfied",":","-","If","tf_lstm_block",":","only","h","output","is","consumed",".","tf_lstm_block","has","7","sequence","outputs",":","[","i",",","cs",",","f",",","o",",","ci",",","co",",","h","]",".","Each","of","them","(","e.g.",",","i",")","has","shape","[","seq_len",",","batch",",","hidden_dim","]","(","see","tf_lstm_block","op","doc","string",")",".","core","lstm","only","supports","sequence","output","for","hidden","state","h",",","and","thus","if","any","outputs","other","than","`","h","`","is","consumed",",","we","can","not","convert","to","lstm","in","the","core","op","set",".","-","If","tf_lstm_block_cell",":","only","cs",",","h","output","(","outputs","[","1","]",",","outputs","[","6","]",")","are","consumed",".","Similar","to","above",".","Inputs",":","prog",":","Program"]
code: def apply(self, prog):
      for f in prog.functions.values():
          _tf_lstm_to_core_lstm_block(f)
  
file_path: coremltools/coremltools/converters/mil/frontend/tensorflow/ssa_passes/tf_lstm_to_core_lstm.py
imports: import numpy
  from coremltools import _logger
  from coremltools.converters.mil.mil import Block, Builder, Operation, Var
  from coremltools.converters.mil.mil.passes.graph_pass import AbstractGraphPass
  from coremltools.converters.mil.mil.passes.helper import block_context_manager
  from coremltools.converters.mil.mil.passes.pass_registry import register_pass
  from coremltools.converters.mil.mil.types.symbolic import is_symbolic
label_desc: Use image node_id 1 for calling the tf_lstm_to_core_lstm obj's underlying member method code with example usage: obj.apply(prog) without return types