docstr: Tests the new FTRL op with support for l2 shrinkage on sparse grads.
docstr_tok: ["Tests","the","new","FTRL","op","with","support","for","l2","shrinkage","on","sparse","grads","."]
code: def testFtrlWithL1_L2_L2ShrinkageSparse(self):
      """Tests the new FTRL op with support for l2 shrinkage on sparse grads."""
      # The v1 optimizers do not support eager execution
      with ops.Graph().as_default():
          for dtype in [dtypes.half, dtypes.float32]:
              with self.cached_session():
                  var0 = variables.Variable([[1.0], [2.0]], dtype=dtype)
                  var1 = variables.Variable([[4.0], [3.0]], dtype=dtype)
                  grads0 = indexed_slices.IndexedSlices(
                      constant_op.constant(
                          [0.1], shape=[1, 1], dtype=dtype
                      ),
                      constant_op.constant([0]),
                      constant_op.constant([2, 1]),
                  )
                  grads1 = indexed_slices.IndexedSlices(
                      constant_op.constant(
                          [0.02], shape=[1, 1], dtype=dtype
                      ),
                      constant_op.constant([1]),
                      constant_op.constant([2, 1]),
                  )
  
                  opt = ftrl.FtrlOptimizer(
                      3.0,
                      initial_accumulator_value=0.1,
                      l1_regularization_strength=0.001,
                      l2_regularization_strength=2.0,
                      l2_shrinkage_regularization_strength=0.1,
                  )
                  update = opt.apply_gradients(
                      zip([grads0, grads1], [var0, var1])
                  )
                  self.evaluate(
                      variables.global_variables_initializer()
                  )
  
                  v0_val, v1_val = self.evaluate([var0, var1])
                  self.assertAllCloseAccordingToType(
                      [[1.0], [2.0]], v0_val
                  )
                  self.assertAllCloseAccordingToType(
                      [[4.0], [3.0]], v1_val
                  )
  
                  # Run 10 steps FTRL
                  for _ in range(10):
                      update.run()
  
                  v0_val, v1_val = self.evaluate([var0, var1])
                  self.assertAllCloseAccordingToType(
                      [[-0.22578995], [2.0]], v0_val
                  )
                  self.assertAllCloseAccordingToType(
                      [[4.0], [-0.13229476]], v1_val
                  )
  
imports: import numpy
  from tensorflow.python.framework import constant_op
  from tensorflow.python.framework import dtypes
  from tensorflow.python.framework import indexed_slices
  from tensorflow.python.framework import ops
  from tensorflow.python.ops import embedding_ops
  from tensorflow.python.ops import math_ops
  from tensorflow.python.ops import resource_variable_ops
  from tensorflow.python.ops import variables
  from tensorflow.python.platform import test
  from tensorflow.python.training import adagrad
  from tensorflow.python.training import ftrl
  from tensorflow.python.training import gradient_descent
label_desc: Use image node_id 11 for calling the FtrlOptimizerTest obj's underlying member method code with example usage: obj.testFtrlWithL1_L2_L2ShrinkageSparse() without return types