diff options
author | A. Unique TensorFlower <gardener@tensorflow.org> | 2018-09-10 15:44:20 -0700 |
---|---|---|
committer | TensorFlower Gardener <gardener@tensorflow.org> | 2018-09-10 15:52:05 -0700 |
commit | 700297614b694ece80b35753ecbc451a5e15fa77 (patch) | |
tree | 331ada24e2ceb404ef63fa735b6dd8fb190e8e07 /tensorflow/contrib/optimizer_v2 | |
parent | e32029541ae270a021b266fcc3929b2528f8dff1 (diff) |
Deterministic ordering of the hyperparameters in optimizer_v2
PiperOrigin-RevId: 212348918
Diffstat (limited to 'tensorflow/contrib/optimizer_v2')
-rw-r--r-- | tensorflow/contrib/optimizer_v2/optimizer_v2.py | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/tensorflow/contrib/optimizer_v2/optimizer_v2.py b/tensorflow/contrib/optimizer_v2/optimizer_v2.py index f6ecaba834..6af59dcfbf 100644 --- a/tensorflow/contrib/optimizer_v2/optimizer_v2.py +++ b/tensorflow/contrib/optimizer_v2/optimizer_v2.py @@ -214,7 +214,8 @@ class _OptimizerV2State(object): # with that Tensor cast to that dtype. with ops.init_scope(): self._hyper = {name: {None: ops.convert_to_tensor(value, name=name)} - for name, (dynamic, value) in hyper.items() if not dynamic} + for name, (dynamic, value) in sorted(hyper.items()) + if not dynamic} self._slots = {} self._non_slot_dict = {} # Extra state to help Optimizers implement Checkpointable. Holds information @@ -231,7 +232,8 @@ class _OptimizerV2State(object): ret._deferred_dependencies = self._deferred_dependencies ret._deferred_slot_restorations = self._deferred_slot_restorations ret._hyper = {name: {None: _resolve(value, name)} - for name, (dynamic, value) in hyper.items() if dynamic} + for name, (dynamic, value) in sorted(hyper.items()) + if dynamic} ret._hyper.update(self._hyper) ret._non_slot_devices = non_slot_devices ret._distribution = distribution |