srkreddy1238 commented on a change in pull request #5617: URL: https://github.com/apache/incubator-tvm/pull/5617#discussion_r431629053
########## File path: python/tvm/relay/frontend/tensorflow.py ########## @@ -2896,15 +2903,29 @@ def _parse_import_prerequisites(self, graph): """ missing_operators = set() for node in graph.node: + try: + from tensorflow.python.framework import op_def_registry + except ImportError as e: + raise ImportError( + "Unable to import tensorflow which is required {}".format(e)) + getOpDef = op_def_registry._registered_ops.get if hasattr(op_def_registry,\ + "_registered_ops") else op_def_registry.get + op_def = getOpDef(node.op) if node.op == "Placeholder" or node.op == 'PlaceholderWithDefault': pass elif node.op == "Const": pass + elif node.op in ["PartitionedCall", "StatefulPartitionedCall"]: + pass else: if any([node.op in t for t in [_identity_list, _convert_map, _convert_map_rnn, _control_flow_nodes]]): pass + elif op_def is not None and op_def.is_stateful: + raise Exception("Found a stateful operator in this graph {}. "\ Review comment: Objective of this function is to give a consolidated list of unsupported ops. Any approach is good as long as the purpose is met, which is showing all unsupported ops instead of just an exception. ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org