From e323183bf62993da23eb52c18944a4670aa5ce53 Mon Sep 17 00:00:00 2001 From: Reed Wanderman-Milne <reedwm@google.com> Date: Mon, 30 Sep 2019 14:35:03 -0700 Subject: [PATCH] Rename LossScalingGradientTape to LossScaleGradientTape. This makes it more consistent with LossScale and LossScaleOptimizer. Since LossScalingGradientTape is not yet in a stable release, no need to worry about breaking anyone. PiperOrigin-RevId: 272067559 --- .../loss_scaling_gradient_tape.py | 16 +++++----- .../loss_scaling_gradient_tape_test.py | 32 +++++++++---------- ...erimental.-loss-scale-gradient-tape.pbtxt} | 4 +-- ...sorflow.mixed_precision.experimental.pbtxt | 2 +- 4 files changed, 27 insertions(+), 27 deletions(-) rename tensorflow/tools/api/golden/v2/{tensorflow.mixed_precision.experimental.-loss-scaling-gradient-tape.pbtxt => tensorflow.mixed_precision.experimental.-loss-scale-gradient-tape.pbtxt} (92%) diff --git a/tensorflow/python/training/experimental/loss_scaling_gradient_tape.py b/tensorflow/python/training/experimental/loss_scaling_gradient_tape.py index aea2c1f61f5..53e4926e407 100644 --- a/tensorflow/python/training/experimental/loss_scaling_gradient_tape.py +++ b/tensorflow/python/training/experimental/loss_scaling_gradient_tape.py @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================== -"""Contains Loss Scaling Gradient Tape.""" +"""Contains Loss Scale Gradient Tape.""" from __future__ import absolute_import from __future__ import division @@ -26,8 +26,8 @@ from tensorflow.python.util import nest from tensorflow.python.util.tf_export import tf_export -@tf_export("mixed_precision.experimental.LossScalingGradientTape", v1=[]) -class LossScalingGradientTape(backprop.GradientTape): +@tf_export("mixed_precision.experimental.LossScaleGradientTape", v1=[]) +class LossScaleGradientTape(backprop.GradientTape): """A gradient tape that scales losses and unscales resulting gradients. Operates as a normal gradient tape, but takes in a @@ -51,7 +51,7 @@ class LossScalingGradientTape(backprop.GradientTape): model_loss_scale = tf.train.experimental.DynamicLossScale() for step in training_steps: - with LossScalingGradientTape(model_loss_scale) as tape: + with LossScaleGradientTape(model_loss_scale) as tape: logits = ... # Run model and get logits loss = tf.nn.softmax_cross_entropy_with_logits(logits=logits, labels=labels) @@ -66,7 +66,7 @@ class LossScalingGradientTape(backprop.GradientTape): loss_scale, persistent=False, watch_accessed_variables=True): - """Creates a new LossScalingGradientTape. + """Creates a new LossScaleGradientTape. Args: loss_scale: `tf.train.experimental.LossScale` object that @@ -89,8 +89,8 @@ class LossScalingGradientTape(backprop.GradientTape): raise ValueError("`loss_scale` must be an instance of LossScale.") # always make a persistent tape to loop over loss scaling - super(LossScalingGradientTape, self).__init__(True, - watch_accessed_variables) + super(LossScaleGradientTape, self).__init__(True, + watch_accessed_variables) self._outer_persistent = persistent self._loss_scale = loss_scale @@ -142,7 +142,7 @@ class LossScalingGradientTape(backprop.GradientTape): loss_scale = self._loss_scale() scaled_target = nest.map_structure(lambda t: t * loss_scale, target) - old_grads = super(LossScalingGradientTape, self).gradient( + old_grads = super(LossScaleGradientTape, self).gradient( scaled_target, sources, output_gradients, unconnected_gradients) inv_loss_scale = 1.0 / self._loss_scale() grads = nest.map_structure(lambda g: inv_loss_scale * g, old_grads) diff --git a/tensorflow/python/training/experimental/loss_scaling_gradient_tape_test.py b/tensorflow/python/training/experimental/loss_scaling_gradient_tape_test.py index 25aa9cbcb13..b8c85a929da 100644 --- a/tensorflow/python/training/experimental/loss_scaling_gradient_tape_test.py +++ b/tensorflow/python/training/experimental/loss_scaling_gradient_tape_test.py @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================== -"""Tests for lsgt.LossScalingGradientTape.""" +"""Tests for lsgt.LossScaleGradientTape.""" from __future__ import absolute_import from __future__ import division from __future__ import print_function @@ -27,13 +27,13 @@ from tensorflow.python.training.experimental import loss_scale as loss_scale_mod from tensorflow.python.training.experimental import loss_scaling_gradient_tape as lsgt -class LossScalingGradientTapeTest(test.TestCase, parameterized.TestCase): +class LossScaleGradientTapeTest(test.TestCase, parameterized.TestCase): @parameterized.parameters(loss_scale_module.FixedLossScale, loss_scale_module.DynamicLossScale) def test_basic_tapes_eager_mode(self, loss_scale): x = constant_op.constant(3.0) - with lsgt.LossScalingGradientTape(loss_scale(32)) as g: + with lsgt.LossScaleGradientTape(loss_scale(32)) as g: g.watch(x) y = x * x dy_dx = g.gradient(y, x) @@ -47,7 +47,7 @@ class LossScalingGradientTapeTest(test.TestCase, parameterized.TestCase): @def_function.function def _inner_test(): x = constant_op.constant(3.0) - with lsgt.LossScalingGradientTape(loss_scale) as g: + with lsgt.LossScaleGradientTape(loss_scale) as g: g.watch(x) y = x * x return g.gradient(y, x) @@ -57,9 +57,9 @@ class LossScalingGradientTapeTest(test.TestCase, parameterized.TestCase): loss_scale_module.DynamicLossScale) def test_nested_tapes(self, loss_scale): x = constant_op.constant(3.0) - with lsgt.LossScalingGradientTape(loss_scale(32)) as g: + with lsgt.LossScaleGradientTape(loss_scale(32)) as g: g.watch(x) - with lsgt.LossScalingGradientTape(loss_scale(32)) as gg: + with lsgt.LossScaleGradientTape(loss_scale(32)) as gg: gg.watch(x) y = x * x dy_dx = gg.gradient(y, x) @@ -71,7 +71,7 @@ class LossScalingGradientTapeTest(test.TestCase, parameterized.TestCase): loss_scale_module.DynamicLossScale) def test_non_persistent_tapes_error(self, loss_scale): x = constant_op.constant(3.0) - with lsgt.LossScalingGradientTape(loss_scale(32), persistent=False) as g: + with lsgt.LossScaleGradientTape(loss_scale(32), persistent=False) as g: g.watch(x) y = x * x z = y * y @@ -83,7 +83,7 @@ class LossScalingGradientTapeTest(test.TestCase, parameterized.TestCase): loss_scale_module.DynamicLossScale) def test_persistent_tapes(self, loss_scale): x = constant_op.constant(3.0) - with lsgt.LossScalingGradientTape(loss_scale(32), persistent=True) as g: + with lsgt.LossScaleGradientTape(loss_scale(32), persistent=True) as g: g.watch(x) y = x * x z = y * y @@ -97,7 +97,7 @@ class LossScalingGradientTapeTest(test.TestCase, parameterized.TestCase): def test_nested_sources(self, loss_scale): x = (constant_op.constant(19.0), (constant_op.constant(8.), constant_op.constant(9.))) - with lsgt.LossScalingGradientTape(loss_scale(32)) as g: + with lsgt.LossScaleGradientTape(loss_scale(32)) as g: g.watch(x) y = x * 13 dy_dx = g.gradient(y, x) @@ -107,7 +107,7 @@ class LossScalingGradientTapeTest(test.TestCase, parameterized.TestCase): loss_scale_module.DynamicLossScale) def test_nested_targets(self, loss_scale): w = constant_op.constant(3.0) - with lsgt.LossScalingGradientTape(loss_scale(32)) as g: + with lsgt.LossScaleGradientTape(loss_scale(32)) as g: g.watch(w) x = w * 5 y = w * 7 @@ -119,7 +119,7 @@ class LossScalingGradientTapeTest(test.TestCase, parameterized.TestCase): loss_scale_module.DynamicLossScale) def test_scaling_inf_gradient(self, loss_scale): x = constant_op.constant(1.0) - with lsgt.LossScalingGradientTape(loss_scale(32)) as g: + with lsgt.LossScaleGradientTape(loss_scale(32)) as g: g.watch(x) y = x * np.inf dy_dx = g.gradient(y, x) @@ -129,7 +129,7 @@ class LossScalingGradientTapeTest(test.TestCase, parameterized.TestCase): loss_scale_module.DynamicLossScale) def test_scaling_nan_gradient(self, loss_scale): x = constant_op.constant(1.0) - with lsgt.LossScalingGradientTape(loss_scale(32)) as g: + with lsgt.LossScaleGradientTape(loss_scale(32)) as g: g.watch(x) y = x * np.nan dy_dx = g.gradient(y, x) @@ -139,7 +139,7 @@ class LossScalingGradientTapeTest(test.TestCase, parameterized.TestCase): def test_dynamic_scale_to_one_on_non_finite_gradient(self, non_finite_term): loss_scale = loss_scale_module.DynamicLossScale(initial_loss_scale=32) x = constant_op.constant(1.0) - with lsgt.LossScalingGradientTape(loss_scale) as g: + with lsgt.LossScaleGradientTape(loss_scale) as g: g.watch(x) y = x * non_finite_term g.gradient(y, x) @@ -150,7 +150,7 @@ class LossScalingGradientTapeTest(test.TestCase, parameterized.TestCase): is_non_finite): loss_scale = loss_scale_module.FixedLossScale(32) x = constant_op.constant(1.0) - with lsgt.LossScalingGradientTape(loss_scale) as g: + with lsgt.LossScaleGradientTape(loss_scale) as g: g.watch(x) y = x * non_finite_term dy_dx = g.gradient(y, x) @@ -160,7 +160,7 @@ class LossScalingGradientTapeTest(test.TestCase, parameterized.TestCase): def test_dynamic_loss_scaling_down_loop(self): loss_scale = loss_scale_module.DynamicLossScale(initial_loss_scale=32) x = constant_op.constant(1.0) - with lsgt.LossScalingGradientTape(loss_scale) as g: + with lsgt.LossScaleGradientTape(loss_scale) as g: g.watch(x) y = x * (3.0 * (10**37)) # grad will be inf after scaling dy_dx = g.gradient(y, x) @@ -170,7 +170,7 @@ class LossScalingGradientTapeTest(test.TestCase, parameterized.TestCase): def test_dynamic_loss_scaling_inf_target_post_scale(self): loss_scale = loss_scale_module.DynamicLossScale(initial_loss_scale=32.0) x = constant_op.constant(3.0 * (10**37)) - with lsgt.LossScalingGradientTape(loss_scale) as g: + with lsgt.LossScaleGradientTape(loss_scale) as g: g.watch(x) y = x * 3.0 # target will be inf after scaling dy_dx = g.gradient(y, x) diff --git a/tensorflow/tools/api/golden/v2/tensorflow.mixed_precision.experimental.-loss-scaling-gradient-tape.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.mixed_precision.experimental.-loss-scale-gradient-tape.pbtxt similarity index 92% rename from tensorflow/tools/api/golden/v2/tensorflow.mixed_precision.experimental.-loss-scaling-gradient-tape.pbtxt rename to tensorflow/tools/api/golden/v2/tensorflow.mixed_precision.experimental.-loss-scale-gradient-tape.pbtxt index 95c09bfb16c..7f4715832e2 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.mixed_precision.experimental.-loss-scaling-gradient-tape.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.mixed_precision.experimental.-loss-scale-gradient-tape.pbtxt @@ -1,6 +1,6 @@ -path: "tensorflow.mixed_precision.experimental.LossScalingGradientTape" +path: "tensorflow.mixed_precision.experimental.LossScaleGradientTape" tf_class { - is_instance: "<class \'tensorflow.python.training.experimental.loss_scaling_gradient_tape.LossScalingGradientTape\'>" + is_instance: "<class \'tensorflow.python.training.experimental.loss_scaling_gradient_tape.LossScaleGradientTape\'>" is_instance: "<class \'tensorflow.python.eager.backprop.GradientTape\'>" is_instance: "<type \'object\'>" member_method { diff --git a/tensorflow/tools/api/golden/v2/tensorflow.mixed_precision.experimental.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.mixed_precision.experimental.pbtxt index 43615a11b55..30414f7f9ea 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.mixed_precision.experimental.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.mixed_precision.experimental.pbtxt @@ -1,7 +1,7 @@ path: "tensorflow.mixed_precision.experimental" tf_module { member { - name: "LossScalingGradientTape" + name: "LossScaleGradientTape" mtype: "<type \'type\'>" } }