Help protect the Great Barrier Reef with TensorFlow on Kaggle

# 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}$$

Args:

• 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

 MultiplyLinearByLr (bool x) 
 Attrs 
 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

### MultiplyLinearByLr

Attrs MultiplyLinearByLr(
bool x
)

### UseLocking

Attrs UseLocking(
bool x
)
[{ "type": "thumb-down", "id": "missingTheInformationINeed", "label":"Missing the information I need" },{ "type": "thumb-down", "id": "tooComplicatedTooManySteps", "label":"Too complicated / too many steps" },{ "type": "thumb-down", "id": "outOfDate", "label":"Out of date" },{ "type": "thumb-down", "id": "samplesCodeIssue", "label":"Samples / code issue" },{ "type": "thumb-down", "id": "otherDown", "label":"Other" }]
[{ "type": "thumb-up", "id": "easyToUnderstand", "label":"Easy to understand" },{ "type": "thumb-up", "id": "solvedMyProblem", "label":"Solved my problem" },{ "type": "thumb-up", "id": "otherUp", "label":"Other" }]