Example #1
0
 def _resource_apply_dense(self, grad, var):
     accum = self.get_slot(var, "accum")
     accum_update = self.get_slot(var, "accum_update")
     return training_ops.resource_apply_adadelta(
         var.handle,
         accum.handle,
         accum_update.handle,
         math_ops.cast(self._lr_t, grad.dtype.base_dtype),
         math_ops.cast(self._rho_t, grad.dtype.base_dtype),
         math_ops.cast(self._epsilon_t, grad.dtype.base_dtype),
         grad,
         use_locking=self._use_locking)
Example #2
0
 def _resource_apply_dense(self, grad, var, state):
     accum = state.get_slot(var, "accum")
     accum_update = state.get_slot(var, "accum_update")
     return training_ops.resource_apply_adadelta(
         var.handle,
         accum.handle,
         accum_update.handle,
         state.get_hyper("learning_rate", var.dtype.base_dtype),
         state.get_hyper("rho", var.dtype.base_dtype),
         state.get_hyper("epsilon", var.dtype.base_dtype),
         grad,
         use_locking=self._use_locking)
Example #3
0
 def _resource_apply_dense(self, grad, var):
   accum_grad = self.get_slot(var, 'accum_grad')
   accum_var = self.get_slot(var, 'accum_var')
   return training_ops.resource_apply_adadelta(
       var.handle,
       accum_grad.handle,
       accum_var.handle,
       math_ops.cast(self._get_hyper('learning_rate'), grad.dtype.base_dtype),
       math_ops.cast(self._get_hyper('rho'), grad.dtype.base_dtype),
       math_ops.cast(self._get_hyper('epsilon'), grad.dtype.base_dtype),
       grad,
       use_locking=self._use_locking)
Example #4
0
 def _resource_apply_dense(self, grad, var, state):
   accum = state.get_slot(var, "accum")
   accum_update = state.get_slot(var, "accum_update")
   return training_ops.resource_apply_adadelta(
       var.handle,
       accum.handle,
       accum_update.handle,
       state.get_hyper("learning_rate", var.dtype.base_dtype),
       state.get_hyper("rho", var.dtype.base_dtype),
       state.get_hyper("epsilon", var.dtype.base_dtype),
       grad,
       use_locking=self._use_locking)
Example #5
0
 def _resource_apply_dense(self, grad, var):
   accum = self.get_slot(var, "accum")
   accum_update = self.get_slot(var, "accum_update")
   return training_ops.resource_apply_adadelta(
       var.handle,
       accum.handle,
       accum_update.handle,
       math_ops.cast(self._lr_t, grad.dtype.base_dtype),
       math_ops.cast(self._rho_t, grad.dtype.base_dtype),
       math_ops.cast(self._epsilon_t, grad.dtype.base_dtype),
       grad,
       use_locking=self._use_locking)
Example #6
0
 def _resource_apply_dense(self, grad, var):
     var_dtype = var.dtype.base_dtype
     lr_t = self._decayed_lr(var_dtype)
     accum_grad = self.get_slot(var, 'accum_grad')
     accum_var = self.get_slot(var, 'accum_var')
     return training_ops.resource_apply_adadelta(
         var.handle,
         accum_grad.handle,
         accum_var.handle,
         lr_t,
         self._get_hyper('rho', var_dtype),
         self._get_hyper('epsilon', var_dtype),
         grad,
         use_locking=self._use_locking)
Example #7
0
 def _resource_apply_dense(self, grad, var):
   var_dtype = var.dtype.base_dtype
   lr_t = self._decayed_lr(var_dtype)
   accum_grad = self.get_slot(var, 'accum_grad')
   accum_var = self.get_slot(var, 'accum_var')
   return training_ops.resource_apply_adadelta(
       var.handle,
       accum_grad.handle,
       accum_var.handle,
       lr_t,
       self._get_hyper('rho', var_dtype),
       self._get_hyper('epsilon', var_dtype),
       grad,
       use_locking=self._use_locking)
Example #8
0
  def _resource_apply_dense(self, grad, var, apply_state=None):
    var_device, var_dtype = var.device, var.dtype.base_dtype
    coefficients = ((apply_state or {}).get((var_device, var_dtype))
                    or self._fallback_apply_state(var_device, var_dtype))

    accum_grad = self.get_slot(var, 'accum_grad')
    accum_var = self.get_slot(var, 'accum_var')
    return training_ops.resource_apply_adadelta(
        var.handle,
        accum_grad.handle,
        accum_var.handle,
        coefficients['lr_t'],
        coefficients['rho'],
        coefficients['epsilon'],
        grad,
        use_locking=self._use_locking)
Example #9
0
    def _resource_apply_dense(self, grad, var, constraint, apply_state=None):
        var_device, var_dtype = var.device, var.dtype.base_dtype
        coefficients = ((apply_state or {}).get((var_device, var_dtype))
                        or self._fallback_apply_state(var_device, var_dtype))

        accum_grad = self.get_slot(var, 'accum_grad')
        accum_var = self.get_slot(var, 'accum_var')
        var_update = training_ops.resource_apply_adadelta(
            var.handle,
            accum_grad.handle,
            accum_var.handle,
            coefficients['lr_t'],
            coefficients['rho'],
            coefficients['epsilon'],
            grad,
            use_locking=self._use_locking)

        project_var, was_projected = constraint.euclidean_project(var)
        return state_ops.assign(var, project_var)