diff options
author | Dan Moldovan <mdan@google.com> | 2018-09-20 12:31:15 -0700 |
---|---|---|
committer | TensorFlower Gardener <gardener@tensorflow.org> | 2018-09-20 12:35:28 -0700 |
commit | a755420354d4e74e66b17d7a8c14fa421e4a7bae (patch) | |
tree | 83ea3d32ca3abafaf2c186f8b0b1c0d7d4936f05 /tensorflow/python/autograph | |
parent | 30756301bee0de2b1c16a74a710bd7bf29be468d (diff) |
Replace the OrderedDict with a basic list/dict solution. OrderedDict is problematic to use in eager because of the circular references it creates.
PiperOrigin-RevId: 213862402
Diffstat (limited to 'tensorflow/python/autograph')
-rw-r--r-- | tensorflow/python/autograph/core/converter.py | 8 | ||||
-rw-r--r-- | tensorflow/python/autograph/impl/api.py | 9 |
2 files changed, 8 insertions, 9 deletions
diff --git a/tensorflow/python/autograph/core/converter.py b/tensorflow/python/autograph/core/converter.py index 7b3905fdee..80928ae7f4 100644 --- a/tensorflow/python/autograph/core/converter.py +++ b/tensorflow/python/autograph/core/converter.py @@ -63,10 +63,8 @@ from __future__ import absolute_import from __future__ import division from __future__ import print_function -import collections from enum import Enum - from tensorflow.python.autograph.core import config from tensorflow.python.autograph.core import naming from tensorflow.python.autograph.pyct import anno @@ -129,9 +127,8 @@ class ProgramContext(object): self.autograph_module = autograph_module self.uncompiled_modules = uncompiled_modules - # Required to output dependencies in discovery order, which should match - # the reverse dependency order. - self.dependency_cache = collections.OrderedDict() + self.conversion_order = [] + self.dependency_cache = {} self.additional_imports = set() self.name_map = {} @@ -177,6 +174,7 @@ class ProgramContext(object): self.name_map[o] = name def add_to_cache(self, original_entity, converted_ast): + self.conversion_order.append(original_entity) self.dependency_cache[original_entity] = converted_ast diff --git a/tensorflow/python/autograph/impl/api.py b/tensorflow/python/autograph/impl/api.py index ee2467e0dc..1dc97d2331 100644 --- a/tensorflow/python/autograph/impl/api.py +++ b/tensorflow/python/autograph/impl/api.py @@ -302,8 +302,9 @@ def to_graph(e, arg_types) nodes = [] - for dep in reversed(tuple(program_ctx.dependency_cache.values())): - nodes.extend(dep) + for dep in reversed(program_ctx.conversion_order): + nodes.extend(program_ctx.dependency_cache[dep]) + compiled_module, compiled_src = compiler.ast_to_object( nodes, source_prefix=program_ctx.required_imports, @@ -371,7 +372,7 @@ def to_code(e, conversion.entity_to_graph(e, program_ctx, arg_values, arg_types) code = '\n'.join( - compiler.ast_to_source(dep, indentation) - for dep in reversed(tuple(program_ctx.dependency_cache.values()))) + compiler.ast_to_source(program_ctx.dependency_cache[dep], indentation) + for dep in reversed(program_ctx.conversion_order)) return program_ctx.required_imports + '\n\n' + code |