Help protect the Great Barrier Reef with TensorFlow on Kaggle

 #include <training_ops.h> 

Sparse update entries in '*var' and '*accum' according to FOBOS algorithm.

## Summary

That is for rows we have grad for, we update var and accum as follows:

$$accum += grad * grad$$
$$prox_v = var$$
$$prox_v -= lr * grad * (1 / sqrt(accum))$$
$$var = sign(prox_v)/(1+lr*l2) * max{|prox_v|-lr*l1,0}$$

Args:

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

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

 SparseApplyProximalAdagrad (const :: tensorflow::Scope & scope, :: tensorflow::Input var, :: tensorflow::Input accum, :: tensorflow::Input lr, :: tensorflow::Input l1, :: tensorflow::Input l2, :: tensorflow::Input grad, :: tensorflow::Input indices) 
 SparseApplyProximalAdagrad (const :: tensorflow::Scope & scope, :: tensorflow::Input var, :: tensorflow::Input accum, :: tensorflow::Input lr, :: tensorflow::Input l1, :: tensorflow::Input l2, :: tensorflow::Input grad, :: tensorflow::Input indices, const SparseApplyProximalAdagrad::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 

## Public attributes

### operation

Operation operation

### out

::tensorflow::Output out

## Public functions

 SparseApplyProximalAdagrad(
const ::tensorflow::Scope & scope,
::tensorflow::Input var,
::tensorflow::Input accum,
::tensorflow::Input lr,
::tensorflow::Input l1,
::tensorflow::Input l2,
::tensorflow::Input indices
)

 SparseApplyProximalAdagrad(
const ::tensorflow::Scope & scope,
::tensorflow::Input var,
::tensorflow::Input accum,
::tensorflow::Input lr,
::tensorflow::Input l1,
::tensorflow::Input l2,
::tensorflow::Input indices,
)

### 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
)
[{ "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" }]