| 594 | |
| 595 | @staticmethod |
| 596 | def _scale_loss(loss_value): |
| 597 | ops.get_default_graph()._is_loss_scaled_by_optimizer = False # pylint: disable=protected-access |
| 598 | if distribute_lib.get_loss_reduction() == ds_reduce_util.ReduceOp.MEAN: |
| 599 | num_replicas = distribute_ctx.get_strategy().num_replicas_in_sync |
| 600 | if num_replicas > 1: |
| 601 | loss_value *= (1. / num_replicas) |
| 602 | ops.get_default_graph()._is_loss_scaled_by_optimizer = True # pylint: disable=protected-access |
| 603 | return loss_value |
| 604 | |
| 605 | def _unscale_grads(self, grads): |
| 606 | loss_scale = self._loss_scale() |