diff options
author | Dan Moldovan <mdan@google.com> | 2018-06-11 10:12:35 -0700 |
---|---|---|
committer | TensorFlower Gardener <gardener@tensorflow.org> | 2018-06-11 10:15:25 -0700 |
commit | 59259fd74a7cdf766b54e1de00abae88438d1978 (patch) | |
tree | 018376912da2d0cc8eabe97f82d68084dff10493 | |
parent | a30d1f063f15b6c013eb4ef847da116538851a8c (diff) |
Introducing a directives module, to contain marker functions such as set_element_type, set_loop_options and others. To replace their counterparts in utils.
PiperOrigin-RevId: 200069544
-rw-r--r-- | tensorflow/contrib/autograph/__init__.py | 6 | ||||
-rw-r--r-- | tensorflow/contrib/autograph/impl/BUILD | 1 | ||||
-rw-r--r-- | tensorflow/contrib/autograph/impl/directives.py | 68 |
3 files changed, 74 insertions, 1 deletions
diff --git a/tensorflow/contrib/autograph/__init__.py b/tensorflow/contrib/autograph/__init__.py index 310eb34a70..637e49c082 100644 --- a/tensorflow/contrib/autograph/__init__.py +++ b/tensorflow/contrib/autograph/__init__.py @@ -29,6 +29,8 @@ from tensorflow.contrib.autograph.impl.api import do_not_convert from tensorflow.contrib.autograph.impl.api import RunMode from tensorflow.contrib.autograph.impl.api import to_code from tensorflow.contrib.autograph.impl.api import to_graph +from tensorflow.contrib.autograph.impl.directives import set_element_type +from tensorflow.contrib.autograph.impl.directives import set_loop_options from tensorflow.contrib.autograph.impl.special_functions import stack from tensorflow.contrib.autograph.pyct.transformer import AutographParseError from tensorflow.python.util.all_util import remove_undocumented @@ -41,7 +43,9 @@ _allowed_symbols = [ 'do_not_convert', 'to_code', 'to_graph', - # Special functions + # Special functions and directives + 'set_element_type', + 'set_loop_options', 'stack', # Exceptions 'AutographParseError', diff --git a/tensorflow/contrib/autograph/impl/BUILD b/tensorflow/contrib/autograph/impl/BUILD index 91ae0b9b82..02f16ae187 100644 --- a/tensorflow/contrib/autograph/impl/BUILD +++ b/tensorflow/contrib/autograph/impl/BUILD @@ -20,6 +20,7 @@ py_library( "api.py", "config.py", "conversion.py", + "directives.py", "naming.py", "special_functions.py", ], diff --git a/tensorflow/contrib/autograph/impl/directives.py b/tensorflow/contrib/autograph/impl/directives.py new file mode 100644 index 0000000000..aabe5d9939 --- /dev/null +++ b/tensorflow/contrib/autograph/impl/directives.py @@ -0,0 +1,68 @@ +# Copyright 2017 The TensorFlow Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== +"""Directives are special no-op functions that serve as compilation markers. + +They provide static information like type hints, compilation and TensorFlow +overrides. + +These serve as annotations in the compiled code, allowing the user some control +over the compilation process. They have no functional role at runtime. +""" + +from __future__ import absolute_import +from __future__ import division +from __future__ import print_function + + +UNSPECIFIED = object() + + +def set_element_type(entity, dtype, shape=UNSPECIFIED): + """Indicates that the entity is expected hold items of specified type/shape. + + The staged TensorFlow ops will reflect and assert this data type. Ignored + otherwise. + + Args: + entity: The entity to annotate. + dtype: TensorFlow dtype value to assert for entity. + shape: Optional shape to assert for entity. + """ + del entity + del dtype + del shape + + +def set_loop_options( + parallel_iterations=UNSPECIFIED, + back_prop=UNSPECIFIED, + swap_memory=UNSPECIFIED, + maximum_iterations=UNSPECIFIED): + """Specifies additional arguments to be passed to the enclosing while_loop. + + The parameters apply to and only to the immediately enclosing loop. It only + has effect if the loop is staged as a TF while_loop; otherwise the parameters + have no effect. + + Args: + parallel_iterations: See tf.while_loop. + back_prop: See tf.while_loop. + swap_memory: See tf.while_loop. + maximum_iterations: See tf.while_loop. + """ + del parallel_iterations + del back_prop + del swap_memory + del maximum_iterations |