# W3cubDocs

/TensorFlow C++ 1.15

# tensorflow::ops::SparseApplyFtrl

`#include <training_ops.h>`

Update relevant entries in '*var' according to the Ftrl-proximal scheme.

## Summary

That is for rows we have grad for, we update var, accum and linear as follows: \$\$accum_new = accum + grad * grad\$\$ \$\$linear += grad + (accum_{new}^{-lr_{power}} - accum^{-lr_{power}} / lr * var\$\$ \$\$quadratic = 1.0 / (accum_{new}^{lr_{power}} * lr) + 2 * l2\$\$ \$\$var = (sign(linear) * l1 - linear) / quadratic\ if\ |linear| > l1\ else\ 0.0\$\$ \$\$accum = accum_{new}\$\$

Arguments:

• scope: A Scope object
• var: Should be from a Variable().
• accum: Should be from a Variable().
• linear: Should be from a Variable().
• indices: A vector of indices into the first dimension of var and accum.
• lr: Scaling factor. Must be a scalar.
• l1: L1 regularization. Must be a scalar.
• l2: L2 regularization. Must be a scalar.
• lr_power: Scaling factor. Must be a scalar.

Optional attributes (see `Attrs`):

• use_locking: If `True`, updating of the var and accum tensors will be protected by a lock; otherwise the behavior is undefined, but may exhibit less contention.

Returns:

• `Output`: Same as "var".
Constructors and Destructors
`SparseApplyFtrl(const ::tensorflow::Scope & scope, ::tensorflow::Input var, ::tensorflow::Input accum, ::tensorflow::Input linear, ::tensorflow::Input grad, ::tensorflow::Input indices, ::tensorflow::Input lr, ::tensorflow::Input l1, ::tensorflow::Input l2, ::tensorflow::Input lr_power)`
`SparseApplyFtrl(const ::tensorflow::Scope & scope, ::tensorflow::Input var, ::tensorflow::Input accum, ::tensorflow::Input linear, ::tensorflow::Input grad, ::tensorflow::Input indices, ::tensorflow::Input lr, ::tensorflow::Input l1, ::tensorflow::Input l2, ::tensorflow::Input lr_power, const SparseApplyFtrl::Attrs & attrs)`
Public attributes
`operation`
`Operation`
`out`
`::tensorflow::Output`
Public functions
`node() const `
`::tensorflow::Node *`
`operator::tensorflow::Input() const `
`operator::tensorflow::Output() const `
Public static functions
`UseLocking(bool x)`
`Attrs`
Structs
tensorflow::ops::SparseApplyFtrl::Attrs

Optional attribute setters for SparseApplyFtrl.

## Public attributes

### operation

`Operation operation`

### out

`::tensorflow::Output out`

## Public functions

### SparseApplyFtrl

``` SparseApplyFtrl(
const ::tensorflow::Scope & scope,
::tensorflow::Input var,
::tensorflow::Input accum,
::tensorflow::Input linear,
::tensorflow::Input indices,
::tensorflow::Input lr,
::tensorflow::Input l1,
::tensorflow::Input l2,
::tensorflow::Input lr_power
)```

### SparseApplyFtrl

``` SparseApplyFtrl(
const ::tensorflow::Scope & scope,
::tensorflow::Input var,
::tensorflow::Input accum,
::tensorflow::Input linear,
::tensorflow::Input indices,
::tensorflow::Input lr,
::tensorflow::Input l1,
::tensorflow::Input l2,
::tensorflow::Input lr_power,
const SparseApplyFtrl::Attrs & attrs
)```

### node

`::tensorflow::Node * node() const `

### operator::tensorflow::Input

`operator::tensorflow::Input() const `

### operator::tensorflow::Output

`operator::tensorflow::Output() const `

## Public static functions

### UseLocking

```Attrs UseLocking(
bool x
)```