Exemplo n.º 1
0
def get_all_frontend_handlers(opset_dict):
    """ Get a dict of all frontend handler classes.
  e.g. {'domain': {'Abs': Abs handler class}, ...}, }.

  :param opset_dict: A dict of opset. e.g. {'domain': version, ...}
  :return: Dict.
  """
    handlers = {}
    for handler in FrontendHandler.__subclasses__():
        handler.check_cls()

        domain = handler.DOMAIN
        version = opset_dict[domain]
        handler.VERSION = version

        since_version = 1
        if handler.ONNX_OP and defs.has(handler.ONNX_OP,
                                        domain=handler.DOMAIN):
            since_version = defs.get_schema(
                handler.ONNX_OP,
                domain=handler.DOMAIN,
                max_inclusive_version=version).since_version
        else:
            warnings.warn("Unknown op {} in domain `{}`. "
                          "Can't check specification by ONNX. "
                          "Please set should_check flag to False "
                          "when call make_node method in handler.".format(
                              handler.ONNX_OP or "Undefined", handler.DOMAIN
                              or "ai.onnx"))
        handler.SINCE_VERSION = since_version

        for tf_op in handler.TF_OP:
            handlers.setdefault(domain, {})[tf_op] = handler
    return handlers
Exemplo n.º 2
0
def get_frontend_coverage():
  """ Get frontend coverage for document.

  :return: dict of frontend coverages
  onnx_coverage: e.g. {'domain': {'ONNX_OP': [versions], ...}, ...}
  tf_coverage: e.g. {'domain': {'TF_OP': [versions], ...}, ...}
  experimental_op: e.g. {'ONNX_OP'...}
  """

  tf_coverage = {}
  onnx_coverage = {}
  experimental_op = set()
  for handler in FrontendHandler.__subclasses__():
    handler.check_cls()
    versions = handler.get_versions()
    domain = handler.DOMAIN
    for tf_op in handler.TF_OP:
      _update_coverage(tf_coverage, domain, tf_op, versions)
    if handler.ONNX_OP:
      onnx_op = handler.ONNX_OP
      if getattr(handler, "EXPERIMENTAL", False):
        experimental_op.add(handler.ONNX_OP)
      _update_coverage(onnx_coverage, domain, onnx_op, versions)
  return dict(
      onnx_coverage=onnx_coverage,
      tf_coverage=tf_coverage,
      experimental_op=experimental_op)
Exemplo n.º 3
0
def get_frontend_coverage():
    """ Get frontend coverage for document.

  :return: onnx_coverage: e.g. {'domain': {'ONNX_OP': [versions], ...}, ...}
  tf_coverage: e.g. {'domain': {'TF_OP': [versions], ...}, ...}
  """

    tf_coverage = {}
    onnx_coverage = {}
    for handler in FrontendHandler.__subclasses__():
        handler.check_cls()
        versions = handler.get_versions()
        domain = handler.DOMAIN
        for tf_op in handler.TF_OP:
            _update_coverage(tf_coverage, domain, tf_op, versions)
        if handler.ONNX_OP:
            _update_coverage(onnx_coverage, domain, handler.ONNX_OP, versions)
    return onnx_coverage, tf_coverage