parameters: (op)
return_statement: return [var_shape]
docstring: Shape function for the SparseApplyGradientDescent op.
docstring_summary: Shape function for the SparseApplyGradientDescent op.
docstring_tokens: Shape function for the SparseApplyGradientDescent op .
function: def _SparseApplyProximalGradientDescentShape(op):
    """Shape function for the SparseApplyGradientDescent op."""
    var_shape = op.inputs[0].get_shape()
    _AssertInputIsScalar(op, 1)  # lr
    _AssertInputIsScalar(op, 2)  # l1
    _AssertInputIsScalar(op, 3)  # l2
    grad_shape = op.inputs[4].get_shape().merge_with(
        tensor_shape.TensorShape([None]).concatenate(var_shape[1:]))
    unused_indices_shape = op.inputs[5].get_shape().merge_with(
        tensor_shape.vector(grad_shape[0]))
    return [var_shape]
function_tokens: def _SparseApplyProximalGradientDescentShape ( op ) : var_shape = op . inputs [ 0 ] . get_shape ( ) _AssertInputIsScalar ( op , 1 ) # lr _AssertInputIsScalar ( op , 2 ) # l1 _AssertInputIsScalar ( op , 3 ) # l2 grad_shape = op . inputs [ 4 ] . get_shape ( ) . merge_with ( tensor_shape . TensorShape ( [ None ] ) . concatenate ( var_shape [ 1 : ] ) ) unused_indices_shape = op . inputs [ 5 ] . get_shape ( ) . merge_with ( tensor_shape . vector ( grad_shape [ 0 ] ) ) return [ var_shape ]