Coverage for /pythoncovmergedfiles/medio/medio/usr/local/lib/python3.8/site-packages/tensorflow/python/compiler/mlir/mlir.py: 78%
9 statements
« prev ^ index » next coverage.py v7.4.0, created at 2024-01-03 07:57 +0000
« prev ^ index » next coverage.py v7.4.0, created at 2024-01-03 07:57 +0000
1# Copyright 2019 The TensorFlow Authors. All Rights Reserved.
2#
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
7# http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
14# =============================================================================
15"""mlir is an experimental library that provides support APIs for MLIR."""
17from tensorflow.python import pywrap_mlir
18from tensorflow.python.util.tf_export import tf_export
21@tf_export('mlir.experimental.convert_graph_def')
22def convert_graph_def(graph_def,
23 pass_pipeline='tf-standard-pipeline',
24 show_debug_info=False):
25 """Import a GraphDef and convert it to a textual MLIR module.
27 This API is only intended for inspecting the internals of TensorFlow and the
28 string returned is at the moment intended for debugging purposes.
30 Args:
31 graph_def: An object of type graph_pb2.GraphDef or a textual proto
32 representation of a valid GraphDef.
33 pass_pipeline: A textual description of an MLIR Pass Pipeline to run on the
34 module, see MLIR documentation for the
35 [textual pass pipeline syntax](https://mlir.llvm.org/docs/PassManagement/#textual-pass-pipeline-specification).
36 show_debug_info: Whether to include locations in the emitted textual form.
38 Returns:
39 A textual representation of the MLIR module corresponding to the graphdef.
41 Raises:
42 InvalidArgumentError: if graph_def is invalid or cannot be converted to
43 MLIR.
45 """
46 return pywrap_mlir.import_graphdef(graph_def, pass_pipeline, show_debug_info)
49@tf_export('mlir.experimental.convert_function')
50def convert_function(concrete_function,
51 pass_pipeline='tf-standard-pipeline',
52 show_debug_info=False):
53 """Import a ConcreteFunction and convert it to a textual MLIR module.
55 This API is only intended for inspecting the internals of TensorFlow and the
56 string returned is at the moment intended for debugging purposes.
58 A [tf.function](https://www.tensorflow.org/api_docs/python/tf/function) can be
59 imported and converted from TensorFlow to TensorFlow MLIR with this API by
60 extracting its ConcreteFunction (eagerly-executing wrapper around a
61 [tf.Graph](https://www.tensorflow.org/api_docs/python/tf/Graph)).
63 For example:
64 >>> @tf.function
65 ... def add(a, b):
66 ... return a + b
68 >>> concrete_function = add.get_concrete_function(
69 ... tf.TensorSpec(None, tf.dtypes.float32),
70 ... tf.TensorSpec(None, tf.dtypes.float32))
71 >>> tf.mlir.experimental.convert_function(concrete_function)
72 '...module attributes {...} {...}...'
74 Args:
75 concrete_function: An object of type ConcreteFunction.
76 pass_pipeline: A textual description of an MLIR Pass Pipeline to run on the
77 module, see MLIR documentation for the
78 [textual pass pipeline syntax](https://mlir.llvm.org/docs/PassManagement/#textual-pass-pipeline-specification).
79 show_debug_info: Whether to include locations in the emitted textual form.
81 Returns:
82 A textual representation of the MLIR module corresponding to the
83 ConcreteFunction.
85 Raises:
86 InvalidArgumentError: if concrete_function is invalid or cannot be converted
87 to MLIR.
89 """
90 return pywrap_mlir.import_function(concrete_function, pass_pipeline,
91 show_debug_info)